vendor: 18,938 bytes, line 1
1var Th={exports:{}},Al={};var Px;function BA(){if(Px)return Al;Px=1;var a=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function i(r,o,c){var u=null;if(c!==void 0&&(u=""+c),o.key!==void 0&&(u=""+o.key),"key"in o){c={};for(var f in o)f!=="key"&&(c[f]=o[f])}else c=o;return o=c.ref,{$$typeof:a,type:r,key:u,ref:o!==void 0?o:null,props:c}}return Al.Fragment=e,Al.jsx=i,Al.jsxs=i,Al}var Ox;function UA(){return Ox||(Ox=1,Th.exports=BA()),Th.exports}var S=UA(),Rh={exports:{}},Et={};var Bx;function kA(){if(Bx)return Et;Bx=1;var a=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),u=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),g=Symbol.for("react.activity"),v=Symbol.iterator;function y(H){return H===null||typeof H!="object"?null:(H=v&&H[v]||H["@@iterator"],typeof H=="function"?H:null)}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,E={};function b(H,Q,Se){this.props=H,this.context=Q,this.refs=E,this.updater=Se||M}b.prototype.isReactComponent={},b.prototype.setState=function(H,Q){if(typeof H!="object"&&typeof H!="function"&&H!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,H,Q,"setState")},b.prototype.forceUpdate=function(H){this.updater.enqueueForceUpdate(this,H,"forceUpdate")};function R(){}R.prototype=b.prototype;function C(H,Q,Se){this.props=H,this.context=Q,this.refs=E,this.updater=Se||M}var I=C.prototype=new R;I.constructor=C,T(I,b.prototype),I.isPureReactComponent=!0;var U=Array.isArray;function B(){}var D={H:null,A:null,T:null,S:null},A=Object.prototype.hasOwnProperty;function L(H,Q,Se){var ye=Se.ref;return{$$typeof:a,type:H,key:Q,ref:ye!==void 0?ye:null,props:Se}}function X(H,Q){return L(H.type,Q,H.props)}function k(H){return typeof H=="object"&&H!==null&&H.$$typeof===a}function G(H){var Q={"=":"=0",":":"=2"};return"$"+H.replace(/[=:]/g,function(Se){return Q[Se]})}var Y=/\/+/g;function ee(H,Q){return typeof H=="object"&&H!==null&&H.key!=null?G(""+H.key):Q.toString(36)}function Z(H){switch(H.status){case"fulfilled":return H.value;case"rejected":throw H.reason;default:switch(typeof H.status=="string"?H.then(B,B):(H.status="pending",H.then(function(Q){H.status==="pending"&&(H.status="fulfilled",H.value=Q)},function(Q){H.status==="pending"&&(H.status="rejected",H.reason=Q)})),H.status){case"fulfilled":return H.value;case"rejected":throw H.reason}}throw H}function _(H,Q,Se,ye,Ce){var $=typeof H;($==="undefined"||$==="boolean")&&(H=null);var me=!1;if(H===null)me=!0;else switch($){case"bigint":case"string":case"number":me=!0;break;case"object":switch(H.$$typeof){case a:case e:me=!0;break;case x:return me=H._init,_(me(H._payload),Q,Se,ye,Ce)}}if(me)return Ce=Ce(H),me=ye===""?"."+ee(H,0):ye,U(Ce)?(Se="",me!=null&&(Se=me.replace(Y,"$&/")+"/"),_(Ce,Q,Se,"",function(Ze){return Ze})):Ce!=null&&(k(Ce)&&(Ce=X(Ce,Se+(Ce.key==null||H&&H.key===Ce.key?"":(""+Ce.key).replace(Y,"$&/")+"/")+me)),Q.push(Ce)),1;me=0;var Me=ye===""?".":ye+":";if(U(H))for(var Te=0;Te<H.length;Te++)ye=H[Te],$=Me+ee(ye,Te),me+=_(ye,Q,Se,$,Ce);else if(Te=y(H),typeof Te=="function")for(H=Te.call(H),Te=0;!(ye=H.next()).done;)ye=ye.value,$=Me+ee(ye,Te++),me+=_(ye,Q,Se,$,Ce);else if($==="object"){if(typeof H.then=="function")return _(Z(H),Q,Se,ye,Ce);throw Q=String(H),Error("Objects are not valid as a React child (found: "+(Q==="[object Object]"?"object with keys {"+Object.keys(H).join(", ")+"}":Q)+"). If you meant to render a collection of children, use an array instead.")}return me}function F(H,Q,Se){if(H==null)return H;var ye=[],Ce=0;return _(H,ye,"","",function($){return Q.call(Se,$,Ce++)}),ye}function se(H){if(H._status===-1){var Q=H._result;Q=Q(),Q.then(function(Se){(H._status===0||H._status===-1)&&(H._status=1,H._result=Se)},function(Se){(H._status===0||H._status===-1)&&(H._status=2,H._result=Se)}),H._status===-1&&(H._status=0,H._result=Q)}if(H._status===1)return H._result.default;throw H._result}var fe=typeof reportError=="function"?reportError:function(H){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var Q=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof H=="object"&&H!==null&&typeof H.message=="string"?String(H.message):String(H),error:H});if(!window.dispatchEvent(Q))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",H);return}console.error(H)},ae={map:F,forEach:function(H,Q,Se){F(H,function(){Q.apply(this,arguments)},Se)},count:function(H){var Q=0;return F(H,function(){Q++}),Q},toArray:function(H){return F(H,function(Q){return Q})||[]},only:function(H){if(!k(H))throw Error("React.Children.only expected to receive a single React element child.");return H}};return Et.Activity=g,Et.Children=ae,Et.Component=b,Et.Fragment=i,Et.Profiler=o,Et.PureComponent=C,Et.StrictMode=r,Et.Suspense=h,Et.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=D,Et.__COMPILER_RUNTIME={__proto__:null,c:function(H){return D.H.useMemoCache(H)}},Et.cache=function(H){return function(){return H.apply(null,arguments)}},Et.cacheSignal=function(){return null},Et.cloneElement=function(H,Q,Se){if(H==null)throw Error("The argument must be a React element, but you passed "+H+".");var ye=T({},H.props),Ce=H.key;if(Q!=null)for($ in Q.key!==void 0&&(Ce=""+Q.key),Q)!A.call(Q,$)||$==="key"||$==="__self"||$==="__source"||$==="ref"&&Q.ref===void 0||(ye[$]=Q[$]);var $=arguments.length-2;if($===1)ye.children=Se;else if(1<$){for(var me=Array($),Me=0;Me<$;Me++)me[Me]=arguments[Me+2];ye.children=me}return L(H.type,Ce,ye)},Et.createContext=function(H){return H={$$typeof:u,_currentValue:H,_currentValue2:H,_threadCount:0,Provider:null,Consumer:null},H.Provider=H,H.Consumer={$$typeof:c,_context:H},H},Et.createElement=function(H,Q,Se){var ye,Ce={},$=null;if(Q!=null)for(ye in Q.key!==void 0&&($=""+Q.key),Q)A.call(Q,ye)&&ye!=="key"&&ye!=="__self"&&ye!=="__source"&&(Ce[ye]=Q[ye]);var me=arguments.length-2;if(me===1)Ce.children=Se;else if(1<me){for(var Me=Array(me),Te=0;Te<me;Te++)Me[Te]=arguments[Te+2];Ce.children=Me}if(H&&H.defaultProps)for(ye in me=H.defaultProps,me)Ce[ye]===void 0&&(Ce[ye]=me[ye]);return L(H,$,Ce)},Et.createRef=function(){return{current:null}},Et.forwardRef=function(H){return{$$typeof:f,render:H}},Et.isValidElement=k,Et.lazy=function(H){return{$$typeof:x,_payload:{_status:-1,_result:H},_init:se}},Et.memo=function(H,Q){return{$$typeof:p,type:H,compare:Q===void 0?null:Q}},Et.startTransition=function(H){var Q=D.T,Se={};D.T=Se;try{var ye=H(),Ce=D.S;Ce!==null&&Ce(Se,ye),typeof ye=="object"&&ye!==null&&typeof ye.then=="function"&&ye.then(B,fe)}catch($){fe($)}finally{Q!==null&&Se.types!==null&&(Q.types=Se.types),D.T=Q}},Et.unstable_useCacheRefresh=function(){return D.H.useCacheRefresh()},Et.use=function(H){return D.H.use(H)},Et.useActionState=function(H,Q,Se){return D.H.useActionState(H,Q,Se)},Et.useCallback=function(H,Q){return D.H.useCallback(H,Q)},Et.useContext=function(H){return D.H.useContext(H)},Et.useDebugValue=function(){},Et.useDeferredValue=function(H,Q){return D.H.useDeferredValue(H,Q)},Et.useEffect=function(H,Q){return D.H.useEffect(H,Q)},Et.useEffectEvent=function(H){return D.H.useEffectEvent(H)},Et.useId=function(){return D.H.useId()},Et.useImperativeHandle=function(H,Q,Se){return D.H.useImperativeHandle(H,Q,Se)},Et.useInsertionEffect=function(H,Q){return D.H.useInsertionEffect(H,Q)},Et.useLayoutEffect=function(H,Q){return D.H.useLayoutEffect(H,Q)},Et.useMemo=function(H,Q){return D.H.useMemo(H,Q)},Et.useOptimistic=function(H,Q){return D.H.useOptimistic(H,Q)},Et.useReducer=function(H,Q,Se){return D.H.useReducer(H,Q,Se)},Et.useRef=function(H){return D.H.useRef(H)},Et.useState=function(H){return D.H.useState(H)},Et.useSyncExternalStore=function(H,Q,Se){return D.H.useSyncExternalStore(H,Q,Se)},Et.useTransition=function(){return D.H.useTransition()},Et.version="19.2.4",Et}var Ux;function Em(){return Ux||(Ux=1,Rh.exports=kA()),Rh.exports}var ne=Em(),Ch={exports:{}},wl={},Ih={exports:{}},Dh={};var kx;function zA(){return kx||(kx=1,(function(a){function e(_,F){var se=_.length;_.push(F);e:for(;0<se;){var fe=se-1>>>1,ae=_[fe];if(0<o(ae,F))_[fe]=F,_[se]=ae,se=fe;else break e}}function i(_){return _.length===0?null:_[0]}function r(_){if(_.length===0)return null;var F=_[0],se=_.pop();if(se!==F){_[0]=se;e:for(var fe=0,ae=_.length,H=ae>>>1;fe<H;){var Q=2*(fe+1)-1,Se=_[Q],ye=Q+1,Ce=_[ye];if(0>o(Se,se))ye<ae&&0>o(Ce,Se)?(_[fe]=Ce,_[ye]=se,fe=ye):(_[fe]=Se,_[Q]=se,fe=Q);else if(ye<ae&&0>o(Ce,se))_[fe]=Ce,_[ye]=se,fe=ye;else break e}}return F}function o(_,F){var se=_.sortIndex-F.sortIndex;return se!==0?se:_.id-F.id}if(a.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;a.unstable_now=function(){return c.now()}}else{var u=Date,f=u.now();a.unstable_now=function(){return u.now()-f}}var h=[],p=[],x=1,g=null,v=3,y=!1,M=!1,T=!1,E=!1,b=typeof setTimeout=="function"?setTimeout:null,R=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function I(_){for(var F=i(p);F!==null;){if(F.callback===null)r(p);else if(F.startTime<=_)r(p),F.sortIndex=F.expirationTime,e(h,F);else break;F=i(p)}}function U(_){if(T=!1,I(_),!M)if(i(h)!==null)M=!0,B||(B=!0,G());else{var F=i(p);F!==null&&Z(U,F.startTime-_)}}var B=!1,D=-1,A=5,L=-1;function X(){return E?!0:!(a.unstable_now()-L<A)}function k(){if(E=!1,B){var _=a.unstable_now();L=_;var F=!0;try{e:{M=!1,T&&(T=!1,R(D),D=-1),y=!0;var se=v;try{t:{for(I(_),g=i(h);g!==null&&!(g.expirationTime>_&&X());){var fe=g.callback;if(typeof fe=="function"){g.callback=null,v=g.priorityLevel;var ae=fe(g.expirationTime<=_);if(_=a.unstable_now(),typeof ae=="function"){g.callback=ae,I(_),F=!0;break t}g===i(h)&&r(h),I(_)}else r(h);g=i(h)}if(g!==null)F=!0;else{var H=i(p);H!==null&&Z(U,H.startTime-_),F=!1}}break e}finally{g=null,v=se,y=!1}F=void 0}}finally{F?G():B=!1}}}var G;if(typeof C=="function")G=function(){C(k)};else if(typeof MessageChannel<"u"){var Y=new MessageChannel,ee=Y.port2;Y.port1.onmessage=k,G=function(){ee.postMessage(null)}}else G=function(){b(k,0)};function Z(_,F){D=b(function(){_(a.unstable_now())},F)}a.unstable_IdlePriority=5,a.unstable_ImmediatePriority=1,a.unstable_LowPriority=4,a.unstable_NormalPriority=3,a.unstable_Profiling=null,a.unstable_UserBlockingPriority=2,a.unstable_cancelCallback=function(_){_.callback=null},a.unstable_forceFrameRate=function(_){0>_||125<_?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):A=0<_?Math.floor(1e3/_):5},a.unstable_getCurrentPriorityLevel=function(){return v},a.unstable_next=function(_){switch(v){case 1:case 2:case 3:var F=3;break;default:F=v}var se=v;v=F;try{return _()}finally{v=se}},a.unstable_requestPaint=function(){E=!0},a.unstable_runWithPriority=function(_,F){switch(_){case 1:case 2:case 3:case 4:case 5:break;default:_=3}var se=v;v=_;try{return F()}finally{v=se}},a.unstable_scheduleCallback=function(_,F,se){var fe=a.unstable_now();switch(typeof se=="object"&&se!==null?(se=se.delay,se=typeof se=="number"&&0<se?fe+se:fe):se=fe,_){case 1:var ae=-1;break;case 2:ae=250;break;case 5:ae=1073741823;break;case 4:ae=1e4;break;default:ae=5e3}return ae=se+ae,_={id:x++,callback:F,priorityLevel:_,startTime:se,expirationTime:ae,sortIndex:-1},se>fe?(_.sortIndex=se,e(p,_),i(h)===null&&_===i(p)&&(T?(R(D),D=-1):T=!0,Z(U,se-fe))):(_.sortIndex=ae,e(h,_),M||y||(M=!0,B||(B=!0,G()))),_},a.unstable_shouldYield=X,a.unstable_wrapCallback=function(_){var F=v;return function(){var se=v;v=F;try{return _.apply(this,arguments)}finally{v=se}}}})(Dh)),Dh}var zx;function _A(){return zx||(zx=1,Ih.exports=zA()),Ih.exports}var Nh={exports:{}},Un={};var _x;function HA(){if(_x)return Un;_x=1;var a=Em();function e(h){var p="https://react.dev/errors/"+h;if(1<arguments.length){p+="?args[]="+encodeURIComponent(arguments[1]);for(var x=2;x<arguments.length;x++)p+="&args[]="+encodeURIComponent(arguments[x])}return"Minified React error #"+h+"; visit "+p+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(){}var r={d:{f:i,r:function(){throw Error(e(522))},D:i,C:i,L:i,m:i,X:i,S:i,M:i},p:0,findDOMNode:null},o=Symbol.for("react.portal");function c(h,p,x){var g=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:o,key:g==null?null:""+g,children:h,containerInfo:p,implementation:x}}var u=a.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function f(h,p){if(h==="font")return"";if(typeof p=="string")return p==="use-credentials"?p:""}return Un.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,Un.createPortal=function(h,p){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!p||p.nodeType!==1&&p.nodeType!==9&&p.nodeType!==11)throw Error(e(299));return c(h,p,null,x)},Un.flushSync=function(h){var p=u.T,x=r.p;try{if(u.T=null,r.p=2,h)return h()}finally{u.T=p,r.p=x,r.d.f()}},Un.preconnect=function(h,p){typeof h=="string"&&(p?(p=p.crossOrigin,p=typeof p=="string"?p==="use-credentials"?p:"":void 0):p=null,r.d.C(h,p))},Un.prefetchDNS=function(h){typeof h=="string"&&r.d.D(h)},Un.preinit=function(h,p){if(typeof h=="string"&&p&&typeof p.as=="string"){var x=p.as,g=f(x,p.crossOrigin),v=typeof p.integrity=="string"?p.integrity:void 0,y=typeof p.fetchPriority=="string"?p.fetchPriority:void 0;x==="style"?r.d.S(h,typeof p.precedence=="string"?p.precedence:void 0,{crossOrigin:g,integrity:v,fetchPriority:y}):x==="script"&&r.d.X(h,{crossOrigin:g,integrity:v,fetchPriority:y,nonce:typeof p.nonce=="string"?p.nonce:void 0})}},Un.preinitModule=function(h,p){if(typeof h=="string")if(typeof p=="object"&&p!==null){if(p.as==null||p.as==="script"){var x=f(p.as,p.crossOrigin);r.d.M(h,{crossOrigin:x,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0})}}else p==null&&r.d.M(h)},Un.preload=function(h,p){if(typeof h=="string"&&typeof p=="object"&&p!==null&&typeof p.as=="string"){var x=p.as,g=f(x,p.crossOrigin);r.d.L(h,x,{crossOrigin:g,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0,type:typeof p.type=="string"?p.type:void 0,fetchPriority:typeof p.fetchPriority=="string"?p.fetchPriority:void 0,referrerPolicy:typeof p.referrerPolicy=="string"?p.referrerPolicy:void 0,imageSrcSet:typeof p.imageSrcSet=="string"?p.imageSrcSet:void 0,imageSizes:typeof p.imageSizes=="string"?p.imageSizes:void 0,media:typeof p.media=="string"?p.media:void 0})}},Un.preloadModule=function(h,p){if(typeof h=="string")if(p){var x=f(p.as,p.crossOrigin);r.d.m(h,{as:typeof p.as=="string"&&p.as!=="script"?p.as:void 0,crossOrigin:x,integrity:typeof p.integrity=="string"?p.integrity:void 0})}else r.d.m(h)},Un.requestFormReset=function(h){r.d.r(h)},Un.unstable_batchedUpdates=function(h,p){return h(p)},Un.useFormState=function(h,p,x){return u.H.useFormState(h,p,x)},Un.useFormStatus=function(){return u.H.useHostTransitionStatus()},Un.version="19.2.4",Un}var Hx;function Ob(){if(Hx)return Nh.exports;Hx=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(e){console.error(e)}}return a(),Nh.exports=HA(),Nh.exports}var Fx;function FA(){if(Fx)return wl;Fx=1;var a=_A(),e=Em(),i=Ob();function r(t){var n="https://react.dev/errors/"+t;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)n+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+t+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function o(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function c(t){var n=t,s=t;if(t.alternate)for(;n.return;)n=n.return;else{t=n;do n=t,(n.flags&4098)!==0&&(s=n.return),t=n.return;while(t)}return n.tag===3?s:null}function u(t){if(t.tag===13){var n=t.memoizedState;if(n===null&&(t=t.alternate,t!==null&&(n=t.memoizedState)),n!==null)return n.dehydrated}return null}function f(t){if(t.tag===31){var n=t.memoizedState;if(n===null&&(t=t.alternate,t!==null&&(n=t.memoizedState)),n!==null)return n.dehydrated}return null}function h(t){if(c(t)!==t)throw Error(r(188))}function p(t){var n=t.alternate;if(!n){if(n=c(t),n===null)throw Error(r(188));return n!==t?null:t}for(var s=t,l=n;;){var d=s.return;if(d===null)break;var m=d.alternate;if(m===null){if(l=d.return,l!==null){s=l;continue}break}if(d.child===m.child){for(m=d.child;m;){if(m===s)return h(d),t;if(m===l)return h(d),n;m=m.sibling}throw Error(r(188))}if(s.return!==l.return)s=d,l=m;else{for(var w=!1,P=d.child;P;){if(P===s){w=!0,s=d,l=m;break}if(P===l){w=!0,l=d,s=m;break}P=P.sibling}if(!w){for(P=m.child;P;){if(P===s){w=!0,s=m,l=d;break}if(P===l){w=!0,l=m,s=d;break}P=P.sibling}if(!w)throw Error(r(189))}}if(s.alternate!==l)throw Error(r(190))}if(s.tag!==3)throw Error(r(188));return s.stateNode.current===s?t:n}function x(t){var n=t.tag;if(n===5||n===26||n===27||n===6)return t;for(t=t.child;t!==null;){if(n=x(t),n!==null)return n;t=t.sibling}return null}var g=Object.assign,v=Symbol.for("react.element"),y=Symbol.for("react.transitional.element"),M=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),R=Symbol.for("react.consumer"),C=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),U=Symbol.for("react.suspense"),B=Symbol.for("react.suspense_list"),D=Symbol.for("react.memo"),A=Symbol.for("react.lazy"),L=Symbol.for("react.activity"),X=Symbol.for("react.memo_cache_sentinel"),k=Symbol.iterator;function G(t){return t===null||typeof t!="object"?null:(t=k&&t[k]||t["@@iterator"],typeof t=="function"?t:null)}var Y=Symbol.for("react.client.reference");function ee(t){if(t==null)return null;if(typeof t=="function")return t.$$typeof===Y?null:t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case T:return"Fragment";case b:return"Profiler";case E:return"StrictMode";case U:return"Suspense";case B:return"SuspenseList";case L:return"Activity"}if(typeof t=="object")switch(t.$$typeof){case M:return"Portal";case C:return t.displayName||"Context";case R:return(t._context.displayName||"Context")+".Consumer";case I:var n=t.render;return t=t.displayName,t||(t=n.displayName||n.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case D:return n=t.displayName||null,n!==null?n:ee(t.type)||"Memo";case A:n=t._payload,t=t._init;try{return ee(t(n))}catch{}}return null}
vendor: 4,404 bytes, lines 1-8
1var Z=Array.isArray,_=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,F=i.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,se={pending:!1,data:null,method:null,action:null},fe=[],ae=-1;function H(t){return{current:t}}function Q(t){0>ae||(t.current=fe[ae],fe[ae]=null,ae--)}function Se(t,n){ae++,fe[ae]=t.current,t.current=n}var ye=H(null),Ce=H(null),$=H(null),me=H(null);function Me(t,n){switch(Se($,n),Se(Ce,t),Se(ye,null),n.nodeType){case 9:case 11:t=(t=n.documentElement)&&(t=t.namespaceURI)?nx(t):0;break;default:if(t=n.tagName,n=n.namespaceURI)n=nx(n),t=ix(n,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}Q(ye),Se(ye,t)}function Te(){Q(ye),Q(Ce),Q($)}function Ze(t){t.memoizedState!==null&&Se(me,t);var n=ye.current,s=ix(n,t.type);n!==s&&(Se(Ce,t),Se(ye,s))}function tt(t){Ce.current===t&&(Q(ye),Q(Ce)),me.current===t&&(Q(me),bl._currentValue=se)}var yt,xt;function pt(t){if(yt===void 0)try{throw Error()}catch(s){var n=s.stack.trim().match(/\n( *(at )?)/);yt=n&&n[1]||"",xt=-1<s.stack.indexOf(` 2 at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return` 3`+yt+t+xt}var ft=!1;function je(t,n){if(!t||ft)return"";ft=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var l={DetermineComponentFrameRoot:function(){try{if(n){var De=function(){throw Error()};if(Object.defineProperty(De.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(De,[])}catch(ge){var ue=ge}Reflect.construct(t,[],De)}else{try{De.call()}catch(ge){ue=ge}t.call(De.prototype)}}else{try{throw Error()}catch(ge){ue=ge}(De=t())&&typeof De.catch=="function"&&De.catch(function(){})}}catch(ge){if(ge&&ue&&typeof ge.stack=="string")return[ge.stack,ue.stack]}return[null,null]}};l.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var d=Object.getOwnPropertyDescriptor(l.DetermineComponentFrameRoot,"name");d&&d.configurable&&Object.defineProperty(l.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var m=l.DetermineComponentFrameRoot(),w=m[0],P=m[1];if(w&&P){var j=w.split(` 4`),ce=P.split(` 5`);for(d=l=0;l<j.length&&!j[l].includes("DetermineComponentFrameRoot");)l++;for(;d<ce.length&&!ce[d].includes("DetermineComponentFrameRoot");)d++;if(l===j.length||d===ce.length)for(l=j.length-1,d=ce.length-1;1<=l&&0<=d&&j[l]!==ce[d];)d--;for(;1<=l&&0<=d;l--,d--)if(j[l]!==ce[d]){if(l!==1||d!==1)do if(l--,d--,0>d||j[l]!==ce[d]){var Ee=` 6`+j[l].replace(" at new "," at ");return t.displayName&&Ee.includes("<anonymous>")&&(Ee=Ee.replace("<anonymous>",t.displayName)),Ee}while(1<=l&&0<=d);break}}}finally{ft=!1,Error.prepareStackTrace=s}return(s=t?t.displayName||t.name:"")?pt(s):""}function Ne(t,n){switch(t.tag){case 26:case 27:case 5:return pt(t.type);case 16:return pt("Lazy");case 13:return t.child!==n&&n!==null?pt("Suspense Fallback"):pt("Suspense");case 19:return pt("SuspenseList");case 0:case 15:return je(t.type,!1);case 11:return je(t.type.render,!1);case 1:return je(t.type,!0);case 31:return pt("Activity");default:return""}}function V(t){try{var n="",s=null;do n+=Ne(t,s),s=t,t=t.return;while(t);return n}catch(l){return` 7Error generating stack: `+l.message+` 8`+l.stack}}var gt=Object.prototype.hasOwnProperty,ct=a.unstable_scheduleCallback,pe=a.unstable_cancelCallback,Ie=a.unstable_shouldYield,z=a.unstable_requestPaint,N=a.unstable_now,W=a.unstable_getCurrentPriorityLevel,xe=a.unstable_ImmediatePriority,Ae=a.unstable_UserBlockingPriority,ve=a.unstable_NormalPriority,Ge=a.unstable_LowPriority,Be=a.unstable_IdlePriority,Je=a.log,dt=a.unstable_setDisableYieldValue,Pe=null,Le=null;function Ye(t){if(typeof Je=="function"&&dt(t),Le&&typeof Le.setStrictMode=="function")try{Le.setStrictMode(Pe,t)}catch{}}var He=Math.clz32?Math.clz32:J,We=Math.log,lt=Math.LN2;function J(t){return t>>>=0,t===0?32:31-(We(t)/lt|0)|0}var ze=256,Ue=262144,Qe=4194304;function Oe(t){var n=t&42;if(n!==0)return n;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;
vendor: 5,067 bytes, line 8
8case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function be(t,n,s){var l=t.pendingLanes;if(l===0)return 0;var d=0,m=t.suspendedLanes,w=t.pingedLanes;t=t.warmLanes;var P=l&134217727;return P!==0?(l=P&~m,l!==0?d=Oe(l):(w&=P,w!==0?d=Oe(w):s||(s=P&~t,s!==0&&(d=Oe(s))))):(P=l&~m,P!==0?d=Oe(P):w!==0?d=Oe(w):s||(s=l&~t,s!==0&&(d=Oe(s)))),d===0?0:n!==0&&n!==d&&(n&m)===0&&(m=d&-d,s=n&-n,m>=s||m===32&&(s&4194048)!==0)?n:d}function et(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function $e(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function vt(){var t=Qe;return Qe<<=1,(Qe&62914560)===0&&(Qe=4194304),t}function Dt(t){for(var n=[],s=0;31>s;s++)n.push(t);return n}function $t(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Zn(t,n,s,l,d,m){var w=t.pendingLanes;t.pendingLanes=s,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=s,t.entangledLanes&=s,t.errorRecoveryDisabledLanes&=s,t.shellSuspendCounter=0;var P=t.entanglements,j=t.expirationTimes,ce=t.hiddenUpdates;for(s=w&~s;0<s;){var Ee=31-He(s),De=1<<Ee;P[Ee]=0,j[Ee]=-1;var ue=ce[Ee];if(ue!==null)for(ce[Ee]=null,Ee=0;Ee<ue.length;Ee++){var ge=ue[Ee];ge!==null&&(ge.lane&=-536870913)}s&=~De}l!==0&&Yi(t,l,0),m!==0&&d===0&&t.tag!==0&&(t.suspendedLanes|=m&~(w&~n))}function Yi(t,n,s){t.pendingLanes|=n,t.suspendedLanes&=~n;var l=31-He(n);t.entangledLanes|=n,t.entanglements[l]=t.entanglements[l]|1073741824|s&261930}function Di(t,n){var s=t.entangledLanes|=n;for(t=t.entanglements;s;){var l=31-He(s),d=1<<l;d&n|t[l]&n&&(t[l]|=n),s&=~d}}function Dr(t,n){var s=n&-n;return s=(s&42)!==0?1:Ga(s),(s&(t.suspendedLanes|n))!==0?0:s}function Ga(t){switch(t){case 2:t=1;break;case 8:t=4;break;case 32:t=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:t=128;break;case 268435456:t=134217728;break;default:t=0}return t}function pi(t){return t&=-t,2<t?8<t?(t&134217727)!==0?32:268435456:8:2}function Fn(){var t=F.p;return t!==0?t:(t=window.event,t===void 0?32:Tx(t.type))}function mi(t,n){var s=F.p;try{return F.p=t,n()}finally{F.p=s}}var In=Math.random().toString(36).slice(2),an="__reactFiber$"+In,un="__reactProps$"+In,Ni="__reactContainer$"+In,Li="__reactEvents$"+In,Bo="__reactListeners$"+In,Uo="__reactHandles$"+In,ja="__reactResources$"+In,ii="__reactMarker$"+In;function Ya(t){delete t[an],delete t[un],delete t[Li],delete t[Bo],delete t[Uo]}function Xi(t){var n=t[an];if(n)return n;for(var s=t.parentNode;s;){if(n=s[Ni]||s[an]){if(s=n.alternate,n.child!==null||s!==null&&s.child!==null)for(t=ux(t);t!==null;){if(s=t[an])return s;t=ux(t)}return n}t=s,s=t.parentNode}return null}function gi(t){if(t=t[an]||t[Ni]){var n=t.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return t}return null}function oa(t){var n=t.tag;if(n===5||n===26||n===27||n===6)return t.stateNode;throw Error(r(33))}function O(t){var n=t[ja];return n||(n=t[ja]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function q(t){t[ii]=!0}var de=new Set,oe={};function re(t,n){_e(t,n),_e(t+"Capture",n)}function _e(t,n){for(oe[t]=n,t=0;t<n.length;t++)de.add(n[t])}var Ke=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Fe={},nt={};function ie(t){return gt.call(nt,t)?!0:gt.call(Fe,t)?!1:Ke.test(t)?nt[t]=!0:(Fe[t]=!0,!1)}function we(t,n,s){if(ie(n))if(s===null)t.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":t.removeAttribute(n);return;case"boolean":var l=n.toLowerCase().slice(0,5);if(l!=="data-"&&l!=="aria-"){t.removeAttribute(n);return}}t.setAttribute(n,""+s)}}function Ve(t,n,s){if(s===null)t.removeAttribute(n);else{switch(typeof s){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(n);return}t.setAttribute(n,""+s)}}function ke(t,n,s,l){if(l===null)t.removeAttribute(s);else{switch(typeof l){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(s);return}t.setAttributeNS(n,s,""+l)}}function st(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function Mt(t){var n=t.type;
vendor: 5,492 bytes, line 8
8return(t=t.nodeName)&&t.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function At(t,n,s){var l=Object.getOwnPropertyDescriptor(t.constructor.prototype,n);if(!t.hasOwnProperty(n)&&typeof l<"u"&&typeof l.get=="function"&&typeof l.set=="function"){var d=l.get,m=l.set;return Object.defineProperty(t,n,{configurable:!0,get:function(){return d.call(this)},set:function(w){s=""+w,m.call(this,w)}}),Object.defineProperty(t,n,{enumerable:l.enumerable}),{getValue:function(){return s},setValue:function(w){s=""+w},stopTracking:function(){t._valueTracker=null,delete t[n]}}}}function St(t){if(!t._valueTracker){var n=Mt(t)?"checked":"value";t._valueTracker=At(t,n,""+t[n])}}function Kt(t){if(!t)return!1;var n=t._valueTracker;if(!n)return!0;var s=n.getValue(),l="";return t&&(l=Mt(t)?t.checked?"true":"false":t.value),t=l,t!==s?(n.setValue(t),!0):!1}function qe(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var sn=/[\n"\\]/g;function ut(t){return t.replace(sn,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function on(t,n,s,l,d,m,w,P){t.name="",w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"?t.type=w:t.removeAttribute("type"),n!=null?w==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+st(n)):t.value!==""+st(n)&&(t.value=""+st(n)):w!=="submit"&&w!=="reset"||t.removeAttribute("value"),n!=null?Wn(t,w,st(n)):s!=null?Wn(t,w,st(s)):l!=null&&t.removeAttribute("value"),d==null&&m!=null&&(t.defaultChecked=!!m),d!=null&&(t.checked=d&&typeof d!="function"&&typeof d!="symbol"),P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?t.name=""+st(P):t.removeAttribute("name")}function Vn(t,n,s,l,d,m,w,P){if(m!=null&&typeof m!="function"&&typeof m!="symbol"&&typeof m!="boolean"&&(t.type=m),n!=null||s!=null){if(!(m!=="submit"&&m!=="reset"||n!=null)){St(t);return}s=s!=null?""+st(s):"",n=n!=null?""+st(n):s,P||n===t.value||(t.value=n),t.defaultValue=n}l=l??d,l=typeof l!="function"&&typeof l!="symbol"&&!!l,t.checked=P?t.checked:!!l,t.defaultChecked=!!l,w!=null&&typeof w!="function"&&typeof w!="symbol"&&typeof w!="boolean"&&(t.name=w),St(t)}function Wn(t,n,s){n==="number"&&qe(t.ownerDocument)===t||t.defaultValue===""+s||(t.defaultValue=""+s)}function Gn(t,n,s,l){if(t=t.options,n){n={};for(var d=0;d<s.length;d++)n["$"+s[d]]=!0;for(s=0;s<t.length;s++)d=n.hasOwnProperty("$"+t[s].value),t[s].selected!==d&&(t[s].selected=d),d&&l&&(t[s].defaultSelected=!0)}else{for(s=""+st(s),n=null,d=0;d<t.length;d++){if(t[d].value===s){t[d].selected=!0,l&&(t[d].defaultSelected=!0);return}n!==null||t[d].disabled||(n=t[d])}n!==null&&(n.selected=!0)}}function _t(t,n,s){if(n!=null&&(n=""+st(n),n!==t.value&&(t.value=n),s==null)){t.defaultValue!==n&&(t.defaultValue=n);return}t.defaultValue=s!=null?""+st(s):""}function pn(t,n,s,l){if(n==null){if(l!=null){if(s!=null)throw Error(r(92));if(Z(l)){if(1<l.length)throw Error(r(93));l=l[0]}s=l}s==null&&(s=""),n=s}s=st(n),t.defaultValue=s,l=t.textContent,l===s&&l!==""&&l!==null&&(t.value=l),St(t)}function jn(t,n){if(n){var s=t.firstChild;if(s&&s===t.lastChild&&s.nodeType===3){s.nodeValue=n;return}}t.textContent=n}var mn=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Pi(t,n,s){var l=n.indexOf("--")===0;s==null||typeof s=="boolean"||s===""?l?t.setProperty(n,""):n==="float"?t.cssFloat="":t[n]="":l?t.setProperty(n,s):typeof s!="number"||s===0||mn.has(n)?n==="float"?t.cssFloat=s:t[n]=(""+s).trim():t[n]=s+"px"}function la(t,n,s){if(n!=null&&typeof n!="object")throw Error(r(62));if(t=t.style,s!=null){for(var l in s)!s.hasOwnProperty(l)||n!=null&&n.hasOwnProperty(l)||(l.indexOf("--")===0?t.setProperty(l,""):l==="float"?t.cssFloat="":t[l]="");for(var d in n)l=n[d],n.hasOwnProperty(d)&&s[d]!==l&&Pi(t,d,l)}else for(var m in n)n.hasOwnProperty(m)&&Pi(t,m,n[m])}function bs(t){if(t.indexOf("-")===-1)return!1;switch(t){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var NE=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRen
8dering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),LE=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function uc(t){return LE.test(""+t)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":t}function ca(){}var Mf=null;function Af(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var Ss=null,Es=null;function tg(t){var n=gi(t);if(n&&(t=n.stateNode)){var s=t[un]||null;e:switch(t=n.stateNode,n.type){case"input":if(on(t,s.value,s.defaultValue,s.defaultValue,s.checked,s.defaultChecked,s.type,s.name),n=s.name,s.type==="radio"&&n!=null){for(s=t;s.parentNode;)s=s.parentNode;for(s=s.querySelectorAll('input[name="'+ut(""+n)+'"][type="radio"]'),n=0;n<s.length;n++){var l=s[n];if(l!==t&&l.form===t.form){var d=l[un]||null;if(!d)throw Error(r(90));on(l,d.value,d.defaultValue,d.defaultValue,d.checked,d.defaultChecked,d.type,d.name)}}for(n=0;n<s.length;n++)l=s[n],l.form===t.form&&Kt(l)}break e;case"textarea":_t(t,s.value,s.defaultValue);break e;case"select":n=s.value,n!=null&&Gn(t,!!s.multiple,n,!1)}}}var wf=!1;function ng(t,n,s){if(wf)return t(n,s);wf=!0;try{var l=t(n);return l}finally{if(wf=!1,(Ss!==null||Es!==null)&&(Kc(),Ss&&(n=Ss,t=Es,Es=Ss=null,tg(n),t)))for(n=0;n<t.length;n++)tg(t[n])}}function ko(t,n){var s=t.stateNode;if(s===null)return null;var l=s[un]||null;if(l===null)return null;s=l[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(l=!l.disabled)||(t=t.type,l=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!l;break e;default:t=!1}if(t)return null;if(s&&typeof s!="function")throw Error(r(231,n,typeof s));return s}var ua=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tf=!1;if(ua)try{var zo={};Object.defineProperty(zo,"passive",{get:function(){Tf=!0}}),window.addEventListener("test",zo,zo),window.removeEventListener("test",zo,zo)}catch{Tf=!1}var Xa=null,Rf=null,fc=null;function ig(){if(fc)return fc;var t,n=Rf,s=n.length,l,d="value"in Xa?Xa.value:Xa.textContent,m=d.length;for(t=0;t<s&&n[t]===d[t];t++);var w=s-t;for(l=1;l<=w&&n[s-l]===d[m-l];l++);return fc=d.slice(t,1<l?1-l:void 0)}function dc(t){var n=t.keyCode;
vendor: 6,364 bytes, line 8
8return"charCode"in t?(t=t.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function hc(){return!0}function ag(){return!1}function Qn(t){function n(s,l,d,m,w){this._reactName=s,this._targetInst=d,this.type=l,this.nativeEvent=m,this.target=w,this.currentTarget=null;for(var P in t)t.hasOwnProperty(P)&&(s=t[P],this[P]=s?s(m):m[P]);return this.isDefaultPrevented=(m.defaultPrevented!=null?m.defaultPrevented:m.returnValue===!1)?hc:ag,this.isPropagationStopped=ag,this}return g(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var s=this.nativeEvent;s&&(s.preventDefault?s.preventDefault():typeof s.returnValue!="unknown"&&(s.returnValue=!1),this.isDefaultPrevented=hc)},stopPropagation:function(){var s=this.nativeEvent;s&&(s.stopPropagation?s.stopPropagation():typeof s.cancelBubble!="unknown"&&(s.cancelBubble=!0),this.isPropagationStopped=hc)},persist:function(){},isPersistent:hc}),n}var Nr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},pc=Qn(Nr),_o=g({},Nr,{view:0,detail:0}),PE=Qn(_o),Cf,If,Ho,mc=g({},_o,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Nf,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==Ho&&(Ho&&t.type==="mousemove"?(Cf=t.screenX-Ho.screenX,If=t.screenY-Ho.screenY):If=Cf=0,Ho=t),Cf)},movementY:function(t){return"movementY"in t?t.movementY:If}}),rg=Qn(mc),OE=g({},mc,{dataTransfer:0}),BE=Qn(OE),UE=g({},_o,{relatedTarget:0}),Df=Qn(UE),kE=g({},Nr,{animationName:0,elapsedTime:0,pseudoElement:0}),zE=Qn(kE),_E=g({},Nr,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),HE=Qn(_E),FE=g({},Nr,{data:0}),sg=Qn(FE),VE={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},GE={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},jE={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function YE(t){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(t):(t=jE[t])?!!n[t]:!1}function Nf(){return YE}var XE=g({},_o,{key:function(t){if(t.key){var n=VE[t.key]||t.key;if(n!=="Unidentified")return n}return t.type==="keypress"?(t=dc(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?GE[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Nf,charCode:function(t){return t.type==="keypress"?dc(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?dc(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),ZE=Qn(XE),WE=g({},mc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),og=Qn(WE),QE=g({},_o,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Nf}),qE=Qn(QE),KE=g({},Nr,{propertyName:0,elapsedTime:0,pseudoElement:0}),JE=Qn(KE),$E=g({},mc,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),eM=Qn($E),tM=g({},Nr,{newState:0,oldState:0}),nM=Qn(tM),iM=[9,13,27,32],Lf=ua&&"CompositionEvent"in window,Fo=null;ua&&"documentMode"in document&&(Fo=document.documentMode);var aM=ua&&"TextEvent"in window&&!Fo,lg=ua&&(!Lf||Fo&&8<Fo&&11>=Fo),cg=" ",ug=!1;function fg(t,n){switch(t){case"keyup":return iM.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function dg(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Ms=!1;function rM(t,n){switch(t){case"compositionend":return dg(n);case"keypress":return n.which!==32?null:(ug=!0,cg);case"textInput":return t=n.data,t===cg&&ug?null:t;default:return null}}function sM(t,n){if(Ms)return t==="compositionend"||!Lf&&fg(t,n)?(t=ig(),fc=Rf=Xa=null,Ms=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return lg&&n.locale!=="ko"?null:n.data;default:return null}}var oM={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function hg(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n==="input"?!!oM[t.type]:n==="textarea"}function pg(t,n,s,l){Ss?Es?Es.push(l):Es=[l]:Ss=l,n=au(n,"onChange"),0<n.length&&(s=new pc("onChange","change",null,s,l),t.push({event:s,listeners:n}))}var Vo=null,Go=null;function lM(t){qv(t,0)}function gc(t){var n=oa(t);if(Kt(n))return t}function mg(t,n){if(t==="change")return n}var gg=!1;if(ua){var Pf;if(ua){var Of="oninput"in document;if(!Of){var vg=document.createElement("div");vg.setAttribute("oninput","return;"),Of=typeof vg.oninput=="function"}Pf=Of}else Pf=!1;gg=Pf&&(!document.documentMode||9<document.documentMode)}function xg(){Vo&&(Vo.detachEvent("onpropertychange",yg),Go=Vo=null)}function yg(t){if(t.propertyName==="value"&&gc(Go)){var n=[];pg(n,Go,t,Af(t)),ng(lM,n)}}function cM(t,n,s){t==="focusin"?(xg(),Vo=n,Go=s,Vo.attachEvent("onpropertychange",yg)):t==="focusout"&&xg()}function uM(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return gc(Go)}function fM(t,n){if(t==="click")return gc(n)}function dM(t,n){if(t==="input"||t==="change")return gc(n)}function hM(t,n){return t===n&&(t!==0||1/t===1/n)||t!==t&&n!==n}var ai=typeof Object.is=="function"?Object.is:hM;function jo(t,n){if(ai(t,n))return!0;
vendor: 24,285 bytes, line 8
8if(typeof t!="object"||t===null||typeof n!="object"||n===null)return!1;var s=Object.keys(t),l=Object.keys(n);if(s.length!==l.length)return!1;for(l=0;l<s.length;l++){var d=s[l];if(!gt.call(n,d)||!ai(t[d],n[d]))return!1}return!0}function bg(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function Sg(t,n){var s=bg(t);t=0;for(var l;s;){if(s.nodeType===3){if(l=t+s.textContent.length,t<=n&&l>=n)return{node:s,offset:n-t};t=l}e:{for(;s;){if(s.nextSibling){s=s.nextSibling;break e}s=s.parentNode}s=void 0}s=bg(s)}}function Eg(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?Eg(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Mg(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var n=qe(t.document);n instanceof t.HTMLIFrameElement;){try{var s=typeof n.contentWindow.location.href=="string"}catch{s=!1}if(s)t=n.contentWindow;else break;n=qe(t.document)}return n}function Bf(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}var pM=ua&&"documentMode"in document&&11>=document.documentMode,As=null,Uf=null,Yo=null,kf=!1;function Ag(t,n,s){var l=s.window===s?s.document:s.nodeType===9?s:s.ownerDocument;kf||As==null||As!==qe(l)||(l=As,"selectionStart"in l&&Bf(l)?l={start:l.selectionStart,end:l.selectionEnd}:(l=(l.ownerDocument&&l.ownerDocument.defaultView||window).getSelection(),l={anchorNode:l.anchorNode,anchorOffset:l.anchorOffset,focusNode:l.focusNode,focusOffset:l.focusOffset}),Yo&&jo(Yo,l)||(Yo=l,l=au(Uf,"onSelect"),0<l.length&&(n=new pc("onSelect","select",null,n,s),t.push({event:n,listeners:l}),n.target=As)))}function Lr(t,n){var s={};return s[t.toLowerCase()]=n.toLowerCase(),s["Webkit"+t]="webkit"+n,s["Moz"+t]="moz"+n,s}var ws={animationend:Lr("Animation","AnimationEnd"),animationiteration:Lr("Animation","AnimationIteration"),animationstart:Lr("Animation","AnimationStart"),transitionrun:Lr("Transition","TransitionRun"),transitionstart:Lr("Transition","TransitionStart"),transitioncancel:Lr("Transition","TransitionCancel"),transitionend:Lr("Transition","TransitionEnd")},zf={},wg={};ua&&(wg=document.createElement("div").style,"AnimationEvent"in window||(delete ws.animationend.animation,delete ws.animationiteration.animation,delete ws.animationstart.animation),"TransitionEvent"in window||delete ws.transitionend.transition);function Pr(t){if(zf[t])return zf[t];if(!ws[t])return t;var n=ws[t],s;for(s in n)if(n.hasOwnProperty(s)&&s in wg)return zf[t]=n[s];return t}var Tg=Pr("animationend"),Rg=Pr("animationiteration"),Cg=Pr("animationstart"),mM=Pr("transitionrun"),gM=Pr("transitionstart"),vM=Pr("transitioncancel"),Ig=Pr("transitionend"),Dg=new Map,_f="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");_f.push("scrollEnd");function Oi(t,n){Dg.set(t,n),re(n,[t])}var vc=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},vi=[],Ts=0,Hf=0;function xc(){for(var t=Ts,n=Hf=Ts=0;n<t;){var s=vi[n];vi[n++]=null;var l=vi[n];vi[n++]=null;var d=vi[n];vi[n++]=null;var m=vi[n];if(vi[n++]=null,l!==null&&d!==null){var w=l.pending;w===null?d.next=d:(d.next=w.next,w.next=d),l.pending=d}m!==0&&Ng(s,d,m)}}function yc(t,n,s,l){vi[Ts++]=t,vi[Ts++]=n,vi[Ts++]=s,vi[Ts++]=l,Hf|=l,t.lanes|=l,t=t.alternate,t!==null&&(t.lanes|=l)}function Ff(t,n,s,l){return yc(t,n,s,l),bc(t)}function Or(t,n){return yc(t,null,null,n),bc(t)}function Ng(t,n,s){t.lanes|=s;var l=t.alternate;l!==null&&(l.lanes|=s);for(var d=!1,m=t.return;m!==null;)m.childLanes|=s,l=m.alternate,l!==null&&(l.childLanes|=s),m.tag===22&&(t=m.stateNode,t===null||t._visibility&1||(d=!0)),t=m,m=m.return;return t.tag===3?(m=t.stateNode,d&&n!==null&&(d=31-He(s),t=m.hiddenUpdates,l=t[d],l===null?t[d]=[n]:l.push(n),n.lane=s|536870912),m):null}function bc(t){if(50<hl)throw hl=0,qd=null,Error(r(185));for(var n=t.return;n!==null;)t=n,n=t.return;return t.tag===3?t.stateNode:null}var Rs={};function xM(t,n,s,l){this.tag=t,this.key=s,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=l,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ri(t,n,s,l){return new xM(t,n,s,l)}function Vf(t){return t=t.prototype,!(!t||!t.isReactComponent)}function fa(t,n){var s=t.alternate;return s===null?(s=ri(t.tag,n,t.key,t.mode),s.elementType=t.elementType,s.type=t.type,s.stateNode=t.stateNode,s.alternate=t,t.alternate=s):(s.pendingProps=n,s.type=t.type,s.flags=0,s.subtreeFlags=0,s.deletions=null),s.flags=t.flags&65011712,s.childLanes=t.childLanes,s.lanes=t.lanes,s.child=t.child,s.memoizedProps=t.memoizedProps,s.memoizedState=t.memoizedState,s.updateQueue=t.updateQueue,n=t.dependencies,s.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},s.sibling=t.sibling,s.index=t.index,s.ref=t.ref,s.refCleanup=t.refCleanup,s}function Lg(t,n){t.flags&=65011714;var s=t.alternate;return s===null?(t.childLanes=0,t.lanes=n,t.child=null,t.subtreeFlags=0,t.memoizedProps=null,t.memoizedState=null,t.updateQueue=null,t.dependencies=null,t.stateNode=null):(t.childLanes=s.childLanes,t.lanes=s.lanes,t.child=s.child,t.subtreeFlags=0,t.deletions=null,t.memoizedProps=s.memoizedProps,t.memoizedState=s.memoizedState,t.updateQueue=s.updateQueue,t.type=s.type,n=s.dependencies,t.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),t}function Sc(t,n,s,l,d,m){var w=0;if(l=t,typeof t=="function")Vf(t)&&(w=1);else if(typeof t=="string")w=MA(t,s,ye.current)?26:t==="html"||t==="head"||t==="body"?27:5;else e:switch(t){case L:return t=ri(31,s,n,d),t.elementType=L,t.lanes=m,t;case T:return Br(s.children,d,m,n);case E:w=8,d|=24;break;case b:return t=ri(12,s,n,d|2),t.elementType=b,t.lanes=m,t;case U:return t=ri(13,s,n,d),t.elementType=U,t.lanes=m,t;case B:return t=ri(19,s,n,d),t.elementType=B,t.lanes=m,t;default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case C:w=10;break e;case R:w=9;break e;case I:w=11;break e;case D:w=14;break e;case A:w=16,l=null;break e}w=29,s=Error(r(130,t===null?"null":typeof t,"")),l=null}return n=ri(w,s,n,d),n.elementType=t,n.type=l,n.lanes=m,n}function Br(t,n,s,l){return t=ri(7,t,l,n),t.lanes=s,t}function Gf(t,n,s){return t=ri(6,t,null,n),t.lanes=s,t}function Pg(t){var n=ri(18,null,null,0);return n.stateNode=t,n}function jf(t,n,s){return n=ri(4,t.children!==null?t.children:[],t.key,n),n.lanes=s,n.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},n}var Og=new WeakMap;function xi(t,n){if(typeof t=="object"&&t!==null){var s=Og.get(t);return s!==void 0?s:(n={value:t,source:n,stack:V(n)},Og.set(t,n),n)}return{value:t,source:n,stack:V(n)}}var Cs=[],Is=0,Ec=null,Xo=0,yi=[],bi=0,Za=null,Zi=1,Wi="";function da(t,n){Cs[Is++]=Xo,Cs[Is++]=Ec,Ec=t,Xo=n}function Bg(t,n,s){yi[bi++]=Zi,yi[bi++]=Wi,yi[bi++]=Za,Za=t;var l=Zi;t=Wi;var d=32-He(l)-1;l&=~(1<<d),s+=1;var m=32-He(n)+d;if(30<m){var w=d-d%5;m=(l&(1<<w)-1).toString(32),l>>=w,d-=w,Zi=1<<32-He(n)+d|s<<d|l,Wi=m+t}else Zi=1<<m|s<<d|l,Wi=t}function Yf(t){t.return!==null&&(da(t,1),Bg(t,1,0))}function Xf(t){for(;t===Ec;)Ec=Cs[--Is],Cs[Is]=null,Xo=Cs[--Is],Cs[Is]=null;for(;t===Za;)Za=yi[--bi],yi[bi]=null,Wi=yi[--bi],yi[bi]=null,Zi=yi[--bi],yi[bi]=null}function Ug(t,n){yi[bi++]=Zi,yi[bi++]=Wi,yi[bi++]=Za,Zi=n.id,Wi=n.overflow,Za=t}var Dn=null,en=null,Bt=!1,Wa=null,Si=!1,Zf=Error(r(519));function Qa(t){var n=Error(r(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Zo(xi(n,t)),Zf}function kg(t){var n=t.stateNode,s=t.type,l=t.memoizedProps;switch(n[an]=t,n[un]=l,s){case"dialog":Lt("cancel",n),Lt("close",n);break;case"iframe":case"object":case"embed":Lt("load",n);break;case"video":case"audio":for(s=0;s<ml.length;s++)Lt(ml[s],n);break;case"source":Lt("error",n);break;case"img":case"image":case"link":Lt("error",n),Lt("load",n);break;case"details":Lt("toggle",n);break;case"input":Lt("invalid",n),Vn(n,l.value,l.defaultValue,l.checked,l.defaultChecked,l.type,l.name,!0);break;case"select":Lt("invalid",n);break;case"textarea":Lt("invalid",n),pn(n,l.value,l.defaultValue,l.children)}s=l.children,typeof s!="string"&&typeof s!="number"&&typeof s!="bigint"||n.textContent===""+s||l.suppressHydrationWarning===!0||ex(n.textContent,s)?(l.popover!=null&&(Lt("beforetoggle",n),Lt("toggle",n)),l.onScroll!=null&&Lt("scroll",n),l.onScrollEnd!=null&&Lt("scrollend",n),l.onClick!=null&&(n.onclick=ca),n=!0):n=!1,n||Qa(t,!0)}function zg(t){for(Dn=t.return;Dn;)switch(Dn.tag){case 5:case 31:case 13:Si=!1;return;case 27:case 3:Si=!0;return;default:Dn=Dn.return}}function Ds(t){if(t!==Dn)return!1;if(!Bt)return zg(t),Bt=!0,!1;var n=t.tag,s;if((s=n!==3&&n!==27)&&((s=n===5)&&(s=t.type,s=!(s!=="form"&&s!=="button")||fh(t.type,t.memoizedProps)),s=!s),s&&en&&Qa(t),zg(t),n===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));en=cx(t)}else if(n===31){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(317));en=cx(t)}else n===27?(n=en,cr(t.type)?(t=gh,gh=null,en=t):en=n):en=Dn?Mi(t.stateNode.nextSibling):null;return!0}function Ur(){en=Dn=null,Bt=!1}function Wf(){var t=Wa;return t!==null&&($n===null?$n=t:$n.push.apply($n,t),Wa=null),t}function Zo(t){Wa===null?Wa=[t]:Wa.push(t)}var Qf=H(null),kr=null,ha=null;function qa(t,n,s){Se(Qf,n._currentValue),n._currentValue=s}function pa(t){t._currentValue=Qf.current,Q(Qf)}function qf(t,n,s){for(;t!==null;){var l=t.alternate;if((t.childLanes&n)!==n?(t.childLanes|=n,l!==null&&(l.childLanes|=n)):l!==null&&(l.childLanes&n)!==n&&(l.childLanes|=n),t===s)break;t=t.return}}function Kf(t,n,s,l){var d=t.child;for(d!==null&&(d.return=t);d!==null;){var m=d.dependencies;if(m!==null){var w=d.child;m=m.firstContext;e:for(;m!==null;){var P=m;m=d;for(var j=0;j<n.length;j++)if(P.context===n[j]){m.lanes|=s,P=m.alternate,P!==null&&(P.lanes|=s),qf(m.return,s,t),l||(w=null);break e}m=P.next}}else if(d.tag===18){if(w=d.return,w===null)throw Error(r(341));w.lanes|=s,m=w.alternate,m!==null&&(m.lanes|=s),qf(w,s,t),w=null}else w=d.child;if(w!==null)w.return=d;else for(w=d;w!==null;){if(w===t){w=null;break}if(d=w.sibling,d!==null){d.return=w.return,w=d;break}w=w.return}d=w}}function Ns(t,n,s,l){t=null;for(var d=n,m=!1;d!==null;){if(!m){if((d.flags&524288)!==0)m=!0;else if((d.flags&262144)!==0)break}if(d.tag===10){var w=d.alternate;if(w===null)throw Error(r(387));if(w=w.memoizedProps,w!==null){var P=d.type;ai(d.pendingProps.value,w.value)||(t!==null?t.push(P):t=[P])}}else if(d===me.current){if(w=d.alternate,w===null)throw Error(r(387));w.memoizedState.memoizedState!==d.memoizedState.memoizedState&&(t!==null?t.push(bl):t=[bl])}d=d.return}t!==null&&Kf(n,t,s,l),n.flags|=262144}function Mc(t){for(t=t.firstContext;t!==null;){if(!ai(t.context._currentValue,t.memoizedValue))return!0;t=t.next}return!1}function zr(t){kr=t,ha=null,t=t.dependencies,t!==null&&(t.firstContext=null)}function Nn(t){return _g(kr,t)}function Ac(t,n){return kr===null&&zr(t),_g(t,n)}function _g(t,n){var s=n._currentValue;if(n={context:n,memoizedValue:s,next:null},ha===null){if(t===null)throw Error(r(308));ha=n,t.dependencies={lanes:0,firstContext:n},t.flags|=524288}else ha=ha.next=n;return s}var yM=typeof AbortController<"u"?AbortController:function(){var t=[],n=this.signal={aborted:!1,addEventListener:function(s,l){t.push(l)}};this.abort=function(){n.aborted=!0,t.forEach(function(s){return s()})}},bM=a.unstable_scheduleCallback,SM=a.unstable_NormalPriority,gn={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Jf(){return{controller:new yM,data:new Map,refCount:0}}function Wo(t){t.refCount--,t.refCount===0&&bM(SM,function(){t.controller.abort()})}var Qo=null,$f=0,Ls=0,Ps=null;function EM(t,n){if(Qo===null){var s=Qo=[];$f=0,Ls=nh(),Ps={status:"pending",value:void 0,then:function(l){s.push(l)}}}return $f++,n.then(Hg,Hg),n}function Hg(){if(--$f===0&&Qo!==null){Ps!==null&&(Ps.status="fulfilled");var t=Qo;Qo=null,Ls=0,Ps=null;for(var n=0;n<t.length;n++)(0,t[n])()}}function MM(t,n){var s=[],l={status:"pending",value:null,reason:null,then:function(d){s.push(d)}};return t.then(function(){l.status="fulfilled",l.value=n;for(var d=0;d<s.length;d++)(0,s[d])(n)},function(d){for(l.status="rejected",l.reason=d,d=0;d<s.length;d++)(0,s[d])(void 0)}),l}var Fg=_.S;_.S=function(t,n){Av=N(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&EM(t,n),Fg!==null&&Fg(t,n)};var _r=H(null);function ed(){var t=_r.current;return t!==null?t:Jt.pooledCache}function wc(t,n){n===null?Se(_r,_r.current):Se(_r,n.pool)}function Vg(){var t=ed();return t===null?null:{parent:gn._currentValue,pool:t}}var Os=Error(r(460)),td=Error(r(474)),Tc=Error(r(542)),Rc={then:function(){}};function Gg(t){return t=t.status,t==="fulfilled"||t==="rejected"}function jg(t,n,s){switch(s=t[s],s===void 0?t.push(n):s!==n&&(n.then(ca,ca),n=s),n.status){case"fulfilled":return n.value;case"rejected":throw t=n.reason,Xg(t),t;default:if(typeof n.status=="string")n.then(ca,ca);else{if(t=Jt,t!==null&&100<t.shellSuspendCounter)throw Error(r(482));t=n,t.status="pending",t.then(function(l){if(n.status==="pending"){var d=n;d.status="fulfilled",d.value=l}},function(l){if(n.status==="pending"){var d=n;d.status="rejected",d.reason=l}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw t=n.reason,Xg(t),t}throw Fr=n,Os}}function Hr(t){try{var n=t._init;return n(t._payload)}catch(s){throw s!==null&&typeof s=="object"&&typeof s.then=="function"?(Fr=s,Os):s}}var Fr=null;function Yg(){if(Fr===null)throw Error(r(459));var t=Fr;return Fr=null,t}function Xg(t){if(t===Os||t===Tc)throw Error(r(483))}var Bs=null,qo=0;function Cc(t){var n=qo;return qo+=1,Bs===null&&(Bs=[]),jg(Bs,t,n)}function Ko(t,n){n=n.props.ref,t.ref=n!==void 0?n:null}function Ic(t,n){throw n.$$typeof===v?Error(r(525)):(t=Object.prototype.toString.call(n),Error(r(31,t==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":t)))}function Zg(t){function n(te,K){if(t){var le=te.deletions;le===null?(te.deletions=[K],te.flags|=16):le.push(K)}}function s(te,K){if(!t)return null;for(;K!==null;)n(te,K),K=K.sibling;return null}function l(te){for(var K=new Map;te!==null;)te.key!==null?K.set(te.key,te):K.set(te.index,te),te=te.sibling;return K}function d(te,K){return te=fa(te,K),te.index=0,te.sibling=null,te}function m(te,K,le){return te.index=le,t?(le=te.alternate,le!==null?(le=le.index,le<K?(te.flags|=67108866,K):le):(te.flags|=67108866,K)):(te.flags|=1048576,K)}function w(te){return t&&te.alternate===null&&(te.flags|=67108866),te}function P(te,K,le,Re){return K===null||K.tag!==6?(K=Gf(le,te.mode,Re),K.return=te,K):(K=d(K,le),K.return=te,K)}function j(te,K,le,Re){var ht=le.type;return ht===T?Ee(te,K,le.props.children,Re,le.key):K!==null&&(K.elementType===ht||typeof ht=="object"&&ht!==null&&ht.$$typeof===A&&Hr(ht)===K.type)?(K=d(K,le.props),Ko(K,le),K.return=te,K):(K=Sc(le.type,le.key,le.props,null,te.mode,Re),Ko(K,le),K.return=te,K)}function ce(te,K,le,Re){return K===null||K.tag!==4||K.stateNode.containerInfo!==le.containerInfo||K.stateNode.implementation!==le.implementation?(K=jf(le,te.mode,Re),K.return=te,K):(K=d(K,le.children||[]),K.return=te,K)}function Ee(te,K,le,Re,ht){return K===null||K.tag!==7?(K=Br(le,te.mode,Re,ht),K.return=te,K):(K=d(K,le),K.return=te,K)}function De(te,K,le){if(typeof K=="string"&&K!==""||typeof K=="number"||typeof K=="bigint")return K=Gf(""+K,te.mode,le),K.return=te,K;if(typeof K=="object"&&K!==null){switch(K.$$typeof){case y:return le=Sc(K.type,K.key,K.props,null,te.mode,le),Ko(le,K),le.return=te,le;case M:return K=jf(K,te.mode,le),K.return=te,K;case A:return K=Hr(K),De(te,K,le)}if(Z(K)||G(K))return K=Br(K,te.mode,le,null),K.return=te,K;if(typeof K.then=="function")return De(te,Cc(K),le);if(K.$$typeof===C)return De(te,Ac(te,K),le);Ic(te,K)}return null}function ue(te,K,le,Re){var ht=K!==null?K.key:null;if(typeof le=="string"&&le!==""||typeof le=="number"||typeof le=="bigint")return ht!==null?null:P(te,K,""+le,Re);if(typeof le=="object"&&le!==null){switch(le.$$typeof){case y:return le.key===ht?j(te,K,le,Re):null;case M:return le.key===ht?ce(te,K,le,Re):null;case A:return le=Hr(le),ue(te,K,le,Re)}if(Z(le)||G(le))return ht!==null?null:Ee(te,K,le,Re,null);if(typeof le.then=="function")return ue(te,K,Cc(le),Re);if(le.$$typeof===C)return ue(te,K,Ac(te,le),Re);Ic(te,le)}return null}function ge(te,K,le,Re,ht){if(typeof Re=="string"&&Re!==""||typeof Re=="number"||typeof Re=="bigint")return te=te.get(le)||null,P(K,te,""+Re,ht);if(typeof Re=="object"&&Re!==null){switch(Re.$$typeof){case y:return te=te.get(Re.key===null?le:Re.key)||null,j(K,te,Re,ht);case M:return te=te.get(Re.key===null?le:Re.key)||null,ce(K,te,Re,ht);case A:return Re=Hr(Re),ge(te,K,le,Re,ht)}if(Z(Re)||G(Re))return te=te.get(le)||null,Ee(K,te,Re,ht,null);if(typeof Re.then=="function")return ge(te,K,le,Cc(Re),ht);if(Re.$$typeof===C)return ge(te,K,le,Ac(K,Re),ht);Ic(K,Re)}return null}function it(te,K,le,Re){for(var ht=null,Ht=null,ot=K,Tt=K=0,Ot=null;ot!==null&&Tt<le.length;Tt++){ot.index>Tt?(Ot=ot,ot=null):Ot=ot.sibling;var Ft=ue(te,ot,le[Tt],Re);if(Ft===null){ot===null&&(ot=Ot);break}t&&ot&&Ft.alternate===null&&n(te,ot),K=m(Ft,K,Tt),Ht===null?ht=Ft:Ht.sibling=Ft,Ht=Ft,ot=Ot}if(Tt===le.length)return s(te,ot),Bt&&da(te,Tt),ht;if(ot===null){for(;Tt<le.length;Tt++)ot=De(te,le[Tt],Re),ot!==null&&(K=m(ot,K,Tt),Ht===null?ht=ot:Ht.sibling=ot,Ht=ot);return Bt&&da(te,Tt),ht}for(ot=l(ot);Tt<le.length;Tt++)Ot=ge(ot,te,Tt,le[Tt],Re),Ot!==null&&(t&&Ot.alternate!==null&&ot.delete(Ot.key===null?Tt:Ot.key),K=m(Ot,K,Tt),Ht===null?ht=Ot:Ht.sibling=Ot,Ht=Ot);return t&&ot.forEach(function(pr){return n(te,pr)}),Bt&&da(te,Tt),ht}function mt(te,K,le,Re){if(le==null)throw Error(r(151));for(var ht=null,Ht=null,ot=K,Tt=K=0,Ot=null,Ft=le.next();ot!==null&&!Ft.done;Tt++,Ft=le.next()){ot.index>Tt?(Ot=ot,ot=null):Ot=ot.sibling;var pr=ue(te,ot,Ft.value,Re);if(pr===null){ot===null&&(ot=Ot);break}t&&ot&&pr.alternate===null&&n(te,ot),K=m(pr,K,Tt),Ht===null?ht=pr:Ht.sibling=pr,Ht=pr,ot=Ot}if(Ft.done)return s(te,ot),Bt&&da(te,Tt),ht;if(ot===null){for(;!Ft.done;Tt++,Ft=le.next())Ft=De(te,Ft.value,Re),Ft!==null&&(K=m(Ft,K,Tt),Ht===null?ht=Ft:Ht.sibling=Ft,Ht=Ft);return Bt&&da(te,Tt),ht}for(ot=l(ot);!Ft.done;Tt++,Ft=le.next())Ft=ge(ot,te,Tt,Ft.value,Re),Ft!==null&&(t&&Ft.alternate!==null&&ot.delete(Ft.key===null?Tt:Ft.key),K=m(Ft,K,Tt),Ht===null?ht=Ft:Ht.sibling=Ft,Ht=Ft);return t&&ot.forEach(function(OA){return n(te,OA)}),Bt&&da(te,Tt),ht}function Qt(te,K,le,Re){if(typeof le=="object"&&le!==null&&le.type===T&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case y:e:{for(var ht=le.key;K!==null;){if(K.key===ht){if(ht=le.type,ht===T){if(K.tag===7){s(te,K.sibling),Re=d(K,le.props.children),Re.return=te,te=Re;break e}}else if(K.elementType===ht||typeof ht=="object"&&ht!==null&&ht.$$typeof===A&&Hr(ht)===K.type){s(te,K.sibling),Re=d(K,le.props),Ko(Re,le),Re.return=te,te=Re;break e}s(te,K);break}else n(te,K);K=K.sibling}le.type===T?(Re=Br(le.props.children,te.mode,Re,le.key),Re.return=te,te=Re):(Re=Sc(le.type,le.key,le.props,null,te.mode,Re),Ko(Re,le),Re.return=te,te=Re)}return w(te);case M:e:{for(ht=le.key;K!==null;){if(K.key===ht)if(K.tag===4&&K.stateNode.containerInfo===le.containerInfo&&K.stateNode.implementation===le.implementation){s(te,K.sibling),Re=d(K,le.children||[]),Re.return=te,te=Re;break e}else{s(te,K);break}else n(te,K);K=K.sibling}Re=jf(le,te.mode,Re),Re.return=te,te=Re}return w(te);case A:return le=Hr(le),Qt(te,K,le,Re)}if(Z(le))return it(te,K,le,Re);if(G(le)){if(ht=G(le),typeof ht!="function")throw Error(r(150));return le=ht.call(le),mt(te,K,le,Re)}if(typeof le.then=="function")return Qt(te,K,Cc(le),Re);if(le.$$typeof===C)return Qt(te,K,Ac(te,le),Re);Ic(te,le)}return typeof le=="string"&&le!==""||typeof le=="number"||typeof le=="bigint"?(le=""+le,K!==null&&K.tag===6?(s(te,K.sibling),Re=d(K,le),Re.return=te,te=Re):(s(te,K),Re=Gf(le,te.mode,Re),Re.return=te,te=Re),w(te)):s(te,K)}return function(te,K,le,Re){try{qo=0;var ht=Qt(te,K,le,Re);return Bs=null,ht}catch(ot){if(ot===Os||ot===Tc)throw ot;var Ht=ri(29,ot,null,te.mode);return Ht.lanes=Re,Ht.return=te,Ht}}}var Vr=Zg(!0),Wg=Zg(!1),Ka=!1;function nd(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function id(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Ja(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function $a(t,n,s){var l=t.updateQueue;if(l===null)return null;if(l=l.shared,(Gt&2)!==0){var d=l.pending;return d===null?n.next=n:(n.next=d.next,d.next=n),l.pending=n,n=bc(t),Ng(t,null,s),n}return yc(t,l,n,s),bc(t)}function Jo(t,n,s){if(n=n.updateQueue,n!==null&&(n=n.shared,(s&4194048)!==0)){var l=n.lanes;l&=t.pendingLanes,s|=l,n.lanes=s,Di(t,s)}}function ad(t,n){var s=t.updateQueue,l=t.alternate;if(l!==null&&(l=l.updateQueue,s===l)){var d=null,m=null;if(s=s.firstBaseUpdate,s!==null){do{var w={lane:s.lane,tag:s.tag,payload:s.payload,callback:null,next:null};m===null?d=m=w:m=m.next=w,s=s.next}while(s!==null);m===null?d=m=n:m=m.next=n}else d=m=n;s={baseState:l.baseState,firstBaseUpdate:d,lastBaseUpdate:m,shared:l.shared,callbacks:l.callbacks},t.updateQueue=s;return}t=s.lastBaseUpdate,t===null?s.firstBaseUpdate=n:t.next=n,s.lastBaseUpdate=n}var rd=!1;function $o(){if(rd){var t=Ps;if(t!==null)throw t}}function el(t,n,s,l){rd=!1;var d=t.updateQueue;Ka=!1;var m=d.firstBaseUpdate,w=d.lastBaseUpdate,P=d.shared.pending;if(P!==null){d.shared.pending=null;var j=P,ce=j.next;j.next=null,w===null?m=ce:w.next=ce,w=j;var Ee=t.alternate;Ee!==null&&(Ee=Ee.updateQueue,P=Ee.lastBaseUpdate,P!==w&&(P===null?Ee.firstBaseUpdate=ce:P.next=ce,Ee.lastBaseUpdate=j))}if(m!==null){var De=d.baseState;w=0,Ee=ce=j=null,P=m;do{var ue=P.lane&-536870913,ge=ue!==P.lane;if(ge?(Pt&ue)===ue:(l&ue)===ue){ue!==0&&ue===Ls&&(rd=!0),Ee!==null&&(Ee=Ee.next={lane:0,tag:P.tag,payload:P.payload,callback:null,next:null});e:{var it=t,mt=P;ue=n;var Qt=s;switch(mt.tag){case 1:if(it=mt.payload,typeof it=="function"){De=it.call(Qt,De,ue);break e}De=it;break e;case 3:it.flags=it.flags&-65537|128;case 0:if(it=mt.payload,ue=typeof it=="function"?it.call(Qt,De,ue):it,ue==null)break e;De=g({},De,ue);break e;case 2:Ka=!0}}ue=P.callback,ue!==null&&(t.flags|=64,ge&&(t.flags|=8192),ge=d.callbacks,ge===null?d.callbacks=[ue]:ge.push(ue))}else ge={lane:ue,tag:P.tag,payload:P.payload,callback:P.callback,next:null},Ee===null?(ce=Ee=ge,j=De):Ee=Ee.next=ge,w|=ue;if(P=P.next,P===null){if(P=d.shared.pending,P===null)break;ge=P,P=ge.next,ge.next=null,d.lastBaseUpdate=ge,d.shared.pending=null}}while(!0);Ee===null&&(j=De),d.baseState=j,d.firstBaseUpdate=ce,d.lastBaseUpdate=Ee,m===null&&(d.shared.lanes=0),ar|=w,t.lanes=w,t.memoizedState=De}}function Qg(t,n){if(typeof t!="function")throw Error(r(191,t));t.call(n)}function qg(t,n){var s=t.callbacks;
vendor: 7,127 bytes, line 8
8if(s!==null)for(t.callbacks=null,t=0;t<s.length;t++)Qg(s[t],n)}var Us=H(null),Dc=H(0);function Kg(t,n){t=Ma,Se(Dc,t),Se(Us,n),Ma=t|n.baseLanes}function sd(){Se(Dc,Ma),Se(Us,Us.current)}function od(){Ma=Dc.current,Q(Us),Q(Dc)}var si=H(null),Ei=null;function er(t){var n=t.alternate;Se(fn,fn.current&1),Se(si,t),Ei===null&&(n===null||Us.current!==null||n.memoizedState!==null)&&(Ei=t)}function ld(t){Se(fn,fn.current),Se(si,t),Ei===null&&(Ei=t)}function Jg(t){t.tag===22?(Se(fn,fn.current),Se(si,t),Ei===null&&(Ei=t)):tr()}function tr(){Se(fn,fn.current),Se(si,si.current)}function oi(t){Q(si),Ei===t&&(Ei=null),Q(fn)}var fn=H(0);function Nc(t){for(var n=t;n!==null;){if(n.tag===13){var s=n.memoizedState;if(s!==null&&(s=s.dehydrated,s===null||ph(s)||mh(s)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var ma=0,wt=null,Zt=null,vn=null,Lc=!1,ks=!1,Gr=!1,Pc=0,tl=0,zs=null,AM=0;function ln(){throw Error(r(321))}function cd(t,n){if(n===null)return!1;for(var s=0;s<n.length&&s<t.length;s++)if(!ai(t[s],n[s]))return!1;return!0}function ud(t,n,s,l,d,m){return ma=m,wt=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,_.H=t===null||t.memoizedState===null?B0:wd,Gr=!1,m=s(l,d),Gr=!1,ks&&(m=e0(n,s,l,d)),$g(t),m}function $g(t){_.H=al;var n=Zt!==null&&Zt.next!==null;if(ma=0,vn=Zt=wt=null,Lc=!1,tl=0,zs=null,n)throw Error(r(300));t===null||xn||(t=t.dependencies,t!==null&&Mc(t)&&(xn=!0))}function e0(t,n,s,l){wt=t;var d=0;do{if(ks&&(zs=null),tl=0,ks=!1,25<=d)throw Error(r(301));if(d+=1,vn=Zt=null,t.updateQueue!=null){var m=t.updateQueue;m.lastEffect=null,m.events=null,m.stores=null,m.memoCache!=null&&(m.memoCache.index=0)}_.H=U0,m=n(s,l)}while(ks);return m}function wM(){var t=_.H,n=t.useState()[0];return n=typeof n.then=="function"?nl(n):n,t=t.useState()[0],(Zt!==null?Zt.memoizedState:null)!==t&&(wt.flags|=1024),n}function fd(){var t=Pc!==0;return Pc=0,t}function dd(t,n,s){n.updateQueue=t.updateQueue,n.flags&=-2053,t.lanes&=~s}function hd(t){if(Lc){for(t=t.memoizedState;t!==null;){var n=t.queue;n!==null&&(n.pending=null),t=t.next}Lc=!1}ma=0,vn=Zt=wt=null,ks=!1,tl=Pc=0,zs=null}function Yn(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return vn===null?wt.memoizedState=vn=t:vn=vn.next=t,vn}function dn(){if(Zt===null){var t=wt.alternate;t=t!==null?t.memoizedState:null}else t=Zt.next;var n=vn===null?wt.memoizedState:vn.next;if(n!==null)vn=n,Zt=t;else{if(t===null)throw wt.alternate===null?Error(r(467)):Error(r(310));Zt=t,t={memoizedState:Zt.memoizedState,baseState:Zt.baseState,baseQueue:Zt.baseQueue,queue:Zt.queue,next:null},vn===null?wt.memoizedState=vn=t:vn=vn.next=t}return vn}function Oc(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function nl(t){var n=tl;return tl+=1,zs===null&&(zs=[]),t=jg(zs,t,n),n=wt,(vn===null?n.memoizedState:vn.next)===null&&(n=n.alternate,_.H=n===null||n.memoizedState===null?B0:wd),t}function Bc(t){if(t!==null&&typeof t=="object"){if(typeof t.then=="function")return nl(t);if(t.$$typeof===C)return Nn(t)}throw Error(r(438,String(t)))}function pd(t){var n=null,s=wt.updateQueue;if(s!==null&&(n=s.memoCache),n==null){var l=wt.alternate;l!==null&&(l=l.updateQueue,l!==null&&(l=l.memoCache,l!=null&&(n={data:l.data.map(function(d){return d.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),s===null&&(s=Oc(),wt.updateQueue=s),s.memoCache=n,s=n.data[n.index],s===void 0)for(s=n.data[n.index]=Array(t),l=0;l<t;l++)s[l]=X;return n.index++,s}function ga(t,n){return typeof n=="function"?n(t):n}function Uc(t){var n=dn();return md(n,Zt,t)}function md(t,n,s){var l=t.queue;if(l===null)throw Error(r(311));l.lastRenderedReducer=s;var d=t.baseQueue,m=l.pending;if(m!==null){if(d!==null){var w=d.next;d.next=m.next,m.next=w}n.baseQueue=d=m,l.pending=null}if(m=t.baseState,d===null)t.memoizedState=m;else{n=d.next;var P=w=null,j=null,ce=n,Ee=!1;do{var De=ce.lane&-536870913;if(De!==ce.lane?(Pt&De)===De:(ma&De)===De){var ue=ce.revertLane;if(ue===0)j!==null&&(j=j.next={lane:0,revertLane:0,gesture:null,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null}),De===Ls&&(Ee=!0);else if((ma&ue)===ue){ce=ce.next,ue===Ls&&(Ee=!0);continue}else De={lane:0,revertLane:ce.revertLane,gesture:null,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null},j===null?(P=j=De,w=m):j=j.next=De,wt.lanes|=ue,ar|=ue;De=ce.action,Gr&&s(m,De),m=ce.hasEagerState?ce.eagerState:s(m,De)}else ue={lane:De,revertLane:ce.revertLane,gesture:ce.gesture,action:ce.action,hasEagerState:ce.hasEagerState,eagerState:ce.eagerState,next:null},j===null?(P=j=ue,w=m):j=j.next=ue,wt.lanes|=De,ar|=De;ce=ce.next}while(ce!==null&&ce!==n);if(j===null?w=m:j.next=P,!ai(m,t.memoizedState)&&(xn=!0,Ee&&(s=Ps,s!==null)))throw s;t.memoizedState=m,t.baseState=w,t.baseQueue=j,l.lastRenderedState=m}return d===null&&(l.lanes=0),[t.memoizedState,l.dispatch]}function gd(t){var n=dn(),s=n.queue;if(s===null)throw Error(r(311));s.lastRenderedReducer=t;var l=s.dispatch,d=s.pending,m=n.memoizedState;if(d!==null){s.pending=null;var w=d=d.next;do m=t(m,w.action),w=w.next;while(w!==d);ai(m,n.memoizedState)||(xn=!0),n.memoizedState=m,n.baseQueue===null&&(n.baseState=m),s.lastRenderedState=m}return[m,l]}function t0(t,n,s){var l=wt,d=dn(),m=Bt;if(m){if(s===void 0)throw Error(r(407));s=s()}else s=n();var w=!ai((Zt||d).memoizedState,s);if(w&&(d.memoizedState=s,xn=!0),d=d.queue,yd(a0.bind(null,l,d,t),[t]),d.getSnapshot!==n||w||vn!==null&&vn.memoizedState.tag&1){if(l.flags|=2048,_s(9,{destroy:void 0},i0.bind(null,l,d,s,n),null),Jt===null)throw Error(r(349));m||(ma&127)!==0||n0(l,n,s)}return s}function n0(t,n,s){t.flags|=16384,t={getSnapshot:n,value:s},n=wt.updateQueue,n===null?(n=Oc(),wt.updateQueue=n,n.stores=[t]):(s=n.stores,s===null?n.stores=[t]:s.push(t))}function i0(t,n,s,l){n.value=s,n.getSnapshot=l,r0(n)&&s0(t)}function a0(t,n,s){return s(function(){r0(n)&&s0(t)})}function r0(t){var n=t.getSnapshot;t=t.value;try{var s=n();return!ai(t,s)}catch{return!0}}function s0(t){var n=Or(t,2);n!==null&&ei(n,t,2)}function vd(t){var n=Yn();if(typeof t=="function"){var s=t;if(t=s(),Gr){Ye(!0);try{s()}finally{Ye(!1)}}}return n.memoizedState=n.baseState=t,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ga,lastRenderedState:t},n}function o0(t,n,s,l){return t.baseState=s,md(t,Zt,typeof l=="function"?l:ga)}function TM(t,n,s,l,d){if(_c(t))throw Error(r(485));if(t=n.action,t!==null){var m={payload:d,action:t,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(w){m.listeners.push(w)}};_.T!==null?s(!0):m.isTransition=!1,l(m),s=n.pending,s===null?(m.next=n.pending=m,l0(n,m)):(m.next=s.next,n.pending=s.next=m)}}function l0(t,n){var s=n.action,l=n.payload,d=t.state;
vendor: 10,882 bytes, line 8
8if(n.isTransition){var m=_.T,w={};_.T=w;try{var P=s(d,l),j=_.S;j!==null&&j(w,P),c0(t,n,P)}catch(ce){xd(t,n,ce)}finally{m!==null&&w.types!==null&&(m.types=w.types),_.T=m}}else try{m=s(d,l),c0(t,n,m)}catch(ce){xd(t,n,ce)}}function c0(t,n,s){s!==null&&typeof s=="object"&&typeof s.then=="function"?s.then(function(l){u0(t,n,l)},function(l){return xd(t,n,l)}):u0(t,n,s)}function u0(t,n,s){n.status="fulfilled",n.value=s,f0(n),t.state=s,n=t.pending,n!==null&&(s=n.next,s===n?t.pending=null:(s=s.next,n.next=s,l0(t,s)))}function xd(t,n,s){var l=t.pending;if(t.pending=null,l!==null){l=l.next;do n.status="rejected",n.reason=s,f0(n),n=n.next;while(n!==l)}t.action=null}function f0(t){t=t.listeners;for(var n=0;n<t.length;n++)(0,t[n])()}function d0(t,n){return n}function h0(t,n){if(Bt){var s=Jt.formState;if(s!==null){e:{var l=wt;if(Bt){if(en){t:{for(var d=en,m=Si;d.nodeType!==8;){if(!m){d=null;break t}if(d=Mi(d.nextSibling),d===null){d=null;break t}}m=d.data,d=m==="F!"||m==="F"?d:null}if(d){en=Mi(d.nextSibling),l=d.data==="F!";break e}}Qa(l)}l=!1}l&&(n=s[0])}}return s=Yn(),s.memoizedState=s.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:d0,lastRenderedState:n},s.queue=l,s=L0.bind(null,wt,l),l.dispatch=s,l=vd(!1),m=Ad.bind(null,wt,!1,l.queue),l=Yn(),d={state:n,dispatch:null,action:t,pending:null},l.queue=d,s=TM.bind(null,wt,d,m,s),d.dispatch=s,l.memoizedState=t,[n,s,!1]}function p0(t){var n=dn();return m0(n,Zt,t)}function m0(t,n,s){if(n=md(t,n,d0)[0],t=Uc(ga)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var l=nl(n)}catch(w){throw w===Os?Tc:w}else l=n;n=dn();var d=n.queue,m=d.dispatch;return s!==n.memoizedState&&(wt.flags|=2048,_s(9,{destroy:void 0},RM.bind(null,d,s),null)),[l,m,t]}function RM(t,n){t.action=n}function g0(t){var n=dn(),s=Zt;if(s!==null)return m0(n,s,t);dn(),n=n.memoizedState,s=dn();var l=s.queue.dispatch;return s.memoizedState=t,[n,l,!1]}function _s(t,n,s,l){return t={tag:t,create:s,deps:l,inst:n,next:null},n=wt.updateQueue,n===null&&(n=Oc(),wt.updateQueue=n),s=n.lastEffect,s===null?n.lastEffect=t.next=t:(l=s.next,s.next=t,t.next=l,n.lastEffect=t),t}function v0(){return dn().memoizedState}function kc(t,n,s,l){var d=Yn();wt.flags|=t,d.memoizedState=_s(1|n,{destroy:void 0},s,l===void 0?null:l)}function zc(t,n,s,l){var d=dn();l=l===void 0?null:l;var m=d.memoizedState.inst;Zt!==null&&l!==null&&cd(l,Zt.memoizedState.deps)?d.memoizedState=_s(n,m,s,l):(wt.flags|=t,d.memoizedState=_s(1|n,m,s,l))}function x0(t,n){kc(8390656,8,t,n)}function yd(t,n){zc(2048,8,t,n)}function CM(t){wt.flags|=4;var n=wt.updateQueue;if(n===null)n=Oc(),wt.updateQueue=n,n.events=[t];else{var s=n.events;s===null?n.events=[t]:s.push(t)}}function y0(t){var n=dn().memoizedState;return CM({ref:n,nextImpl:t}),function(){if((Gt&2)!==0)throw Error(r(440));return n.impl.apply(void 0,arguments)}}function b0(t,n){return zc(4,2,t,n)}function S0(t,n){return zc(4,4,t,n)}function E0(t,n){if(typeof n=="function"){t=t();var s=n(t);return function(){typeof s=="function"?s():n(null)}}if(n!=null)return t=t(),n.current=t,function(){n.current=null}}function M0(t,n,s){s=s!=null?s.concat([t]):null,zc(4,4,E0.bind(null,n,t),s)}function bd(){}function A0(t,n){var s=dn();n=n===void 0?null:n;var l=s.memoizedState;return n!==null&&cd(n,l[1])?l[0]:(s.memoizedState=[t,n],t)}function w0(t,n){var s=dn();n=n===void 0?null:n;var l=s.memoizedState;if(n!==null&&cd(n,l[1]))return l[0];if(l=t(),Gr){Ye(!0);try{t()}finally{Ye(!1)}}return s.memoizedState=[l,n],l}function Sd(t,n,s){return s===void 0||(ma&1073741824)!==0&&(Pt&261930)===0?t.memoizedState=n:(t.memoizedState=s,t=Tv(),wt.lanes|=t,ar|=t,s)}function T0(t,n,s,l){return ai(s,n)?s:Us.current!==null?(t=Sd(t,s,l),ai(t,n)||(xn=!0),t):(ma&42)===0||(ma&1073741824)!==0&&(Pt&261930)===0?(xn=!0,t.memoizedState=s):(t=Tv(),wt.lanes|=t,ar|=t,n)}function R0(t,n,s,l,d){var m=F.p;F.p=m!==0&&8>m?m:8;var w=_.T,P={};_.T=P,Ad(t,!1,n,s);try{var j=d(),ce=_.S;if(ce!==null&&ce(P,j),j!==null&&typeof j=="object"&&typeof j.then=="function"){var Ee=MM(j,l);il(t,n,Ee,ui(t))}else il(t,n,l,ui(t))}catch(De){il(t,n,{then:function(){},status:"rejected",reason:De},ui())}finally{F.p=m,w!==null&&P.types!==null&&(w.types=P.types),_.T=w}}function IM(){}function Ed(t,n,s,l){if(t.tag!==5)throw Error(r(476));var d=C0(t).queue;R0(t,d,n,se,s===null?IM:function(){return I0(t),s(l)})}function C0(t){var n=t.memoizedState;if(n!==null)return n;n={memoizedState:se,baseState:se,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ga,lastRenderedState:se},next:null};var s={};return n.next={memoizedState:s,baseState:s,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ga,lastRenderedState:s},next:null},t.memoizedState=n,t=t.alternate,t!==null&&(t.memoizedState=n),n}function I0(t){var n=C0(t);n.next===null&&(n=t.alternate.memoizedState),il(t,n.next.queue,{},ui())}function Md(){return Nn(bl)}function D0(){return dn().memoizedState}function N0(){return dn().memoizedState}function DM(t){for(var n=t.return;n!==null;){switch(n.tag){case 24:case 3:var s=ui();t=Ja(s);var l=$a(n,t,s);l!==null&&(ei(l,n,s),Jo(l,n,s)),n={cache:Jf()},t.payload=n;return}n=n.return}}function NM(t,n,s){var l=ui();s={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null},_c(t)?P0(n,s):(s=Ff(t,n,s,l),s!==null&&(ei(s,t,l),O0(s,n,l)))}function L0(t,n,s){var l=ui();il(t,n,s,l)}function il(t,n,s,l){var d={lane:l,revertLane:0,gesture:null,action:s,hasEagerState:!1,eagerState:null,next:null};if(_c(t))P0(n,d);else{var m=t.alternate;if(t.lanes===0&&(m===null||m.lanes===0)&&(m=n.lastRenderedReducer,m!==null))try{var w=n.lastRenderedState,P=m(w,s);if(d.hasEagerState=!0,d.eagerState=P,ai(P,w))return yc(t,n,d,0),Jt===null&&xc(),!1}catch{}if(s=Ff(t,n,d,l),s!==null)return ei(s,t,l),O0(s,n,l),!0}return!1}function Ad(t,n,s,l){if(l={lane:2,revertLane:nh(),gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},_c(t)){if(n)throw Error(r(479))}else n=Ff(t,s,l,2),n!==null&&ei(n,t,2)}function _c(t){var n=t.alternate;return t===wt||n!==null&&n===wt}function P0(t,n){ks=Lc=!0;var s=t.pending;s===null?n.next=n:(n.next=s.next,s.next=n),t.pending=n}function O0(t,n,s){if((s&4194048)!==0){var l=n.lanes;l&=t.pendingLanes,s|=l,n.lanes=s,Di(t,s)}}var al={readContext:Nn,use:Bc,useCallback:ln,useContext:ln,useEffect:ln,useImperativeHandle:ln,useLayoutEffect:ln,useInsertionEffect:ln,useMemo:ln,useReducer:ln,useRef:ln,useState:ln,useDebugValue:ln,useDeferredValue:ln,useTransition:ln,useSyncExternalStore:ln,useId:ln,useHostTransitionStatus:ln,useFormState:ln,useActionState:ln,useOptimistic:ln,useMemoCache:ln,useCacheRefresh:ln};al.useEffectEvent=ln;var B0={readContext:Nn,use:Bc,useCallback:function(t,n){return Yn().memoizedState=[t,n===void 0?null:n],t},useContext:Nn,useEffect:x0,useImperativeHandle:function(t,n,s){s=s!=null?s.concat([t]):null,kc(4194308,4,E0.bind(null,n,t),s)},useLayoutEffect:function(t,n){return kc(4194308,4,t,n)},useInsertionEffect:function(t,n){kc(4,2,t,n)},useMemo:function(t,n){var s=Yn();n=n===void 0?null:n;var l=t();if(Gr){Ye(!0);try{t()}finally{Ye(!1)}}return s.memoizedState=[l,n],l},useReducer:function(t,n,s){var l=Yn();if(s!==void 0){var d=s(n);if(Gr){Ye(!0);try{s(n)}finally{Ye(!1)}}}else d=n;return l.memoizedState=l.baseState=d,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:d},l.queue=t,t=t.dispatch=NM.bind(null,wt,t),[l.memoizedState,t]},useRef:function(t){var n=Yn();return t={current:t},n.memoizedState=t},useState:function(t){t=vd(t);var n=t.queue,s=L0.bind(null,wt,n);return n.dispatch=s,[t.memoizedState,s]},useDebugValue:bd,useDeferredValue:function(t,n){var s=Yn();return Sd(s,t,n)},useTransition:function(){var t=vd(!1);return t=R0.bind(null,wt,t.queue,!0,!1),Yn().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,n,s){var l=wt,d=Yn();if(Bt){if(s===void 0)throw Error(r(407));s=s()}else{if(s=n(),Jt===null)throw Error(r(349));(Pt&127)!==0||n0(l,n,s)}d.memoizedState=s;var m={value:s,getSnapshot:n};return d.queue=m,x0(a0.bind(null,l,m,t),[t]),l.flags|=2048,_s(9,{destroy:void 0},i0.bind(null,l,m,s,n),null),s},useId:function(){var t=Yn(),n=Jt.identifierPrefix;if(Bt){var s=Wi,l=Zi;s=(l&~(1<<32-He(l)-1)).toString(32)+s,n="_"+n+"R_"+s,s=Pc++,0<s&&(n+="H"+s.toString(32)),n+="_"}else s=AM++,n="_"+n+"r_"+s.toString(32)+"_";return t.memoizedState=n},useHostTransitionStatus:Md,useFormState:h0,useActionState:h0,useOptimistic:function(t){var n=Yn();n.memoizedState=n.baseState=t;var s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=s,n=Ad.bind(null,wt,!0,s),s.dispatch=n,[t,n]},useMemoCache:pd,useCacheRefresh:function(){return Yn().memoizedState=DM.bind(null,wt)},useEffectEvent:function(t){var n=Yn(),s={impl:t};return n.memoizedState=s,function(){if((Gt&2)!==0)throw Error(r(440));return s.impl.apply(void 0,arguments)}}},wd={readContext:Nn,use:Bc,useCallback:A0,useContext:Nn,useEffect:yd,useImperativeHandle:M0,useInsertionEffect:b0,useLayoutEffect:S0,useMemo:w0,useReducer:Uc,useRef:v0,useState:function(){return Uc(ga)},useDebugValue:bd,useDeferredValue:function(t,n){var s=dn();return T0(s,Zt.memoizedState,t,n)},useTransition:function(){var t=Uc(ga)[0],n=dn().memoizedState;return[typeof t=="boolean"?t:nl(t),n]},useSyncExternalStore:t0,useId:D0,useHostTransitionStatus:Md,useFormState:p0,useActionState:p0,useOptimistic:function(t,n){var s=dn();return o0(s,Zt,t,n)},useMemoCache:pd,useCacheRefresh:N0};wd.useEffectEvent=y0;var U0={readContext:Nn,use:Bc,useCallback:A0,useContext:Nn,useEffect:yd,useImperativeHandle:M0,useInsertionEffect:b0,useLayoutEffect:S0,useMemo:w0,useReducer:gd,useRef:v0,useState:function(){return gd(ga)},useDebugValue:bd,useDeferredValue:function(t,n){var s=dn();return Zt===null?Sd(s,t,n):T0(s,Zt.memoizedState,t,n)},useTransition:function(){var t=gd(ga)[0],n=dn().memoizedState;return[typeof t=="boolean"?t:nl(t),n]},useSyncExternalStore:t0,useId:D0,useHostTransitionStatus:Md,useFormState:g0,useActionState:g0,useOptimistic:function(t,n){var s=dn();return Zt!==null?o0(s,Zt,t,n):(s.baseState=t,[t,s.queue.dispatch])},useMemoCache:pd,useCacheRefresh:N0};U0.useEffectEvent=y0;function Td(t,n,s,l){n=t.memoizedState,s=s(l,n),s=s==null?n:g({},n,s),t.memoizedState=s,t.lanes===0&&(t.updateQueue.baseState=s)}var Rd={enqueueSetState:function(t,n,s){t=t._reactInternals;var l=ui(),d=Ja(l);d.payload=n,s!=null&&(d.callback=s),n=$a(t,d,l),n!==null&&(ei(n,t,l),Jo(n,t,l))},enqueueReplaceState:function(t,n,s){t=t._reactInternals;var l=ui(),d=Ja(l);d.tag=1,d.payload=n,s!=null&&(d.callback=s),n=$a(t,d,l),n!==null&&(ei(n,t,l),Jo(n,t,l))},enqueueForceUpdate:function(t,n){t=t._reactInternals;var s=ui(),l=Ja(s);l.tag=2,n!=null&&(l.callback=n),n=$a(t,l,s),n!==null&&(ei(n,t,s),Jo(n,t,s))}};function k0(t,n,s,l,d,m,w){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(l,m,
vendor: 6,386 bytes, line 8
8w):n.prototype&&n.prototype.isPureReactComponent?!jo(s,l)||!jo(d,m):!0}function z0(t,n,s,l){t=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(s,l),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(s,l),n.state!==t&&Rd.enqueueReplaceState(n,n.state,null)}function jr(t,n){var s=n;if("ref"in n){s={};for(var l in n)l!=="ref"&&(s[l]=n[l])}if(t=t.defaultProps){s===n&&(s=g({},s));for(var d in t)s[d]===void 0&&(s[d]=t[d])}return s}function _0(t){vc(t)}function H0(t){console.error(t)}function F0(t){vc(t)}function Hc(t,n){try{var s=t.onUncaughtError;s(n.value,{componentStack:n.stack})}catch(l){setTimeout(function(){throw l})}}function V0(t,n,s){try{var l=t.onCaughtError;l(s.value,{componentStack:s.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(d){setTimeout(function(){throw d})}}function Cd(t,n,s){return s=Ja(s),s.tag=3,s.payload={element:null},s.callback=function(){Hc(t,n)},s}function G0(t){return t=Ja(t),t.tag=3,t}function j0(t,n,s,l){var d=s.type.getDerivedStateFromError;if(typeof d=="function"){var m=l.value;t.payload=function(){return d(m)},t.callback=function(){V0(n,s,l)}}var w=s.stateNode;w!==null&&typeof w.componentDidCatch=="function"&&(t.callback=function(){V0(n,s,l),typeof d!="function"&&(rr===null?rr=new Set([this]):rr.add(this));var P=l.stack;this.componentDidCatch(l.value,{componentStack:P!==null?P:""})})}function LM(t,n,s,l,d){if(s.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){if(n=s.alternate,n!==null&&Ns(n,s,d,!0),s=si.current,s!==null){switch(s.tag){case 31:case 13:return Ei===null?Jc():s.alternate===null&&cn===0&&(cn=3),s.flags&=-257,s.flags|=65536,s.lanes=d,l===Rc?s.flags|=16384:(n=s.updateQueue,n===null?s.updateQueue=new Set([l]):n.add(l),$d(t,l,d)),!1;case 22:return s.flags|=65536,l===Rc?s.flags|=16384:(n=s.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([l])},s.updateQueue=n):(s=n.retryQueue,s===null?n.retryQueue=new Set([l]):s.add(l)),$d(t,l,d)),!1}throw Error(r(435,s.tag))}return $d(t,l,d),Jc(),!1}if(Bt)return n=si.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=d,l!==Zf&&(t=Error(r(422),{cause:l}),Zo(xi(t,s)))):(l!==Zf&&(n=Error(r(423),{cause:l}),Zo(xi(n,s))),t=t.current.alternate,t.flags|=65536,d&=-d,t.lanes|=d,l=xi(l,s),d=Cd(t.stateNode,l,d),ad(t,d),cn!==4&&(cn=2)),!1;var m=Error(r(520),{cause:l});if(m=xi(m,s),dl===null?dl=[m]:dl.push(m),cn!==4&&(cn=2),n===null)return!0;l=xi(l,s),s=n;do{switch(s.tag){case 3:return s.flags|=65536,t=d&-d,s.lanes|=t,t=Cd(s.stateNode,l,t),ad(s,t),!1;case 1:if(n=s.type,m=s.stateNode,(s.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||m!==null&&typeof m.componentDidCatch=="function"&&(rr===null||!rr.has(m))))return s.flags|=65536,d&=-d,s.lanes|=d,d=G0(d),j0(d,t,s,l),ad(s,d),!1}s=s.return}while(s!==null);return!1}var Id=Error(r(461)),xn=!1;function Ln(t,n,s,l){n.child=t===null?Wg(n,null,s,l):Vr(n,t.child,s,l)}function Y0(t,n,s,l,d){s=s.render;var m=n.ref;if("ref"in l){var w={};for(var P in l)P!=="ref"&&(w[P]=l[P])}else w=l;return zr(n),l=ud(t,n,s,w,m,d),P=fd(),t!==null&&!xn?(dd(t,n,d),va(t,n,d)):(Bt&&P&&Yf(n),n.flags|=1,Ln(t,n,l,d),n.child)}function X0(t,n,s,l,d){if(t===null){var m=s.type;return typeof m=="function"&&!Vf(m)&&m.defaultProps===void 0&&s.compare===null?(n.tag=15,n.type=m,Z0(t,n,m,l,d)):(t=Sc(s.type,null,l,n,n.mode,d),t.ref=n.ref,t.return=n,n.child=t)}if(m=t.child,!kd(t,d)){var w=m.memoizedProps;if(s=s.compare,s=s!==null?s:jo,s(w,l)&&t.ref===n.ref)return va(t,n,d)}return n.flags|=1,t=fa(m,l),t.ref=n.ref,t.return=n,n.child=t}function Z0(t,n,s,l,d){if(t!==null){var m=t.memoizedProps;if(jo(m,l)&&t.ref===n.ref)if(xn=!1,n.pendingProps=l=m,kd(t,d))(t.flags&131072)!==0&&(xn=!0);else return n.lanes=t.lanes,va(t,n,d)}return Dd(t,n,s,l,d)}function W0(t,n,s,l){var d=l.children,m=t!==null?t.memoizedState:null;if(t===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),l.mode==="hidden"){if((n.flags&128)!==0){if(m=m!==null?m.baseLanes|s:s,t!==null){for(l=n.child=t.child,d=0;l!==null;)d=d|l.lanes|l.childLanes,l=l.sibling;l=d&~m}else l=0,n.child=null;return Q0(t,n,m,s,l)}if((s&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},t!==null&&wc(n,m!==null?m.cachePool:null),m!==null?Kg(n,m):sd(),Jg(n);else return l=n.lanes=536870912,Q0(t,n,m!==null?m.baseLanes|s:s,s,l)}else m!==null?(wc(n,m.cachePool),Kg(n,m),tr(),n.memoizedState=null):(t!==null&&wc(n,null),sd(),tr());return Ln(t,n,d,s),n.child}function rl(t,n){return t!==null&&t.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function Q0(t,n,s,l,d){var m=ed();return m=m===null?null:{parent:gn._currentValue,pool:m},n.memoizedState={baseLanes:s,cachePool:m},t!==null&&wc(n,null),sd(),Jg(n),t!==null&&Ns(t,n,l,!0),n.childLanes=d,null}function Fc(t,n){return n=Gc({mode:n.mode,children:n.children},t.mode),n.ref=t.ref,t.child=n,n.return=t,n}function q0(t,n,s){return Vr(n,t.child,null,s),t=Fc(n,n.pendingProps),t.flags|=2,oi(n),n.memoizedState=null,t}function PM(t,n,s){var l=n.pendingProps,d=(n.flags&128)!==0;if(n.flags&=-129,t===null){if(Bt){if(l.mode==="hidden")return t=Fc(n,l),n.lanes=536870912,rl(null,t);if(ld(n),(t=en)?(t=lx(t,Si),t=t!==null&&t.data==="&"?t:null,t!==null&&(n.memoizedState={dehydrated:t,treeContext:Za!==null?{id:Zi,overflow:Wi}:null,retryLane:536870912,hydrationErrors:null},s=Pg(t),s.return=n,n.child=s,Dn=n,en=null)):t=null,t===null)throw Qa(n);return n.lanes=536870912,null}return Fc(n,l)}var m=t.memoizedState;if(m!==null){var w=m.dehydrated;if(ld(n),d)if(n.flags&256)n.flags&=-257,n=q0(t,n,s);else if(n.memoizedState!==null)n.child=t.child,n.flags|=128,n=null;else throw Error(r(558));else if(xn||Ns(t,n,s,!1),d=(s&t.childLanes)!==0,xn||d){if(l=Jt,l!==null&&(w=Dr(l,s),w!==0&&w!==m.retryLane))throw m.retryLane=w,Or(t,w),ei(l,t,w),Id;Jc(),n=q0(t,n,s)}else t=m.treeContext,en=Mi(w.nextSibling),Dn=n,Bt=!0,Wa=null,Si=!1,t!==null&&Ug(n,t),n=Fc(n,l),n.flags|=4096;return n}return t=fa(t.child,{mode:l.mode,children:l.children}),t.ref=n.ref,n.child=t,t.return=n,t}function Vc(t,n){var s=n.ref;if(s===null)t!==null&&t.ref!==null&&(n.flags|=4194816);else{if(typeof s!="function"&&typeof s!="object")throw Error(r(284));(t===null||t.ref!==s)&&(n.flags|=4194816)}}
vendor: 4,190 bytes, line 8
8function Dd(t,n,s,l,d){return zr(n),s=ud(t,n,s,l,void 0,d),l=fd(),t!==null&&!xn?(dd(t,n,d),va(t,n,d)):(Bt&&l&&Yf(n),n.flags|=1,Ln(t,n,s,d),n.child)}function K0(t,n,s,l,d,m){return zr(n),n.updateQueue=null,s=e0(n,l,s,d),$g(t),l=fd(),t!==null&&!xn?(dd(t,n,m),va(t,n,m)):(Bt&&l&&Yf(n),n.flags|=1,Ln(t,n,s,m),n.child)}function J0(t,n,s,l,d){if(zr(n),n.stateNode===null){var m=Rs,w=s.contextType;typeof w=="object"&&w!==null&&(m=Nn(w)),m=new s(l,m),n.memoizedState=m.state!==null&&m.state!==void 0?m.state:null,m.updater=Rd,n.stateNode=m,m._reactInternals=n,m=n.stateNode,m.props=l,m.state=n.memoizedState,m.refs={},nd(n),w=s.contextType,m.context=typeof w=="object"&&w!==null?Nn(w):Rs,m.state=n.memoizedState,w=s.getDerivedStateFromProps,typeof w=="function"&&(Td(n,s,w,l),m.state=n.memoizedState),typeof s.getDerivedStateFromProps=="function"||typeof m.getSnapshotBeforeUpdate=="function"||typeof m.UNSAFE_componentWillMount!="function"&&typeof m.componentWillMount!="function"||(w=m.state,typeof m.componentWillMount=="function"&&m.componentWillMount(),typeof m.UNSAFE_componentWillMount=="function"&&m.UNSAFE_componentWillMount(),w!==m.state&&Rd.enqueueReplaceState(m,m.state,null),el(n,l,m,d),$o(),m.state=n.memoizedState),typeof m.componentDidMount=="function"&&(n.flags|=4194308),l=!0}else if(t===null){m=n.stateNode;var P=n.memoizedProps,j=jr(s,P);m.props=j;var ce=m.context,Ee=s.contextType;w=Rs,typeof Ee=="object"&&Ee!==null&&(w=Nn(Ee));var De=s.getDerivedStateFromProps;Ee=typeof De=="function"||typeof m.getSnapshotBeforeUpdate=="function",P=n.pendingProps!==P,Ee||typeof m.UNSAFE_componentWillReceiveProps!="function"&&typeof m.componentWillReceiveProps!="function"||(P||ce!==w)&&z0(n,m,l,w),Ka=!1;var ue=n.memoizedState;m.state=ue,el(n,l,m,d),$o(),ce=n.memoizedState,P||ue!==ce||Ka?(typeof De=="function"&&(Td(n,s,De,l),ce=n.memoizedState),(j=Ka||k0(n,s,j,l,ue,ce,w))?(Ee||typeof m.UNSAFE_componentWillMount!="function"&&typeof m.componentWillMount!="function"||(typeof m.componentWillMount=="function"&&m.componentWillMount(),typeof m.UNSAFE_componentWillMount=="function"&&m.UNSAFE_componentWillMount()),typeof m.componentDidMount=="function"&&(n.flags|=4194308)):(typeof m.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=l,n.memoizedState=ce),m.props=l,m.state=ce,m.context=w,l=j):(typeof m.componentDidMount=="function"&&(n.flags|=4194308),l=!1)}else{m=n.stateNode,id(t,n),w=n.memoizedProps,Ee=jr(s,w),m.props=Ee,De=n.pendingProps,ue=m.context,ce=s.contextType,j=Rs,typeof ce=="object"&&ce!==null&&(j=Nn(ce)),P=s.getDerivedStateFromProps,(ce=typeof P=="function"||typeof m.getSnapshotBeforeUpdate=="function")||typeof m.UNSAFE_componentWillReceiveProps!="function"&&typeof m.componentWillReceiveProps!="function"||(w!==De||ue!==j)&&z0(n,m,l,j),Ka=!1,ue=n.memoizedState,m.state=ue,el(n,l,m,d),$o();var ge=n.memoizedState;w!==De||ue!==ge||Ka||t!==null&&t.dependencies!==null&&Mc(t.dependencies)?(typeof P=="function"&&(Td(n,s,P,l),ge=n.memoizedState),(Ee=Ka||k0(n,s,Ee,l,ue,ge,j)||t!==null&&t.dependencies!==null&&Mc(t.dependencies))?(ce||typeof m.UNSAFE_componentWillUpdate!="function"&&typeof m.componentWillUpdate!="function"||(typeof m.componentWillUpdate=="function"&&m.componentWillUpdate(l,ge,j),typeof m.UNSAFE_componentWillUpdate=="function"&&m.UNSAFE_componentWillUpdate(l,ge,j)),typeof m.componentDidUpdate=="function"&&(n.flags|=4),typeof m.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof m.componentDidUpdate!="function"||w===t.memoizedProps&&ue===t.memoizedState||(n.flags|=4),typeof m.getSnapshotBeforeUpdate!="function"||w===t.memoizedProps&&ue===t.memoizedState||(n.flags|=1024),n.memoizedProps=l,n.memoizedState=ge),m.props=l,m.state=ge,m.context=j,l=Ee):(typeof m.componentDidUpdate!="function"||w===t.memoizedProps&&ue===t.memoizedState||(n.flags|=4),typeof m.getSnapshotBeforeUpdate!="function"||w===t.memoizedProps&&ue===t.memoizedState||(n.flags|=1024),l=!1)}return m=l,Vc(t,n),l=(n.flags&128)!==0,m||l?(m=n.stateNode,s=l&&typeof s.getDerivedStateFromError!="function"?null:m.render(),n.flags|=1,t!==null&&l?(n.child=Vr(n,t.child,null,d),n.child=Vr(n,null,s,d)):Ln(t,n,s,d),n.memoizedState=m.state,t=n.child):t=va(t,n,d),t}
vendor: 5,729 bytes, line 8
8function $0(t,n,s,l){return Ur(),n.flags|=256,Ln(t,n,s,l),n.child}var Nd={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Ld(t){return{baseLanes:t,cachePool:Vg()}}function Pd(t,n,s){return t=t!==null?t.childLanes&~s:0,n&&(t|=ci),t}function ev(t,n,s){var l=n.pendingProps,d=!1,m=(n.flags&128)!==0,w;if((w=m)||(w=t!==null&&t.memoizedState===null?!1:(fn.current&2)!==0),w&&(d=!0,n.flags&=-129),w=(n.flags&32)!==0,n.flags&=-33,t===null){if(Bt){if(d?er(n):tr(),(t=en)?(t=lx(t,Si),t=t!==null&&t.data!=="&"?t:null,t!==null&&(n.memoizedState={dehydrated:t,treeContext:Za!==null?{id:Zi,overflow:Wi}:null,retryLane:536870912,hydrationErrors:null},s=Pg(t),s.return=n,n.child=s,Dn=n,en=null)):t=null,t===null)throw Qa(n);return mh(t)?n.lanes=32:n.lanes=536870912,null}var P=l.children;return l=l.fallback,d?(tr(),d=n.mode,P=Gc({mode:"hidden",children:P},d),l=Br(l,d,s,null),P.return=n,l.return=n,P.sibling=l,n.child=P,l=n.child,l.memoizedState=Ld(s),l.childLanes=Pd(t,w,s),n.memoizedState=Nd,rl(null,l)):(er(n),Od(n,P))}var j=t.memoizedState;if(j!==null&&(P=j.dehydrated,P!==null)){if(m)n.flags&256?(er(n),n.flags&=-257,n=Bd(t,n,s)):n.memoizedState!==null?(tr(),n.child=t.child,n.flags|=128,n=null):(tr(),P=l.fallback,d=n.mode,l=Gc({mode:"visible",children:l.children},d),P=Br(P,d,s,null),P.flags|=2,l.return=n,P.return=n,l.sibling=P,n.child=l,Vr(n,t.child,null,s),l=n.child,l.memoizedState=Ld(s),l.childLanes=Pd(t,w,s),n.memoizedState=Nd,n=rl(null,l));else if(er(n),mh(P)){if(w=P.nextSibling&&P.nextSibling.dataset,w)var ce=w.dgst;w=ce,l=Error(r(419)),l.stack="",l.digest=w,Zo({value:l,source:null,stack:null}),n=Bd(t,n,s)}else if(xn||Ns(t,n,s,!1),w=(s&t.childLanes)!==0,xn||w){if(w=Jt,w!==null&&(l=Dr(w,s),l!==0&&l!==j.retryLane))throw j.retryLane=l,Or(t,l),ei(w,t,l),Id;ph(P)||Jc(),n=Bd(t,n,s)}else ph(P)?(n.flags|=192,n.child=t.child,n=null):(t=j.treeContext,en=Mi(P.nextSibling),Dn=n,Bt=!0,Wa=null,Si=!1,t!==null&&Ug(n,t),n=Od(n,l.children),n.flags|=4096);return n}return d?(tr(),P=l.fallback,d=n.mode,j=t.child,ce=j.sibling,l=fa(j,{mode:"hidden",children:l.children}),l.subtreeFlags=j.subtreeFlags&65011712,ce!==null?P=fa(ce,P):(P=Br(P,d,s,null),P.flags|=2),P.return=n,l.return=n,l.sibling=P,n.child=l,rl(null,l),l=n.child,P=t.child.memoizedState,P===null?P=Ld(s):(d=P.cachePool,d!==null?(j=gn._currentValue,d=d.parent!==j?{parent:j,pool:j}:d):d=Vg(),P={baseLanes:P.baseLanes|s,cachePool:d}),l.memoizedState=P,l.childLanes=Pd(t,w,s),n.memoizedState=Nd,rl(t.child,l)):(er(n),s=t.child,t=s.sibling,s=fa(s,{mode:"visible",children:l.children}),s.return=n,s.sibling=null,t!==null&&(w=n.deletions,w===null?(n.deletions=[t],n.flags|=16):w.push(t)),n.child=s,n.memoizedState=null,s)}function Od(t,n){return n=Gc({mode:"visible",children:n},t.mode),n.return=t,t.child=n}function Gc(t,n){return t=ri(22,t,null,n),t.lanes=0,t}function Bd(t,n,s){return Vr(n,t.child,null,s),t=Od(n,n.pendingProps.children),t.flags|=2,n.memoizedState=null,t}function tv(t,n,s){t.lanes|=n;var l=t.alternate;l!==null&&(l.lanes|=n),qf(t.return,n,s)}function Ud(t,n,s,l,d,m){var w=t.memoizedState;w===null?t.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:l,tail:s,tailMode:d,treeForkCount:m}:(w.isBackwards=n,w.rendering=null,w.renderingStartTime=0,w.last=l,w.tail=s,w.tailMode=d,w.treeForkCount=m)}function nv(t,n,s){var l=n.pendingProps,d=l.revealOrder,m=l.tail;l=l.children;var w=fn.current,P=(w&2)!==0;if(P?(w=w&1|2,n.flags|=128):w&=1,Se(fn,w),Ln(t,n,l,s),l=Bt?Xo:0,!P&&t!==null&&(t.flags&128)!==0)e:for(t=n.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&tv(t,s,n);else if(t.tag===19)tv(t,s,n);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break e;for(;t.sibling===null;){if(t.return===null||t.return===n)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}switch(d){case"forwards":for(s=n.child,d=null;s!==null;)t=s.alternate,t!==null&&Nc(t)===null&&(d=s),s=s.sibling;s=d,s===null?(d=n.child,n.child=null):(d=s.sibling,s.sibling=null),Ud(n,!1,d,s,m,l);break;case"backwards":case"unstable_legacy-backwards":for(s=null,d=n.child,n.child=null;d!==null;){if(t=d.alternate,t!==null&&Nc(t)===null){n.child=d;break}t=d.sibling,d.sibling=s,s=d,d=t}Ud(n,!0,s,null,m,l);break;case"together":Ud(n,!1,null,null,void 0,l);break;default:n.memoizedState=null}return n.child}function va(t,n,s){if(t!==null&&(n.dependencies=t.dependencies),ar|=n.lanes,(s&n.childLanes)===0)if(t!==null){if(Ns(t,n,s,!1),(s&n.childLanes)===0)return null}else return null;if(t!==null&&n.child!==t.child)throw Error(r(153));if(n.child!==null){for(t=n.child,s=fa(t,t.pendingProps),n.child=s,s.return=n;t.sibling!==null;)t=t.sibling,s=s.sibling=fa(t,t.pendingProps),s.return=n;s.sibling=null}return n.child}function kd(t,n){return(t.lanes&n)!==0?!0:(t=t.dependencies,!!(t!==null&&Mc(t)))}function OM(t,n,s){switch(n.tag){case 3:Me(n,n.stateNode.containerInfo),qa(n,gn,t.memoizedState.cache),Ur();break;case 27:case 5:Ze(n);break;case 4:Me(n,n.stateNode.containerInfo);break;case 10:qa(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,ld(n),null;break;case 13:var l=n.memoizedState;if(l!==null)return l.dehydrated!==null?(er(n),n.flags|=128,null):(s&n.child.childLanes)!==0?ev(t,n,s):(er(n),t=va(t,n,s),t!==null?t.sibling:null);er(n);break;case 19:var d=(t.flags&128)!==0;if(l=(s&n.childLanes)!==0,l||(Ns(t,n,s,!1),l=(s&n.childLanes)!==0),d){if(l)return nv(t,n,s);n.flags|=128}if(d=n.memoizedState,d!==null&&(d.rendering=null,d.tail=null,d.lastEffect=null),Se(fn,fn.current),l)break;return null;case 22:return n.lanes=0,W0(t,n,s,n.pendingProps);case 24:qa(n,gn,t.memoizedState.cache)}return va(t,n,s)}function iv(t,n,s){if(t!==null)if(t.memoizedProps!==n.pendingProps)xn=!0;
vendor: 5,097 bytes, line 8
8else{if(!kd(t,s)&&(n.flags&128)===0)return xn=!1,OM(t,n,s);xn=(t.flags&131072)!==0}else xn=!1,Bt&&(n.flags&1048576)!==0&&Bg(n,Xo,n.index);switch(n.lanes=0,n.tag){case 16:e:{var l=n.pendingProps;if(t=Hr(n.elementType),n.type=t,typeof t=="function")Vf(t)?(l=jr(t,l),n.tag=1,n=J0(null,n,t,l,s)):(n.tag=0,n=Dd(null,n,t,l,s));else{if(t!=null){var d=t.$$typeof;if(d===I){n.tag=11,n=Y0(null,n,t,l,s);break e}else if(d===D){n.tag=14,n=X0(null,n,t,l,s);break e}}throw n=ee(t)||t,Error(r(306,n,""))}}return n;case 0:return Dd(t,n,n.type,n.pendingProps,s);case 1:return l=n.type,d=jr(l,n.pendingProps),J0(t,n,l,d,s);case 3:e:{if(Me(n,n.stateNode.containerInfo),t===null)throw Error(r(387));l=n.pendingProps;var m=n.memoizedState;d=m.element,id(t,n),el(n,l,null,s);var w=n.memoizedState;if(l=w.cache,qa(n,gn,l),l!==m.cache&&Kf(n,[gn],s,!0),$o(),l=w.element,m.isDehydrated)if(m={element:l,isDehydrated:!1,cache:w.cache},n.updateQueue.baseState=m,n.memoizedState=m,n.flags&256){n=$0(t,n,l,s);break e}else if(l!==d){d=xi(Error(r(424)),n),Zo(d),n=$0(t,n,l,s);break e}else for(t=n.stateNode.containerInfo,t.nodeType===9?t=t.body:t=t.nodeName==="HTML"?t.ownerDocument.body:t,en=Mi(t.firstChild),Dn=n,Bt=!0,Wa=null,Si=!0,s=Wg(n,null,l,s),n.child=s;s;)s.flags=s.flags&-3|4096,s=s.sibling;else{if(Ur(),l===d){n=va(t,n,s);break e}Ln(t,n,l,s)}n=n.child}return n;case 26:return Vc(t,n),t===null?(s=px(n.type,null,n.pendingProps,null))?n.memoizedState=s:Bt||(s=n.type,t=n.pendingProps,l=ru($.current).createElement(s),l[an]=n,l[un]=t,Pn(l,s,t),q(l),n.stateNode=l):n.memoizedState=px(n.type,t.memoizedProps,n.pendingProps,t.memoizedState),null;case 27:return Ze(n),t===null&&Bt&&(l=n.stateNode=fx(n.type,n.pendingProps,$.current),Dn=n,Si=!0,d=en,cr(n.type)?(gh=d,en=Mi(l.firstChild)):en=d),Ln(t,n,n.pendingProps.children,s),Vc(t,n),t===null&&(n.flags|=4194304),n.child;case 5:return t===null&&Bt&&((d=l=en)&&(l=uA(l,n.type,n.pendingProps,Si),l!==null?(n.stateNode=l,Dn=n,en=Mi(l.firstChild),Si=!1,d=!0):d=!1),d||Qa(n)),Ze(n),d=n.type,m=n.pendingProps,w=t!==null?t.memoizedProps:null,l=m.children,fh(d,m)?l=null:w!==null&&fh(d,w)&&(n.flags|=32),n.memoizedState!==null&&(d=ud(t,n,wM,null,null,s),bl._currentValue=d),Vc(t,n),Ln(t,n,l,s),n.child;case 6:return t===null&&Bt&&((t=s=en)&&(s=fA(s,n.pendingProps,Si),s!==null?(n.stateNode=s,Dn=n,en=null,t=!0):t=!1),t||Qa(n)),null;case 13:return ev(t,n,s);case 4:return Me(n,n.stateNode.containerInfo),l=n.pendingProps,t===null?n.child=Vr(n,null,l,s):Ln(t,n,l,s),n.child;case 11:return Y0(t,n,n.type,n.pendingProps,s);case 7:return Ln(t,n,n.pendingProps,s),n.child;case 8:return Ln(t,n,n.pendingProps.children,s),n.child;case 12:return Ln(t,n,n.pendingProps.children,s),n.child;case 10:return l=n.pendingProps,qa(n,n.type,l.value),Ln(t,n,l.children,s),n.child;case 9:return d=n.type._context,l=n.pendingProps.children,zr(n),d=Nn(d),l=l(d),n.flags|=1,Ln(t,n,l,s),n.child;case 14:return X0(t,n,n.type,n.pendingProps,s);case 15:return Z0(t,n,n.type,n.pendingProps,s);case 19:return nv(t,n,s);case 31:return PM(t,n,s);case 22:return W0(t,n,s,n.pendingProps);case 24:return zr(n),l=Nn(gn),t===null?(d=ed(),d===null&&(d=Jt,m=Jf(),d.pooledCache=m,m.refCount++,m!==null&&(d.pooledCacheLanes|=s),d=m),n.memoizedState={parent:l,cache:d},nd(n),qa(n,gn,d)):((t.lanes&s)!==0&&(id(t,n),el(n,null,null,s),$o()),d=t.memoizedState,m=n.memoizedState,d.parent!==l?(d={parent:l,cache:l},n.memoizedState=d,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=d),qa(n,gn,l)):(l=m.cache,qa(n,gn,l),l!==d.cache&&Kf(n,[gn],s,!0))),Ln(t,n,n.pendingProps.children,s),n.child;case 29:throw n.pendingProps}throw Error(r(156,n.tag))}function xa(t){t.flags|=4}function zd(t,n,s,l,d){if((n=(t.mode&32)!==0)&&(n=!1),n){if(t.flags|=16777216,(d&335544128)===d)if(t.stateNode.complete)t.flags|=8192;else if(Dv())t.flags|=8192;else throw Fr=Rc,td}else t.flags&=-16777217}function av(t,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)t.flags&=-16777217;else if(t.flags|=16777216,!yx(n))if(Dv())t.flags|=8192;else throw Fr=Rc,td}function jc(t,n){n!==null&&(t.flags|=4),t.flags&16384&&(n=t.tag!==22?vt():536870912,t.lanes|=n,Gs|=n)}function sl(t,n){if(!Bt)switch(t.tailMode){case"hidden":n=t.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t.tail=null:s.sibling=null;break;case"collapsed":s=t.tail;for(var l=null;s!==null;)s.alternate!==null&&(l=s),s=s.sibling;l===null?n||t.tail===null?t.tail=null:t.tail.sibling=null:l.sibling=null}}function tn(t){var n=t.alternate!==null&&t.alternate.child===t.child,s=0,l=0;if(n)for(var d=t.child;d!==null;)s|=d.lanes|d.childLanes,l|=d.subtreeFlags&65011712,l|=d.flags&65011712,d.return=t,d=d.sibling;else for(d=t.child;d!==null;)s|=d.lanes|d.childLanes,l|=d.subtreeFlags,l|=d.flags,d.return=t,d=d.sibling;return t.subtreeFlags|=l,t.childLanes=s,n}function BM(t,n,s){var l=n.pendingProps;switch(Xf(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return tn(n),null;case 1:return tn(n),null;case 3:return s=n.stateNode,l=null,t!==null&&(l=t.memoizedState.cache),n.memoizedState.cache!==l&&(n.flags|=2048),pa(gn),Te(),s.pe
vendor: 6,720 bytes, line 8
8ndingContext&&(s.context=s.pendingContext,s.pendingContext=null),(t===null||t.child===null)&&(Ds(n)?xa(n):t===null||t.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Wf())),tn(n),null;case 26:var d=n.type,m=n.memoizedState;return t===null?(xa(n),m!==null?(tn(n),av(n,m)):(tn(n),zd(n,d,null,l,s))):m?m!==t.memoizedState?(xa(n),tn(n),av(n,m)):(tn(n),n.flags&=-16777217):(t=t.memoizedProps,t!==l&&xa(n),tn(n),zd(n,d,t,l,s)),null;case 27:if(tt(n),s=$.current,d=n.type,t!==null&&n.stateNode!=null)t.memoizedProps!==l&&xa(n);else{if(!l){if(n.stateNode===null)throw Error(r(166));return tn(n),null}t=ye.current,Ds(n)?kg(n):(t=fx(d,l,s),n.stateNode=t,xa(n))}return tn(n),null;case 5:if(tt(n),d=n.type,t!==null&&n.stateNode!=null)t.memoizedProps!==l&&xa(n);else{if(!l){if(n.stateNode===null)throw Error(r(166));return tn(n),null}if(m=ye.current,Ds(n))kg(n);else{var w=ru($.current);switch(m){case 1:m=w.createElementNS("http://www.w3.org/2000/svg",d);break;case 2:m=w.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;default:switch(d){case"svg":m=w.createElementNS("http://www.w3.org/2000/svg",d);break;case"math":m=w.createElementNS("http://www.w3.org/1998/Math/MathML",d);break;case"script":m=w.createElement("div"),m.innerHTML="<script><\/script>",m=m.removeChild(m.firstChild);break;case"select":m=typeof l.is=="string"?w.createElement("select",{is:l.is}):w.createElement("select"),l.multiple?m.multiple=!0:l.size&&(m.size=l.size);break;default:m=typeof l.is=="string"?w.createElement(d,{is:l.is}):w.createElement(d)}}m[an]=n,m[un]=l;e:for(w=n.child;w!==null;){if(w.tag===5||w.tag===6)m.appendChild(w.stateNode);else if(w.tag!==4&&w.tag!==27&&w.child!==null){w.child.return=w,w=w.child;continue}if(w===n)break e;for(;w.sibling===null;){if(w.return===null||w.return===n)break e;w=w.return}w.sibling.return=w.return,w=w.sibling}n.stateNode=m;e:switch(Pn(m,d,l),d){case"button":case"input":case"select":case"textarea":l=!!l.autoFocus;break e;case"img":l=!0;break e;default:l=!1}l&&xa(n)}}return tn(n),zd(n,n.type,t===null?null:t.memoizedProps,n.pendingProps,s),null;case 6:if(t&&n.stateNode!=null)t.memoizedProps!==l&&xa(n);else{if(typeof l!="string"&&n.stateNode===null)throw Error(r(166));if(t=$.current,Ds(n)){if(t=n.stateNode,s=n.memoizedProps,l=null,d=Dn,d!==null)switch(d.tag){case 27:case 5:l=d.memoizedProps}t[an]=n,t=!!(t.nodeValue===s||l!==null&&l.suppressHydrationWarning===!0||ex(t.nodeValue,s)),t||Qa(n,!0)}else t=ru(t).createTextNode(l),t[an]=n,n.stateNode=t}return tn(n),null;case 31:if(s=n.memoizedState,t===null||t.memoizedState!==null){if(l=Ds(n),s!==null){if(t===null){if(!l)throw Error(r(318));if(t=n.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(r(557));t[an]=n}else Ur(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;tn(n),t=!1}else s=Wf(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=s),t=!0;if(!t)return n.flags&256?(oi(n),n):(oi(n),null);if((n.flags&128)!==0)throw Error(r(558))}return tn(n),null;case 13:if(l=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(d=Ds(n),l!==null&&l.dehydrated!==null){if(t===null){if(!d)throw Error(r(318));if(d=n.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(r(317));d[an]=n}else Ur(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;tn(n),d=!1}else d=Wf(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=d),d=!0;if(!d)return n.flags&256?(oi(n),n):(oi(n),null)}return oi(n),(n.flags&128)!==0?(n.lanes=s,n):(s=l!==null,t=t!==null&&t.memoizedState!==null,s&&(l=n.child,d=null,l.alternate!==null&&l.alternate.memoizedState!==null&&l.alternate.memoizedState.cachePool!==null&&(d=l.alternate.memoizedState.cachePool.pool),m=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(m=l.memoizedState.cachePool.pool),m!==d&&(l.flags|=2048)),s!==t&&s&&(n.child.flags|=8192),jc(n,n.updateQueue),tn(n),null);case 4:return Te(),t===null&&sh(n.stateNode.containerInfo),tn(n),null;case 10:return pa(n.type),tn(n),null;case 19:if(Q(fn),l=n.memoizedState,l===null)return tn(n),null;if(d=(n.flags&128)!==0,m=l.rendering,m===null)if(d)sl(l,!1);else{if(cn!==0||t!==null&&(t.flags&128)!==0)for(t=n.child;t!==null;){if(m=Nc(t),m!==null){for(n.flags|=128,sl(l,!1),t=m.updateQueue,n.updateQueue=t,jc(n,t),n.subtreeFlags=0,t=s,s=n.child;s!==null;)Lg(s,t),s=s.sibling;return Se(fn,fn.current&1|2),Bt&&da(n,l.treeForkCount),n.child}t=t.sibling}l.tail!==null&&N()>Qc&&(n.flags|=128,d=!0,sl(l,!1),n.lanes=4194304)}else{if(!d)if(t=Nc(m),t!==null){if(n.flags|=128,d=!0,t=t.updateQueue,n.updateQueue=t,jc(n,t),sl(l,!0),l.tail===null&&l.tailMode==="hidden"&&!m.alternate&&!Bt)return tn(n),null}else 2*N()-l.renderingStartTime>Qc&&s!==536870912&&(n.flags|=128,d=!0,sl(l,!1),n.lanes=4194304);l.isBackwards?(m.sibling=n.child,n.child=m):(t=l.last,t!==null?t.sibling=m:n.child=m,l.last=m)}return l.tail!==null?(t=l.tail,l.rendering=t,l.tail=t.sibling,l.renderingStartTime=N(),t.sibling=null,s=fn.current,Se(fn,d?s&1|2:s&1),Bt&&da(n,l.treeForkCount),t):(tn(n),null);case 22:case 23:return oi(n),od(),l=n.memoizedState!==null,t!==null?t.memoizedState!==null!==l&&(n.flags|=8192):l&&(n.flags|=8192),l?(s&536870912)!==0&&(n.flags&128)===0&&(tn(n),n.subtreeFlags&6&&(n.flags|=8192)):tn(n),s=n.updateQueue,s!==null&&jc(n,s.retryQueue),s=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(s=t.memoizedState.cachePool.pool),l=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(l=n.memoizedState.cachePool.pool),l!==s&&(n.flags|=2048),t!==null&&Q(_r),null;case 24:return s=null,t!==null&&(s=t.memoizedState.cache),n.memoizedState.cache!==s&&(n.flags|=2048),pa(gn),tn(n),null;case 25:return null;case 30:return null}throw Error(r(156,n.tag))}function UM(t,n){switch(Xf(n),n.tag){case 1:return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return pa(gn),Te(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 26:case 27:case 5:return tt(n),null;case 31:if(n.memoizedState!==null){if(oi(n),n.alternate===null)throw Error(r(340));Ur()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 13:if(oi(n),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(r(340));Ur()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return Q(fn),null;case 4:return Te(),null;case 10:return pa(n.type),null;case 22:case 23:return oi(n),od(),t!==null&&Q(_r),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 24:return pa(gn),null;case 25:return null;default:return null}}function rv(t,n){switch(Xf(n),n.tag){case 3:pa(gn),Te();break;case 26:case 27:case 5:tt(n);break;case 4:Te();break;case 31:n.memoizedState!==null&&oi(n);break;case 13:oi(n);break;case 19:Q(fn);break;
vendor: 21,250 bytes, line 8
8case 10:pa(n.type);break;case 22:case 23:oi(n),od(),t!==null&&Q(_r);break;case 24:pa(gn)}}function ol(t,n){try{var s=n.updateQueue,l=s!==null?s.lastEffect:null;if(l!==null){var d=l.next;s=d;do{if((s.tag&t)===t){l=void 0;var m=s.create,w=s.inst;l=m(),w.destroy=l}s=s.next}while(s!==d)}}catch(P){Yt(n,n.return,P)}}function nr(t,n,s){try{var l=n.updateQueue,d=l!==null?l.lastEffect:null;if(d!==null){var m=d.next;l=m;do{if((l.tag&t)===t){var w=l.inst,P=w.destroy;if(P!==void 0){w.destroy=void 0,d=n;var j=s,ce=P;try{ce()}catch(Ee){Yt(d,j,Ee)}}}l=l.next}while(l!==m)}}catch(Ee){Yt(n,n.return,Ee)}}function sv(t){var n=t.updateQueue;if(n!==null){var s=t.stateNode;try{qg(n,s)}catch(l){Yt(t,t.return,l)}}}function ov(t,n,s){s.props=jr(t.type,t.memoizedProps),s.state=t.memoizedState;try{s.componentWillUnmount()}catch(l){Yt(t,n,l)}}function ll(t,n){try{var s=t.ref;if(s!==null){switch(t.tag){case 26:case 27:case 5:var l=t.stateNode;break;case 30:l=t.stateNode;break;default:l=t.stateNode}typeof s=="function"?t.refCleanup=s(l):s.current=l}}catch(d){Yt(t,n,d)}}function Qi(t,n){var s=t.ref,l=t.refCleanup;if(s!==null)if(typeof l=="function")try{l()}catch(d){Yt(t,n,d)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof s=="function")try{s(null)}catch(d){Yt(t,n,d)}else s.current=null}function lv(t){var n=t.type,s=t.memoizedProps,l=t.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":s.autoFocus&&l.focus();break e;case"img":s.src?l.src=s.src:s.srcSet&&(l.srcset=s.srcSet)}}catch(d){Yt(t,t.return,d)}}function _d(t,n,s){try{var l=t.stateNode;aA(l,t.type,s,n),l[un]=n}catch(d){Yt(t,t.return,d)}}function cv(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&cr(t.type)||t.tag===4}function Hd(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||cv(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&cr(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Fd(t,n,s){var l=t.tag;if(l===5||l===6)t=t.stateNode,n?(s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s).insertBefore(t,n):(n=s.nodeType===9?s.body:s.nodeName==="HTML"?s.ownerDocument.body:s,n.appendChild(t),s=s._reactRootContainer,s!=null||n.onclick!==null||(n.onclick=ca));else if(l!==4&&(l===27&&cr(t.type)&&(s=t.stateNode,n=null),t=t.child,t!==null))for(Fd(t,n,s),t=t.sibling;t!==null;)Fd(t,n,s),t=t.sibling}function Yc(t,n,s){var l=t.tag;if(l===5||l===6)t=t.stateNode,n?s.insertBefore(t,n):s.appendChild(t);else if(l!==4&&(l===27&&cr(t.type)&&(s=t.stateNode),t=t.child,t!==null))for(Yc(t,n,s),t=t.sibling;t!==null;)Yc(t,n,s),t=t.sibling}function uv(t){var n=t.stateNode,s=t.memoizedProps;try{for(var l=t.type,d=n.attributes;d.length;)n.removeAttributeNode(d[0]);Pn(n,l,s),n[an]=t,n[un]=s}catch(m){Yt(t,t.return,m)}}var ya=!1,yn=!1,Vd=!1,fv=typeof WeakSet=="function"?WeakSet:Set,Tn=null;function kM(t,n){if(t=t.containerInfo,ch=du,t=Mg(t),Bf(t)){if("selectionStart"in t)var s={start:t.selectionStart,end:t.selectionEnd};else e:{s=(s=t.ownerDocument)&&s.defaultView||window;var l=s.getSelection&&s.getSelection();if(l&&l.rangeCount!==0){s=l.anchorNode;var d=l.anchorOffset,m=l.focusNode;l=l.focusOffset;try{s.nodeType,m.nodeType}catch{s=null;break e}var w=0,P=-1,j=-1,ce=0,Ee=0,De=t,ue=null;t:for(;;){for(var ge;De!==s||d!==0&&De.nodeType!==3||(P=w+d),De!==m||l!==0&&De.nodeType!==3||(j=w+l),De.nodeType===3&&(w+=De.nodeValue.length),(ge=De.firstChild)!==null;)ue=De,De=ge;for(;;){if(De===t)break t;if(ue===s&&++ce===d&&(P=w),ue===m&&++Ee===l&&(j=w),(ge=De.nextSibling)!==null)break;De=ue,ue=De.parentNode}De=ge}s=P===-1||j===-1?null:{start:P,end:j}}else s=null}s=s||{start:0,end:0}}else s=null;for(uh={focusedElem:t,selectionRange:s},du=!1,Tn=n;Tn!==null;)if(n=Tn,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,Tn=t;else for(;Tn!==null;){switch(n=Tn,m=n.alternate,t=n.flags,n.tag){case 0:if((t&4)!==0&&(t=n.updateQueue,t=t!==null?t.events:null,t!==null))for(s=0;s<t.length;s++)d=t[s],d.ref.impl=d.nextImpl;break;case 11:case 15:break;case 1:if((t&1024)!==0&&m!==null){t=void 0,s=n,d=m.memoizedProps,m=m.memoizedState,l=s.stateNode;try{var it=jr(s.type,d);t=l.getSnapshotBeforeUpdate(it,m),l.__reactInternalSnapshotBeforeUpdate=t}catch(mt){Yt(s,s.return,mt)}}break;case 3:if((t&1024)!==0){if(t=n.stateNode.containerInfo,s=t.nodeType,s===9)hh(t);else if(s===1)switch(t.nodeName){case"HEAD":case"HTML":case"BODY":hh(t);break;default:t.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((t&1024)!==0)throw Error(r(163))}if(t=n.sibling,t!==null){t.return=n.return,Tn=t;break}Tn=n.return}}function dv(t,n,s){var l=s.flags;switch(s.tag){case 0:case 11:case 15:Sa(t,s),l&4&&ol(5,s);break;case 1:if(Sa(t,s),l&4)if(t=s.stateNode,n===null)try{t.componentDidMount()}catch(w){Yt(s,s.return,w)}else{var d=jr(s.type,n.memoizedProps);n=n.memoizedState;try{t.componentDidUpdate(d,n,t.__reactInternalSnapshotBeforeUpdate)}catch(w){Yt(s,s.return,w)}}l&64&&sv(s),l&512&&ll(s,s.return);break;case 3:if(Sa(t,s),l&64&&(t=s.updateQueue,t!==null)){if(n=null,s.child!==null)switch(s.child.tag){case 27:case 5:n=s.child.stateNode;break;case 1:n=s.child.stateNode}try{qg(t,n)}catch(w){Yt(s,s.return,w)}}break;case 27:n===null&&l&4&&uv(s);case 26:case 5:Sa(t,s),n===null&&l&4&&lv(s),l&512&&ll(s,s.return);break;case 12:Sa(t,s);break;case 31:Sa(t,s),l&4&&mv(t,s);break;case 13:Sa(t,s),l&4&&gv(t,s),l&64&&(t=s.memoizedState,t!==null&&(t=t.dehydrated,t!==null&&(s=XM.bind(null,s),dA(t,s))));break;case 22:if(l=s.memoizedState!==null||ya,!l){n=n!==null&&n.memoizedState!==null||yn,d=ya;var m=yn;ya=l,(yn=n)&&!m?Ea(t,s,(s.subtreeFlags&8772)!==0):Sa(t,s),ya=d,yn=m}break;case 30:break;default:Sa(t,s)}}function hv(t){var n=t.alternate;n!==null&&(t.alternate=null,hv(n)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(n=t.stateNode,n!==null&&Ya(n)),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}var rn=null,qn=!1;function ba(t,n,s){for(s=s.child;s!==null;)pv(t,n,s),s=s.sibling}function pv(t,n,s){if(Le&&typeof Le.onCommitFiberUnmount=="function")try{Le.onCommitFiberUnmount(Pe,s)}catch{}switch(s.tag){case 26:yn||Qi(s,n),ba(t,n,s),s.memoizedState?s.memoizedState.count--:s.stateNode&&(s=s.stateNode,s.parentNode.removeChild(s));break;case 27:yn||Qi(s,n);var l=rn,d=qn;cr(s.type)&&(rn=s.stateNode,qn=!1),ba(t,n,s),vl(s.stateNode),rn=l,qn=d;break;case 5:yn||Qi(s,n);case 6:if(l=rn,d=qn,rn=null,ba(t,n,s),rn=l,qn=d,rn!==null)if(qn)try{(rn.nodeType===9?rn.body:rn.nodeName==="HTML"?rn.ownerDocument.body:rn).removeChild(s.stateNode)}catch(m){Yt(s,n,m)}else try{rn.removeChild(s.stateNode)}catch(m){Yt(s,n,m)}break;case 18:rn!==null&&(qn?(t=rn,sx(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,s.stateNode),Ks(t)):sx(rn,s.stateNode));break;case 4:l=rn,d=qn,rn=s.stateNode.containerInfo,qn=!0,ba(t,n,s),rn=l,qn=d;break;case 0:case 11:case 14:case 15:nr(2,s,n),yn||nr(4,s,n),ba(t,n,s);break;case 1:yn||(Qi(s,n),l=s.stateNode,typeof l.componentWillUnmount=="function"&&ov(s,n,l)),ba(t,n,s);break;case 21:ba(t,n,s);break;case 22:yn=(l=yn)||s.memoizedState!==null,ba(t,n,s),yn=l;break;default:ba(t,n,s)}}function mv(t,n){if(n.memoizedState===null&&(t=n.alternate,t!==null&&(t=t.memoizedState,t!==null))){t=t.dehydrated;try{Ks(t)}catch(s){Yt(n,n.return,s)}}}function gv(t,n){if(n.memoizedState===null&&(t=n.alternate,t!==null&&(t=t.memoizedState,t!==null&&(t=t.dehydrated,t!==null))))try{Ks(t)}catch(s){Yt(n,n.return,s)}}function zM(t){switch(t.tag){case 31:case 13:case 19:var n=t.stateNode;return n===null&&(n=t.stateNode=new fv),n;case 22:return t=t.stateNode,n=t._retryCache,n===null&&(n=t._retryCache=new fv),n;default:throw Error(r(435,t.tag))}}function Xc(t,n){var s=zM(t);n.forEach(function(l){if(!s.has(l)){s.add(l);var d=ZM.bind(null,t,l);l.then(d,d)}})}function Kn(t,n){var s=n.deletions;if(s!==null)for(var l=0;l<s.length;l++){var d=s[l],m=t,w=n,P=w;e:for(;P!==null;){switch(P.tag){case 27:if(cr(P.type)){rn=P.stateNode,qn=!1;break e}break;case 5:rn=P.stateNode,qn=!1;break e;case 3:case 4:rn=P.stateNode.containerInfo,qn=!0;break e}P=P.return}if(rn===null)throw Error(r(160));pv(m,w,d),rn=null,qn=!1,m=d.alternate,m!==null&&(m.return=null),d.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)vv(n,t),n=n.sibling}var Bi=null;function vv(t,n){var s=t.alternate,l=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:Kn(n,t),Jn(t),l&4&&(nr(3,t,t.return),ol(3,t),nr(5,t,t.return));break;case 1:Kn(n,t),Jn(t),l&512&&(yn||s===null||Qi(s,s.return)),l&64&&ya&&(t=t.updateQueue,t!==null&&(l=t.callbacks,l!==null&&(s=t.shared.hiddenCallbacks,t.shared.hiddenCallbacks=s===null?l:s.concat(l))));break;case 26:var d=Bi;if(Kn(n,t),Jn(t),l&512&&(yn||s===null||Qi(s,s.return)),l&4){var m=s!==null?s.memoizedState:null;if(l=t.memoizedState,s===null)if(l===null)if(t.stateNode===null){e:{l=t.type,s=t.memoizedProps,d=d.ownerDocument||d;t:switch(l){case"title":m=d.getElementsByTagName("title")[0],(!m||m[ii]||m[an]||m.namespaceURI==="http://www.w3.org/2000/svg"||m.hasAttribute("itemprop"))&&(m=d.createElement(l),d.head.insertBefore(m,d.querySelector("head > title"))),Pn(m,l,s),m[an]=t,q(m),l=m;break e;case"link":var w=vx("link","href",d).get(l+(s.href||""));if(w){for(var P=0;P<w.length;P++)if(m=w[P],m.getAttribute("href")===(s.href==null||s.href===""?null:s.href)&&m.getAttribute("rel")===(s.rel==null?null:s.rel)&&m.getAttribute("title")===(s.title==null?null:s.title)&&m.getAttribute("crossorigin")===(s.crossOrigin==null?null:s.crossOrigin)){w.splice(P,1);break t}}m=d.createElement(l),Pn(m,l,s),d.head.appendChild(m);break;case"meta":if(w=vx("meta","content",d).get(l+(s.content||""))){for(P=0;P<w.length;P++)if(m=w[P],m.getAttribute("content")===(s.content==null?null:""+s.content)&&m.getAttribute("name")===(s.name==null?null:s.name)&&m.getAttribute("property")===(s.property==null?null:s.property)&&m.getAttribute("http-equiv")===(s.httpEquiv==null?null:s.httpEquiv)&&m.getAttribute("charset")===(s.charSet==null?null:s.charSet)){w.splice(P,1);break t}}m=d.createElement(l),Pn(m,l,s),d.head.appendChild(m);break;default:throw Error(r(468,l))}m[an]=t,q(m),l=m}t.stateNode=l}else xx(d,t.type,t.stateNode);else t.stateNode=gx(d,l,t.memoizedProps);else m!==l?(m===null?s.stateNode!==null&&(s=s.stateNode,s.parentNode.removeChild(s)):m.count--,l===null?xx(d,t.type,t.stateNode):gx(d,l,t.memoizedProps)):l===null&&t.stateNode!==null&&_d(t,t.memoizedProps,s.memoizedProps)}break;case 27:Kn(n,t),Jn(t),l&512&&(yn||s===null||Qi(s,s.return)),s!==null&&l&4&&_d(t,t.memoizedProps,s.memoizedProps);break;case 5:if(Kn(n,t),Jn(t),l&512&&(yn||s===null||Qi(s,s.return)),t.flags&32){d=t.stateNode;try{jn(d,"")}catch(it){Yt(t,t.return,it)}}l&4&&t.stateNode!=null&&(d=t.memoizedProps,_d(t,d,s!==null?s.memoizedProps:d)),l&1024&&(Vd=!0);break;case 6:if(Kn(n,t),Jn(t),l&4){if(t.stateNode===null)throw Error(r(162));l=t.memoizedProps,s=t.stateNode;try{s.nodeValue=l}catch(it){Yt(t,t.return,it)}}break;case 3:if(lu=null,d=Bi,Bi=su(n.containerInfo),Kn(n,t),Bi=d,Jn(t),l&4&&s!==null&&s.memoizedState.isDehydrated)try{Ks(n.containerInfo)}catch(it){Yt(t,t.return,it)}Vd&&(Vd=!1,xv(t));break;case 4:l=Bi,Bi=su(t.stateNode.containerInfo),Kn(n,t),Jn(t),Bi=l;break;case 12:Kn(n,t),Jn(t);break;case 31:Kn(n,t),Jn(t),l&4&&(l=t.updateQueue,l!==null&&(t.updateQueue=null,Xc(t,l)));break;case 13:Kn(n,t),Jn(t),t.child.flags&8192&&t.memoizedState!==null!=(s!==null&&s.memoizedState!==null)&&(Wc=N()),l&4&&(l=t.updateQueue,l!==null&&(t.updateQueue=null,Xc(t,l)));break;case 22:d=t.memoizedState!==null;var j=s!==null&&s.memoizedState!==null,ce=ya,Ee=yn;if(ya=ce||d,yn=Ee||j,Kn(n,t),yn=Ee,ya=ce,Jn(t),l&8192)e:for(n=t.stateNode,n._visibility=d?n._visibility&-2:n._visibility|1,d&&(s===null||j||ya||yn||Yr(t)),s=null,n=t;;){if(n.tag===5||n.tag===26){if(s===null){j=s=n;try{if(m=j.stateNode,d)w=m.style,typeof w.setProperty=="function"?w.setProperty("display","none","important"):w.display="none";else{P=j.stateNode;var De=j.memoizedProps.style,ue=De!=null&&De.hasOwnProperty("display")?De.display:null;P.style.display=ue==null||typeof ue=="boolean"?"":(""+ue).trim()}}catch(it){Yt(j,j.return,it)}}}else if(n.tag===6){if(s===null){j=n;try{j.stateNode.nodeValue=d?"":j.memoizedProps}catch(it){Yt(j,j.return,it)}}}else if(n.tag===18){if(s===null){j=n;try{var ge=j.stateNode;d?ox(ge,!0):ox(j.stateNode,!1)}catch(it){Yt(j,j.return,it)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===t)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break e;for(;n.sibling===null;){if(n.return===null||n.return===t)break e;s===n&&(s=null),n=n.return}s===n&&(s=null),n.sibling.return=n.return,n=n.sibling}l&4&&(l=t.updateQueue,l!==null&&(s=l.retryQueue,s!==null&&(l.retryQueue=null,Xc(t,s))));break;case 19:Kn(n,t),Jn(t),l&4&&(l=t.updateQueue,l!==null&&(t.updateQueue=null,Xc(t,l)));break;case 30:break;case 21:break;default:Kn(n,t),Jn(t)}}function Jn(t){var n=t.flags;if(n&2){try{for(var s,l=t.return;l!==null;){if(cv(l)){s=l;break}l=l.return}if(s==null)throw Error(r(160));switch(s.tag){case 27:var d=s.stateNode,m=Hd(t);Yc(t,m,d);break;case 5:var w=s.stateNode;s.flags&32&&(jn(w,""),s.flags&=-33);var P=Hd(t);Yc(t,P,w);break;case 3:case 4:var j=s.stateNode.containerInfo,ce=Hd(t);Fd(t,ce,j);break;default:throw Error(r(161))}}catch(Ee){Yt(t,t.return,Ee)}t.flags&=-3}n&4096&&(t.flags&=-4097)}function xv(t){if(t.subtreeFlags&1024)for(t=t.child;t!==null;){var n=t;xv(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),t=t.sibling}}function Sa(t,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)dv(t,n.alternate,n),n=n.sibling}function Yr(t){for(t=t.child;t!==null;){var n=t;switch(n.tag){case 0:case 11:case 14:case 15:nr(4,n,n.return),Yr(n);break;case 1:Qi(n,n.return);var s=n.stateNode;typeof s.componentWillUnmount=="function"&&ov(n,n.return,s),Yr(n);break;case 27:vl(n.stateNode);case 26:case 5:Qi(n,n.return),Yr(n);break;case 22:n.memoizedState===null&&Yr(n);break;case 30:Yr(n);break;default:Yr(n)}t=t.sibling}}function Ea(t,n,s){for(s=s&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var l=n.alternate,d=t,m=n,w=m.flags;switch(m.tag){case 0:case 11:case 15:Ea(d,m,s),ol(4,m);break;case 1:if(Ea(d,m,s),l=m,d=l.stateNode,typeof d.componentDidMount=="function")try{d.componentDidMount()}catch(ce){Yt(l,l.return,ce)}if(l=m,d=l.updateQueue,d!==null){var P=l.stateNode;try{var j=d.shared.hiddenCallbacks;if(j!==null)for(d.shared.hiddenCallbacks=null,d=0;d<j.length;d++)Qg(j[d],P)}catch(ce){Yt(l,l.return,ce)}}s&&w&64&&sv(m),ll(m,m.return);break;case 27:uv(m);case 26:case 5:Ea(d,m,s),s&&l===null&&w&4&&lv(m),ll(m,m.return);break;case 12:Ea(d,m,s);break;case 31:Ea(d,m,s),s&&w&4&&mv(d,m);break;case 13:Ea(d,m,s),s&&w&4&&gv(d,m);break;case 22:m.memoizedState===null&&Ea(d,m,s),ll(m,m.return);break;case 30:break;default:Ea(d,m,s)}n=n.sibling}}function Gd(t,n){var s=null;t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(s=t.memoizedState.cachePool.pool),t=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(t=n.memoizedState.cachePool.pool),t!==s&&(t!=null&&t.refCount++,s!=null&&Wo(s))}function jd(t,n){t=null,n.alternate!==null&&(t=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==t&&(n.refCount++,t!=null&&Wo(t))}function Ui(t,n,s,l){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)yv(t,n,s,l),n=n.sibling}function yv(t,n,s,l){var d=n.flags;switch(n.tag){case 0:case 11:case 15:Ui(t,n,s,l),d&2048&&ol(9,n);break;case 1:Ui(t,n,s,l);break;case 3:Ui(t,n,s,l),d&2048&&(t=null,n.alternate!==null&&(t=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==t&&(n.refCount++,t!=null&&Wo(t)));break;case 12:if(d&2048){Ui(t,n,s,l),t=n.stateNode;try{var m=n.memoizedProps,w=m.id,P=m.onPostCommit;typeof P=="function"&&P(w,n.alternate===null?"mount":"update",t.passiveEffectDuration,-0)}catch(j){Yt(n,n.return,j)}}else Ui(t,n,s,l);break;case 31:Ui(t,n,s,l);break;case 13:Ui(t,n,s,l);break;case 23:break;case 22:m=n.stateNode,w=n.alternate,n.memoizedState!==null?m._visibility&2?Ui(t,n,s,l):cl(t,n):m._visibility&2?Ui(t,n,s,l):(m._visibility|=2,Hs(t,n,s,l,(n.subtreeFlags&10256)!==0||!1)),d&2048&&Gd(w,n);break;case 24:Ui(t,n,s,l),d&2048&&jd(n.alternate,n);break;default:Ui(t,n,s,l)}}function Hs(t,n,s,l,d){for(d=d&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var m=t,w=n,P=s,j=l,ce=w.flags;switch(w.tag){case 0:case 11:case 15:Hs(m,w,P,j,d),ol(8,w);break;case 23:break;case 22:var Ee=w.stateNode;w.memoizedState!==null?Ee._visibility&2?Hs(m,w,P,j,d):cl(m,w):(Ee._visibility|=2,Hs(m,w,P,j,d)),d&&ce&2048&&Gd(w.alternate,w);break;case 24:Hs(m,w,P,j,d),d&&ce&2048&&jd(w.alternate,w);break;default:Hs(m,w,P,j,d)}n=n.sibling}}function cl(t,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var s=t,l=n,d=l.flags;switch(l.tag){case 22:cl(s,l),d&2048&&Gd(l.alternate,l);break;case 24:cl(s,l),d&2048&&jd(l.alternate,l);break;default:cl(s,l)}n=n.sibling}}var ul=8192;function Fs(t,n,s){if(t.subtreeFlags&ul)for(t=t.child;t!==null;)bv(t,n,s),t=t.sibling}function bv(t,n,s){switch(t.tag){case 26:Fs(t,n,s),t.flags&ul&&t.memoizedState!==null&&AA(s,Bi,t.memoizedState,t.memoizedProps);break;case 5:Fs(t,n,s);break;case 3:case 4:var l=Bi;Bi=su(t.stateNode.containerInfo),Fs(t,n,s),Bi=l;break;case 22:t.memoizedState===null&&(l=t.alternate,l!==null&&l.memoizedState!==null?(l=ul,ul=16777216,Fs(t,n,s),ul=l):Fs(t,n,s));break;default:Fs(t,n,s)}}function Sv(t){var n=t.alternate;if(n!==null&&(t=n.child,t!==null)){n.child=null;do n=t.sibling,t.sibling=null,t=n;while(t!==null)}}function fl(t){var n=t.deletions;if((t.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];Tn=l,Mv(l,t)}Sv(t)}if(t.subtreeFlags&10256)for(t=t.child;t!==null;)Ev(t),t=t.sibling}function Ev(t){switch(t.tag){case 0:case 11:case 15:fl(t),t.flags&2048&&nr(9,t,t.return);break;case 3:fl(t);break;case 12:fl(t);break;case 22:var n=t.stateNode;t.memoizedState!==null&&n._visibility&2&&(t.return===null||t.return.tag!==13)?(n._visibility&=-3,Zc(t)):fl(t);break;default:fl(t)}}function Zc(t){var n=t.deletions;if((t.flags&16)!==0){if(n!==null)for(var s=0;s<n.length;s++){var l=n[s];Tn=l,Mv(l,t)}Sv(t)}for(t=t.child;t!==null;){switch(n=t,n.tag){case 0:case 11:case 15:nr(8,n,n.return),Zc(n);break;case 22:s=n.stateNode,s._visibility&2&&(s._visibility&=-3,Zc(n));break;default:Zc(n)}t=t.sibling}}function Mv(t,n){for(;Tn!==null;){var s=Tn;switch(s.tag){case 0:case 11:case 15:nr(8,s,n);break;case 23:case 22:if(s.memoizedState!==null&&s.memoizedState.cachePool!==null){var l=s.memoizedState.cachePool.pool;l!=null&&l.refCount++}break;case 24:Wo(s.memoizedState.cache)}if(l=s.child,l!==null)l.return=s,Tn=l;else e:for(s=t;Tn!==null;){l=Tn;var d=l.sibling,m=l.return;if(hv(l),l===s){Tn=null;break e}if(d!==null){d.return=m,Tn=d;break e}Tn=m}}}var _M={getCacheForType:function(t){var n=Nn(gn),s=n.data.get(t);return s===void 0&&(s=t(),n.data.set(t,s)),s},cacheSignal:function(){return Nn(gn).controller.signal}},HM=typeof WeakMap=="function"?WeakMap:Map,Gt=0,Jt=null,Nt=null,Pt=0,jt=0,li=null,ir=!1,Vs=!1,Yd=!1,Ma=0,cn=0,ar=0,Xr=0,Xd=0,ci=0,Gs=0,dl=null,$n=null,Zd=!1,Wc=0,Av=0,Qc=1/0,qc=null,rr=null,En=0,sr=null,js=null,Aa=0,Wd=0,Qd=null,wv=null,hl=0,qd=null;function ui(){return(Gt&2)!==0&&Pt!==0?Pt&-Pt:_.T!==null?nh():Fn()}function Tv(){if(ci===0)if((Pt&536870912)===0||Bt){var t=Ue;Ue<<=1,(Ue&3932160)===0&&(Ue=262144),ci=t}else ci=536870912;return t=si.current,t!==null&&(t.flags|=32),ci}function ei(t,n,s){(t===Jt&&(jt===2||jt===9)||t.cancelPendingCommit!==null)&&(Ys(t,0),or(t,Pt,ci,!1)),$t(t,s),((Gt&2)===0||t!==Jt)&&(t===Jt&&((Gt&2)===0&&(Xr|=s),cn===4&&or(t,Pt,ci,!1)),qi(t))}function Rv(t,n,s){if((Gt&6)!==0)throw Error(r(327));var l=!s&&(n&127)===0&&(n&t.expiredLanes)===0||et(t,n),d=l?GM(t,n):Jd(t,n,!0),m=l;do{if(d===0){Vs&&!l&&or(t,n,0,!1);break}else{if(s=t.current.alternate,m&&!FM(s)){d=Jd(t,n,!1),m=!1;continue}if(d===2){if(m=n,t.errorRecoveryDisabledLanes&m)var w=0;else w=t.pendingLanes&-536870913,w=w!==0?w:w&536870912?536870912:0;if(w!==0){n=w;e:{var P=t;d=dl;var j=P.current.memoizedState.isDehydrated;if(j&&(Ys(P,w).flags|=256),w=Jd(P,w,!1),w!==2){if(Yd&&!j){P.errorRecoveryDisabledLanes|=m,Xr|=m,d=4;break e}m=$n,$n=d,m!==null&&($n===null?$n=m:$n.push.apply($n,m))}d=w}if(m=!1,d!==2)continue}}if(d===1){Ys(t,0),or(t,n,0,!0);break}e:{switch(l=t,m=d,m){case 0:case 1:throw Error(r(345));case 4:if((n&4194048)!==n)break;case 6:or(l,n,ci,!ir);break e;case 2:$n=null;break;case 3:case 5:break;default:throw Error(r(329))}if((n&62914560)===n&&(d=Wc+300-N(),10<d)){if(or(l,n,ci,!ir),be(l,0,!0)!==0)break e;Aa=n,l.timeoutHandle=ax(Cv.bind(null,l,s,$n,qc,Zd,n,ci,Xr,Gs,ir,m,"Throttled",-0,0),d);break e}Cv(l,s,$n,qc,Zd,n,ci,Xr,Gs,ir,m,null,-0,0)}}break}while(!0);qi(t)}function Cv(t,n,s,l,d,m,w,P,j,ce,Ee,De,ue,ge){if(t.timeoutHandle=-1,De=n.subtreeFlags,De&8192||(De&16785408)===16785408){De={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:ca},bv(n,m,De);var it=(m&62914560)===m?Wc-N():(m&4194048)===m?Av-N():0;if(it=wA(De,it),it!==null){Aa=m,t.cancelPendingCommit=it(Uv.bind(null,t,n,m,s,l,d,w,P,j,Ee,De,null,ue,ge)),or(t,m,w,!ce);return}}
vendor: 18,975 bytes, line 8
8Uv(t,n,m,s,l,d,w,P,j)}function FM(t){for(var n=t;;){var s=n.tag;if((s===0||s===11||s===15)&&n.flags&16384&&(s=n.updateQueue,s!==null&&(s=s.stores,s!==null)))for(var l=0;l<s.length;l++){var d=s[l],m=d.getSnapshot;d=d.value;try{if(!ai(m(),d))return!1}catch{return!1}}if(s=n.child,n.subtreeFlags&16384&&s!==null)s.return=n,n=s;else{if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function or(t,n,s,l){n&=~Xd,n&=~Xr,t.suspendedLanes|=n,t.pingedLanes&=~n,l&&(t.warmLanes|=n),l=t.expirationTimes;for(var d=n;0<d;){var m=31-He(d),w=1<<m;l[m]=-1,d&=~w}s!==0&&Yi(t,s,n)}function Kc(){return(Gt&6)===0?(pl(0),!1):!0}function Kd(){if(Nt!==null){if(jt===0)var t=Nt.return;else t=Nt,ha=kr=null,hd(t),Bs=null,qo=0,t=Nt;for(;t!==null;)rv(t.alternate,t),t=t.return;Nt=null}}function Ys(t,n){var s=t.timeoutHandle;s!==-1&&(t.timeoutHandle=-1,oA(s)),s=t.cancelPendingCommit,s!==null&&(t.cancelPendingCommit=null,s()),Aa=0,Kd(),Jt=t,Nt=s=fa(t.current,null),Pt=n,jt=0,li=null,ir=!1,Vs=et(t,n),Yd=!1,Gs=ci=Xd=Xr=ar=cn=0,$n=dl=null,Zd=!1,(n&8)!==0&&(n|=n&32);var l=t.entangledLanes;if(l!==0)for(t=t.entanglements,l&=n;0<l;){var d=31-He(l),m=1<<d;n|=t[d],l&=~m}return Ma=n,xc(),s}function Iv(t,n){wt=null,_.H=al,n===Os||n===Tc?(n=Yg(),jt=3):n===td?(n=Yg(),jt=4):jt=n===Id?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,li=n,Nt===null&&(cn=1,Hc(t,xi(n,t.current)))}function Dv(){var t=si.current;return t===null?!0:(Pt&4194048)===Pt?Ei===null:(Pt&62914560)===Pt||(Pt&536870912)!==0?t===Ei:!1}function Nv(){var t=_.H;return _.H=al,t===null?al:t}function Lv(){var t=_.A;return _.A=_M,t}function Jc(){cn=4,ir||(Pt&4194048)!==Pt&&si.current!==null||(Vs=!0),(ar&134217727)===0&&(Xr&134217727)===0||Jt===null||or(Jt,Pt,ci,!1)}function Jd(t,n,s){var l=Gt;Gt|=2;var d=Nv(),m=Lv();(Jt!==t||Pt!==n)&&(qc=null,Ys(t,n)),n=!1;var w=cn;e:do try{if(jt!==0&&Nt!==null){var P=Nt,j=li;switch(jt){case 8:Kd(),w=6;break e;case 3:case 2:case 9:case 6:si.current===null&&(n=!0);var ce=jt;if(jt=0,li=null,Xs(t,P,j,ce),s&&Vs){w=0;break e}break;default:ce=jt,jt=0,li=null,Xs(t,P,j,ce)}}VM(),w=cn;break}catch(Ee){Iv(t,Ee)}while(!0);return n&&t.shellSuspendCounter++,ha=kr=null,Gt=l,_.H=d,_.A=m,Nt===null&&(Jt=null,Pt=0,xc()),w}function VM(){for(;Nt!==null;)Pv(Nt)}function GM(t,n){var s=Gt;Gt|=2;var l=Nv(),d=Lv();Jt!==t||Pt!==n?(qc=null,Qc=N()+500,Ys(t,n)):Vs=et(t,n);e:do try{if(jt!==0&&Nt!==null){n=Nt;var m=li;t:switch(jt){case 1:jt=0,li=null,Xs(t,n,m,1);break;case 2:case 9:if(Gg(m)){jt=0,li=null,Ov(n);break}n=function(){jt!==2&&jt!==9||Jt!==t||(jt=7),qi(t)},m.then(n,n);break e;case 3:jt=7;break e;case 4:jt=5;break e;case 7:Gg(m)?(jt=0,li=null,Ov(n)):(jt=0,li=null,Xs(t,n,m,7));break;case 5:var w=null;switch(Nt.tag){case 26:w=Nt.memoizedState;case 5:case 27:var P=Nt;if(w?yx(w):P.stateNode.complete){jt=0,li=null;var j=P.sibling;if(j!==null)Nt=j;else{var ce=P.return;ce!==null?(Nt=ce,$c(ce)):Nt=null}break t}}jt=0,li=null,Xs(t,n,m,5);break;case 6:jt=0,li=null,Xs(t,n,m,6);break;case 8:Kd(),cn=6;break e;default:throw Error(r(462))}}jM();break}catch(Ee){Iv(t,Ee)}while(!0);return ha=kr=null,_.H=l,_.A=d,Gt=s,Nt!==null?0:(Jt=null,Pt=0,xc(),cn)}function jM(){for(;Nt!==null&&!Ie();)Pv(Nt)}function Pv(t){var n=iv(t.alternate,t,Ma);t.memoizedProps=t.pendingProps,n===null?$c(t):Nt=n}function Ov(t){var n=t,s=n.alternate;switch(n.tag){case 15:case 0:n=K0(s,n,n.pendingProps,n.type,void 0,Pt);break;case 11:n=K0(s,n,n.pendingProps,n.type.render,n.ref,Pt);break;case 5:hd(n);default:rv(s,n),n=Nt=Lg(n,Ma),n=iv(s,n,Ma)}t.memoizedProps=t.pendingProps,n===null?$c(t):Nt=n}function Xs(t,n,s,l){ha=kr=null,hd(n),Bs=null,qo=0;var d=n.return;try{if(LM(t,d,n,s,Pt)){cn=1,Hc(t,xi(s,t.current)),Nt=null;return}}catch(m){if(d!==null)throw Nt=d,m;cn=1,Hc(t,xi(s,t.current)),Nt=null;return}n.flags&32768?(Bt||l===1?t=!0:Vs||(Pt&536870912)!==0?t=!1:(ir=t=!0,(l===2||l===9||l===3||l===6)&&(l=si.current,l!==null&&l.tag===13&&(l.flags|=16384))),Bv(n,t)):$c(n)}function $c(t){var n=t;do{if((n.flags&32768)!==0){Bv(n,ir);return}t=n.return;var s=BM(n.alternate,n,Ma);if(s!==null){Nt=s;return}if(n=n.sibling,n!==null){Nt=n;return}Nt=n=t}while(n!==null);cn===0&&(cn=5)}function Bv(t,n){do{var s=UM(t.alternate,t);if(s!==null){s.flags&=32767,Nt=s;return}if(s=t.return,s!==null&&(s.flags|=32768,s.subtreeFlags=0,s.deletions=null),!n&&(t=t.sibling,t!==null)){Nt=t;return}Nt=t=s}while(t!==null);cn=6,Nt=null}function Uv(t,n,s,l,d,m,w,P,j){t.cancelPendingCommit=null;do eu();while(En!==0);if((Gt&6)!==0)throw Error(r(327));if(n!==null){if(n===t.current)throw Error(r(177));if(m=n.lanes|n.childLanes,m|=Hf,Zn(t,s,m,w,P,j),t===Jt&&(Nt=Jt=null,Pt=0),js=n,sr=t,Aa=s,Wd=m,Qd=d,wv=l,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(t.callbackNode=null,t.callbackPriority=0,WM(ve,function(){return Fv(),null})):(t.callbackNode=null,t.callbackPriority=0),l=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||l){l=_.T,_.T=null,d=F.p,F.p=2,w=Gt,Gt|=4;try{kM(t,n,s)}finally{Gt=w,F.p=d,_.T=l}}En=1,kv(),zv(),_v()}}function kv(){if(En===1){En=0;var t=sr,n=js,s=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||s){s=_.T,_.T=null;var l=F.p;F.p=2;var d=Gt;Gt|=4;try{vv(n,t);var m=uh,w=Mg(t.containerInfo),P=m.focusedElem,j=m.selectionRange;if(w!==P&&P&&P.ownerDocument&&Eg(P.ownerDocument.documentElement,P)){if(j!==null&&Bf(P)){var ce=j.start,Ee=j.end;if(Ee===void 0&&(Ee=ce),"selectionStart"in P)P.selectionStart=ce,P.selectionEnd=Math.min(Ee,P.value.length);else{var De=P.ownerDocument||document,ue=De&&De.defaultView||window;if(ue.getSelection){var ge=ue.getSelection(),it=P.textContent.length,mt=Math.min(j.start,it),Qt=j.end===void 0?mt:Math.min(j.end,it);!ge.extend&&mt>Qt&&(w=Qt,Qt=mt,mt=w);var te=Sg(P,mt),K=Sg(P,Qt);if(te&&K&&(ge.rangeCount!==1||ge.anchorNode!==te.node||ge.anchorOffset!==te.offset||ge.focusNode!==K.node||ge.focusOffset!==K.offset)){var le=De.createRange();le.setStart(te.node,te.offset),ge.removeAllRanges(),mt>Qt?(ge.addRange(le),ge.extend(K.node,K.offset)):(le.setEnd(K.node,K.offset),ge.addRange(le))}}}}for(De=[],ge=P;ge=ge.parentNode;)ge.nodeType===1&&De.push({element:ge,left:ge.scrollLeft,top:ge.scrollTop});for(typeof P.focus=="function"&&P.focus(),P=0;P<De.length;P++){var Re=De[P];Re.element.scrollLeft=Re.left,Re.element.scrollTop=Re.top}}du=!!ch,uh=ch=null}finally{Gt=d,F.p=l,_.T=s}}t.current=n,En=2}}function zv(){if(En===2){En=0;var t=sr,n=js,s=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||s){s=_.T,_.T=null;var l=F.p;F.p=2;var d=Gt;Gt|=4;try{dv(t,n.alternate,n)}finally{Gt=d,F.p=l,_.T=s}}En=3}}function _v(){if(En===4||En===3){En=0,z();var t=sr,n=js,s=Aa,l=wv;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?En=5:(En=0,js=sr=null,Hv(t,t.pendingLanes));var d=t.pendingLanes;if(d===0&&(rr=null),pi(s),n=n.stateNode,Le&&typeof Le.onCommitFiberRoot=="function")try{Le.onCommitFiberRoot(Pe,n,void 0,(n.current.flags&128)===128)}catch{}if(l!==null){n=_.T,d=F.p,F.p=2,_.T=null;try{for(var m=t.onRecoverableError,w=0;w<l.length;w++){var P=l[w];m(P.value,{componentStack:P.stack})}}finally{_.T=n,F.p=d}}(Aa&3)!==0&&eu(),qi(t),d=t.pendingLanes,(s&261930)!==0&&(d&42)!==0?t===qd?hl++:(hl=0,qd=t):hl=0,pl(0)}}function Hv(t,n){(t.pooledCacheLanes&=n)===0&&(n=t.pooledCache,n!=null&&(t.pooledCache=null,Wo(n)))}function eu(){return kv(),zv(),_v(),Fv()}function Fv(){if(En!==5)return!1;var t=sr,n=Wd;Wd=0;var s=pi(Aa),l=_.T,d=F.p;try{F.p=32>s?32:s,_.T=null,s=Qd,Qd=null;var m=sr,w=Aa;if(En=0,js=sr=null,Aa=0,(Gt&6)!==0)throw Error(r(331));var P=Gt;if(Gt|=4,Ev(m.current),yv(m,m.current,w,s),Gt=P,pl(0,!1),Le&&typeof Le.onPostCommitFiberRoot=="function")try{Le.onPostCommitFiberRoot(Pe,m)}catch{}return!0}finally{F.p=d,_.T=l,Hv(t,n)}}function Vv(t,n,s){n=xi(s,n),n=Cd(t.stateNode,n,2),t=$a(t,n,2),t!==null&&($t(t,2),qi(t))}function Yt(t,n,s){if(t.tag===3)Vv(t,t,s);else for(;n!==null;){if(n.tag===3){Vv(n,t,s);break}else if(n.tag===1){var l=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof l.componentDidCatch=="function"&&(rr===null||!rr.has(l))){t=xi(s,t),s=G0(2),l=$a(n,s,2),l!==null&&(j0(s,l,n,t),$t(l,2),qi(l));break}}n=n.return}}function $d(t,n,s){var l=t.pingCache;if(l===null){l=t.pingCache=new HM;var d=new Set;l.set(n,d)}else d=l.get(n),d===void 0&&(d=new Set,l.set(n,d));d.has(s)||(Yd=!0,d.add(s),t=YM.bind(null,t,n,s),n.then(t,t))}function YM(t,n,s){var l=t.pingCache;l!==null&&l.delete(n),t.pingedLanes|=t.suspendedLanes&s,t.warmLanes&=~s,Jt===t&&(Pt&s)===s&&(cn===4||cn===3&&(Pt&62914560)===Pt&&300>N()-Wc?(Gt&2)===0&&Ys(t,0):Xd|=s,Gs===Pt&&(Gs=0)),qi(t)}function Gv(t,n){n===0&&(n=vt()),t=Or(t,n),t!==null&&($t(t,n),qi(t))}function XM(t){var n=t.memoizedState,s=0;n!==null&&(s=n.retryLane),Gv(t,s)}function ZM(t,n){var s=0;switch(t.tag){case 31:case 13:var l=t.stateNode,d=t.memoizedState;d!==null&&(s=d.retryLane);break;case 19:l=t.stateNode;break;case 22:l=t.stateNode._retryCache;break;default:throw Error(r(314))}l!==null&&l.delete(n),Gv(t,s)}function WM(t,n){return ct(t,n)}var tu=null,Zs=null,eh=!1,nu=!1,th=!1,lr=0;function qi(t){t!==Zs&&t.next===null&&(Zs===null?tu=Zs=t:Zs=Zs.next=t),nu=!0,eh||(eh=!0,qM())}function pl(t,n){if(!th&&nu){th=!0;do for(var s=!1,l=tu;l!==null;){if(t!==0){var d=l.pendingLanes;if(d===0)var m=0;else{var w=l.suspendedLanes,P=l.pingedLanes;m=(1<<31-He(42|t)+1)-1,m&=d&~(w&~P),m=m&201326741?m&201326741|1:m?m|2:0}m!==0&&(s=!0,Zv(l,m))}else m=Pt,m=be(l,l===Jt?m:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),(m&3)===0||et(l,m)||(s=!0,Zv(l,m));l=l.next}while(s);th=!1}}function QM(){jv()}function jv(){nu=eh=!1;var t=0;lr!==0&&sA()&&(t=lr);for(var n=N(),s=null,l=tu;l!==null;){var d=l.next,m=Yv(l,n);m===0?(l.next=null,s===null?tu=d:s.next=d,d===null&&(Zs=s)):(s=l,(t!==0||(m&3)!==0)&&(nu=!0)),l=d}En!==0&&En!==5||pl(t),lr!==0&&(lr=0)}function Yv(t,n){for(var s=t.suspendedLanes,l=t.pingedLanes,d=t.expirationTimes,m=t.pendingLanes&-62914561;0<m;){var w=31-He(m),P=1<<w,j=d[w];j===-1?((P&s)===0||(P&l)!==0)&&(d[w]=$e(P,n)):j<=n&&(t.expiredLanes|=P),m&=~P}if(n=Jt,s=Pt,s=be(t,t===n?s:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),l=t.callbackNode,s===0||t===n&&(jt===2||jt===9)||t.cancelPendingCommit!==null)return l!==null&&l!==null&&pe(l),t.callbackNode=null,t.callbackPriority=0;if((s&3)===0||et(t,s)){if(n=s&-s,n===t.callbackPriority)return n;switch(l!==null&&pe(l),pi(s)){case 2:case 8:s=Ae;break;case 32:s=ve;break;case 268435456:s=Be;break;default:s=ve}return l=Xv.bind(null,t),s=ct(s,l),t.callbackPriority=n,t.callbackNode=s,n}return l!==null&&l!==null&&pe(l),t.callbackPriority=2,t.callbackNode=null,2}function Xv(t,n){if(En!==0&&En!==5)return t.callbackNode=null,t.callbackPriority=0,null;var s=t.callbackNode;if(eu()&&t.callbackNode!==s)return null;var l=Pt;return l=be(t,t===Jt?l:0,t.cancelPendingCommit!==null||t.timeoutHandle!==-1),l===0?null:(Rv(t,l,n),Yv(t,N()),t.callbackNode!=null&&t.callbackNode===s?Xv.bind(null,t):null)}function Zv(t,n){if(eu())return null;Rv(t,n,!0)}function qM(){lA(function(){(Gt&6)!==0?ct(xe,QM):jv()})}function nh(){if(lr===0){var t=Ls;t===0&&(t=ze,ze<<=1,(ze&261888)===0&&(ze=256)),lr=t}return lr}function Wv(t){return t==null||typeof t=="symbol"||typeof t=="boolean"?null:typeof t=="function"?t:uc(""+t)}function Qv(t,n){var s=n.ownerDocument.createElement("input");return s.name=n.name,s.value=n.value,t.id&&s.setAttribute("form",t.id),n.parentNode.insertBefore(s,n),t=new FormData(t),s.parentNode.removeChild(s),t}function KM(t,n,s,l,d){if(n==="submit"&&s&&s.stateNode===d){var m=Wv((d[un]||null).action),w=l.submitter;w&&(n=(n=w[un]||null)?Wv(n.formAction):w.getAttribute("formAction"),n!==null&&(m=n,w=null));var P=new pc("action","action",null,l,d);t.push({event:P,listeners:[{instance:null,listener:function(){if(l.defaultPrevented){if(lr!==0){var j=w?Qv(d,w):new FormData(d);Ed(s,{pending:!0,data:j,method:d.method,action:m},null,j)}}else typeof m=="function"&&(P.preventDefault(),j=w?Qv(d,w):new FormData(d),Ed(s,{pending:!0,data:j,method:d.method,action:m},m,j))},currentTarget:d}]})}}for(var ih=0;ih<_f.length;ih++){var ah=_f[ih],JM=ah.toLowerCase(),$M=ah[0].toUpperCase()+ah.slice(1);Oi(JM,"on"+$M)}Oi(Tg,"onAnimationEnd"),Oi(Rg,"onAnimationIteration"),Oi(Cg,"onAnimationStart"),Oi("dblclick","onDoubleClick"),Oi("focusin","onFocus"),Oi("focusout","onBlur"),Oi(mM,"onTransitionRun"),Oi(gM,"onTransitionStart"),Oi(vM,"onTransitionCancel"),Oi(Ig,"onTransitionEnd"),_e("onMouseEnter",["mouseout","mouseover"]),_e("onMouseLeave",["mouseout","mouseover"]),_e("onPointerEnter",["pointerout","pointerover"]),_e("onPointerLeave",["pointerout","pointerover"]),re("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),re("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),re("onBeforeInput",["compositionend","keypress","textInput","paste"]),re("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),re("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),re("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var ml="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),eA=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(ml));function qv(t,n){n=(n&4)!==0;for(var s=0;s<t.length;s++){var l=t[s],d=l.event;l=l.listeners;e:{var m=void 0;if(n)for(var w=l.length-1;0<=w;w--){var P=l[w],j=P.instance,ce=P.currentTarget;if(P=P.listener,j!==m&&d.isPropagationStopped())break e;m=P,d.currentTarget=ce;try{m(d)}catch(Ee){vc(Ee)}d.currentTarget=null,m=j}else for(w=0;w<l.length;w++){if(P=l[w],j=P.instance,ce=P.currentTarget,P=P.listener,j!==m&&d.isPropagationStopped())break e;m=P,d.currentTarget=ce;try{m(d)}catch(Ee){vc(Ee)}d.currentTarget=null,m=j}}}}function Lt(t,n){var s=n[Li];s===void 0&&(s=n[Li]=new Set);var l=t+"__bubble";s.has(l)||(Kv(n,t,2,!1),s.add(l))}function rh(t,n,s){var l=0;n&&(l|=4),Kv(s,t,l,n)}var iu="_reactListening"+Math.random().toString(36).slice(2);function sh(t){if(!t[iu]){t[iu]=!0,de.forEach(function(s){s!=="selectionchange"&&(eA.has(s)||rh(s,!1,t),rh(s,!0,t))});var n=t.nodeType===9?t:t.ownerDocument;n===null||n[iu]||(n[iu]=!0,rh("selectionchange",!1,n))}}function Kv(t,n,s,l){switch(Tx(n)){case 2:var d=CA;break;case 8:d=IA;break;default:d=Sh}s=d.bind(null,n,s,t),d=void 0,!Tf||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(d=!0),l?d!==void 0?t.addEventListener(n,s,{capture:!0,passive:d}):t.addEventListener(n,s,!0):d!==void 0?t.addEventListener(n,s,{passive:d}):t.addEventListener(n,s,!1)}function oh(t,n,s,l,d){var m=l;if((n&1)===0&&(n&2)===0&&l!==null)e:for(;;){if(l===null)return;var w=l.tag;if(w===3||w===4){var P=l.stateNode.containerInfo;if(P===d)break;if(w===4)for(w=l.return;w!==null;){var j=w.tag;if((j===3||j===4)&&w.stateNode.containerInfo===d)return;w=w.return}for(;P!==null;){if(w=Xi(P),w===null)return;if(j=w.tag,j===5||j===6||j===26||j===27){l=m=w;continue e}P=P.parentNode}}l=l.return}ng(function(){var ce=m,Ee=Af(s),De=[];e:{var ue=Dg.get(t);if(ue!==void 0){var ge=pc,it=t;switch(t){case"keypress":if(dc(s)===0)break e;case"keydown":case"keyup":ge=ZE;break;case"focusin":it="focus",ge=Df;break;case"focusout":it="blur",ge=Df;break;case"beforeblur":case"afterblur":ge=Df;break;case"click":if(s.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ge=rg;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ge=BE;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ge=qE;break;case Tg:case Rg:case Cg:ge=zE;break;case Ig:ge=JE;break;case"scroll":case"scrollend":ge=PE;break;case"wheel":ge=eM;break;case"copy":case"cut":case"paste":ge=HE;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ge=og;break;case"toggle":case"beforetoggle":ge=nM}var mt=(n&4)!==0,Qt=!mt&&(t==="scroll"||t==="scrollend"),te=mt?ue!==null?ue+"Capture":null:ue;mt=[];for(var K=ce,le;K!==null;){var Re=K;if(le=Re.stateNode,Re=Re.tag,Re!==5&&Re!==26&&Re!==27||le===null||te===null||(Re=ko(K,te),Re!=null&&mt.push(gl(K,Re,le))),Qt)break;K=K.return}0<mt.length&&(ue=new ge(ue,it,null,s,Ee),De.push({event:ue,listeners:mt}))}}if((n&7)===0){e:{if(ue=t==="mouseover"||t==="pointerover",ge=t==="mouseout"||t==="pointerout",ue&&s!==Mf&&(it=s.relatedTarget||s.fromElement)&&(Xi(it)||it[Ni]))break e;if((ge||ue)&&(ue=Ee.window===Ee?Ee:(ue=Ee.ownerDocument)?ue.defaultView||ue.parentWindow:window,ge?(it=s.relatedTarget||s.toElement,ge=ce,it=it?Xi(it):null,it!==null&&(Qt=c(it),mt=it.tag,it!==Qt||mt!==5&&mt!==27&&mt!==6)&&(it=null)):(ge=null,it=ce),ge!==it)){if(mt=rg,Re="onMouseLeave",te="onMouseEnter",K="mouse",(t==="pointerout"||t==="pointerover")&&(mt=og,Re="onPointerLeave",te="onPointerEnter",K="pointer"),Qt=ge==null?ue:oa(ge),le=it==null?ue:oa(it),ue=new mt(Re,K+"leave",ge,s,Ee),ue.target=Qt,ue.relatedTarget=le,Re=null,Xi(Ee)===ce&&(mt=new mt(te,K+"enter",it,s,Ee),mt.target=le,mt.relatedTarget=Qt,Re=mt),Qt=Re,ge&&it)t:{for(mt=tA,te=ge,K=it,le=0,Re=te;Re;Re=mt(Re))le++;Re=0;for(var ht=K;ht;ht=mt(ht))Re++;for(;0<le-Re;)te=mt(te),le--;for(;0<Re-le;)K=mt(K),Re--;for(;le--;){if(te===K||K!==null&&te===K.alternate){mt=te;break t}te=mt(te),K=mt(K)}mt=null}else mt=null;ge!==null&&Jv(De,ue,ge,mt,!1),it!==null&&Qt!==null&&Jv(De,Qt,it,mt,!0)}}e:{if(ue=ce?oa(ce):window,ge=ue.nodeName&&ue.nodeName.toLowerCase(),ge==="select"||ge==="input"&&ue.type==="file")var Ht=mg;else if(hg(ue))if(gg)Ht=dM;else{Ht=uM;var ot=cM}else ge=ue.nodeName,!ge||ge.toLowerCase()!=="input"||ue.type!=="checkbox"&&ue.type!=="radio"?ce&&bs(ce.elementType)&&(Ht=mg):Ht=fM;if(Ht&&(Ht=Ht(t,ce))){pg(De,Ht,s,Ee);break e}ot&&ot(t,ue,ce),t==="focusout"&&ce&&ue.type==="number"&&ce.memoizedProps.value!=null&&Wn(ue,"number",ue.value)}switch(ot=ce?oa(ce):window,t){case"focusin":(hg(ot)||ot.contentEditable==="true")&&(As=ot,Uf=ce,Yo=null);break;case"focusout":Yo=Uf=As=null;break;case"mousedown":kf=!0;break;case"contextmenu":case"mouseup":case"dragend":kf=!1,Ag(De,s,Ee);break;case"selectionchange":if(pM)break;case"keydown":case"keyup":Ag(De,s,Ee)}var Tt;if(Lf)e:{switch(t){case"compositionstart":var Ot="onCompositionStart";break e;case"compositionend":Ot="onCompositionEnd";break e;case"compositionupdate":Ot="onCompositionUpdate";break e}Ot=void 0}else Ms?fg(t,s)&&(Ot="onCompositionEnd"):t==="keydown"&&s.keyCode===229&&(Ot="onCompositionStart");Ot&&(lg&&s.locale!=="ko"&&(Ms||Ot!=="onCompositionStart"?Ot==="onCompositionEnd"&&Ms&&(Tt=ig()):(Xa=Ee,Rf="value"in Xa?Xa.value:Xa.textContent,Ms=!0)),ot=au(ce,Ot),0<ot.length&&(Ot=new sg(Ot,t,null,s,Ee),De.push({event:Ot,listeners:ot}
vendor: 6,706 bytes, lines 8-9
8),Tt?Ot.data=Tt:(Tt=dg(s),Tt!==null&&(Ot.data=Tt)))),(Tt=aM?rM(t,s):sM(t,s))&&(Ot=au(ce,"onBeforeInput"),0<Ot.length&&(ot=new sg("onBeforeInput","beforeinput",null,s,Ee),De.push({event:ot,listeners:Ot}),ot.data=Tt)),KM(De,t,ce,s,Ee)}qv(De,n)})}function gl(t,n,s){return{instance:t,listener:n,currentTarget:s}}function au(t,n){for(var s=n+"Capture",l=[];t!==null;){var d=t,m=d.stateNode;if(d=d.tag,d!==5&&d!==26&&d!==27||m===null||(d=ko(t,s),d!=null&&l.unshift(gl(t,d,m)),d=ko(t,n),d!=null&&l.push(gl(t,d,m))),t.tag===3)return l;t=t.return}return[]}function tA(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5&&t.tag!==27);return t||null}function Jv(t,n,s,l,d){for(var m=n._reactName,w=[];s!==null&&s!==l;){var P=s,j=P.alternate,ce=P.stateNode;if(P=P.tag,j!==null&&j===l)break;P!==5&&P!==26&&P!==27||ce===null||(j=ce,d?(ce=ko(s,m),ce!=null&&w.unshift(gl(s,ce,j))):d||(ce=ko(s,m),ce!=null&&w.push(gl(s,ce,j)))),s=s.return}w.length!==0&&t.push({event:n,listeners:w})}var nA=/\r\n?/g,iA=/\u0000|\uFFFD/g;function $v(t){return(typeof t=="string"?t:""+t).replace(nA,` 9`).replace(iA,"")}function ex(t,n){return n=$v(n),$v(t)===n}function Wt(t,n,s,l,d,m){switch(s){case"children":typeof l=="string"?n==="body"||n==="textarea"&&l===""||jn(t,l):(typeof l=="number"||typeof l=="bigint")&&n!=="body"&&jn(t,""+l);break;case"className":Ve(t,"class",l);break;case"tabIndex":Ve(t,"tabindex",l);break;case"dir":case"role":case"viewBox":case"width":case"height":Ve(t,s,l);break;case"style":la(t,l,m);break;case"data":if(n!=="object"){Ve(t,"data",l);break}case"src":case"href":if(l===""&&(n!=="a"||s!=="href")){t.removeAttribute(s);break}if(l==null||typeof l=="function"||typeof l=="symbol"||typeof l=="boolean"){t.removeAttribute(s);break}l=uc(""+l),t.setAttribute(s,l);break;case"action":case"formAction":if(typeof l=="function"){t.setAttribute(s,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof m=="function"&&(s==="formAction"?(n!=="input"&&Wt(t,n,"name",d.name,d,null),Wt(t,n,"formEncType",d.formEncType,d,null),Wt(t,n,"formMethod",d.formMethod,d,null),Wt(t,n,"formTarget",d.formTarget,d,null)):(Wt(t,n,"encType",d.encType,d,null),Wt(t,n,"method",d.method,d,null),Wt(t,n,"target",d.target,d,null)));if(l==null||typeof l=="symbol"||typeof l=="boolean"){t.removeAttribute(s);break}l=uc(""+l),t.setAttribute(s,l);break;case"onClick":l!=null&&(t.onclick=ca);break;case"onScroll":l!=null&&Lt("scroll",t);break;case"onScrollEnd":l!=null&&Lt("scrollend",t);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(r(61));if(s=l.__html,s!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=s}}break;case"multiple":t.multiple=l&&typeof l!="function"&&typeof l!="symbol";break;case"muted":t.muted=l&&typeof l!="function"&&typeof l!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(l==null||typeof l=="function"||typeof l=="boolean"||typeof l=="symbol"){t.removeAttribute("xlink:href");break}s=uc(""+l),t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",s);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":l!=null&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(s,""+l):t.removeAttribute(s);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":l&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(s,""):t.removeAttribute(s);break;case"capture":case"download":l===!0?t.setAttribute(s,""):l!==!1&&l!=null&&typeof l!="function"&&typeof l!="symbol"?t.setAttribute(s,l):t.removeAttribute(s);break;case"cols":case"rows":case"size":case"span":l!=null&&typeof l!="function"&&typeof l!="symbol"&&!isNaN(l)&&1<=l?t.setAttribute(s,l):t.removeAttribute(s);break;case"rowSpan":case"start":l==null||typeof l=="function"||typeof l=="symbol"||isNaN(l)?t.removeAttribute(s):t.setAttribute(s,l);break;case"popover":Lt("beforetoggle",t),Lt("toggle",t),we(t,"popover",l);break;case"xlinkActuate":ke(t,"http://www.w3.org/1999/xlink","xlink:actuate",l);break;case"xlinkArcrole":ke(t,"http://www.w3.org/1999/xlink","xlink:arcrole",l);break;case"xlinkRole":ke(t,"http://www.w3.org/1999/xlink","xlink:role",l);break;case"xlinkShow":ke(t,"http://www.w3.org/1999/xlink","xlink:show",l);break;case"xlinkTitle":ke(t,"http://www.w3.org/1999/xlink","xlink:title",l);break;case"xlinkType":ke(t,"http://www.w3.org/1999/xlink","xlink:type",l);break;case"xmlBase":ke(t,"http://www.w3.org/XML/1998/namespace","xml:base",l);break;case"xmlLang":ke(t,"http://www.w3.org/XML/1998/namespace","xml:lang",l);break;case"xmlSpace":ke(t,"http://www.w3.org/XML/1998/namespace","xml:space",l);break;case"is":we(t,"is",l);break;case"innerText":case"textContent":break;default:(!(2<s.length)||s[0]!=="o"&&s[0]!=="O"||s[1]!=="n"&&s[1]!=="N")&&(s=NE.get(s)||s,we(t,s,l))}}function lh(t,n,s,l,d,m){switch(s){case"style":la(t,l,m);break;case"dangerouslySetInnerHTML":if(l!=null){if(typeof l!="object"||!("__html"in l))throw Error(r(61));if(s=l.__html,s!=null){if(d.children!=null)throw Error(r(60));t.innerHTML=s}}break;case"children":typeof l=="string"?jn(t,l):(typeof l=="number"||typeof l=="bigint")&&jn(t,""+l);break;case"onScroll":l!=null&&Lt("scroll",t);break;case"onScrollEnd":l!=null&&Lt("scrollend",t);break;case"onClick":l!=null&&(t.onclick=ca);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!oe.hasOwnProperty(s))e:{if(s[0]==="o"&&s[1]==="n"&&(d=s.endsWith("Capture"),n=s.slice(2,d?s.length-7:void 0),m=t[un]||null,m=m!=null?m[s]:null,typeof m=="function"&&t.removeEventListener(n,m,d),typeof l=="function")){typeof m!="function"&&m!==null&&(s in t?t[s]=null:t.hasAttribute(s)&&t.removeAttribute(s)),t.addEventListener(n,l,d);break e}s in t?t[s]=l:l===!0?t.setAttribute(s,""):we(t,s,l)}}}function Pn(t,n,s){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Lt("error",t),Lt("load",t);var l=!1,d=!1,m;
vendor: 6,823 bytes, line 9
9for(m in s)if(s.hasOwnProperty(m)){var w=s[m];if(w!=null)switch(m){case"src":l=!0;break;case"srcSet":d=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(r(137,n));default:Wt(t,n,m,w,s,null)}}d&&Wt(t,n,"srcSet",s.srcSet,s,null),l&&Wt(t,n,"src",s.src,s,null);return;case"input":Lt("invalid",t);var P=m=w=d=null,j=null,ce=null;for(l in s)if(s.hasOwnProperty(l)){var Ee=s[l];if(Ee!=null)switch(l){case"name":d=Ee;break;case"type":w=Ee;break;case"checked":j=Ee;break;case"defaultChecked":ce=Ee;break;case"value":m=Ee;break;case"defaultValue":P=Ee;break;case"children":case"dangerouslySetInnerHTML":if(Ee!=null)throw Error(r(137,n));break;default:Wt(t,n,l,Ee,s,null)}}Vn(t,m,P,j,ce,w,d,!1);return;case"select":Lt("invalid",t),l=w=m=null;for(d in s)if(s.hasOwnProperty(d)&&(P=s[d],P!=null))switch(d){case"value":m=P;break;case"defaultValue":w=P;break;case"multiple":l=P;default:Wt(t,n,d,P,s,null)}n=m,s=w,t.multiple=!!l,n!=null?Gn(t,!!l,n,!1):s!=null&&Gn(t,!!l,s,!0);return;case"textarea":Lt("invalid",t),m=d=l=null;for(w in s)if(s.hasOwnProperty(w)&&(P=s[w],P!=null))switch(w){case"value":l=P;break;case"defaultValue":d=P;break;case"children":m=P;break;case"dangerouslySetInnerHTML":if(P!=null)throw Error(r(91));break;default:Wt(t,n,w,P,s,null)}pn(t,l,d,m);return;case"option":for(j in s)s.hasOwnProperty(j)&&(l=s[j],l!=null)&&(j==="selected"?t.selected=l&&typeof l!="function"&&typeof l!="symbol":Wt(t,n,j,l,s,null));return;case"dialog":Lt("beforetoggle",t),Lt("toggle",t),Lt("cancel",t),Lt("close",t);break;case"iframe":case"object":Lt("load",t);break;case"video":case"audio":for(l=0;l<ml.length;l++)Lt(ml[l],t);break;case"image":Lt("error",t),Lt("load",t);break;case"details":Lt("toggle",t);break;case"embed":case"source":case"link":Lt("error",t),Lt("load",t);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ce in s)if(s.hasOwnProperty(ce)&&(l=s[ce],l!=null))switch(ce){case"children":case"dangerouslySetInnerHTML":throw Error(r(137,n));default:Wt(t,n,ce,l,s,null)}return;default:if(bs(n)){for(Ee in s)s.hasOwnProperty(Ee)&&(l=s[Ee],l!==void 0&&lh(t,n,Ee,l,s,void 0));return}}for(P in s)s.hasOwnProperty(P)&&(l=s[P],l!=null&&Wt(t,n,P,l,s,null))}function aA(t,n,s,l){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var d=null,m=null,w=null,P=null,j=null,ce=null,Ee=null;for(ge in s){var De=s[ge];if(s.hasOwnProperty(ge)&&De!=null)switch(ge){case"checked":break;case"value":break;case"defaultValue":j=De;default:l.hasOwnProperty(ge)||Wt(t,n,ge,null,l,De)}}for(var ue in l){var ge=l[ue];if(De=s[ue],l.hasOwnProperty(ue)&&(ge!=null||De!=null))switch(ue){case"type":m=ge;break;case"name":d=ge;break;case"checked":ce=ge;break;case"defaultChecked":Ee=ge;break;case"value":w=ge;break;case"defaultValue":P=ge;break;case"children":case"dangerouslySetInnerHTML":if(ge!=null)throw Error(r(137,n));break;default:ge!==De&&Wt(t,n,ue,ge,l,De)}}on(t,w,P,j,ce,Ee,m,d);return;case"select":ge=w=P=ue=null;for(m in s)if(j=s[m],s.hasOwnProperty(m)&&j!=null)switch(m){case"value":break;case"multiple":ge=j;default:l.hasOwnProperty(m)||Wt(t,n,m,null,l,j)}for(d in l)if(m=l[d],j=s[d],l.hasOwnProperty(d)&&(m!=null||j!=null))switch(d){case"value":ue=m;break;case"defaultValue":P=m;break;case"multiple":w=m;default:m!==j&&Wt(t,n,d,m,l,j)}n=P,s=w,l=ge,ue!=null?Gn(t,!!s,ue,!1):!!l!=!!s&&(n!=null?Gn(t,!!s,n,!0):Gn(t,!!s,s?[]:"",!1));return;case"textarea":ge=ue=null;for(P in s)if(d=s[P],s.hasOwnProperty(P)&&d!=null&&!l.hasOwnProperty(P))switch(P){case"value":break;case"children":break;default:Wt(t,n,P,null,l,d)}for(w in l)if(d=l[w],m=s[w],l.hasOwnProperty(w)&&(d!=null||m!=null))switch(w){case"value":ue=d;break;case"defaultValue":ge=d;break;case"children":break;case"dangerouslySetInnerHTML":if(d!=null)throw Error(r(91));break;default:d!==m&&Wt(t,n,w,d,l,m)}_t(t,ue,ge);return;case"option":for(var it in s)ue=s[it],s.hasOwnProperty(it)&&ue!=null&&!l.hasOwnProperty(it)&&(it==="selected"?t.selected=!1:Wt(t,n,it,null,l,ue));for(j in l)ue=l[j],ge=s[j],l.hasOwnProperty(j)&&ue!==ge&&(ue!=null||ge!=null)&&(j==="selected"?t.selected=ue&&typeof ue!="function"&&typeof ue!="symbol":Wt(t,n,j,ue,l,ge));return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var mt in s)ue=s[mt],s.hasOwnProperty(mt)&&ue!=null&&!l.hasOwnProperty(mt)&&Wt(t,n,mt,null,l,ue);for(ce in l)if(ue=l[ce],ge=s[ce],l.hasOwnProperty(ce)&&ue!==ge&&(ue!=null||ge!=null))switch(ce){case"children":case"dangerouslySetInnerHTML":if(ue!=null)throw Error(r(137,n));break;default:Wt(t,n,ce,ue,l,ge)}return;default:if(bs(n)){for(var Qt in s)ue=s[Qt],s.hasOwnProperty(Qt)&&ue!==void 0&&!l.hasOwnProperty(Qt)&&lh(t,n,Qt,void 0,l,ue);for(Ee in l)ue=l[Ee],ge=s[Ee],!l.hasOwnProperty(Ee)||ue===ge||ue===void 0&&ge===void 0||lh(t,n,Ee,ue,l,ge);return}}for(var te in s)ue=s[te],s.hasOwnProperty(te)&&ue!=null&&!l.hasOwnProperty(te)&&Wt(t,n,te,null,l,ue);for(De in l)ue=l[De],ge=s[De],!l.hasOwnProperty(De)||ue===ge||ue==null&&ge==null||Wt(t,n,De,ue,l,ge)}function tx(t){switch(t){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function rA(){if(typeof performance.getEntriesByType=="function"){for(var t=0,n=0,s=performance.getEntriesByType("resource"),l=0;l<s.length;l++){var d=s[l],m=d.transferSize,w=d.initiatorType,P=d.duration;if(m&&P&&tx(w)){for(w=0,P=d.responseEnd,l+=1;l<s.length;l++){var j=s[l],ce=j.startTime;if(ce>P)break;var Ee=j.transferSize,De=j.initiatorType;Ee&&tx(De)&&(j=j.responseEnd,w+=Ee*(j<P?1:(P-ce)/(j-ce)))}if(--l,n+=8*(m+w)/(d.duration/1e3),t++,10<t)break}}if(0<t)return n/t/1e6}return navigator.connection&&(t=navigator.connection.downlink,typeof t=="number")?t:5}var ch=null,uh=null;function ru(t){return t.nodeType===9?t:t.ownerDocument}function nx(t){switch(t){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function ix(t,n){if(t===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return t===1&&n==="foreignObject"?0:t}function fh(t,n){return t==="textarea"||t==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var dh=null;function sA(){var t=window.event;return t&&t.type==="popstate"?t===dh?!1:(dh=t,!0):(dh=null,!1)}var ax=typeof setTimeout=="function"?setTimeout:void 0,oA=typeof clearTimeout=="function"?clearTimeout:void 0,rx=typeof Promise=="function"?Promise:void 0,lA=typeof queueMicrotask=="function"?queueMicrotask:typeof rx<"u"?function(t){return rx.resolve(null).then(t).cat
vendor: 13,688 bytes, line 9
9ch(cA)}:ax;function cA(t){setTimeout(function(){throw t})}function cr(t){return t==="head"}function sx(t,n){var s=n,l=0;do{var d=s.nextSibling;if(t.removeChild(s),d&&d.nodeType===8)if(s=d.data,s==="/$"||s==="/&"){if(l===0){t.removeChild(d),Ks(n);return}l--}else if(s==="$"||s==="$?"||s==="$~"||s==="$!"||s==="&")l++;else if(s==="html")vl(t.ownerDocument.documentElement);else if(s==="head"){s=t.ownerDocument.head,vl(s);for(var m=s.firstChild;m;){var w=m.nextSibling,P=m.nodeName;m[ii]||P==="SCRIPT"||P==="STYLE"||P==="LINK"&&m.rel.toLowerCase()==="stylesheet"||s.removeChild(m),m=w}}else s==="body"&&vl(t.ownerDocument.body);s=d}while(s);Ks(n)}function ox(t,n){var s=t;t=0;do{var l=s.nextSibling;if(s.nodeType===1?n?(s._stashedDisplay=s.style.display,s.style.display="none"):(s.style.display=s._stashedDisplay||"",s.getAttribute("style")===""&&s.removeAttribute("style")):s.nodeType===3&&(n?(s._stashedText=s.nodeValue,s.nodeValue=""):s.nodeValue=s._stashedText||""),l&&l.nodeType===8)if(s=l.data,s==="/$"){if(t===0)break;t--}else s!=="$"&&s!=="$?"&&s!=="$~"&&s!=="$!"||t++;s=l}while(s)}function hh(t){var n=t.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var s=n;switch(n=n.nextSibling,s.nodeName){case"HTML":case"HEAD":case"BODY":hh(s),Ya(s);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(s.rel.toLowerCase()==="stylesheet")continue}t.removeChild(s)}}function uA(t,n,s,l){for(;t.nodeType===1;){var d=s;if(t.nodeName.toLowerCase()!==n.toLowerCase()){if(!l&&(t.nodeName!=="INPUT"||t.type!=="hidden"))break}else if(l){if(!t[ii])switch(n){case"meta":if(!t.hasAttribute("itemprop"))break;return t;case"link":if(m=t.getAttribute("rel"),m==="stylesheet"&&t.hasAttribute("data-precedence"))break;if(m!==d.rel||t.getAttribute("href")!==(d.href==null||d.href===""?null:d.href)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin)||t.getAttribute("title")!==(d.title==null?null:d.title))break;return t;case"style":if(t.hasAttribute("data-precedence"))break;return t;case"script":if(m=t.getAttribute("src"),(m!==(d.src==null?null:d.src)||t.getAttribute("type")!==(d.type==null?null:d.type)||t.getAttribute("crossorigin")!==(d.crossOrigin==null?null:d.crossOrigin))&&m&&t.hasAttribute("async")&&!t.hasAttribute("itemprop"))break;return t;default:return t}}else if(n==="input"&&t.type==="hidden"){var m=d.name==null?null:""+d.name;if(d.type==="hidden"&&t.getAttribute("name")===m)return t}else return t;if(t=Mi(t.nextSibling),t===null)break}return null}function fA(t,n,s){if(n==="")return null;for(;t.nodeType!==3;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!s||(t=Mi(t.nextSibling),t===null))return null;return t}function lx(t,n){for(;t.nodeType!==8;)if((t.nodeType!==1||t.nodeName!=="INPUT"||t.type!=="hidden")&&!n||(t=Mi(t.nextSibling),t===null))return null;return t}function ph(t){return t.data==="$?"||t.data==="$~"}function mh(t){return t.data==="$!"||t.data==="$?"&&t.ownerDocument.readyState!=="loading"}function dA(t,n){var s=t.ownerDocument;if(t.data==="$~")t._reactRetry=n;else if(t.data!=="$?"||s.readyState!=="loading")n();else{var l=function(){n(),s.removeEventListener("DOMContentLoaded",l)};s.addEventListener("DOMContentLoaded",l),t._reactRetry=l}}function Mi(t){for(;t!=null;t=t.nextSibling){var n=t.nodeType;if(n===1||n===3)break;if(n===8){if(n=t.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return t}var gh=null;function cx(t){t=t.nextSibling;for(var n=0;t;){if(t.nodeType===8){var s=t.data;if(s==="/$"||s==="/&"){if(n===0)return Mi(t.nextSibling);n--}else s!=="$"&&s!=="$!"&&s!=="$?"&&s!=="$~"&&s!=="&"||n++}t=t.nextSibling}return null}function ux(t){t=t.previousSibling;for(var n=0;t;){if(t.nodeType===8){var s=t.data;if(s==="$"||s==="$!"||s==="$?"||s==="$~"||s==="&"){if(n===0)return t;n--}else s!=="/$"&&s!=="/&"||n++}t=t.previousSibling}return null}function fx(t,n,s){switch(n=ru(s),t){case"html":if(t=n.documentElement,!t)throw Error(r(452));return t;case"head":if(t=n.head,!t)throw Error(r(453));return t;case"body":if(t=n.body,!t)throw Error(r(454));return t;default:throw Error(r(451))}}function vl(t){for(var n=t.attributes;n.length;)t.removeAttributeNode(n[0]);Ya(t)}var Ai=new Map,dx=new Set;function su(t){return typeof t.getRootNode=="function"?t.getRootNode():t.nodeType===9?t:t.ownerDocument}var wa=F.d;F.d={f:hA,r:pA,D:mA,C:gA,L:vA,m:xA,X:bA,S:yA,M:SA};function hA(){var t=wa.f(),n=Kc();return t||n}function pA(t){var n=gi(t);n!==null&&n.tag===5&&n.type==="form"?I0(n):wa.r(t)}var Ws=typeof document>"u"?null:document;function hx(t,n,s){var l=Ws;if(l&&typeof n=="string"&&n){var d=ut(n);d='link[rel="'+t+'"][href="'+d+'"]',typeof s=="string"&&(d+='[crossorigin="'+s+'"]'),dx.has(d)||(dx.add(d),t={rel:t,crossOrigin:s,href:n},l.querySelector(d)===null&&(n=l.createElement("link"),Pn(n,"link",t),q(n),l.head.appendChild(n)))}}function mA(t){wa.D(t),hx("dns-prefetch",t,null)}function gA(t,n){wa.C(t,n),hx("preconnect",t,n)}function vA(t,n,s){wa.L(t,n,s);var l=Ws;if(l&&t&&n){var d='link[rel="preload"][as="'+ut(n)+'"]';n==="image"&&s&&s.imageSrcSet?(d+='[imagesrcset="'+ut(s.imageSrcSet)+'"]',typeof s.imageSizes=="string"&&(d+='[imagesizes="'+ut(s.imageSizes)+'"]')):d+='[href="'+ut(t)+'"]';var m=d;switch(n){case"style":m=Qs(t);break;case"script":m=qs(t)}Ai.has(m)||(t=g({rel:"preload",href:n==="image"&&s&&s.imageSrcSet?void 0:t,as:n},s),Ai.set(m,t),l.querySelector(d)!==null||n==="style"&&l.querySelector(xl(m))||n==="script"&&l.querySelector(yl(m))||(n=l.createElement("link"),Pn(n,"link",t),q(n),l.head.appendChild(n)))}}function xA(t,n){wa.m(t,n);var s=Ws;if(s&&t){var l=n&&typeof n.as=="string"?n.as:"script",d='link[rel="modulepreload"][as="'+ut(l)+'"][href="'+ut(t)+'"]',m=d;switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":m=qs(t)}if(!Ai.has(m)&&(t=g({rel:"modulepreload",href:t},n),Ai.set(m,t),s.querySelector(d)===null)){switch(l){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(s.querySelector(yl(m)))return}l=s.createElement("link"),Pn(l,"link",t),q(l),s.head.appendChild(l)}}}function yA(t,n,s){wa.S(t,n,s);var l=Ws;if(l&&t){var d=O(l).hoistableStyles,m=Qs(t);n=n||"default";var w=d.get(m);if(!w){var P={loading:0,preload:null};if(w=l.querySelector(xl(m)))P.loading=5;else{t=g({rel:"stylesheet",href:t,"data-precedence":n},s),(s=Ai.get(m))&&vh(t,s);var j=w=l.createElement("link");q(j),Pn(j,"link",t),j._p=new Promise(function(ce,Ee){j.onload=ce,j.onerror=Ee}),j.addEventListener("load",function(){P.loading|=1}),j.addEventListener("error",function(){P.loading|=2}),P.loading|=4,ou(w,n,l)}w={type:"stylesheet",instance:w,count:1,state:P},d.set(m,w)}}}function bA(t,n){wa.X(t,n);var s=Ws;if(s&&t){var l=O(s).hoistableScripts,d=qs(t),m=l.get(d);m||(m=s.querySelector(yl(d)),m||(t=g({src:t,async:!0},n),(n=Ai.get(d))&&xh(t,n),m=s.createElement("script"),q(m),Pn(m,"link",t),s.head.appendChild(m)),m={type:"script",instance:m,count:1,state:null},l.set(d,m))}}function SA(t,n){wa.M(t,n);var s=Ws;if(s&&t){var l=O(s).hoistableScripts,d=qs(t),m=l.get(d);m||(m=s.querySelector(yl(d)),m||(t=g({src:t,async:!0,type:"module"},n),(n=Ai.get(d))&&xh(t,n),m=s.createElement("script"),q(m),Pn(m,"link",t),s.head.appendChild(m)),m={type:"script",instance:m,count:1,state:null},l.set(d,m))}}function px(t,n,s,l){var d=(d=$.current)?su(d):null;if(!d)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof s.precedence=="string"&&typeof s.href=="string"?(n=Qs(s.href),s=O(d).hoistableStyles,l=s.get(n),l||(l={type:"style",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};case"link":if(s.rel==="stylesheet"&&typeof s.href=="string"&&typeof s.precedence=="string"){t=Qs(s.href);var m=O(d).hoistableStyles,w=m.get(t);if(w||(d=d.ownerDocument||d,w={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},m.set(t,w),(m=d.querySelector(xl(t)))&&!m._p&&(w.instance=m,w.state.loading=5),Ai.has(t)||(s={rel:"preload",as:"style",href:s.href,crossOrigin:s.crossOrigin,integrity:s.integrity,media:s.media,hrefLang:s.hrefLang,referrerPolicy:s.referrerPolicy},Ai.set(t,s),m||EA(d,t,s,w.state))),n&&l===null)throw Error(r(528,""));return w}if(n&&l!==null)throw Error(r(529,""));return null;case"script":return n=s.async,s=s.src,typeof s=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=qs(s),s=O(d).hoistableScripts,l=s.get(n),l||(l={type:"script",instance:null,count:0,state:null},s.set(n,l)),l):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function Qs(t){return'href="'+ut(t)+'"'}function xl(t){return'link[rel="stylesheet"]['+t+"]"}function mx(t){return g({},t,{"data-precedence":t.precedence,precedence:null})}function EA(t,n,s,l){t.querySelector('link[rel="preload"][as="style"]['+n+"]")?l.loading=1:(n=t.createElement("link"),l.preload=n,n.addEventListener("load",function(){return l.loading|=1}),n.addEventListener("error",function(){return l.loading|=2}),Pn(n,"link",s),q(n),t.head.appendChild(n))}function qs(t){return'[src="'+ut(t)+'"]'}function yl(t){return"script[async]"+t}function gx(t,n,s){if(n.count++,n.instance===null)switch(n.type){case"style":var l=t.querySelector('style[data-href~="'+ut(s.href)+'"]');if(l)return n.instance=l,q(l),l;var d=g({},s,{"data-href":s.href,"data-precedence":s.precedence,href:null,precedence:null});return l=(t.ownerDocument||t).createElement("style"),q(l),Pn(l,"style",d),ou(l,s.precedence,t),n.instance=l;case"stylesheet":d=Qs(s.href);var m=t.querySelector(xl(d));if(m)return n.state.loading|=4,n.instance=m,q(m),m;l=mx(s),(d=Ai.get(d))&&vh(l,d),m=(t.ownerDocument||t).createElement("link"),q(m);var w=m;return w._p=new Promise(function(P,j){w.onload=P,w.onerror=j}),Pn(m,"link",l),n.state.loading|=4,ou(m,s.precedence,t),n.instance=m;case"script":return m=qs(s.src),(d=t.querySelector(yl(m)))?(n.instance=d,q(d),d):(l=s,(d=Ai.get(m))&&(l=g({},s),xh(l,d)),t=t.ownerDocument||t,d=t.createElement("script"),q(d),Pn(d,"link",l),t.head.appendChild(d),n.instance=d);case"void":return null;default:throw Error(r(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(l=n.instance,n.state.loading|=4,ou(l,s.precedence,t));return n.instance}function ou(t,n,s){for(var l=s.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),d=l.length?l[l.length-1]:null,m=d,w=0;w<l.length;w++){var P=l[w];if(P.dataset.precedence===n)m=P;else if(m!==d)break}m?m.parentNode.insertBefore(t,m.nextSibling):(n=s.nodeType===9?s.head:s,n.insertBefore(t,n.firstChild))}function vh(t,n){t.crossOrigin==null&&(t.crossOrigin=n.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=n.referrerPolicy),t.title==null&&(t.title=n.title)}function xh(t,n){t.crossOrigin==null&&(t.crossOrigin=n.crossOrigin),t.referrerPolicy==null&&(t.referrerPolicy=n.referrerPolicy),t.integrity==null&&(t.integrity=n.integrity)}var lu=null;function vx(t,n,s){if(lu===null){var l=new Map,d=lu=new Map;d.set(s,l)}else d=lu,l=d.get(s),l||(l=new Map,d.set(s,l));if(l.has(t))return l;for(l.set(t,null),s=s.getElementsByTagName(t),d=0;d<s.length;d++){var m=s[d];if(!(m[ii]||m[an]||t==="link"&&m.getAttribute("rel")==="stylesheet")&&m.namespaceURI!=="http://www.w3.org/2000/svg"){var w=m.getAttribute(n)||"";w=t+w;var P=l.get(w);P?P.push(m):l.set(w,[m])}}return l}function xx(t,n,s){t=t.ownerDocument||t,t.head.insertBefore(s,n==="title"?t.querySelector("head > title"):null)}function MA(t,n,s){if(s===1||n.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;return n.rel==="stylesheet"?(t=n.disabled,typeof n.precedence=="string"&&t==null):!0;case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function yx(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function AA(t,n,s,l){if(s.type==="stylesheet"&&(typeof l.media!="string"||matchMedia(l.media).matches!==!1)&&(s.state.loading&4)===0){if(s.instance===null){var d=Qs(l.href),m=n.querySelector(xl(d));if(m){n=m._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(t.count++,t=cu.bind(t),n.then(t,t)),s.state.loading|=4,s.instance=m,q(m);return}m=n.ownerDocument||n,l=mx(l),(d=Ai.get(d))&&vh(l,d),m=m.createElement("link"),q(m);var w=m;w._p=new Promise(function(P,j){w.onload=P,w.onerror=j}),Pn(m,"link",l),s.instance=m}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(s,n),(n=s.state.preload)&&(s.state.loading&3)===0&&(t.count++,s=cu.bind(t),n.addEventListener("load",s),n.addEventListener("error",s))}}var yh=0;function wA(t,n){return t.stylesheets&&t.count===0&&fu(t,t.stylesheets),0<t.count||0<t.imgCount?function(s){var l=setTimeout(function(){if(t.stylesheets&&fu(t,t.stylesheets),t.unsuspend){var m=t.unsuspend;t.unsuspend=null,m()}},6e4+n);0<t.imgBytes&&yh===0&&(yh=62500*rA());var d=setTimeout(function(){if(t.waitingForImages=!1,t.count===0&&(t.stylesheets&&fu(t,t.stylesheets),t.unsuspend)){var m=t.unsuspend;t.unsuspend=null,m()}},(t.imgBytes>yh?50:800)+n);return t.unsuspend=s,function(){t.unsuspend=null,clearTimeout(l),clearTimeout(d)}}:null}function cu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)fu(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var uu=null;function fu(t,n){t.stylesheets=null,t.unsuspend!==null&&(t.count++,uu=new Map,n.forEac
vendor: 9,860 bytes, line 9
9h(TA,t),uu=null,cu.call(t))}function TA(t,n){if(!(n.state.loading&4)){var s=uu.get(t);if(s)var l=s.get(null);else{s=new Map,uu.set(t,s);for(var d=t.querySelectorAll("link[data-precedence],style[data-precedence]"),m=0;m<d.length;m++){var w=d[m];(w.nodeName==="LINK"||w.getAttribute("media")!=="not all")&&(s.set(w.dataset.precedence,w),l=w)}l&&s.set(null,l)}d=n.instance,w=d.getAttribute("data-precedence"),m=s.get(w)||l,m===l&&s.set(null,d),s.set(w,d),this.count++,l=cu.bind(this),d.addEventListener("load",l),d.addEventListener("error",l),m?m.parentNode.insertBefore(d,m.nextSibling):(t=t.nodeType===9?t.head:t,t.insertBefore(d,t.firstChild)),n.state.loading|=4}}var bl={$$typeof:C,Provider:null,Consumer:null,_currentValue:se,_currentValue2:se,_threadCount:0};function RA(t,n,s,l,d,m,w,P,j){this.tag=1,this.containerInfo=t,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Dt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Dt(0),this.hiddenUpdates=Dt(null),this.identifierPrefix=l,this.onUncaughtError=d,this.onCaughtError=m,this.onRecoverableError=w,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=j,this.incompleteTransitions=new Map}function bx(t,n,s,l,d,m,w,P,j,ce,Ee,De){return t=new RA(t,n,s,w,j,ce,Ee,De,P),n=1,m===!0&&(n|=24),m=ri(3,null,null,n),t.current=m,m.stateNode=t,n=Jf(),n.refCount++,t.pooledCache=n,n.refCount++,m.memoizedState={element:l,isDehydrated:s,cache:n},nd(m),t}function Sx(t){return t?(t=Rs,t):Rs}function Ex(t,n,s,l,d,m){d=Sx(d),l.context===null?l.context=d:l.pendingContext=d,l=Ja(n),l.payload={element:s},m=m===void 0?null:m,m!==null&&(l.callback=m),s=$a(t,l,n),s!==null&&(ei(s,t,n),Jo(s,t,n))}function Mx(t,n){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var s=t.retryLane;t.retryLane=s!==0&&s<n?s:n}}function bh(t,n){Mx(t,n),(t=t.alternate)&&Mx(t,n)}function Ax(t){if(t.tag===13||t.tag===31){var n=Or(t,67108864);n!==null&&ei(n,t,67108864),bh(t,67108864)}}function wx(t){if(t.tag===13||t.tag===31){var n=ui();n=Ga(n);var s=Or(t,n);s!==null&&ei(s,t,n),bh(t,n)}}var du=!0;function CA(t,n,s,l){var d=_.T;_.T=null;var m=F.p;try{F.p=2,Sh(t,n,s,l)}finally{F.p=m,_.T=d}}function IA(t,n,s,l){var d=_.T;_.T=null;var m=F.p;try{F.p=8,Sh(t,n,s,l)}finally{F.p=m,_.T=d}}function Sh(t,n,s,l){if(du){var d=Eh(l);if(d===null)oh(t,n,l,hu,s),Rx(t,l);else if(NA(d,t,n,s,l))l.stopPropagation();else if(Rx(t,l),n&4&&-1<DA.indexOf(t)){for(;d!==null;){var m=gi(d);if(m!==null)switch(m.tag){case 3:if(m=m.stateNode,m.current.memoizedState.isDehydrated){var w=Oe(m.pendingLanes);if(w!==0){var P=m;for(P.pendingLanes|=2,P.entangledLanes|=2;w;){var j=1<<31-He(w);P.entanglements[1]|=j,w&=~j}qi(m),(Gt&6)===0&&(Qc=N()+500,pl(0))}}break;case 31:case 13:P=Or(m,2),P!==null&&ei(P,m,2),Kc(),bh(m,2)}if(m=Eh(l),m===null&&oh(t,n,l,hu,s),m===d)break;d=m}d!==null&&l.stopPropagation()}else oh(t,n,l,null,s)}}function Eh(t){return t=Af(t),Mh(t)}var hu=null;function Mh(t){if(hu=null,t=Xi(t),t!==null){var n=c(t);if(n===null)t=null;else{var s=n.tag;if(s===13){if(t=u(n),t!==null)return t;t=null}else if(s===31){if(t=f(n),t!==null)return t;t=null}else if(s===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;t=null}else n!==t&&(t=null)}}return hu=t,null}function Tx(t){switch(t){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(W()){case xe:return 2;case Ae:return 8;case ve:case Ge:return 32;case Be:return 268435456;default:return 32}default:return 32}}var Ah=!1,ur=null,fr=null,dr=null,Sl=new Map,El=new Map,hr=[],DA="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Rx(t,n){switch(t){case"focusin":case"focusout":ur=null;break;case"dragenter":case"dragleave":fr=null;break;case"mouseover":case"mouseout":dr=null;break;case"pointerover":case"pointerout":Sl.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":El.delete(n.pointerId)}}function Ml(t,n,s,l,d,m){return t===null||t.nativeEvent!==m?(t={blockedOn:n,domEventName:s,eventSystemFlags:l,nativeEvent:m,targetContainers:[d]},n!==null&&(n=gi(n),n!==null&&Ax(n)),t):(t.eventSystemFlags|=l,n=t.targetContainers,d!==null&&n.indexOf(d)===-1&&n.push(d),t)}function NA(t,n,s,l,d){switch(n){case"focusin":return ur=Ml(ur,t,n,s,l,d),!0;case"dragenter":return fr=Ml(fr,t,n,s,l,d),!0;case"mouseover":return dr=Ml(dr,t,n,s,l,d),!0;case"pointerover":var m=d.pointerId;return Sl.set(m,Ml(Sl.get(m)||null,t,n,s,l,d)),!0;case"gotpointercapture":return m=d.pointerId,El.set(m,Ml(El.get(m)||null,t,n,s,l,d)),!0}return!1}function Cx(t){var n=Xi(t.target);if(n!==null){var s=c(n);if(s!==null){if(n=s.tag,n===13){if(n=u(s),n!==null){t.blockedOn=n,mi(t.priority,function(){wx(s)});return}}else if(n===31){if(n=f(s),n!==null){t.blockedOn=n,mi(t.priority,function(){wx(s)});return}}else if(n===3&&s.stateNode.current.memoizedState.isDehydrated){t.blockedOn=s.tag===3?s.stateNode.containerInfo:null;return}}}t.blockedOn=null}function pu(t){if(t.blockedOn!==null)return!1;for(var n=t.targetContainers;0<n.length;){var s=Eh(t.nativeEvent);if(s===null){s=t.nativeEvent;var l=new s.constructor(s.type,s);Mf=l,s.target.dispatchEvent(l),Mf=null}else return n=gi(s),n!==null&&Ax(n),t.blockedOn=s,!1;n.shift()}return!0}function Ix(t,n,s){pu(t)&&s.delete(n)}function LA(){Ah=!1,ur!==null&&pu(ur)&&(ur=null),fr!==null&&pu(fr)&&(fr=null),dr!==null&&pu(dr)&&(dr=null),Sl.forEach(Ix),El.forEach(Ix)}function mu(t,n){t.blockedOn===n&&(t.blockedOn=null,Ah||(Ah=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,LA)))}var gu=null;function Dx(t){gu!==t&&(gu=t,a.unstable_scheduleCallback(a.unstable_NormalPriority,function(){gu===t&&(gu=null);for(var n=0;n<t.length;n+=3){var s=t[n],l=t[n+1],d=t[n+2];if(typeof l!="function"){if(Mh(l||s)===null)continue;break}var m=gi(s);m!==null&&(t.splice(n,3),n-=3,Ed(m,{pending:!0,data:d,method:s.method,action:l},l,d))}}))}function Ks(t){function n(j){return mu(j,t)}ur!==null&&mu(ur,t),fr!==null&&mu(fr,t),dr!==null&&mu(dr,t),Sl.forEach(n),El.forEach(n);for(var s=0;s<hr.length;s++){var l=hr[s];l.blockedOn===t&&(l.blockedOn=null)}for(;0<hr.length&&(s=hr[0],s.blockedOn===null);)Cx(s),s.blockedOn===null&&hr.shift();if(s=(t.ownerDocument||t).$$reactFormReplay,s!=null)for(l=0;l<s.length;l+=3){var d=s[l],m=s[l+1],w=d[un]||null;if(typeof m=="function")w||Dx(s);else if(w){var P=null;if(m&&m.hasAttribute("formAction")){if(d=m,w=m[un]||null)P=w.formAction;else if(Mh(d)!==null)continue}else P=w.action;typeof P=="function"?s[l+1]=P:(s.splice(l,3),l-=3),Dx(s)}}}function Nx(){function t(m){m.canIntercept&&m.info==="react-transition"&&m.intercept({handler:function(){return new Promise(function(w){return d=w})},focusReset:"manual",scroll:"manual"})}function n(){d!==null&&(d(),d=null),l||setTimeout(s,20)}function s(){if(!l&&!navigation.transition){var m=navigation.currentEntry;m&&m.url!=null&&navigation.navigate(m.url,{state:m.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var l=!1,d=null;return navigation.addEventListener("navigate",t),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(s,100),function(){l=!0,navigation.removeEventListener("navigate",t),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),d!==null&&(d(),d=null)}}}function wh(t){this._internalRoot=t}vu.prototype.render=wh.prototype.render=function(t){var n=this._internalRoot;if(n===null)throw Error(r(409));var s=n.current,l=ui();Ex(s,l,t,n,null,null)},vu.prototype.unmount=wh.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var n=t.containerInfo;Ex(t.current,2,null,t,null,null),Kc(),n[Ni]=null}};function vu(t){this._internalRoot=t}vu.prototype.unstable_scheduleHydration=function(t){if(t){var n=Fn();t={blockedOn:null,target:t,priority:n};for(var s=0;s<hr.length&&n!==0&&n<hr[s].priority;s++);hr.splice(s,0,t),s===0&&Cx(t)}};var Lx=e.version;if(Lx!=="19.2.4")throw Error(r(527,Lx,"19.2.4"));F.findDOMNode=function(t){var n=t._reactInternals;if(n===void 0)throw typeof t.render=="function"?Error(r(188)):(t=Object.keys(t).join(","),Error(r(268,t)));return t=p(n),t=t!==null?x(t):null,t=t===null?null:t.stateNode,t};var PA={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:_,reconcilerVersion:"19.2.4"};
9if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var xu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!xu.isDisabled&&xu.supportsFiber)try{Pe=xu.inject(PA),Le=xu}catch{}}return wl.createRoot=function(t,n){if(!o(t))throw Error(r(299));var s=!1,l="",d=_0,m=H0,w=F0;return n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(l=n.identifierPrefix),n.onUncaughtError!==void 0&&(d=n.onUncaughtError),n.onCaughtError!==void 0&&(m=n.onCaughtError),n.onRecoverableError!==void 0&&(w=n.onRecoverableError)),n=bx(t,1,!1,null,null,s,l,null,d,m,w,Nx),t[Ni]=n.current,sh(t),new wh(n)},wl.hydrateRoot=function(t,n,s){if(!o(t))throw Error(r(299));var l=!1,d="",m=_0,w=H0,P=F0,j=null;return s!=null&&(s.unstable_strictMode===!0&&(l=!0),s.identifierPrefix!==void 0&&(d=s.identifierPrefix),s.onUncaughtError!==void 0&&(m=s.onUncaughtError),s.onCaughtError!==void 0&&(w=s.onCaughtError),s.onRecoverableError!==void 0&&(P=s.onRecoverableError),s.formState!==void 0&&(j=s.formState)),n=bx(t,1,!0,n,s??null,l,d,j,m,w,P,Nx),n.context=Sx(null),s=n.current,l=ui(),l=Ga(l),d=Ja(l),d.callback=null,$a(s,d,l),s=l,n.current.lanes=s,$t(n,s),qi(n),t[Ni]=n.current,sh(t),new vu(n)},wl.version="19.2.4",wl}var Vx;function VA(){if(Vx)return Ch.exports;Vx=1;function a(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(a)}catch(e){console.error(e)}}return a(),Ch.exports=FA(),Ch.exports}var GA=VA();function Cn(a){return a.preview??a.details?.media}function Gi(a){return a.preview??a.circleFallback??a.details?.media}const Tr=.75;const Bb=(...a)=>a.filter((e,i,r)=>!!e&&e.trim()!==""&&r.indexOf(e)===i).join(" ").trim();const jA=a=>a.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const YA=a=>a.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,i,r)=>r?r.toUpperCase():i.toLowerCase());const Gx=a=>{const e=YA(a);return e.charAt(0).toUpperCase()+e.slice(1)};var XA={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ZA=a=>{for(const e in a)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1};const WA=ne.forwardRef(({color:a="currentColor",size:e=24,strokeWidth:i=2,absoluteStrokeWidth:r,className:o="",children:c,iconNode:u,...f},h)=>ne.createElement("svg",{ref:h,...XA,width:e,height:e,stroke:a,strokeWidth:r?Number(i)*24/Number(e):i,className:Bb("lucide",o),...!c&&!ZA(f)&&{"aria-hidden":"true"},...f},[...u.map(([p,x])=>ne.createElement(p,x)),...Array.isArray(c)?c:[c]]));const QA=(a,e)=>{const i=ne.forwardRef(({className:r,...o},c)=>ne.createElement(WA,{ref:c,iconNode:e,className:Bb(`lucide-${jA(Gx(a))}`,`lucide-${a}`,r),...o}));return i.displayName=Gx(a),i};const qA=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Mm=QA("arrow-right",qA),gs="data:image/png;base64,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CIiIiIiMg2DCBERERERGQbBhAiIiIiIrINAwgREREREdmGAYSIiIiIiGzDAEJERERERLZhACEiIiIiItswgBARERERkW0YQIiIiIiIyDYMIEREREREZBsGECIiIiIisg0DCBERERER2YYBhIiIiIiIbMMAQkREREREtmEAISIiIiIi2zCAEBERERGRbRhAiIiIiIjINgwgRERERERkGwYQIiIiIiKyDQMIERERERHZhgGEiIiIiIhswwBCRERERES2YQAhIiIiIiLbMIAQEREREZFtGECIiIiIiMg2DCBERERERGQbBhAiIiIiIrINAwgREREREdmGAYSIiIiIiGzDAEJERERERLZhACEiIiIiItswgBARERERkW0YQIiIiIiIyDYMIEREREREZBsGECIiIiIisg0DCBERERER2YYBhIiIiIiIbMMAQkREREREtmEAISIiIiIi2zCAEBERERGRbRhAiIiIiIjINgwgRERERERkGwYQIiIiIiKyDQMIERERERHZhgGEiIiIiIhswwBCRERERES2YQAhIiIiIiLbMIAQEREREZFtGECIiIiIiMg2/wfn4d7KUMsHhAAAAABJRU5ErkJggg==",KA="&(?:amp;)?shy;|&(?:amp;)?#0*173;|&(?:amp;)?#x0*ad;",JA="Â";function nn(a){return a&&a.replace(new RegExp(KA,"gi"),JA)}function Ap(a){return typeof a=="string"?nn(a):Array.isArray(a)?a.map(Ap):a!==null&&typeof a=="object"?Object.fromEntries(Object.entries(a).map(([e,i])=>[e,Ap(i)])):a}const wp=ne.createContext(!1);function Rr(){return ne.useContext(wp)}function Cr(){const a=Rr(),[e,i]=ne.useState(!1);return a?{hovered:!1,hoverProps:{}}:{hovered:e,hoverProps:{onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1)}}}const Jl=308,rf=308,$A=Jl/2,Ub=300,ew=Ub,jx=rf/2,kb=40,zb=320,_b=158,Tp=300,Hb=16,Fb=8;function Vb({text:a,accentColor:e,textColor:i}){return S.jsxs("div",{className:"flex w-fit flex-col gap-2.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[14px] font-bold uppercase leading-[1.48] tracking-[2px]",style:{color:i??e,fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a)})]})}function tw(a){const e=Math.max(a,1);return Jl+kb+zb+_b+(e-1)*(Tp+Hb)+Tp/2}function nw({card:a,accentColor:e}){const i=Rr(),r=a.link,o=r?.href,c=r?.linkText??TYPO3.lang["20years.label.link.readmore"];return S.jsxs("div",{className:"flex shrink-0 flex-col gap-5 bg-white px-8 py-10",style:{width:Tp},children:[(a.subheader||a.header)&&S.jsxs("div",{className:"flex flex-col",style:{gap:Fb},children:[a.subheader&&S.jsx(Vb,{text:a.subheader,accentColor:e,textColor:"#1c1b1b"}),a.header&&S.jsx("h3",{className:"m-0 text-[28px] font-bold leading-[1.3] text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.header)})]}),a.bodytext&&S.jsx("p",{className:"m-0 text-base leading-relaxed text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.bodytext)}),o&&S.jsxs("a",{href:o,target:r?.target??void 0,rel:r?.target==="_blank"?"noopener noreferrer":void 0,className:`inline-flex w-fit items-center gap-2 px-6 py-2.5 text-sm font-bold text-[#1c1b1b] transition-opacity ${i?"active:opacity-80":"hover:opacity-80"}`,style:{background:e,fontFamily:"'Source Sans Pro', sans-serif"},children:[c,S.jsx(Mm,{className:"h-4 w-4 shrink-0"})]})]})}function iw({progress:a}){return S.jsx("div",{className:"relative",style:{width:Jl,height:rf},children:S.jsx("img",{src:gs,alt:"Implenia",style:{width:Jl,height:rf,objectFit:"contain",opacity:Math.min(1,a*2),transition:"opacity 400ms ease-out"}})})}function Yx({canvasX:a,flowerY:e,accentColor:i,flowerProgress:r,cardsVisible:o,content:c,cards:u=[],renderPart:f="all"}){const h=!!(c?.header||c?.subheader||c?.bodytext),p=u.length>0,x=f==="all"||f==="flower",g=f==="all"||f==="content",v=e-(jx-rf/2);return S.jsxs(S.Fragment,{children:[x&&S.jsx("div",{className:"absolute",style:{left:a,top:e,transform:`translateY(-${jx}px)`},children:S.jsx(iw,{progress:r})}),g&&(h||p)&&S.jsxs("div",{className:"absolute flex items-center",style:{left:a+Jl+kb,top:v,transform:`translateY(-50%) translateX(${o?0:80}px)`,opacity:o?1:0,transition:"opacity 700ms cubic-bezier(0.4, 0, 0.2, 1), transform 700ms cubic-bezier(0.4, 0, 0.2, 1)",gap:_b,pointerEvents:o?"auto":"none"},children:[h&&S.jsxs("div",{className:"flex shrink-0 flex-col gap-6",style:{width:zb},children:[(c.subheader||c.header)&&S.jsxs("div",{className:"flex flex-col",style:{gap:Fb},children:[c.subheader&&S.jsx(Vb,{text:c.subheader,accentColor:i}),c.header&&S.jsx("h2",{className:"m-0 text-[clamp(22px,2.8vw,40px)] font-bold uppercase leading-[1.1] text-white",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(c.header)})]}),c.bodytext&&S.jsx("p",{className:"m-0 text-[clamp(14px,1.1vw,18px)] leading-relaxed text-white/90",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(c.bodytext)})]}),p&&S.jsx("div",{className:"flex shrink-0 flex-row items-stretch",style:{gap:Hb},children:u.map(y=>S.jsx(nw,{card:y,accentColor:i},y.id))})]})]})}const Rp=320,aw=800,rw=200,sw=360,ow=30,Gb=[96,167],jb=[135,67],sf=[122,54],lw=[54,54],cw=[144,36],Xx=12,Zx=60,yu=12,Wx=24,uw=.8,fw=26,Lh=54,Yb=150,dw=200,Xb=150,$l=20,Qx=110,Zb=96;function of(a){return a.type==="project"&&Cn(a)?0:a.type==="founding"?Zb:a.type==="start"||a.type==="milestone"||a.type==="merge"&&(a.mergeImages?.length??0)===1||Cn(a)?Lh:fw}function qx(a,e,i,r,o){const c=[...r].map(h=>({x:o(h.year),gap:of(h)})).filter(({x:h})=>h>a&&h<e).sort((h,p)=>h.x-p.x),u=[];let f=a;for(const{x:h,gap:p}of c){const x=h-p;x>f&&u.push(`M ${f} ${i} L ${x} ${i}`),f=h+p}return f<e&&u.push(`M ${f} ${i} L ${e} ${i}`),u.join(" ")}const vs=56,Wb=1,Qb=vs+ow;function Am(a,e,i,r,o=Rp,c){const u=[...new Set(i)].sort((v,y)=>v-y),f=new Map;let h=o;for(const v of u)h+=r+(c?.get(v)??0),f.set(v,h);const p=u.at(-1)??a,x=f.get(p)??o,g=f.get(e)??x+r;return v=>{if(f.has(v))return f.get(v);if(v<=a)return o;if(v>=e)return g;const y=u.findIndex(C=>C>v);
9if(y<=0){const C=f.get(u[0])??o,I=(v-a)/(u[0]-a);return o+I*(C-o)}const M=u[y-1],T=u[y],E=f.get(M),b=f.get(T),R=(v-M)/(T-M);return E+R*(b-E)}}function hw(a){return a.type==="founding"?Gb:a.type==="start"?lw:a.type==="milestone"?sf:a.type==="merge"?(a.mergeImages?.length??0)===1?sf:jb:Cn(a)?cw:[Xx,Xx]}function qb(a,e){return a.type==="founding"?[0,Gb[1]]:a.type==="milestone"?[sf[0],0]:a.type==="merge"?[((a.mergeImages?.length??0)===1?sf:jb)[0],0]:a.type==="project"&&!Cn(a)?e==="above"?[Zx,0]:[0,Zx]:[0,0]}function pw(a,e,i,r){const o=new Set(e.filter(f=>f.position===a).map(f=>f.id)),c={up:0,down:0},u={up:0,down:0};for(const f of i){if(!o.has(f.branch))continue;const[h,p]=hw(f),[x,g]=qb(f,r);c.up=Math.max(c.up,h,x),c.down=Math.max(c.down,p,g),u.up=Math.max(u.up,x),u.down=Math.max(u.down,g)}return{content:c,label:u}}function mw(a,e){const i=new Map(a.map(c=>[c.id,c.position])),r=(c,u)=>c<u?`${c}|${u}`:`${u}|${c}`,o=new Set;for(const c of e){if(c.type!=="merge"&&c.type!=="founding"||c.fromBranches.includes(c.branch))continue;const u=i.get(c.branch);if(u!==void 0)for(const f of c.fromBranches){const h=i.get(f);h===void 0||h===u||o.add(r(u,h))}}return o}function gw(a,e){const i=new Map;for(const r of a){const o=e.filter(u=>u.branch===r.id).map(u=>u.year);let c=Number.POSITIVE_INFINITY;for(const u of e)(u.type==="merge"||u.type==="founding")&&u.branch!==r.id&&u.fromBranches.includes(r.id)&&(c=Math.min(c,u.year));i.set(r.id,{from:o.length?Math.min(...o):Number.POSITIVE_INFINITY,to:c})}return i}function Kb(a,e,i){const r=a.map(v=>v.position),o=[...new Set(r)].sort((v,y)=>v-y);if(o.length===0)return{positions:[],offsets:[],totalBand:0,topPad:0,botPad:0};const c=(Math.min(...r)+Math.max(...r))/2,u=o.map(v=>pw(v,a,e,v<=c?"above":"below")),f=mw(a,e),h=[0];for(let v=1;v<o.length;v++){const y=u[v-1],M=u[v];let T=i;f.has(`${o[v-1]}|${o[v]}`)?T=i*uw:(M.label.up>0&&(T=Math.max(T,y.content.down+M.label.up+yu)),y.label.down>0&&(T=Math.max(T,y.label.down+M.content.up+yu))),h[v]=h[v-1]+T}const p=gw(a,e),x=new Map(o.map((v,y)=>[v,y])),g=(v,y)=>a.some(M=>{if(x.get(M.position)!==v)return!1;const T=p.get(M.id);return!!T&&T.from<=y&&y<T.to});for(const v of e){const y=x.get(a.find(b=>b.id===v.branch)?.position??Number.NaN);if(y===void 0)continue;const M=o[y]<=c?"above":"below",[T,E]=qb(v,M);if(T>0)for(let b=y-1;b>=0;b--){if(!g(b,v.year))continue;const R=T+yu;if(h[y]-h[b]<R){const C=R-(h[y]-h[b]);for(let I=y;I<h.length;I++)h[I]+=C}break}if(E>0)for(let b=y+1;b<o.length;b++){if(!g(b,v.year))continue;const R=E+yu;if(h[b]-h[y]<R){const C=R-(h[b]-h[y]);for(let I=b;I<h.length;I++)h[I]+=C}break}}return{positions:o,offsets:h,totalBand:h[h.length-1],topPad:Math.max(Wx,u[0].content.up),botPad:Math.max(Wx,u[u.length-1].content.down)}}function vw(a,e,i,r,o=0,c=0){if(a.length===0)return new Map;const u=Kb(a,e,r),f=o+u.topPad,h=i-c-u.botPad,x=(f+h)/2-u.totalBand/2,g=new Map;return u.positions.forEach((v,y)=>g.set(v,x+u.offsets[y])),new Map(a.map(v=>[v.id,g.get(v.position)]))}function xw(a,e){const i=a.map(f=>({position:f.position,y:e.get(f.id)})).filter(f=>f.y!==void 0);if(i.length===0)return 0;const r=i.map(f=>f.position),o=(Math.min(...r)+Math.max(...r))/2,c=Math.max(...i.filter(f=>f.position<=o).map(f=>f.y)),u=i.filter(f=>f.position>o).map(f=>f.y);return u.length===0?c+1:(c+Math.min(...u))/2}function yw(a,e,i,r,o){if(a.length===0)return r;const{totalBand:c,topPad:u,botPad:f}=Kb(a,e,i);return Math.max(r,o+u+c+f+Qb)}function bw(a,e){const i=[...new Set(a.map(f=>f.year))].sort((f,h)=>f-h),r=new Map,o=new Map;function c(f,h){const p=a.filter(x=>x.branch===f&&x.year<h);return p.length>0?p.reduce((x,g)=>g.year>x.year?g:x):void 0}let u=0;for(const f of i){let h=0;for(const p of a){if(p.year!==f||p.type!=="merge"&&p.type!=="founding")continue;const x=[],g=c(p.branch,f),v=g?o.get(g.year):void 0;g&&v!==void 0&&x.push(v+ec(g)+Math.max(dw,40+2*Qx));for(const M of p.fromBranches){if(M===p.branch)continue;const T=c(M,f),E=T?o.get(T.year):void 0;
9T&&E!==void 0&&x.push(E+ec(T)+Xb+2*Qx)}if(x.length===0)continue;const y=Math.max(...x)+Yb;h=Math.max(h,y-(u+e))}h=Math.max(0,Math.ceil(h)),h>0&&r.set(f,h),u+=e+h,o.set(f,u)}return r}const Sw=60;function ec(a){if(a.type==="project"&&Cn(a))return 190;if(a.type==="merge"){if((a.mergeImages?.length??0)===1)return 150;const e=(a.mergeImages?.length??0)>=2?a.mergeImages.length:Math.max(2,a.fromBranches.length);return Math.max((e-1)*58/2+50,150)}return a.type==="founding"?Math.max(Zb+10,150):a.type==="milestone"?150:of(a)+10}function lf(a,e,i){let r=i(a.year)-Yb;const o=e.filter(c=>c.branch===a.branch&&c.year<a.year).sort((c,u)=>u.year-c.year);for(const c of o){const u=i(c.year);if(r>=u+ec(c))break;r=Math.min(r,u-Sw)}return r}function Ew(a,e,i,r,o,c){const u=r.filter(x=>x.branch===a&&x.year<e),f=u.length>0?u.reduce((x,g)=>g.year>x.year?g:x):void 0,h=f?o(f.year)+ec(f)+Xb:o(e-1),p=i-h;return p<=0?$l:Math.min(c,Math.max($l,p/2))}function Mw(a,e,i,r,o,c){const u=lf(e,i,o),f=r.get(a),h=r.get(e.branch);if(f===void 0||h===void 0)return c;let p=Ew(a,e.year,u,i,o,c);const x=Math.min(f,h)-1,g=Math.max(f,h)+1;for(const v of i){if(v===e)continue;const y=r.get(v.branch);if(y===void 0||y<x||y>g)continue;const M=o(v.year)+ec(v)+40;M>=u||(p=Math.min(p,(u-M)/2))}return Math.max($l,p)}function Aw(a,e,i,r,o){const c=a.fromBranches.filter(f=>f!==a.branch);if(c.length===0)return Math.max($l,o);const u=c.map(f=>Mw(f,a,e,i,r,o));return Math.max($l,Math.min(...u))}function ww(a,e,i){const{timeline:r,branches:o,nodes:c}=a,u=[];for(const f of o){const h=i.get(f.id);if(h===void 0||!c.some(D=>D.branch===f.id?!0:D.type==="merge"||D.type==="founding"?D.fromBranches.includes(f.id):!1))continue;const x=c.filter(D=>D.type==="start"&&D.branch===f.id||(D.type==="merge"||D.type==="founding")&&D.branch===f.id),g=x.length>0?x.reduce((D,A)=>A.year<D.year?A:D):void 0,v=c.filter(D=>(D.type==="merge"||D.type==="founding")&&D.fromBranches.includes(f.id)&&D.branch!==f.id),y=v.length>0?v.reduce((D,A)=>A.year<D.year?A:D):void 0,M=g?.type==="merge"||g?.type==="founding",T=e(g?g.year:r.startYear),E=g?T+of(g):e(r.startYear),b=M&&g?`M ${lf(g,c,e)} ${h} L ${T-of(g)} ${h}`:"",R=y?lf(y,c,e):e(a.timeline.endYear)+ew,C=y?.type==="merge"||y?.type==="founding"?i.get(y.branch)??h:h;let I;const U=Math.abs(h-C)>1,B=c.filter(D=>D.type==="project"&&D.branch===f.id);if(U){const A=Aw(y,c,i,e,r.curveRadius),L=R-A*2;if(L>E){const X=qx(E,L,h,B.filter(k=>e(k.year)<L),e);I=[b,X,`M ${L} ${h}`,`C ${L+A} ${h},`,`${R-A} ${C},`,`${R} ${C}`].filter(Boolean).join(" ")}else I=[b,`M ${E} ${h}`,`C ${E+A} ${h},`,`${R-A} ${C},`,`${R} ${C}`].filter(Boolean).join(" ")}else{const D=qx(E,R,h,B,e);I=[b,D].filter(Boolean).join(" ")}u.push({branchId:f.id,pathData:I,strokeWidth:r.lineThickness,strokeColor:r.color})}return u}function Tw(a,e,i,r,o=0,c=0){const{timeline:u,branches:f,nodes:h}=a,p=Math.max(u.pixelsPerYear,280),x=r!==void 0?r:i?Math.max(Rp,Math.round(i/2)):Rp,g=Am(u.startYear,u.endYear,h.map(C=>C.year),p,x,bw(h,p)),v=u.rightPadding??aw,y=g(u.endYear)+v,M=vw(f,h,e,u.gapBetweenBranches,o,c),T=xw(f,M),E=h.map((C,I)=>({nodeId:`node-${I}`,definition:C,canvasX:g(C.year),canvasY:M.get(C.branch)??T})),b=new Map;for(let C=0;C<E.length;C++){const I=E[C].definition.branch;b.has(I)||b.set(I,[]),b.get(I).push(C)}for(const C of b.values()){C.sort((I,U)=>E[I].canvasX-E[U].canvasX);for(let I=1;I<C.length;I++){const U=E[C[I-1]],B=E[C[I]],D=B.canvasX-U.canvasX,L=U.definition.type==="merge"||U.definition.type==="founding"||B.definition.type==="merge"||B.definition.type==="founding"?sw:rw;D<L&&(B.canvasX=U.canvasX+L)}}const R=ww(a,g,M);return{computedNodes:E,computedBranchPaths:R,totalCanvasWidth:y,centerY:T,yearToCanvasX:g,branchCanvasYMap:M}}function Rw(a,e,i){const r=i*.25,o=i*.75,c=i/2,u=a.filter(f=>{const h=f.canvasX-e;return h>=r&&h<=o});return u.length>0?u.reduce((f,h)=>{const p=Math.abs(f.canvasX-e-c);return Math.abs(h.canvasX-e-c)<p?h:f}).nodeId:null}const Tl=12,Js=3.5,bu=12,Cw=8;function Iw({computedNodes:a,totalCanvasWidth:e,viewportWidth:i,horizontalShift:r,progressCanvasX:o,accentColor:c,yearToCanvasX:u,onNodeClick:f}){const h=Math.max(e,r+i+1),p=Js+Cw,x=new Set,g=[];for(const C of a){const I=C.definition.year;
9x.has(I)||(x.add(I),g.push({year:I,canonicalX:u(I),nodeId:C.nodeId}))}const v=g.map(C=>C.canonicalX),y=[],M=[...v].sort((C,I)=>C-I);let T=0;for(const C of M){const I=C-p;I>T&&y.push({left:T,right:I}),T=C+p}T<h&&y.push({left:T,right:h});const E=o-3,b=y.map(C=>({left:C.left,right:Math.min(C.right,E)})).filter(C=>C.right>C.left),R=y.map(C=>({left:Math.max(C.left,o),right:C.right})).filter(C=>C.right>C.left);return S.jsx("div",{className:"pointer-events-auto absolute left-0 right-0 z-20 overflow-hidden",style:{bottom:"env(safe-area-inset-bottom, 0px)",height:vs},children:S.jsxs("div",{className:"absolute inset-y-0 left-0",style:{width:h,transform:`translateX(${-r}px)`},children:[S.jsxs("div",{"aria-hidden":"true",children:[b.map((C,I)=>S.jsx("div",{className:"absolute h-px",style:{top:Tl,left:C.left,width:C.right-C.left,background:c}},`active-${I}`)),R.map((C,I)=>S.jsx("div",{className:"absolute h-px bg-white/50",style:{top:Tl,left:C.left,width:C.right-C.left}},`inactive-${I}`))]}),g.map(({year:C,canonicalX:I,nodeId:U})=>{const B=I<=o,D=()=>f(U);return S.jsxs("div",{children:[S.jsx("div",{className:"absolute cursor-pointer",style:{left:I-bu,top:Tl-bu,width:bu*2,height:bu*2},onClick:D}),S.jsx("div",{className:"absolute rounded-full pointer-events-none",style:{left:I-Js,top:Tl-Js,width:Js*2,height:Js*2,background:B?c:"rgba(255,255,255,0.5)"}}),S.jsx("span",{className:"absolute cursor-pointer whitespace-nowrap text-base font-light tracking-[0.04em] text-white",style:{left:I,top:Tl+Js+5,transform:"translateX(-50%)",fontFamily:"'Source Sans Pro', sans-serif",lineHeight:1},onClick:D,children:C})]},`year-${C}`)})]})})}function Jb(a){var e,i,r="";if(typeof a=="string"||typeof a=="number")r+=a;else if(typeof a=="object")if(Array.isArray(a)){var o=a.length;for(e=0;e<o;e++)a[e]&&(i=Jb(a[e]))&&(r&&(r+=" "),r+=i)}else for(i in a)a[i]&&(r&&(r+=" "),r+=i);return r}function Dw(){for(var a,e,i=0,r="",o=arguments.length;i<o;i++)(a=arguments[i])&&(e=Jb(a))&&(r&&(r+=" "),r+=e);return r}const Nw=(a,e)=>{const i=new Array(a.length+e.length);for(let r=0;r<a.length;r++)i[r]=a[r];for(let r=0;r<e.length;r++)i[a.length+r]=e[r];return i},Lw=(a,e)=>({classGroupId:a,validator:e}),$b=(a=new Map,e=null,i)=>({nextPart:a,validators:e,classGroupId:i}),cf="-",Kx=[],Pw="arbitrary..",Ow=a=>{const e=Uw(a),{conflictingClassGroups:i,conflictingClassGroupModifiers:r}=a;return{getClassGroupId:u=>{if(u.startsWith("[")&&u.endsWith("]"))return Bw(u);const f=u.split(cf),h=f[0]===""&&f.length>1?1:0;return eS(f,h,e)},getConflictingClassGroupIds:(u,f)=>{if(f){const h=r[u],p=i[u];return h?p?Nw(p,h):h:p||Kx}return i[u]||Kx}}},eS=(a,e,i)=>{if(a.length-e===0)return i.classGroupId;const o=a[e],c=i.nextPart.get(o);if(c){const p=eS(a,e+1,c);if(p)return p}const u=i.validators;if(u===null)return;const f=e===0?a.join(cf):a.slice(e).join(cf),h=u.length;for(let p=0;p<h;p++){const x=u[p];if(x.validator(f))return x.classGroupId}},Bw=a=>a.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=a.slice(1,-1),i=e.indexOf(":"),r=e.slice(0,i);return r?Pw+r:void 0})(),Uw=a=>{const{theme:e,classGroups:i}=a;return kw(i,e)},kw=(a,e)=>{const i=$b();for(const r in a){const o=a[r];wm(o,i,r,e)}return i},wm=(a,e,i,r)=>{const o=a.length;for(let c=0;c<o;c++){const u=a[c];zw(u,e,i,r)}},zw=(a,e,i,r)=>{if(typeof a=="string"){_w(a,e,i);return}if(typeof a=="function"){Hw(a,e,i,r);return}Fw(a,e,i,r)},_w=(a,e,i)=>{const r=a===""?e:tS(e,a);r.classGroupId=i},Hw=(a,e,i,r)=>{if(Vw(a)){wm(a(r),e,i,r);return}e.validators===null&&(e.validators=[]),e.validators.push(Lw(i,a))},Fw=(a,e,i,r)=>{const o=Object.entries(a),c=o.length;for(let u=0;u<c;u++){const[f,h]=o[u];wm(h,tS(e,f),i,r)}},tS=(a,e)=>{let i=a;const r=e.split(cf),o=r.length;for(let c=0;c<o;c++){const u=r[c];let f=i.nextPart.get(u);f||(f=$b(),i.nextPart.set(u,f)),i=f}return i},Vw=a=>"isThemeGetter"in a&&a.isThemeGetter===!0,Gw=a=>{if(a<1)return{get:()=>{},set:()=>{}};let e=0,i=Object.create(null),r=Object.create(null);const o=(c,u)=>{i[c]=u,e++,e>a&&(e=0,r=i,i=Object.create(null))};return{get(c){let u=i[c];if(u!==void 0)return u;if((u=r[c])!==void 0)return o(c,u),u},set(c,u){c in i?i[c]=u:o(c,u)}}},Cp="!",Jx=":",jw=[],$x=(a,e,i,r,o)=>({modifiers:a,hasImportantModifier:e,baseClassName:i,maybePostfixModifierPosition:r,isExternal:o}),Yw=a=>{const{prefix:e,experimentalParseClassName:i}=a;let r=o=>{const c=[];let u=0,f=0,h=0,p;const x=o.length;for(let T=0;T<x;T++){const E=o[T];if(u===0&&f===0){if(E===Jx){c.push(o.slice(h,T)),h=T+1;continue}if(E==="/"){p=T;continue}}E==="["?u++:E==="]"?u--:E==="("?f++:E===")"&&f--}const g=c.length===0?o:o.slice(h);let v=g,y=!1;g.endsWith(Cp)?(v=g.slice(0,-1),y=!0):g.startsWith(Cp)&&(v=g.slice(1),y=!0);const M=p&&p>h?p-h:void 0;return $x(c,y,v,M)};if(e){const o=e+Jx,c=r;r=u=>u.startsWith(o)?c(u.slice(o.length)):$x(jw,!1,u,void 0,!0)}if(i){const o=r;r=c=>i({className:c,parseClassName:o})}return r},Xw=a=>{const e=new Map;
vendor: 4,688 bytes, line 9
9return a.orderSensitiveModifiers.forEach((i,r)=>{e.set(i,1e6+r)}),i=>{const r=[];let o=[];for(let c=0;c<i.length;c++){const u=i[c],f=u[0]==="[",h=e.has(u);f||h?(o.length>0&&(o.sort(),r.push(...o),o=[]),r.push(u)):o.push(u)}return o.length>0&&(o.sort(),r.push(...o)),r}},Zw=a=>({cache:Gw(a.cacheSize),parseClassName:Yw(a),sortModifiers:Xw(a),...Ow(a)}),Ww=/\s+/,Qw=(a,e)=>{const{parseClassName:i,getClassGroupId:r,getConflictingClassGroupIds:o,sortModifiers:c}=e,u=[],f=a.trim().split(Ww);let h="";for(let p=f.length-1;p>=0;p-=1){const x=f[p],{isExternal:g,modifiers:v,hasImportantModifier:y,baseClassName:M,maybePostfixModifierPosition:T}=i(x);if(g){h=x+(h.length>0?" "+h:h);continue}let E=!!T,b=r(E?M.substring(0,T):M);if(!b){if(!E){h=x+(h.length>0?" "+h:h);continue}if(b=r(M),!b){h=x+(h.length>0?" "+h:h);continue}E=!1}const R=v.length===0?"":v.length===1?v[0]:c(v).join(":"),C=y?R+Cp:R,I=C+b;if(u.indexOf(I)>-1)continue;u.push(I);const U=o(b,E);for(let B=0;B<U.length;++B){const D=U[B];u.push(C+D)}h=x+(h.length>0?" "+h:h)}return h},qw=(...a)=>{let e=0,i,r,o="";for(;e<a.length;)(i=a[e++])&&(r=nS(i))&&(o&&(o+=" "),o+=r);return o},nS=a=>{if(typeof a=="string")return a;let e,i="";for(let r=0;r<a.length;r++)a[r]&&(e=nS(a[r]))&&(i&&(i+=" "),i+=e);return i},Kw=(a,...e)=>{let i,r,o,c;const u=h=>{const p=e.reduce((x,g)=>g(x),a());return i=Zw(p),r=i.cache.get,o=i.cache.set,c=f,f(h)},f=h=>{const p=r(h);if(p)return p;const x=Qw(h,i);return o(h,x),x};return c=u,(...h)=>c(qw(...h))},Jw=[],Mn=a=>{const e=i=>i[a]||Jw;return e.isThemeGetter=!0,e},iS=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,aS=/^\((?:(\w[\w-]*):)?(.+)\)$/i,$w=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,e1=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,t1=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,n1=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,i1=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,a1=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mr=a=>$w.test(a),It=a=>!!a&&!Number.isNaN(Number(a)),gr=a=>!!a&&Number.isInteger(Number(a)),Ph=a=>a.endsWith("%")&&It(a.slice(0,-1)),Ta=a=>e1.test(a),rS=()=>!0,r1=a=>t1.test(a)&&!n1.test(a),Tm=()=>!1,s1=a=>i1.test(a),o1=a=>a1.test(a),l1=a=>!at(a)&&!rt(a),c1=a=>Ir(a,lS,Tm),at=a=>iS.test(a),Zr=a=>Ir(a,cS,r1),ey=a=>Ir(a,v1,It),u1=a=>Ir(a,fS,rS),f1=a=>Ir(a,uS,Tm),ty=a=>Ir(a,sS,Tm),d1=a=>Ir(a,oS,o1),Su=a=>Ir(a,dS,s1),rt=a=>aS.test(a),Rl=a=>xs(a,cS),h1=a=>xs(a,uS),ny=a=>xs(a,sS),p1=a=>xs(a,lS),m1=a=>xs(a,oS),Eu=a=>xs(a,dS,!0),g1=a=>xs(a,fS,!0),Ir=(a,e,i)=>{const r=iS.exec(a);return r?r[1]?e(r[1]):i(r[2]):!1},xs=(a,e,i=!1)=>{const r=aS.exec(a);return r?r[1]?e(r[1]):i:!1},sS=a=>a==="position"||a==="percentage",oS=a=>a==="image"||a==="url",lS=a=>a==="length"||a==="size"||a==="bg-size",cS=a=>a==="length",v1=a=>a==="number",uS=a=>a==="family-name",fS=a=>a==="number"||a==="weight",dS=a=>a==="shadow",x1=()=>{const a=Mn("color"),e=Mn("font"),i=Mn("text"),r=Mn("font-weight"),o=Mn("tracking"),c=Mn("leading"),u=Mn("breakpoint"),f=Mn("container"),h=Mn("spacing"),p=Mn("radius"),x=Mn("shadow"),g=Mn("inset-shadow"),v=Mn("text-shadow"),y=Mn("drop-shadow"),M=Mn("blur"),T=Mn("perspective"),E=Mn("aspect"),b=Mn("ease"),R=Mn("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],I=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],U=()=>[...I(),rt,at],B=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],A=()=>[rt,at,h],L=()=>[mr,"full","auto",...A()],X=()=>[gr,"none","subgrid",rt,at],k=()=>["auto",{span:["full",gr,rt,at]},gr,rt,at],G=()=>[gr,"auto",rt,at],Y=()=>["auto","min","max","fr",rt,at],ee=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Z=()=>["start","end","center","stretch","center-safe","end-safe"],_=()=>["auto",...A()],F=()=>[mr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...A()],se=()=>[mr,"screen","full","dvw","lvw","svw","min","max","fit",...A()],fe=()=>[mr,"screen","full","lh","dvh","lvh","svh","min","max","fit",...A()],ae=()=>[a,rt,at],H=()=>[...I(),ny,ty,{position:[rt,at]}],Q=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Se=()=>["auto","cover","contain",p1,c1,{size:[rt,at]}],ye=()=>[Ph,Rl,Zr],Ce=()=>["","none","full",p,rt,at],$=()=>["",It,Rl,Zr],me=()=>["solid","dashed","dotted","double"],Me=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Te=()=>
vendor: 6,875 bytes, line 9
9[It,Ph,ny,ty],Ze=()=>["","none",M,rt,at],tt=()=>["none",It,rt,at],yt=()=>["none",It,rt,at],xt=()=>[It,rt,at],pt=()=>[mr,"full",...A()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ta],breakpoint:[Ta],color:[rS],container:[Ta],"drop-shadow":[Ta],ease:["in","out","in-out"],font:[l1],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ta],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ta],shadow:[Ta],spacing:["px",It],text:[Ta],"text-shadow":[Ta],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",mr,at,rt,E]}],container:["container"],columns:[{columns:[It,at,rt,f]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:U()}],overflow:[{overflow:B()}],"overflow-x":[{"overflow-x":B()}],"overflow-y":[{"overflow-y":B()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:L()}],"inset-x":[{"inset-x":L()}],"inset-y":[{"inset-y":L()}],start:[{"inset-s":L(),start:L()}],end:[{"inset-e":L(),end:L()}],"inset-bs":[{"inset-bs":L()}],"inset-be":[{"inset-be":L()}],top:[{top:L()}],right:[{right:L()}],bottom:[{bottom:L()}],left:[{left:L()}],visibility:["visible","invisible","collapse"],z:[{z:[gr,"auto",rt,at]}],basis:[{basis:[mr,"full","auto",f,...A()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[It,mr,"auto","initial","none",at]}],grow:[{grow:["",It,rt,at]}],shrink:[{shrink:["",It,rt,at]}],order:[{order:[gr,"first","last","none",rt,at]}],"grid-cols":[{"grid-cols":X()}],"col-start-end":[{col:k()}],"col-start":[{"col-start":G()}],"col-end":[{"col-end":G()}],"grid-rows":[{"grid-rows":X()}],"row-start-end":[{row:k()}],"row-start":[{"row-start":G()}],"row-end":[{"row-end":G()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Y()}],"auto-rows":[{"auto-rows":Y()}],gap:[{gap:A()}],"gap-x":[{"gap-x":A()}],"gap-y":[{"gap-y":A()}],"justify-content":[{justify:[...ee(),"normal"]}],"justify-items":[{"justify-items":[...Z(),"normal"]}],"justify-self":[{"justify-self":["auto",...Z()]}],"align-content":[{content:["normal",...ee()]}],"align-items":[{items:[...Z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Z(),{baseline:["","last"]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...Z(),"baseline"]}],"place-self":[{"place-self":["auto",...Z()]}],p:[{p:A()}],px:[{px:A()}],py:[{py:A()}],ps:[{ps:A()}],pe:[{pe:A()}],pbs:[{pbs:A()}],pbe:[{pbe:A()}],pt:[{pt:A()}],pr:[{pr:A()}],pb:[{pb:A()}],pl:[{pl:A()}],m:[{m:_()}],mx:[{mx:_()}],my:[{my:_()}],ms:[{ms:_()}],me:[{me:_()}],mbs:[{mbs:_()}],mbe:[{mbe:_()}],mt:[{mt:_()}],mr:[{mr:_()}],mb:[{mb:_()}],ml:[{ml:_()}],"space-x":[{"space-x":A()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":A()}],"space-y-reverse":["space-y-reverse"],size:[{size:F()}],"inline-size":[{inline:["auto",...se()]}],"min-inline-size":[{"min-inline":["auto",...se()]}],"max-inline-size":[{"max-inline":["none",...se()]}],"block-size":[{block:["auto",...fe()]}],"min-block-size":[{"min-block":["auto",...fe()]}],"max-block-size":[{"max-block":["none",...fe()]}],w:[{w:[f,"screen",...F()]}],"min-w":[{"min-w":[f,"screen","none",...F()]}],"max-w":[{"max-w":[f,"screen","none","prose",{screen:[u]},...F()]}],h:[{h:["screen","lh",...F()]}],"min-h":[{"min-h":["screen","lh","none",...F()]}],"max-h":[{"max-h":["screen","lh",...F()]}],"font-size":[{text:["base",i,Rl,Zr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,g1,u1]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ph,at]}],"font-family":[{font:[h1,f1,e]}],"font-features":[{"font-features":[at]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,rt,at]}],"line-clamp":[{"line-clamp":[It,"none",rt,ey]}],leading:[{leading:[c,...A()]}],"list-image":[{"list-image":["none",rt,at]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",rt,at]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:ae()}],"text-color":[{text:ae()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...me(),"wavy"]}],"text-decoration-thickness":[{decoration:[It,"from-font","auto",rt,Zr]}],"text-decoration-color":[{decoration:ae()}],"underline-offset":[{"underline-offset":[It,"auto",rt,at]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:A()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",rt,at]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",rt,at]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:H()}],"bg-repeat":[{bg:Q()}],"bg-size":[{bg:Se()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},gr,rt,at],radial:["",rt,at],conic:[gr,rt,at]},m1,d1]}],"bg-color":[{bg:ae()}],"gradient-from-pos":[{from:ye()}
vendor: 7,431 bytes, line 9
9],"gradient-via-pos":[{via:ye()}],"gradient-to-pos":[{to:ye()}],"gradient-from":[{from:ae()}],"gradient-via":[{via:ae()}],"gradient-to":[{to:ae()}],rounded:[{rounded:Ce()}],"rounded-s":[{"rounded-s":Ce()}],"rounded-e":[{"rounded-e":Ce()}],"rounded-t":[{"rounded-t":Ce()}],"rounded-r":[{"rounded-r":Ce()}],"rounded-b":[{"rounded-b":Ce()}],"rounded-l":[{"rounded-l":Ce()}],"rounded-ss":[{"rounded-ss":Ce()}],"rounded-se":[{"rounded-se":Ce()}],"rounded-ee":[{"rounded-ee":Ce()}],"rounded-es":[{"rounded-es":Ce()}],"rounded-tl":[{"rounded-tl":Ce()}],"rounded-tr":[{"rounded-tr":Ce()}],"rounded-br":[{"rounded-br":Ce()}],"rounded-bl":[{"rounded-bl":Ce()}],"border-w":[{border:$()}],"border-w-x":[{"border-x":$()}],"border-w-y":[{"border-y":$()}],"border-w-s":[{"border-s":$()}],"border-w-e":[{"border-e":$()}],"border-w-bs":[{"border-bs":$()}],"border-w-be":[{"border-be":$()}],"border-w-t":[{"border-t":$()}],"border-w-r":[{"border-r":$()}],"border-w-b":[{"border-b":$()}],"border-w-l":[{"border-l":$()}],"divide-x":[{"divide-x":$()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":$()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...me(),"hidden","none"]}],"divide-style":[{divide:[...me(),"hidden","none"]}],"border-color":[{border:ae()}],"border-color-x":[{"border-x":ae()}],"border-color-y":[{"border-y":ae()}],"border-color-s":[{"border-s":ae()}],"border-color-e":[{"border-e":ae()}],"border-color-bs":[{"border-bs":ae()}],"border-color-be":[{"border-be":ae()}],"border-color-t":[{"border-t":ae()}],"border-color-r":[{"border-r":ae()}],"border-color-b":[{"border-b":ae()}],"border-color-l":[{"border-l":ae()}],"divide-color":[{divide:ae()}],"outline-style":[{outline:[...me(),"none","hidden"]}],"outline-offset":[{"outline-offset":[It,rt,at]}],"outline-w":[{outline:["",It,Rl,Zr]}],"outline-color":[{outline:ae()}],shadow:[{shadow:["","none",x,Eu,Su]}],"shadow-color":[{shadow:ae()}],"inset-shadow":[{"inset-shadow":["none",g,Eu,Su]}],"inset-shadow-color":[{"inset-shadow":ae()}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:ae()}],"ring-offset-w":[{"ring-offset":[It,Zr]}],"ring-offset-color":[{"ring-offset":ae()}],"inset-ring-w":[{"inset-ring":$()}],"inset-ring-color":[{"inset-ring":ae()}],"text-shadow":[{"text-shadow":["none",v,Eu,Su]}],"text-shadow-color":[{"text-shadow":ae()}],opacity:[{opacity:[It,rt,at]}],"mix-blend":[{"mix-blend":[...Me(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Me()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[It]}],"mask-image-linear-from-pos":[{"mask-linear-from":Te()}],"mask-image-linear-to-pos":[{"mask-linear-to":Te()}],"mask-image-linear-from-color":[{"mask-linear-from":ae()}],"mask-image-linear-to-color":[{"mask-linear-to":ae()}],"mask-image-t-from-pos":[{"mask-t-from":Te()}],"mask-image-t-to-pos":[{"mask-t-to":Te()}],"mask-image-t-from-color":[{"mask-t-from":ae()}],"mask-image-t-to-color":[{"mask-t-to":ae()}],"mask-image-r-from-pos":[{"mask-r-from":Te()}],"mask-image-r-to-pos":[{"mask-r-to":Te()}],"mask-image-r-from-color":[{"mask-r-from":ae()}],"mask-image-r-to-color":[{"mask-r-to":ae()}],"mask-image-b-from-pos":[{"mask-b-from":Te()}],"mask-image-b-to-pos":[{"mask-b-to":Te()}],"mask-image-b-from-color":[{"mask-b-from":ae()}],"mask-image-b-to-color":[{"mask-b-to":ae()}],"mask-image-l-from-pos":[{"mask-l-from":Te()}],"mask-image-l-to-pos":[{"mask-l-to":Te()}],"mask-image-l-from-color":[{"mask-l-from":ae()}],"mask-image-l-to-color":[{"mask-l-to":ae()}],"mask-image-x-from-pos":[{"mask-x-from":Te()}],"mask-image-x-to-pos":[{"mask-x-to":Te()}],"mask-image-x-from-color":[{"mask-x-from":ae()}],"mask-image-x-to-color":[{"mask-x-to":ae()}],"mask-image-y-from-pos":[{"mask-y-from":Te()}],"mask-image-y-to-pos":[{"mask-y-to":Te()}],"mask-image-y-from-color":[{"mask-y-from":ae()}],"mask-image-y-to-color":[{"mask-y-to":ae()}],"mask-image-radial":[{"mask-radial":[rt,at]}],"mask-image-radial-from-pos":[{"mask-radial-from":Te()}],"mask-image-radial-to-pos":[{"mask-radial-to":Te()}],"mask-image-radial-from-color":[{"mask-radial-from":ae()}],"mask-image-radial-to-color":[{"mask-radial-to":ae()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":I()}],"mask-image-conic-pos":[{"mask-conic":[It]}],"mask-image-conic-from-pos":[{"mask-conic-from":Te()}],"mask-image-conic-to-pos":[{"mask-conic-to":Te()}],"mask-image-conic-from-color":[{"mask-conic-from":ae()}],"mask-image-conic-to-color":[{"mask-conic-to":ae()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:H()}],"mask-repeat":[{mask:Q()}],"mask-size":[{mask:Se()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",rt,at]}],filter:[{filter:["","none",rt,at]}],blur:[{blur:Ze()}],brightness:[{brightness:[It,rt,at]}],contrast:[{contrast:[It,rt,at]}],"drop-shadow":[{"drop-shadow":["","none",y,Eu,Su]}],"drop-shadow-color":[{"drop-shadow":ae()}],grayscale:[{grayscale:["",It,rt,at]}],"hue-rotate":[{"hue-rotate":[It,rt,at]}],invert:[{invert:["",It,rt,at]}],saturate:[{saturate:[It,rt,at]}],sepia:[{sepia:["",It,rt,at]}],"backdrop-filter":[{"backdrop-filter":["","none",rt,at]}],"backdrop-blur":[{"backdrop-blur":Ze()}],"backdrop-brightness":[{"backdrop-brightness":[It,rt,at]}],"backdrop-contrast":[{"backdrop-contrast":[It,rt,at]}],"backdrop-grayscale":[{"backdrop-grayscale":["",It,rt,at]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[It,rt,at]}],"backdrop-invert":[{"backdrop-invert":["",It,rt,at]}],"backdrop-opacity":[{"backdrop-opacity":[It,rt,at]}],"backdrop-saturate":[{"backdrop-saturate":[It,rt,at]}],"backdrop-sepia":[{"backdrop-sepia":["",It,rt,at]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":A()}],"border-spacing-x":[{"border-spacing-x":A()}],"border-spacing-y":[{"border-spacing-y":A()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",rt,at]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[It,"initial",rt,at]}],ease:[{ease:["linear","initial",b,rt,at]}],delay:[{delay:[It,rt,at]}],animate:[{animate:["none",R,rt,at]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,rt,at]}],"perspective-origin":[{"perspective-origin":U()}],rotate:[{rotate:tt()}],"rotate-x":[{"rotate-x":tt()}],"rotate-y":[{"rotate-y":tt()}],"rotate-z":[{"rotate-z":tt()}],scale:[{scale:yt()}],"scale-x":[{"scale-x":yt()}],"scale-y":[{"scale-y":yt()}],"scale-z":[{"scale-z":yt()}],"scale-3d":["scale-3d"],skew:[{skew:xt()}],"skew-x":[{"skew-x":xt()}],"skew-y":[{"skew-y":xt()}],transform:[{transform:[rt,at,"","none","gpu","cpu"]}],"transform-origin":[{origin:U()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:pt()}],"translate-x":[{"translate-x":pt()}],"translate-y":[{"translate-y":pt()}],"translate-z":[{"translate-z":pt()}],"translate-none":["translate-none"],accent:[{accent:ae()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:ae()}
9],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",rt,at]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":A()}],"scroll-mx":[{"scroll-mx":A()}],"scroll-my":[{"scroll-my":A()}],"scroll-ms":[{"scroll-ms":A()}],"scroll-me":[{"scroll-me":A()}],"scroll-mbs":[{"scroll-mbs":A()}],"scroll-mbe":[{"scroll-mbe":A()}],"scroll-mt":[{"scroll-mt":A()}],"scroll-mr":[{"scroll-mr":A()}],"scroll-mb":[{"scroll-mb":A()}],"scroll-ml":[{"scroll-ml":A()}],"scroll-p":[{"scroll-p":A()}],"scroll-px":[{"scroll-px":A()}],"scroll-py":[{"scroll-py":A()}],"scroll-ps":[{"scroll-ps":A()}],"scroll-pe":[{"scroll-pe":A()}],"scroll-pbs":[{"scroll-pbs":A()}],"scroll-pbe":[{"scroll-pbe":A()}],"scroll-pt":[{"scroll-pt":A()}],"scroll-pr":[{"scroll-pr":A()}],"scroll-pb":[{"scroll-pb":A()}],"scroll-pl":[{"scroll-pl":A()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",rt,at]}],fill:[{fill:["none",...ae()]}],"stroke-w":[{stroke:[It,Rl,Zr,ey]}],stroke:[{stroke:["none",...ae()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},y1=Kw(x1);function Hn(...a){return y1(Dw(a))}function b1({visible:a,onClick:e}){const i=Rr();return a?S.jsxs("button",{type:"button",onClick:e,"aria-label":TYPO3.lang["20years.aria.scroll.timeline.further"],className:"group pointer-events-auto absolute inset-y-0 right-0 z-[46] w-[clamp(96px,9vw,160px)] cursor-pointer",children:[S.jsx("div",{className:Hn("absolute inset-0 opacity-0 transition-opacity duration-300 ease-out",!i&&"group-hover:opacity-100"),style:{background:"linear-gradient(to left, rgba(0, 0, 0, 0.38) 0%, rgba(0, 0, 0, 0.22) 35%, rgba(0, 0, 0, 0.08) 70%, transparent 100%)"}}),S.jsx("span",{className:Hn("absolute block h-5 w-5 rotate-[-45deg]","border-solid border-b-4 border-r-4 border-white/90","opacity-0 transition-opacity duration-300 ease-out",!i&&"group-hover:opacity-100"),style:{left:"calc(50% - 10px
9)",top:"calc(50% - 10px)"},"aria-hidden":"true"})]}):null}function hS(a){return typeof a!="string"?{content:a,hyphens:void 0}:{content:nn(a),hyphens:"manual"}}function pS({level:a=1,className:e,children:i}){const r=`h${a}`,{content:o,hyphens:c}=hS(i);return S.jsx(r,{className:Hn("m-0 p-0 font-display font-bold uppercase leading-none tracking-[-2px]","text-[clamp(32px,9.5vw,56px)] md:text-[clamp(56px,8vw,120px)] text-stroke-accent",e),style:{hyphens:c},children:o})}function mS({className:a,children:e}){const{content:i,hyphens:r}=hS(e);return S.jsx("p",{className:Hn("m-0 p-0 font-display font-bold uppercase leading-none tracking-[-2px]","text-[clamp(28px,4vw,64px)] text-off-white",a),style:{hyphens:r},children:i})}const S1=["arrow-phase-1","arrow-phase-2","arrow-phase-3"];function E1({canvasX:a,width:e,content:i,onCtaClick:r}){const o=Rr();return S.jsx("div",{className:"absolute flex h-full items-center",style:{left:a,top:0,width:e},children:S.jsxs("div",{className:"pointer-events-auto flex w-full flex-col items-start gap-y-5 px-[8vw]",children:[S.jsxs("div",{children:[i.header&&S.jsx(pS,{className:"text-[clamp(28px,6.5vw,120px)] md:text-[clamp(28px,6.5vw,120px)]",children:i.header}),i.subheader&&S.jsx(mS,{children:i.subheader})]}),S.jsx("button",{type:"button",onClick:r,"aria-label":TYPO3.lang["20years.aria.scroll.timeline"],className:Hn("group flex items-center gap-1 py-2","transition-transform duration-200 ease-out",!o&&"hover:[translate:4px]",r?"cursor-pointer":"pointer-events-none"),children:S1.map(c=>S.jsx("span",{className:Hn("block h-7 w-7 -rotate-45","border-solid border-b-4 border-r-4 border-accent","animate-hero-arrow-right",c)},c))})]})})}var M1=Ob();function gS({src:a,alt:e,caption:i,onSettled:r}){const[o,c]=ne.useState(!1),u=ne.useRef(null),f=ne.useRef(r);f.current=r;const h=ne.useCallback(p=>{p.naturalWidth!==0&&(c(p.naturalHeight>=p.naturalWidth),requestAnimationFrame(()=>requestAnimationFrame(()=>f.current?.())))},[]);return ne.useEffect(()=>{const p=u.current;p?.complete&&p.naturalWidth>0?h(p):c(!1)},[a,h]),S.jsxs("div",{className:Hn("relative w-full overflow-hidden",o&&"bg-[#f6f6f6]"),children:[S.jsx("img",{ref:u,src:a,alt:e??"",onLoad:p=>h(p.currentTarget),className:Hn("h-auto",o?"mx-auto w-auto max-w-full max-h-[min(320px,40vh)] object-contain":"w-full max-h-[600px] object-cover")}),i&&S.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-black/20 px-3 py-2 backdrop-blur-sm",children:S.jsx("p",{className:"font-display text-[12px] font-normal leading-[1.4] text-white",children:i})})]})}const qu=380,vS=320,A1=24,Rm=84,w1="calc(60px + var(--spacing) * 2)",T1=750;function Cm(){return typeof window<"u"&&window.innerHeight<T1}function R1(a,e=Rm){return Cm()?0:Math.max(e,a/2-vs/2-vS)}function Mu(a,e=Rm){const i=Cm()?0:vs+A1;return Math.max(240,a-i-R1(a,e))}const iy=350,ay=280,Oh=100,ry=260,sy=160,C1=-428;function I1({activeComputedNode:a,accentColor:e,viewportHeight:i,onClose:r,minTop:o=Rm}){const c=Rr(),[u,f]=ne.useState(null),[h,p]=ne.useState(!1),[x,g]=ne.useState(!1),v=ne.useRef(null),y=ne.useRef(null),M=ne.useRef(a),T=ne.useRef(i),E=ne.useRef(o),b=ne.useRef(null),R=ne.useRef(null);M.current=a,T.current=i,E.current=o,ne.useEffect(()=>{const D=a?.nodeId??null,A=y.current;if(y.current=D,D!==A)return v.current&&clearTimeout(v.current),A===null&&D!==null?(f(M.current),p(!0),v.current=setTimeout(()=>g(!0),iy)):A!==null&&D===null?(g(!1),v.current=setTimeout(()=>{p(!1),v.current=setTimeout(()=>f(null),ay)},Oh)):(g(!1),v.current=setTimeout(()=>{const L=b.current,X=R.current;if(!L||!X)return;const k=L.offsetHeight;L.style.transition="none",L.style.height=`${k}px`,M1.flushSync(()=>f(M.current)),requestAnimationFrame(()=>{const G=Mu(T.current,E.current),Y=Math.min(X.scrollHeight,G);L.style.transition=`height ${ry}ms cubic-bezier(0.4, 0, 0.2, 1)`,L.style.height=`${Y}px`,v.current=setTimeout(()=>{g(!0),v.current=setTimeout(()=>{b.current&&(b.current.style.transition="none",b.current.style.height="auto")},sy+50)},ry)})},Oh)),()=>{v.current&&clearTimeout(v.current)}},[a?.nodeId]),ne.useEffect(()=>{b.current&&(b.current.style.transition="none",b.current.style.height="auto")},[i]);const C=u?.definition.details,I=u?.definition.year,U=u?.definition.label,B=Cm();return S.jsx("div",{className:B?"absolute left-0 z-[41]":"absolute left-12 z-[37]",style:{width:qu,top:B?0:`max(${o}px, calc(50% - ${vs/2}px - ${vS}px))`,transform:`translateX(${h?0:C1}px)`,transition:`transform ${h?iy:ay}ms cubic-bezier(0.4, 0, 0.2, 1)`,pointerEvents:x?"auto":"none"},children:S.jsxs("div",{ref:b,className:"relative overflow-hidden bg-white",children:[r&&S.jsx("button",{type:"button",onClick:r,"aria-label":TYPO3.lang["20years.aria.close"],className:"absolute z-10 flex h-11 w-11 cursor-pointer items-center justify-center transition-opacity active:opacity-80",style:{to
9p:16,right:16,background:e},children:S.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M6 6l12 12M18 6L6 18",stroke:"#1c1b1b",strokeWidth:"2",strokeLinecap:"square"})})}),S.jsx("div",{ref:R,className:"overflow-y-auto px-8 py-12 [&::-webkit-scrollbar]:hidden",style:{paddingTop:r?w1:void 0,maxHeight:Mu(i,o),minHeight:B?Mu(i,o):void 0,scrollbarWidth:"none",opacity:x?1:0,transition:`opacity ${x?sy:Oh}ms ease`},children:S.jsxs("div",{className:"flex flex-col gap-6",children:[S.jsxs("div",{className:"flex flex-col gap-2",children:[S.jsxs("div",{className:"flex w-fit flex-col gap-1",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[13px] font-bold uppercase tracking-[0.12em] text-[#1C1B1B]",style:{fontFamily:"'Source Sans Pro', sans-serif"},children:I})]}),S.jsx("h3",{className:"m-0 text-[32px] font-bold leading-[1.1] text-[#1C1B1B]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(C?.headline??U)})]}),C?.media?.src&&S.jsx(gS,{src:C.media.src,alt:C.media.alt,onSettled:()=>{const D=b.current,A=R.current;if(!D||!A||!D.style.height||D.style.height==="auto")return;const L=Mu(T.current,E.current);D.style.height=`${Math.min(A.scrollHeight,L)}px`}}
9),C?.bodyText&&S.jsx("div",{className:"info-pane-rte m-0 text-lg font-normal leading-relaxed text-[#1C1B1B] [&_a]:underline [&_a:hover]:opacity-80 [&_p]:m-0 [&_p+p]:mt-4",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},dangerouslySetInnerHTML:{__html:C.bodyText}}),C?.action?.href&&S.jsxs("a",{href:C.action.href,target:C.action.target??void 0,rel:C.action.target==="_blank"?"noopener noreferrer":void 0,className:`inline-flex w-fit items-center gap-2 px-6 py-3 text-sm font-bold uppercase tracking-[0.12em] text-[#1c1b1b] transition-opacity ${c?"active:opacity-80":"hover:opacity-80"}`,style:{background:e,fontFamily:"'Source Sans Pro', sans-serif"},children:[S.jsx("span",{children:C.action.label}),S.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M5 12h14M13 6l6 6-6 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"})})]})]})})]})})}const oy=96,D1=16,N1=.55;function xS({orientation:a="vertical",bottom:e=40}){const[i,r]=ne.useState({back:!1,forward:!0});ne.useEffect(()=>{function u(){const f=window.scrollY,h=document.documentElement.scrollHeight-window.innerHeight;r({back:f>4,forward:f<h-4})}return u(),window.addEventListener("scroll",u,{passive:!0}),window.addEventListener("resize",u,{passive:!0}),()=>{window.removeEventListener("scroll",u),window.removeEventListener("resize",u)}},[]);const o=u=>{window.scrollBy({top:u*window.innerHeight*N1,behavior:"smooth"})},c=a==="vertical"?{back:TYPO3.lang["20years.aria.scroll.up"],forward:TYPO3.lang["20years.aria.scroll.down"]}:{back:TYPO3.lang["20years.aria.scroll.left"],forward:TYPO3.lang["20years.aria.scroll.right"]};return S.jsxs("div",{className:Hn("absolute right-10 z-[60] flex",a==="vertical"?"flex-col":"flex-row"),style:{gap:D1,bottom:e},children:[S.jsx(ly,{orientation:a,direction:-1,enabled:i.back,label:c.back,onClick:()=>o(-1)}),S.jsx(ly,{orientation:a,direction:1,enabled:i.forward,label:c.forward,onClick:()=>o(1)})]})}const Au={up:{transform:"rotate(-135deg)",left:"calc(50% - 12px)",top:"calc(50% - 7px)"},down:{transform:"rotate(45deg)",left:"calc(50% - 12px)",top:"calc(50% - 17px)"},left:{transform:"rotate(135deg)",left:"calc(50% - 7px)",top:"calc(50% - 12px)"},right:{transform:"rotate(-45deg)",left:"calc(50% - 17px)",top:"calc(50% - 12px)"}};function ly({orientation:a,direction:e,enabled:i,label:r,onClick:o}){const c=a==="vertical"?e===-1?Au.up:Au.down:e===-1?Au.left:Au.right;return S.jsx("button",{type:"button",onClick:o,"aria-label":r,disabled:!i,className:Hn("pointer-events-auto relative cursor-pointer rounded-full transition-opacity duration-300","active:bg-[rgba(28,27,27,0.95)]",i?"opacity-100":"opacity-30"),style:{width:oy,height:oy,border:"1px solid rgba(255, 255, 255, 0.35)",background:"rgba(28, 27, 27, 0.78)"},children:S.jsx("span",{className:"absolute block h-6 w-6 border-solid border-b-4 border-r-4 border-white/90",style:c,"aria-hidden":"true"})})}const Im="183",L1=0,cy=1,P1=2,Ku=1,O1=2,Vl=3,wr=0,ni=1,Pa=2,Ua=0,So=1,uy=2,fy=3,dy=4,B1=5,rs=100,U1=101,k1=102,z1=103,_1=104,H1=200,F1=201,V1=202,G1=203,Ip=204,Dp=205,j1=206,Y1=207,X1=208,Z1=209,W1=210,Q1=211,q1=212,K1=213,J1=214,Np=0,Lp=1,Pp=2,wo=3,Op=4,Bp=5,Up=6,kp=7,yS=0,$1=1,eT=2,na=0,bS=1,SS=2,ES=3,MS=4,AS=5,wS=6,TS=7,RS=300,ms=301,To=302,Bh=303,Uh=304,mf=306,zp=1e3,Oa=1001,_p=1002,On=1003,tT=1004,wu=1005,Bn=1006,kh=1007,os=1008,Ri=1009,CS=1010,IS=1011,tc=1012,Dm=1013,ra=1014,ea=1015,_a=1016,Nm=1017,Lm=1018,nc=1020,DS=35902,NS=35899,LS=1021,PS=1022,Ii=1023,Ha=1026,ls=1027,OS=1028,Pm=1029,Ro=1030,Om=1031,Bm=1033,Ju=33776,$u=33777,ef=33778,tf=33779,Hp=35840,Fp=35841,Vp=35842,Gp=35843,jp=36196,Yp=37492,Xp=37496,Zp=37488,Wp=37489,Qp=37490,qp=37491,Kp=37808,Jp=37809,$p=37810,em=37811,tm=37812,nm=37813,im=37814,am=37815,rm=37816,sm=37817,om=37818,lm=37819,cm=37820,um=37821,fm=36492,dm=36494,hm=36495,pm=36283,mm=36284,gm=36285,vm=36286,nT=3200,iT=0,aT=1,Mr="",Ti="srgb",Co="srgb-linear",uf="linear",Xt="srgb",$s=7680,hy=519,rT=512,sT=513,oT=514,Um=515,lT=516,cT=517,km=518,uT=519,py=35044,my="300 es",ta=2e3,ff=2001;function fT(a){for(let e=a.length-1;e>=0;--e)if(a[e]>=65535)return!0;return!1}function ic(a){return document.createElementNS("http://www.w3.org/1999/xhtml",a)}function dT(){const a=ic("canvas");return a.style.display="block",a}const gy={};function vy(...a){const e="THREE."+a.shift();console.log(e,...a)}function BS(a){const e=a[0];if(typeof e=="string"&&e.startsWith("TSL:")){const i=a[1];i&&i.isStackTrace?a[0]+=" "+i.getLocation():a[1]='Stack trace not available. Enable "THREE.Node.captureStackTrace" to capture stack traces.'}return a}function bt(...a){a=BS(a);const e="THREE."+a.shift();{const i=a[0];i&&i.isStackTrace?console.warn(i.getError(e)):console.warn(e,...a)}}function Vt(...a){a=BS(a);const e="THREE."+a.shift();{const i=a[0];i&&i.isStackTrace?console.error(i.getError(e)):console.error(e,...a)}}function df(...a){const e=a.join(" ");e in gy||(gy[e]=!0,bt(...a))}function hT(a,e,i){return new Promise(function(r,o){function c(){switch(a.clientWaitSync(e,a.SYNC_FLUSH_COMMANDS_BIT,0)){case a.WAIT_FAILED:o();break;case a.TIMEOUT_EXPIRED:setTimeout(c,i);break;default:r()}}setTimeout(c,i)})}const pT={[Np]:Lp,[Pp]:Up,[Op]:kp,[wo]:Bp,[Lp]:Np,[Up]:Pp,[kp]:Op,[Bp]:wo};class No{addEventListener(e,i){this._listeners===void 0&&(this._listeners={});const r=this._listeners;r[e]===void 0&&(r[e]=[]),r[e].indexOf(i)===-1&&r[e].push(i)}hasEventListener(e,i){const r=this._listeners;return r===void 0?!1:r[e]!==void 0&&r[e].indexOf(i)!==-1}removeEventListener(e,i){const r=this._listeners;if(r===void 0)return;const o=r[e];if(o!==void 0){const c=o.indexOf(i);c!==-1&&o.splice(c,1)}}dispatchEvent(e){const i=this._listeners;if(i===void 0)return;const r=i[e.type];if(r!==void 0){e.target=this;const o=r.slice(0);for(let c=0,u=o.length;c<u;c++)o[c].call(this,e);e.target=null}}}const kn=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","5
95","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],zh=Math.PI/180,xm=180/Math.PI;function rc(){const a=Math.random()*4294967295|0,e=Math.random()*4294967295|0,i=Math.random()*4294967295|0,r=Math.random()*4294967295|0;return(kn[a&255]+kn[a>>8&255]+kn[a>>16&255]+kn[a>>24&255]+"-"+kn[e&255]+kn[e>>8&255]+"-"+kn[e>>16&15|64]+kn[e>>24&255]+"-"+kn[i&63|128]+kn[i>>8&255]+"-"+kn[i>>16&255]+kn[i>>24&255]+kn[r&255]+kn[r>>8&255]+kn[r>>16&255]+kn[r>>24&255]).toLowerCase()}function Ut(a,e,i){return Math.max(e,Math.min(i,a))}function mT(a,e){return(a%e+e)%e}function _h(a,e,i){return(1-i)*a+i*e}function Cl(a,e){switch(e.constructor){case Float32Array:return a;case Uint32Array:return a/4294967295;case Uint16Array:return a/65535;case Uint8Array:return a/255;case Int32Array:return Math.max(a/2147483647,-1);case Int16Array:return Math.max(a/32767,-1);case Int8Array:return Math.max(a/127,-1);default:throw new Error("Invalid component type.")}}function ti(a,e){switch(e.constructor){case Float32Array:return a;case Uint32Array:return Math.round(a*4294967295);case Uint16Array:return Math.round(a*65535);case Uint8Array:return Math.round(a*255);case Int32Array:return Math.round(a*2147483647);case Int16Array:return Math.round(a*32767);case Int8Array:return Math.round(a*127);default:throw new Error("Invalid component type.")}}class kt{constructor(e=0,i=0){kt.prototype.isVector2=!0,this.x=e,this.y=i}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,i){return this.x=e,this.y=i,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,i){switch(e){case 0:this.x=i;break;case 1:this.y=i;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,i){return this.x=e.x+i.x,this.y=e.y+i.y,this}addScaledVector(e,i){return this.x+=e.x*i,this.y+=e.y*i,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,i){return this.x=e.x-i.x,this.y=e.y-i.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const i=this.x,r=this.y,o=e.elements;return this.x=o[0]*i+o[3]*r+o[6],this.y=o[1]*i+o[4]*r+o[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,i){return this.x=Ut(this.x,e.x,i.x),this.y=Ut(this.y,e.y,i.y),this}clampScalar(e,i){return this.x=Ut(this.x,e,i),this.y=Ut(this.y,e,i),this}clampLength(e,i){const r=this.length();return this.divideScalar(r||1).multiplyScalar(Ut(r,e,i))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const i=Math.sqrt(this.lengthSq()*e.lengthSq());if(i===0)return Math.PI/2;const r=this.dot(e)/i;return Math.acos(Ut(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const i=this.x-e.x,r=this.y-e.y;return i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,i){return this.x+=(e.x-this.x)*i,this.y+=(e.y-this.y)*i,this}lerpVectors(e,i,r){return this.x=e.x+(i.x-e.x)*r,this.y=e.y+(i.y-e.y)*r,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,i=0){return this.x=e[i],this.y=e[i+1],this}toArray(e=[],i=0){return e[i]=this.x,e[i+1]=this.y,e}fromBufferAttribute(e,i){return this.x=e.getX(i),this.y=e.getY(i),this}
vendor: 36,888 bytes, line 9
9rotateAround(e,i){const r=Math.cos(i),o=Math.sin(i),c=this.x-e.x,u=this.y-e.y;return this.x=c*r-u*o+e.x,this.y=c*o+u*r+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Lo{constructor(e=0,i=0,r=0,o=1){this.isQuaternion=!0,this._x=e,this._y=i,this._z=r,this._w=o}static slerpFlat(e,i,r,o,c,u,f){let h=r[o+0],p=r[o+1],x=r[o+2],g=r[o+3],v=c[u+0],y=c[u+1],M=c[u+2],T=c[u+3];if(g!==T||h!==v||p!==y||x!==M){let E=h*v+p*y+x*M+g*T;E<0&&(v=-v,y=-y,M=-M,T=-T,E=-E);let b=1-f;if(E<.9995){const R=Math.acos(E),C=Math.sin(R);b=Math.sin(b*R)/C,f=Math.sin(f*R)/C,h=h*b+v*f,p=p*b+y*f,x=x*b+M*f,g=g*b+T*f}else{h=h*b+v*f,p=p*b+y*f,x=x*b+M*f,g=g*b+T*f;const R=1/Math.sqrt(h*h+p*p+x*x+g*g);h*=R,p*=R,x*=R,g*=R}}e[i]=h,e[i+1]=p,e[i+2]=x,e[i+3]=g}static multiplyQuaternionsFlat(e,i,r,o,c,u){const f=r[o],h=r[o+1],p=r[o+2],x=r[o+3],g=c[u],v=c[u+1],y=c[u+2],M=c[u+3];return e[i]=f*M+x*g+h*y-p*v,e[i+1]=h*M+x*v+p*g-f*y,e[i+2]=p*M+x*y+f*v-h*g,e[i+3]=x*M-f*g-h*v-p*y,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,i,r,o){return this._x=e,this._y=i,this._z=r,this._w=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,i=!0){const r=e._x,o=e._y,c=e._z,u=e._order,f=Math.cos,h=Math.sin,p=f(r/2),x=f(o/2),g=f(c/2),v=h(r/2),y=h(o/2),M=h(c/2);switch(u){case"XYZ":this._x=v*x*g+p*y*M,this._y=p*y*g-v*x*M,this._z=p*x*M+v*y*g,this._w=p*x*g-v*y*M;break;case"YXZ":this._x=v*x*g+p*y*M,this._y=p*y*g-v*x*M,this._z=p*x*M-v*y*g,this._w=p*x*g+v*y*M;break;case"ZXY":this._x=v*x*g-p*y*M,this._y=p*y*g+v*x*M,this._z=p*x*M+v*y*g,this._w=p*x*g-v*y*M;break;case"ZYX":this._x=v*x*g-p*y*M,this._y=p*y*g+v*x*M,this._z=p*x*M-v*y*g,this._w=p*x*g+v*y*M;break;case"YZX":this._x=v*x*g+p*y*M,this._y=p*y*g+v*x*M,this._z=p*x*M-v*y*g,this._w=p*x*g-v*y*M;break;case"XZY":this._x=v*x*g-p*y*M,this._y=p*y*g-v*x*M,this._z=p*x*M+v*y*g,this._w=p*x*g+v*y*M;break;default:bt("Quaternion: .setFromEuler() encountered an unknown order: "+u)}return i===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,i){const r=i/2,o=Math.sin(r);return this._x=e.x*o,this._y=e.y*o,this._z=e.z*o,this._w=Math.cos(r),this._onChangeCallback(),this}setFromRotationMatrix(e){const i=e.elements,r=i[0],o=i[4],c=i[8],u=i[1],f=i[5],h=i[9],p=i[2],x=i[6],g=i[10],v=r+f+g;if(v>0){const y=.5/Math.sqrt(v+1);this._w=.25/y,this._x=(x-h)*y,this._y=(c-p)*y,this._z=(u-o)*y}else if(r>f&&r>g){const y=2*Math.sqrt(1+r-f-g);this._w=(x-h)/y,this._x=.25*y,this._y=(o+u)/y,this._z=(c+p)/y}else if(f>g){const y=2*Math.sqrt(1+f-r-g);this._w=(c-p)/y,this._x=(o+u)/y,this._y=.25*y,this._z=(h+x)/y}else{const y=2*Math.sqrt(1+g-r-f);this._w=(u-o)/y,this._x=(c+p)/y,this._y=(h+x)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(e,i){let r=e.dot(i)+1;return r<1e-8?(r=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=r):(this._x=0,this._y=-e.z,this._z=e.y,this._w=r)):(this._x=e.y*i.z-e.z*i.y,this._y=e.z*i.x-e.x*i.z,this._z=e.x*i.y-e.y*i.x,this._w=r),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Ut(this.dot(e),-1,1)))}rotateTowards(e,i){const r=this.angleTo(e);if(r===0)return this;const o=Math.min(1,i/r);return this.slerp(e,o),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,i){const r=e._x,o=e._y,c=e._z,u=e._w,f=i._x,h=i._y,p=i._z,x=i._w;return this._x=r*x+u*f+o*p-c*h,this._y=o*x+u*h+c*f-r*p,this._z=c*x+u*p+r*h-o*f,this._w=u*x-r*f-o*h-c*p,this._onChangeCallback(),this}slerp(e,i){let r=e._x,o=e._y,c=e._z,u=e._w,f=this.dot(e);f<0&&(r=-r,o=-o,c=-c,u=-u,f=-f);let h=1-i;if(f<.9995){const p=Math.acos(f),x=Math.sin(p);h=Math.sin(h*p)/x,i=Math.sin(i*p)/x,this._x=this._x*h+r*i,this._y=this._y*h+o*i,this._z=this._z*h+c*i,this._w=this._w*h+u*i,this._onChangeCallback()}else this._x=this._x*h+r*i,this._y=this._y*h+o*i,this._z=this._z*h+c*i,this._w=this._w*h+u*i,this.normalize();return this}slerpQuaternions(e,i,r){return this.copy(e).slerp(i,r)}random(){const e=2*Math.PI*Math.random(),i=2*Math.PI*Math.random(),r=Math.random(),o=Math.sqrt(1-r),c=Math.sqrt(r);return this.set(o*Math.sin(e),o*Math.cos(e),c*Math.sin(i),c*Math.cos(i))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,i=0){return this._x=e[i],this._y=e[i+1],this._z=e[i+2],this._w=e[i+3],this._onChangeCallback(),this}toArray(e=[],i=0){return e[i]=this._x,e[i+1]=this._y,e[i+2]=this._z,e[i+3]=this._w,e}fromBufferAttribute(e,i){return this._x=e.getX(i),this._y=e.getY(i),this._z=e.getZ(i),this._w=e.getW(i),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class he{constructor(e=0,i=0,r=0){he.prototype.isVector3=!0,this.x=e,this.y=i,this.z=r}set(e,i,r){return r===void 0&&(r=this.z),this.x=e,this.y=i,this.z=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,i){switch(e){case 0:this.x=i;break;case 1:this.y=i;break;case 2:this.z=i;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,i){return this.x=e.x+i.x,this.y=e.y+i.y,this.z=e.z+i.z,this}addScaledVector(e,i){return this.x+=e.x*i,this.y+=e.y*i,this.z+=e.z*i,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,i){return this.x=e.x-i.x,this.y=e.y-i.y,this.z=e.z-i.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,i){return this.x=e.x*i.x,this.y=e.y*i.y,this.z=e.z*i.z,this}applyEuler(e){return this.applyQuaternion(xy.setFromEuler(e))}applyAxisAngle(e,i){return this.applyQuaternion(xy.setFromAxisAngle(e,i))}applyMatrix3(e){const i=this.x,r=this.y,o=this.z,c=e.elements;return this.x=c[0]*i+c[3]*r+c[6]*o,this.y=c[1]*i+c[4]*r+c[7]*o,this.z=c[2]*i+c[5]*r+c[8]*o,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const i=this.x,r=this.y,o=this.z,c=e.elements,u=1/(c[3]*i+c[7]*r+c[11]*o+c[15]);return this.x=(c[0]*i+c[4]*r+c[8]*o+c[12])*u,this.y=(c[1]*i+c[5]*r+c[9]*o+c[13])*u,this.z=(c[2]*i+c[6]*r+c[10]*o+c[14])*u,this}applyQuaternion(e){const i=this.x,r=this.y,o=this.z,c=e.x,u=e.y,f=e.z,h=e.w,p=2*(u*o-f*r),x=2*(f*i-c*o),g=2*(c*r-u*i);return this.x=i+h*p+u*g-f*x,this.y=r+h*x+f*p-c*g,this.z=o+h*g+c*x-u*p,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const i=this.x,r=this.y,o=this.z,c=e.elements;return this.x=c[0]*i+c[4]*r+c[8]*o,this.y=c[1]*i+c[5]*r+c[9]*o,this.z=c[2]*i+c[6]*r+c[10]*o,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,i){return this.x=Ut(this.x,e.x,i.x),this.y=Ut(this.y,e.y,i.y),this.z=Ut(this.z,e.z,i.z),this}clampScalar(e,i){return this.x=Ut(this.x,e,i),this.y=Ut(this.y,e,i),this.z=Ut(this.z,e,i),this}clampLength(e,i){const r=this.length();return this.divideScalar(r||1).multiplyScalar(Ut(r,e,i))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,i){return this.x+=(e.x-this.x)*i,this.y+=(e.y-this.y)*i,this.z+=(e.z-this.z)*i,this}lerpVectors(e,i,r){return this.x=e.x+(i.x-e.x)*r,this.y=e.y+(i.y-e.y)*r,this.z=e.z+(i.z-e.z)*r,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,i){const r=e.x,o=e.y,c=e.z,u=i.x,f=i.y,h=i.z;return this.x=o*h-c*f,this.y=c*u-r*h,this.z=r*f-o*u,this}projectOnVector(e){const i=e.lengthSq();if(i===0)return this.set(0,0,0);const r=e.dot(this)/i;return this.copy(e).multiplyScalar(r)}projectOnPlane(e){return Hh.copy(this).projectOnVector(e),this.sub(Hh)}reflect(e){return this.sub(Hh.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const i=Math.sqrt(this.lengthSq()*e.lengthSq());if(i===0)return Math.PI/2;const r=this.dot(e)/i;return Math.acos(Ut(r,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const i=this.x-e.x,r=this.y-e.y,o=this.z-e.z;return i*i+r*r+o*o}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,i,r){const o=Math.sin(i)*e;return this.x=o*Math.sin(r),this.y=Math.cos(i)*e,this.z=o*Math.cos(r),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,i,r){return this.x=e*Math.sin(i),this.y=r,this.z=e*Math.cos(i),this}setFromMatrixPosition(e){const i=e.elements;return this.x=i[12],this.y=i[13],this.z=i[14],this}setFromMatrixScale(e){const i=this.setFromMatrixColumn(e,0).length(),r=this.setFromMatrixColumn(e,1).length(),o=this.setFromMatrixColumn(e,2).length();return this.x=i,this.y=r,this.z=o,this}setFromMatrixColumn(e,i){return this.fromArray(e.elements,i*4)}setFromMatrix3Column(e,i){return this.fromArray(e.elements,i*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,i=0){return this.x=e[i],this.y=e[i+1],this.z=e[i+2],this}toArray(e=[],i=0){return e[i]=this.x,e[i+1]=this.y,e[i+2]=this.z,e}fromBufferAttribute(e,i){return this.x=e.getX(i),this.y=e.getY(i),this.z=e.getZ(i),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,i=Math.random()*2-1,r=Math.sqrt(1-i*i);return this.x=r*Math.cos(e),this.y=i,this.z=r*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Hh=new he,xy=new Lo;class Rt{constructor(e,i,r,o,c,u,f,h,p){Rt.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,i,r,o,c,u,f,h,p)}set(e,i,r,o,c,u,f,h,p){const x=this.elements;return x[0]=e,x[1]=o,x[2]=f,x[3]=i,x[4]=c,x[5]=h,x[6]=r,x[7]=u,x[8]=p,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const i=this.elements,r=e.elements;return i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],i[4]=r[4],i[5]=r[5],i[6]=r[6],i[7]=r[7],i[8]=r[8],this}extractBasis(e,i,r){return e.setFromMatrix3Column(this,0),i.setFromMatrix3Column(this,1),r.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const i=e.elements;return this.set(i[0],i[4],i[8],i[1],i[5],i[9],i[2],i[6],i[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,i){const r=e.elements,o=i.elements,c=this.elements,u=r[0],f=r[3],h=r[6],p=r[1],x=r[4],g=r[7],v=r[2],y=r[5],M=r[8],T=o[0],E=o[3],b=o[6],R=o[1],C=o[4],I=o[7],U=o[2],B=o[5],D=o[8];return c[0]=u*T+f*R+h*U,c[3]=u*E+f*C+h*B,c[6]=u*b+f*I+h*D,c[1]=p*T+x*R+g*U,c[4]=p*E+x*C+g*B,c[7]=p*b+x*I+g*D,c[2]=v*T+y*R+M*U,c[5]=v*E+y*C+M*B,c[8]=v*b+y*I+M*D,this}multiplyScalar(e){const i=this.elements;return i[0]*=e,i[3]*=e,i[6]*=e,i[1]*=e,i[4]*=e,i[7]*=e,i[2]*=e,i[5]*=e,i[8]*=e,this}determinant(){const e=this.elements,i=e[0],r=e[1],o=e[2],c=e[3],u=e[4],f=e[5],h=e[6],p=e[7],x=e[8];return i*u*x-i*f*p-r*c*x+r*f*h+o*c*p-o*u*h}invert(){const e=this.elements,i=e[0],r=e[1],o=e[2],c=e[3],u=e[4],f=e[5],h=e[6],p=e[7],x=e[8],g=x*u-f*p,v=f*h-x*c,y=p*c-u*h,M=i*g+r*v+o*y;if(M===0)return this.set(0,0,0,0,0,0,0,0,0);const T=1/M;return e[0]=g*T,e[1]=(o*p-x*r)*T,e[2]=(f*r-o*u)*T,e[3]=v*T,e[4]=(x*i-o*h)*T,e[5]=(o*c-f*i)*T,e[6]=y*T,e[7]=(r*h-p*i)*T,e[8]=(u*i-r*c)*T,this}transpose(){let e;const i=this.elements;return e=i[1],i[1]=i[3],i[3]=e,e=i[2],i[2]=i[6],i[6]=e,e=i[5],i[5]=i[7],i[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const i=this.elements;return e[0]=i[0],e[1]=i[3],e[2]=i[6],e[3]=i[1],e[4]=i[4],e[5]=i[7],e[6]=i[2],e[7]=i[5],e[8]=i[8],this}setUvTransform(e,i,r,o,c,u,f){const h=Math.cos(c),p=Math.sin(c);return this.set(r*h,r*p,-r*(h*u+p*f)+u+e,-o*p,o*h,-o*(-p*u+h*f)+f+i,0,0,1),this}scale(e,i){return this.premultiply(Fh.makeScale(e,i)),this}rotate(e){return this.premultiply(Fh.makeRotation(-e)),this}translate(e,i){return this.premultiply(Fh.makeTranslation(e,i)),this}makeTranslation(e,i){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,i,0,0,1),this}makeRotation(e){const i=Math.cos(e),r=Math.sin(e);return this.set(i,-r,0,r,i,0,0,0,1),this}makeScale(e,i){return this.set(e,0,0,0,i,0,0,0,1),this}equals(e){const i=this.elements,r=e.elements;for(let o=0;o<9;o++)if(i[o]!==r[o])return!1;return!0}fromArray(e,i=0){for(let r=0;r<9;r++)this.elements[r]=e[r+i];return this}toArray(e=[],i=0){const r=this.elements;return e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2],e[i+3]=r[3],e[i+4]=r[4],e[i+5]=r[5],e[i+6]=r[6],e[i+7]=r[7],e[i+8]=r[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const Fh=new Rt,yy=new Rt().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),by=new Rt().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function gT(){const a={enabled:!0,workingColorSpace:Co,spaces:{},convert:function(o,c,u){return this.enabled===!1||c===u||!c||!u||(this.spaces[c].transfer===Xt&&(o.r=ka(o.r),o.g=ka(o.g),o.b=ka(o.b)),this.spaces[c].primaries!==this.spaces[u].primaries&&(o.applyMatrix3(this.spaces[c].toXYZ),o.applyMatrix3(this.spaces[u].fromXYZ)),this.spaces[u].transfer===Xt&&(o.r=Eo(o.r),o.g=Eo(o.g),o.b=Eo(o.b))),o},workingToColorSpace:function(o,c){return this.convert(o,this.workingColorSpace,c)},colorSpaceToWorking:function(o,c){return this.convert(o,c,this.workingColorSpace)},getPrimaries:function(o){return this.spaces[o].primaries},getTransfer:function(o){return o===Mr?uf:this.spaces[o].transfer},getToneMappingMode:function(o){return this.spaces[o].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(o,c=this.workingColorSpace){return o.fromArray(this.spaces[c].luminanceCoefficients)},define:function(o){Object.assign(this.spaces,o)},_getMatrix:function(o,c,u){return o.copy(this.spaces[c].toXYZ).multiply(this.spaces[u].fromXYZ)},_getDrawingBufferColorSpace:function(o){return this.spaces[o].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(o=this.workingColorSpace){return this.spaces[o].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(o,c){return df("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),a.workingToColorSpace(o,c)},toWorkingColorSpace:function(o,c){return df("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),a.colorSpaceToWorking(o,c)}},e=[.64,.33,.3,.6,.15,.06],i=[.2126,.7152,.0722],r=[.3127,.329];return a.define({[Co]:{primaries:e,whitePoint:r,transfer:uf,toXYZ:yy,fromXYZ:by,luminanceCoefficients:i,workingColorSpaceConfig:{unpackColorSpace:Ti},outputColorSpaceConfig:{drawingBufferColorSpace:Ti}},[Ti]:{primaries:e,whitePoint:r,transfer:Xt,toXYZ:yy,fromXYZ:by,luminanceCoefficients:i,outputColorSpaceConfig:{drawingBufferColorSpace:Ti}}}),a}const zt=gT();function ka(a){return a<.04045?a*.0773993808:Math.pow(a*.9478672986+.0521327014,2.4)}function Eo(a){return a<.0031308?a*12.92:1.055*Math.pow(a,.41666)-.055}let eo;class vT{static getDataURL(e,i="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let r;if(e instanceof HTMLCanvasElement)r=e;else{eo===void 0&&(eo=ic("canvas")),eo.width=e.width,eo.height=e.height;const o=eo.getContext("2d");e instanceof ImageData?o.putImageData(e,0,0):o.drawImage(e,0,0,e.width,e.height),r=eo}return r.toDataURL(i)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const i=ic("canvas");i.width=e.width,i.height=e.height;const r=i.getContext("2d");r.drawImage(e,0,0,e.width,e.height);const o=r.getImageData(0,0,e.width,e.height),c=o.data;for(let u=0;u<c.length;u++)c[u]=ka(c[u]/255)*255;return r.putImageData(o,0,0),i}else if(e.data){const i=e.data.slice(0);for(let r=0;r<i.length;r++)i instanceof Uint8Array||i instanceof Uint8ClampedArray?i[r]=Math.floor(ka(i[r]/255)*255):i[r]=ka(i[r]);return{data:i,width:e.width,height:e.height}}else return bt("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}let xT=0;class zm{constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:xT++}),this.uuid=rc(),this.data=e,this.dataReady=!0,this.version=0}getSize(e){const i=this.data;return typeof HTMLVideoElement<"u"&&i instanceof HTMLVideoElement?e.set(i.videoWidth,i.videoHeight,0):typeof VideoFrame<"u"&&i instanceof VideoFrame?e.set(i.displayHeight,i.displayWidth,0):i!==null?e.set(i.width,i.height,i.depth||0):e.set(0,0,0),e}set needsUpdate(e){e===!0&&this.version++}toJSON(e){const i=e===void 0||typeof e=="string";if(!i&&e.images[this.uuid]!==void 0)return e.images[this.uuid];const r={uuid:this.uuid,url:""},o=this.data;if(o!==null){let c;if(Array.isArray(o)){c=[];for(let u=0,f=o.length;u<f;u++)o[u].isDataTexture?c.push(Vh(o[u].image)):c.push(Vh(o[u]))}else c=Vh(o);r.url=c}return i||(e.images[this.uuid]=r),r}}function Vh(a){return typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&a instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&a instanceof ImageBitmap?vT.getDataURL(a):a.data?{data:Array.from(a.data),width:a.width,height:a.height,type:a.data.constructor.name}:(bt("Texture: Unable to serialize Texture."),{})}let yT=0;const Gh=new he;class _n extends No{constructor(e=_n.DEFAULT_IMAGE,i=_n.DEFAULT_MAPPING,r=Oa,o=Oa,c=Bn,u=os,f=Ii,h=Ri,p=_n.DEFAULT_ANISOTROPY,x=Mr){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:yT++}),this.uuid=rc(),this.name="",this.source=new zm(e),this.mipmaps=[],this.mapping=i,this.channel=0,this.wrapS=r,this.wrapT=o,this.magFilter=c,this.minFilter=u,this.anisotropy=p,this.format=f,this.internalFormat=null,this.type=h,this.offset=new kt(0,0),this.repeat=new kt(1,1),this.center=new kt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Rt,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=x,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(e&&e.depth&&e.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(Gh).x}get height(){return this.source.getSize(Gh).y}get depth(){return this.source.getSize(Gh).z}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,i){this.updateRanges.push({start:e,count:i})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(const i in e){const r=e[i];if(r===void 0){bt(`Texture.setValues(): parameter '${i}' has value of undefined.`);continue}const o=this[i];if(o===void 0){bt(`Texture.setValues(): property '${i}' does not exist.`);continue}o&&r&&o.isVector2&&r.isVector2||o&&r&&o.isVector3&&r.isVector3||o&&r&&o.isMatrix3&&r.isMatrix3?o.copy(r):this[i]=r}}toJSON(e){const i=e===void 0||typeof e=="string";if(!i&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const r={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(r.userData=this.userData),i||(e.textures[this.uuid]=r),r}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==RS)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case zp:e.x=e.x-Math.floor(e.x);break;case Oa:e.x=e.x<0?0:1;break;case _p:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case zp:e.y=e.y-Math.floor(e.y);break;case Oa:e.y=e.y<0?0:1;break;case _p:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}}_n.DEFAULT_IMAGE=null;_n.DEFAULT_MAPPING=RS;_n.DEFAULT_ANISOTROPY=1;class hn{constructor(e=0,i=0,r=0,o=1){hn.prototype.isVector4=!0,this.x=e,this.y=i,this.z=r,this.w=o}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,i,r,o){return this.x=e,this.y=i,this.z=r,this.w=o,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,i){switch(e){case 0:this.x=i;break;case 1:this.y=i;break;case 2:this.z=i;break;case 3:this.w=i;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,i){return this.x=e.x+i.x,this.y=e.y+i.y,this.z=e.z+i.z,this.w=e.w+i.w,this}addScaledVector(e,i){return this.x+=e.x*i,this.y+=e.y*i,this.z+=e.z*i,this.w+=e.w*i,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,i){return this.x=e.x-i.x,this.y=e.y-i.y,this.z=e.z-i.z,this.w=e.w-i.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const i=this.x,r=this.y,o=this.z,c=this.w,u=e.elements;return this.x=u[0]*i+u[4]*r+u[8]*o+u[12]*c,this.y=u[1]*i+u[5]*r+u[9]*o+u[13]*c,this.z=u[2]*i+u[6]*r+u[10]*o+u[14]*c,this.w=u[3]*i+u[7]*r+u[11]*o+u[15]*c,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const i=Math.sqrt(1-e.w*e.w);return i<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/i,this.y=e.y/i,this.z=e.z/i),this}setAxisAngleFromRotationMatrix(e){let i,r,o,c;const h=e.elements,p=h[0],x=h[4],g=h[8],v=h[1],y=h[5],M=h[9],T=h[2],E=h[6],b=h[10];if(Math.abs(x-v)<.01&&Math.abs(g-T)<.01&&Math.abs(M-E)<.01){if(Math.abs(x+v)<.1&&Math.abs(g+T)<.1&&Math.abs(M+E)<.1&&Math.abs(p+y+b-3)<.1)return this.set(1,0,0,0),this;i=Math.PI;const C=(p+1)/2,I=(y+1)/2,U=(b+1)/2,B=(x+v)/4,D=(g+T)/4,A=(M+E)/4;return C>I&&C>U?C<.01?(r=0,o=.707106781,c=.707106781):(r=Math.sqrt(C),o=B/r,c=D/r):I>U?I<.01?(r=.707106781,o=0,c=.707106781):(o=Math.sqrt(I),r=B/o,c=A/o):U<.01?(r=.707106781,o=.707106781,c=0):(c=Math.sqrt(U),r=D/c,o=A/c),this.set(r,o,c,i),this}let R=Math.sqrt((E-M)*(E-M)+(g-T)*(g-T)+(v-x)*(v-x));return Math.abs(R)<.001&&(R=1),this.x=(E-M)/R,this.y=(g-T)/R,this.z=(v-x)/R,this.w=Math.acos((p+y+b-1)/2),this}setFromMatrixPosition(e){const i=e.elements;return this.x=i[12],this.y=i[13],this.z=i[14],this.w=i[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,i){return this.x=Ut(this.x,e.x,i.x),this.y=Ut(this.y,e.y,i.y),this.z=Ut(this.z,e.z,i.z),this.w=Ut(this.w,e.w,i.w),this}clampScalar(e,i){return this.x=Ut(this.x,e,i),this.y=Ut(this.y,e,i),this.z=Ut(this.z,e,i),this.w=Ut(this.w,e,i),this}clampLength(e,i){const r=this.length();return this.divideScalar(r||1).multiplyScalar(Ut(r,e,i))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,i){return this.x+=(e.x-this.x)*i,this.y+=(e.y-this.y)*i,this.z+=(e.z-this.z)*i,this.w+=(e.w-this.w)*i,this}lerpVectors(e,i,r){return this.x=e.x+(i.x-e.x)*r,this.y=e.y+(i.y-e.y)*r,this.z=e.z+(i.z-e.z)*r,this.w=e.w+(i.w-e.w)*r,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,i=0){return this.x=e[i],this.y=e[i+1],this.z=e[i+2],this.w=e[i+3],this}toArray(e=[],i=0){return e[i]=this.x,e[i+1]=this.y,e[i+2]=this.z,e[i+3]=this.w,e}fromBufferAttribute(e,i){return this.x=e.getX(i),this.y=e.getY(i),this.z=e.getZ(i),this.w=e.getW(i),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class bT extends No{constructor(e=1,i=1,r={}){super(),r=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Bn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},r),this.isRenderTarget=!0,this.width=e,this.height=i,this.depth=r.depth,this.scissor=new hn(0,0,e,i),this.scissorTest=!1,this.viewport=new hn(0,0,e,i),this.textures=[];const o={width:e,height:i,depth:r.depth},c=new _n(o),u=r.count;for(let f=0;f<u;f++)this.textures[f]=c.clone(),this.textures[f].isRenderTargetTexture=!0,this.textures[f].renderTarget=this;this._setTextureOptions(r),this.depthBuffer=r.depthBuffer,this.stencilBuffer=r.stencilBuffer,this.resolveDepthBuffer=r.resolveDepthBuffer,this.resolveStencilBuffer=r.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=r.depthTexture,this.samples=r.samples,this.multiview=r.multiview}_setTextureOptions(e={}){const i={minFilter:Bn,generateMipmaps:!1,flipY:!1,internalFormat:null};e.mapping!==void 0&&(i.mapping=e.mapping),e.wrapS!==void 0&&(i.wrapS=e.wrapS),e.wrapT!==void 0&&(i.wrapT=e.wrapT),e.wrapR!==void 0&&(i.wrapR=e.wrapR),e.magFilter!==void 0&&(i.magFilter=e.magFilter),e.minFilter!==void 0&&(i.minFilter=e.minFilter),e.format!==void 0&&(i.format=e.format),e.type!==void 0&&(i.type=e.type),e.anisotropy!==void 0&&(i.anisotropy=e.anisotropy),e.colorSpace!==void 0&&(i.colorSpace=e.colorSpace),e.flipY!==void 0&&(i.flipY=e.flipY),e.generateMipmaps!==void 0&&(i.generateMipmaps=e.generateMipmaps),e.internalFormat!==void 0&&(i.internalFormat=e.internalFormat);for(let r=0;r<this.textures.length;r++)this.textures[r].setValues(i)}get texture(){return this.textures[0]}set texture(e){this.textures[0]=e}set depthTexture(e){this._depthTexture!==null&&(this._depthTexture.renderTarget=null),e!==null&&(e.renderTarget=this),this._depthTexture=e}get depthTexture(){return this._depthTexture}setSize(e,i,r=1){if(this.width!==e||this.height!==i||this.depth!==r){this.width=e,this.height=i,this.depth=r;for(let o=0,c=this.textures.length;o<c;o++)this.textures[o].image.width=e,this.textures[o].image.height=i,this.textures[o].image.depth=r,this.textures[o].isData3DTexture!==!0&&(this.textures[o].isArrayTexture=this.textures[o].image.depth>1);this.dispose()}this.viewport.set(0,0,e,i),this.scissor.set(0,0,e,i)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let i=0,r=e.textures.length;i<r;i++){this.textures[i]=e.textures[i].clone(),this.textures[i].isRenderTargetTexture=!0,this.textures[i].renderTarget=this;const o=Object.assign({},e.textures[i].image);this.textures[i].source=new zm(o)}return this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.resolveDepthBuffer=e.resolveDepthBuffer,this.resolveStencilBuffer=e.resolveStencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class ia extends bT{constructor(e=1,i=1,r={}){super(e,i,r),this.isWebGLRenderTarget=!0}}class US extends _n{constructor(e=null,i=1,r=1,o=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:i,height:r,depth:o},this.magFilter=On,this.minFilter=On,this.wrapR=Oa,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}}class ST extends _n{constructor(e=null,i=1,r=1,o=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:i,height:r,depth:o},this.magFilter=On,this.minFilter=On,this.wrapR=Oa,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Sn{constructor(e,i,r,o,c,u,f,h,p,x,g,v,y,M,T,E){Sn.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,i,r,o,c,u,f,h,p,x,g,v,y,M,T,E)}set(e,i,r,o,c,u,f,h,p,x,g,v,y,M,T,E){const b=this.elements;return b[0]=e,b[4]=i,b[8]=r,b[12]=o,b[1]=c,b[5]=u,b[9]=f,b[13]=h,b[2]=p,b[6]=x,b[10]=g,b[14]=v,b[3]=y,b[7]=M,b[11]=T,b[15]=E,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new Sn().fromArray(this.elements)}copy(e){const i=this.elements,r=e.elements;return i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3],i[4]=r[4],i[5]=r[5],i[6]=r[6],i[7]=r[7],i[8]=r[8],i[9]=r[9],i[10]=r[10],i[11]=r[11],i[12]=r[12],i[13]=r[13],i[14]=r[14],i[15]=r[15],this}copyPosition(e){const i=this.elements,r=e.elements;return i[12]=r[12],i[13]=r[13],i[14]=r[14],this}setFromMatrix3(e){const i=e.elements;return this.set(i[0],i[3],i[6],0,i[1],i[4],i[7],0,i[2],i[5],i[8],0,0,0,0,1),this}extractBasis(e,i,r){return this.determinant()===0?(e.set(1,0,0),i.set(0,1,0),r.set(0,0,1),this):(e.setFromMatrixColumn(this,0),i.setFromMatrixColumn(this,1),r.setFromMatrixColumn(this,2),this)}makeBasis(e,i,r){return this.set(e.x,i.x,r.x,0,e.y,i.y,r.y,0,e.z,i.z,r.z,0,0,0,0,1),this}extractRotation(e){if(e.determinant()===0)return this.identity();const i=this.elements,r=e.elements,o=1/to.setFromMatrixColumn(e,0).length(),c=1/to.setFromMatrixColumn(e,1).length(),u=1/to.setFromMatrixColumn(e,2).length();return i[0]=r[0]*o,i[1]=r[1]*o,i[2]=r[2]*o,i[3]=0,i[4]=r[4]*c,i[5]=r[5]*c,i[6]=r[6]*c,i[7]=0,i[8]=r[8]*u,i[9]=r[9]*u,i[10]=r[10]*u,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this}makeRotationFromEuler(e){const i=this.elements,r=e.x,o=e.y,c=e.z,u=Math.cos(r),f=Math.sin(r),h=Math.cos(o),p=Math.sin(o),x=Math.cos(c),g=Math.sin(c);if(e.order==="XYZ"){const v=u*x,y=u*g,M=f*x,T=f*g;i[0]=h*x,i[4]=-h*g,i[8]=p,i[1]=y+M*p,i[5]=v-T*p,i[9]=-f*h,i[2]=T-v*p,i[6]=M+y*p,i[10]=u*h}else if(e.order==="YXZ"){const v=h*x,y=h*g,M=p*x,T=p*g;i[0]=v+T*f,i[4]=M*f-y,i[8]=u*p,i[1]=u*g,i[5]=u*x,i[9]=-f,i[2]=y*f-M,i[6]=T+v*f,i[10]=u*h}else if(e.order==="ZXY"){const v=h*x,y=h*g,M=p*x,T=p*g;i[0]=v-T*f,i[4]=-u*g,i[8]=M+y*f,i[1]=y+M*f,i[5]=u*x,i[9]=T-v*f,i[2]=-u*p,i[6]=f,i[10]=u*h}else if(e.order==="ZYX"){const v=u*x,y=u*g,M=f*x,T=f*g;i[0]=h*x,i[4]=M*p-y,i[8]=v*p+T,i[1]=h*g,i[5]=T*p+v,i[9]=y*p-M,i[2]=-p,i[6]=f*h,i[10]=u*h}else if(e.order==="YZX"){const v=u*h,y=u*p,M=f*h,T=f*p;i[0]=h*x,i[4]=T-v*g,i[8]=M*g+y,i[1]=g,i[5]=u*x,i[9]=-f*x,i[2]=-p*x,i[6]=y*g+M,i[10]=v-T*g}else if(e.order==="XZY"){const v=u*h,y=u*p,M=f*h,T=f*p;i[0]=h*x,i[4]=-g,i[8]=p*x,i[1]=v*g+T,i[5]=u*x,i[9]=y*g-M,i[2]=M*g-y,i[6]=f*x,i[10]=T*g+v}return i[3]=0,i[7]=0,i[11]=0,i[12]=0,i[13]=0,i[14]=0,i[15]=1,this}makeRotationFromQuaternion(e){return this.compose(ET,e,MT)}lookAt(e,i,r){const o=this.elements;return fi.subVectors(e,i),fi.lengthSq()===0&&(fi.z=1),fi.normalize(),vr.crossVectors(r,fi),vr.lengthSq()===0&&(Math.abs(r.z)===1?fi.x+=1e-4:fi.z+=1e-4,fi.normalize(),vr.crossVectors(r,fi)),vr.normalize(),Tu.crossVectors(fi,vr),o[0]=vr.x,o[4]=Tu.x,o[8]=fi.x,o[1]=vr.y,o[5]=Tu.y,o[9]=fi.y,o[2]=vr.z,o[6]=Tu.z,o[10]=fi.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,i){const r=e.elements,o=i.elements,c=this.elements,u=r[0],f=r[4],h=r[8],p=r[12],x=r[1],g=r[5],v=r[9],y=r[13],M=r[2],T=r[6],E=r[10],b=r[14],R=r[3],C=r[7],I=r[11],U=r[15],B=o[0],D=o[4],A=o[8],L=o[12],X=o[1],k=o[5],G=o[9],Y=o[13],ee=o[2],Z=o[6],_=o[10],F=o[14],se=o[3],fe=o[7],ae=o[11],H=o[15];return c[0]=u*B+f*X+h*ee+p*se,c[4]=u*D+f*k+h*Z+p*fe,c[8]=u*A+f*G
vendor: 4,292 bytes, line 9
9+h*_+p*ae,c[12]=u*L+f*Y+h*F+p*H,c[1]=x*B+g*X+v*ee+y*se,c[5]=x*D+g*k+v*Z+y*fe,c[9]=x*A+g*G+v*_+y*ae,c[13]=x*L+g*Y+v*F+y*H,c[2]=M*B+T*X+E*ee+b*se,c[6]=M*D+T*k+E*Z+b*fe,c[10]=M*A+T*G+E*_+b*ae,c[14]=M*L+T*Y+E*F+b*H,c[3]=R*B+C*X+I*ee+U*se,c[7]=R*D+C*k+I*Z+U*fe,c[11]=R*A+C*G+I*_+U*ae,c[15]=R*L+C*Y+I*F+U*H,this}multiplyScalar(e){const i=this.elements;return i[0]*=e,i[4]*=e,i[8]*=e,i[12]*=e,i[1]*=e,i[5]*=e,i[9]*=e,i[13]*=e,i[2]*=e,i[6]*=e,i[10]*=e,i[14]*=e,i[3]*=e,i[7]*=e,i[11]*=e,i[15]*=e,this}determinant(){const e=this.elements,i=e[0],r=e[4],o=e[8],c=e[12],u=e[1],f=e[5],h=e[9],p=e[13],x=e[2],g=e[6],v=e[10],y=e[14],M=e[3],T=e[7],E=e[11],b=e[15],R=h*y-p*v,C=f*y-p*g,I=f*v-h*g,U=u*y-p*x,B=u*v-h*x,D=u*g-f*x;return i*(T*R-E*C+b*I)-r*(M*R-E*U+b*B)+o*(M*C-T*U+b*D)-c*(M*I-T*B+E*D)}transpose(){const e=this.elements;let i;return i=e[1],e[1]=e[4],e[4]=i,i=e[2],e[2]=e[8],e[8]=i,i=e[6],e[6]=e[9],e[9]=i,i=e[3],e[3]=e[12],e[12]=i,i=e[7],e[7]=e[13],e[13]=i,i=e[11],e[11]=e[14],e[14]=i,this}setPosition(e,i,r){const o=this.elements;return e.isVector3?(o[12]=e.x,o[13]=e.y,o[14]=e.z):(o[12]=e,o[13]=i,o[14]=r),this}invert(){const e=this.elements,i=e[0],r=e[1],o=e[2],c=e[3],u=e[4],f=e[5],h=e[6],p=e[7],x=e[8],g=e[9],v=e[10],y=e[11],M=e[12],T=e[13],E=e[14],b=e[15],R=i*f-r*u,C=i*h-o*u,I=i*p-c*u,U=r*h-o*f,B=r*p-c*f,D=o*p-c*h,A=x*T-g*M,L=x*E-v*M,X=x*b-y*M,k=g*E-v*T,G=g*b-y*T,Y=v*b-y*E,ee=R*Y-C*G+I*k+U*X-B*L+D*A;if(ee===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const Z=1/ee;return e[0]=(f*Y-h*G+p*k)*Z,e[1]=(o*G-r*Y-c*k)*Z,e[2]=(T*D-E*B+b*U)*Z,e[3]=(v*B-g*D-y*U)*Z,e[4]=(h*X-u*Y-p*L)*Z,e[5]=(i*Y-o*X+c*L)*Z,e[6]=(E*I-M*D-b*C)*Z,e[7]=(x*D-v*I+y*C)*Z,e[8]=(u*G-f*X+p*A)*Z,e[9]=(r*X-i*G-c*A)*Z,e[10]=(M*B-T*I+b*R)*Z,e[11]=(g*I-x*B-y*R)*Z,e[12]=(f*L-u*k-h*A)*Z,e[13]=(i*k-r*L+o*A)*Z,e[14]=(T*C-M*U-E*R)*Z,e[15]=(x*U-g*C+v*R)*Z,this}scale(e){const i=this.elements,r=e.x,o=e.y,c=e.z;return i[0]*=r,i[4]*=o,i[8]*=c,i[1]*=r,i[5]*=o,i[9]*=c,i[2]*=r,i[6]*=o,i[10]*=c,i[3]*=r,i[7]*=o,i[11]*=c,this}getMaxScaleOnAxis(){const e=this.elements,i=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],r=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],o=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(i,r,o))}makeTranslation(e,i,r){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,i,0,0,1,r,0,0,0,1),this}makeRotationX(e){const i=Math.cos(e),r=Math.sin(e);return this.set(1,0,0,0,0,i,-r,0,0,r,i,0,0,0,0,1),this}makeRotationY(e){const i=Math.cos(e),r=Math.sin(e);return this.set(i,0,r,0,0,1,0,0,-r,0,i,0,0,0,0,1),this}makeRotationZ(e){const i=Math.cos(e),r=Math.sin(e);return this.set(i,-r,0,0,r,i,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,i){const r=Math.cos(i),o=Math.sin(i),c=1-r,u=e.x,f=e.y,h=e.z,p=c*u,x=c*f;return this.set(p*u+r,p*f-o*h,p*h+o*f,0,p*f+o*h,x*f+r,x*h-o*u,0,p*h-o*f,x*h+o*u,c*h*h+r,0,0,0,0,1),this}makeScale(e,i,r){return this.set(e,0,0,0,0,i,0,0,0,0,r,0,0,0,0,1),this}makeShear(e,i,r,o,c,u){return this.set(1,r,c,0,e,1,u,0,i,o,1,0,0,0,0,1),this}compose(e,i,r){const o=this.elements,c=i._x,u=i._y,f=i._z,h=i._w,p=c+c,x=u+u,g=f+f,v=c*p,y=c*x,M=c*g,T=u*x,E=u*g,b=f*g,R=h*p,C=h*x,I=h*g,U=r.x,B=r.y,D=r.z;return o[0]=(1-(T+b))*U,o[1]=(y+I)*U,o[2]=(M-C)*U,o[3]=0,o[4]=(y-I)*B,o[5]=(1-(v+b))*B,o[6]=(E+R)*B,o[7]=0,o[8]=(M+C)*D,o[9]=(E-R)*D,o[10]=(1-(v+T))*D,o[11]=0,o[12]=e.x,o[13]=e.y,o[14]=e.z,o[15]=1,this}decompose(e,i,r){const o=this.elements;e.x=o[12],e.y=o[13],e.z=o[14];const c=this.determinant();if(c===0)return r.set(1,1,1),i.identity(),this;let u=to.set(o[0],o[1],o[2]).length();const f=to.set(o[4],o[5],o[6]).length(),h=to.set(o[8],o[9],o[10]).length();c<0&&(u=-u),ki.copy(this);const p=1/u,x=1/f,g=1/h;return ki.elements[0]*=p,ki.elements[1]*=p,ki.elements[2]*=p,ki.elements[4]*=x,ki.elements[5]*=x,ki.elements[6]*=x,ki.elements[8]*=g,ki.elements[9]*=g,ki.elements[10]*=g,i.setFromRotationMatrix(ki),r.x=u,r.y=f,r.z=h,this}makePerspective(e,i,r,o,c,u,f=ta,h=!1){const p=this.elements,x=2*c/(i-e),g=2*c/(r-o),v=(i+e)/(i-e),y=(r+o)/(r-o);let M,T;if(h)M=c/(u-c),T=u*c/(u-c);else if(f===ta)M=-(u+c)/(u-c),T=-2*u*c/(u-c);else if(f===ff)M=-u/(u-c),T=-u*c/(u-c);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+f);return p[0]=x,p[4]=0,p[8]=v,p[12]=0,p[1]=0,p[5]=g,p[9]=y,p[13]=0,p[2]=0,p[6]=0,p[10]=M,p[14]=T,p[3]=0,p[7]=0,p[11]=-1,p[15]=0,this}
vendor: 32,933 bytes, line 9
9makeOrthographic(e,i,r,o,c,u,f=ta,h=!1){const p=this.elements,x=2/(i-e),g=2/(r-o),v=-(i+e)/(i-e),y=-(r+o)/(r-o);let M,T;if(h)M=1/(u-c),T=u/(u-c);else if(f===ta)M=-2/(u-c),T=-(u+c)/(u-c);else if(f===ff)M=-1/(u-c),T=-c/(u-c);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+f);return p[0]=x,p[4]=0,p[8]=0,p[12]=v,p[1]=0,p[5]=g,p[9]=0,p[13]=y,p[2]=0,p[6]=0,p[10]=M,p[14]=T,p[3]=0,p[7]=0,p[11]=0,p[15]=1,this}equals(e){const i=this.elements,r=e.elements;for(let o=0;o<16;o++)if(i[o]!==r[o])return!1;return!0}fromArray(e,i=0){for(let r=0;r<16;r++)this.elements[r]=e[r+i];return this}toArray(e=[],i=0){const r=this.elements;return e[i]=r[0],e[i+1]=r[1],e[i+2]=r[2],e[i+3]=r[3],e[i+4]=r[4],e[i+5]=r[5],e[i+6]=r[6],e[i+7]=r[7],e[i+8]=r[8],e[i+9]=r[9],e[i+10]=r[10],e[i+11]=r[11],e[i+12]=r[12],e[i+13]=r[13],e[i+14]=r[14],e[i+15]=r[15],e}}const to=new he,ki=new Sn,ET=new he(0,0,0),MT=new he(1,1,1),vr=new he,Tu=new he,fi=new he,Sy=new Sn,Ey=new Lo;class Fa{constructor(e=0,i=0,r=0,o=Fa.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=i,this._z=r,this._order=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,i,r,o=this._order){return this._x=e,this._y=i,this._z=r,this._order=o,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,i=this._order,r=!0){const o=e.elements,c=o[0],u=o[4],f=o[8],h=o[1],p=o[5],x=o[9],g=o[2],v=o[6],y=o[10];switch(i){case"XYZ":this._y=Math.asin(Ut(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(-x,y),this._z=Math.atan2(-u,c)):(this._x=Math.atan2(v,p),this._z=0);break;case"YXZ":this._x=Math.asin(-Ut(x,-1,1)),Math.abs(x)<.9999999?(this._y=Math.atan2(f,y),this._z=Math.atan2(h,p)):(this._y=Math.atan2(-g,c),this._z=0);break;case"ZXY":this._x=Math.asin(Ut(v,-1,1)),Math.abs(v)<.9999999?(this._y=Math.atan2(-g,y),this._z=Math.atan2(-u,p)):(this._y=0,this._z=Math.atan2(h,c));break;case"ZYX":this._y=Math.asin(-Ut(g,-1,1)),Math.abs(g)<.9999999?(this._x=Math.atan2(v,y),this._z=Math.atan2(h,c)):(this._x=0,this._z=Math.atan2(-u,p));break;case"YZX":this._z=Math.asin(Ut(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(-x,p),this._y=Math.atan2(-g,c)):(this._x=0,this._y=Math.atan2(f,y));break;case"XZY":this._z=Math.asin(-Ut(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(v,p),this._y=Math.atan2(f,c)):(this._x=Math.atan2(-x,y),this._y=0);break;default:bt("Euler: .setFromRotationMatrix() encountered an unknown order: "+i)}return this._order=i,r===!0&&this._onChangeCallback(),this}setFromQuaternion(e,i,r){return Sy.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Sy,i,r)}setFromVector3(e,i=this._order){return this.set(e.x,e.y,e.z,i)}reorder(e){return Ey.setFromEuler(this),this.setFromQuaternion(Ey,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],i=0){return e[i]=this._x,e[i+1]=this._y,e[i+2]=this._z,e[i+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Fa.DEFAULT_ORDER="XYZ";class kS{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}}let AT=0;const My=new he,no=new Lo,Ra=new Sn,Ru=new he,Il=new he,wT=new he,TT=new Lo,Ay=new he(1,0,0),wy=new he(0,1,0),Ty=new he(0,0,1),Ry={type:"added"},RT={type:"removed"},io={type:"childadded",child:null},jh={type:"childremoved",child:null};class hi extends No{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:AT++}),this.uuid=rc(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=hi.DEFAULT_UP.clone();const e=new he,i=new Fa,r=new Lo,o=new he(1,1,1);function c(){r.setFromEuler(i,!1)}function u(){i.setFromQuaternion(r,void 0,!1)}i._onChange(c),r._onChange(u),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:r},scale:{configurable:!0,enumerable:!0,value:o},modelViewMatrix:{value:new Sn},normalMatrix:{value:new Rt}}),this.matrix=new Sn,this.matrixWorld=new Sn,this.matrixAutoUpdate=hi.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=hi.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new kS,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.static=!1,this.userData={},this.pivot=null}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,i){this.quaternion.setFromAxisAngle(e,i)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,i){return no.setFromAxisAngle(e,i),this.quaternion.multiply(no),this}rotateOnWorldAxis(e,i){return no.setFromAxisAngle(e,i),this.quaternion.premultiply(no),this}rotateX(e){return this.rotateOnAxis(Ay,e)}rotateY(e){return this.rotateOnAxis(wy,e)}rotateZ(e){return this.rotateOnAxis(Ty,e)}translateOnAxis(e,i){return My.copy(e).applyQuaternion(this.quaternion),this.position.add(My.multiplyScalar(i)),this}translateX(e){return this.translateOnAxis(Ay,e)}translateY(e){return this.translateOnAxis(wy,e)}translateZ(e){return this.translateOnAxis(Ty,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Ra.copy(this.matrixWorld).invert())}lookAt(e,i,r){e.isVector3?Ru.copy(e):Ru.set(e,i,r);const o=this.parent;this.updateWorldMatrix(!0,!1),Il.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Ra.lookAt(Il,Ru,this.up):Ra.lookAt(Ru,Il,this.up),this.quaternion.setFromRotationMatrix(Ra),o&&(Ra.extractRotation(o.matrixWorld),no.setFromRotationMatrix(Ra),this.quaternion.premultiply(no.invert()))}add(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.add(arguments[i]);return this}return e===this?(Vt("Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.removeFromParent(),e.parent=this,this.children.push(e),e.dispatchEvent(Ry),io.child=e,this.dispatchEvent(io),io.child=null):Vt("Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let r=0;r<arguments.length;r++)this.remove(arguments[r]);return this}const i=this.children.indexOf(e);return i!==-1&&(e.parent=null,this.children.splice(i,1),e.dispatchEvent(RT),jh.child=e,this.dispatchEvent(jh),jh.child=null),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){return this.remove(...this.children)}attach(e){return this.updateWorldMatrix(!0,!1),Ra.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),Ra.multiply(e.parent.matrixWorld)),e.applyMatrix4(Ra),e.removeFromParent(),e.parent=this,this.children.push(e),e.updateWorldMatrix(!1,!0),e.dispatchEvent(Ry),io.child=e,this.dispatchEvent(io),io.child=null,this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,i){if(this[e]===i)return this;for(let r=0,o=this.children.length;r<o;r++){const u=this.children[r].getObjectByProperty(e,i);if(u!==void 0)return u}}getObjectsByProperty(e,i,r=[]){this[e]===i&&r.push(this);const o=this.children;for(let c=0,u=o.length;c<u;c++)o[c].getObjectsByProperty(e,i,r);return r}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Il,e,wT),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(Il,TT,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const i=this.matrixWorld.elements;return e.set(i[8],i[9],i[10]).normalize()}raycast(){}traverse(e){e(this);const i=this.children;for(let r=0,o=i.length;r<o;r++)i[r].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const i=this.children;for(let r=0,o=i.length;r<o;r++)i[r].traverseVisible(e)}traverseAncestors(e){const i=this.parent;i!==null&&(e(i),i.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale);const e=this.pivot;if(e!==null){const i=e.x,r=e.y,o=e.z,c=this.matrix.elements;c[12]+=i-c[0]*i-c[4]*r-c[8]*o,c[13]+=r-c[1]*i-c[5]*r-c[9]*o,c[14]+=o-c[2]*i-c[6]*r-c[10]*o}this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,e=!0);const i=this.children;for(let r=0,o=i.length;r<o;r++)i[r].updateMatrixWorld(e)}updateWorldMatrix(e,i){const r=this.parent;if(e===!0&&r!==null&&r.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),i===!0){const o=this.children;for(let c=0,u=o.length;c<u;c++)o[c].updateWorldMatrix(!1,!0)}}toJSON(e){const i=e===void 0||typeof e=="string",r={};i&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},r.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const o={};o.uuid=this.uuid,o.type=this.type,this.name!==""&&(o.name=this.name),this.castShadow===!0&&(o.castShadow=!0),this.receiveShadow===!0&&(o.receiveShadow=!0),this.visible===!1&&(o.visible=!1),this.frustumCulled===!1&&(o.frustumCulled=!1),this.renderOrder!==0&&(o.renderOrder=this.renderOrder),this.static!==!1&&(o.static=this.static),Object.keys(this.userData).length>0&&(o.userData=this.userData),o.layers=this.layers.mask,o.matrix=this.matrix.toArray(),o.up=this.up.toArray(),this.pivot!==null&&(o.pivot=this.pivot.toArray()),this.matrixAutoUpdate===!1&&(o.matrixAutoUpdate=!1),this.morphTargetDictionary!==void 0&&(o.morphTargetDictionary=Object.assign({},this.morphTargetDictionary)),this.morphTargetInfluences!==void 0&&(o.morphTargetInfluences=this.morphTargetInfluences.slice()),this.isInstancedMesh&&(o.type="InstancedMesh",o.count=this.count,o.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(o.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(o.type="BatchedMesh",o.perObjectFrustumCulled=this.perObjectFrustumCulled,o.sortObjects=this.sortObjects,o.drawRanges=this._drawRanges,o.reservedRanges=this._reservedRanges,o.geometryInfo=this._geometryInfo.map(f=>({...f,boundingBox:f.boundingBox?f.boundingBox.toJSON():void 0,boundingSphere:f.boundingSphere?f.boundingSphere.toJSON():void 0})),o.instanceInfo=this._instanceInfo.map(f=>({...f})),o.availableInstanceIds=this._availableInstanceIds.slice(),o.availableGeometryIds=this._availableGeometryIds.slice(),o.nextIndexStart=this._nextIndexStart,o.nextVertexStart=this._nextVertexStart,o.geometryCount=this._geometryCount,o.maxInstanceCount=this._maxInstanceCount,o.maxVertexCount=this._maxVertexCount,o.maxIndexCount=this._maxIndexCount,o.geometryInitialized=this._geometryInitialized,o.matricesTexture=this._matricesTexture.toJSON(e),o.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(o.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(o.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(o.boundingBox=this.boundingBox.toJSON()));function c(f,h){return f[h.uuid]===void 0&&(f[h.uuid]=h.toJSON(e)),h.uuid}if(this.isScene)this.background&&(this.background.isColor?o.background=this.background.toJSON():this.background.isTexture&&(o.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(o.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){o.geometry=c(e.geometries,this.geometry);const f=this.geometry.parameters;if(f!==void 0&&f.shapes!==void 0){const h=f.shapes;if(Array.isArray(h))for(let p=0,x=h.length;p<x;p++){const g=h[p];c(e.shapes,g)}else c(e.shapes,h)}}if(this.isSkinnedMesh&&(o.bindMode=this.bindMode,o.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(c(e.skeletons,this.skeleton),o.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const f=[];for(let h=0,p=this.material.length;h<p;h++)f.push(c(e.materials,this.material[h]));o.material=f}else o.material=c(e.materials,this.material);if(this.children.length>0){o.children=[];for(let f=0;f<this.children.length;f++)o.children.push(this.children[f].toJSON(e).object)}if(this.animations.length>0){o.animations=[];for(let f=0;f<this.animations.length;f++){const h=this.animations[f];o.animations.push(c(e.animations,h))}}if(i){const f=u(e.geometries),h=u(e.materials),p=u(e.textures),x=u(e.images),g=u(e.shapes),v=u(e.skeletons),y=u(e.animations),M=u(e.nodes);f.length>0&&(r.geometries=f),h.length>0&&(r.materials=h),p.length>0&&(r.textures=p),x.length>0&&(r.images=x),g.length>0&&(r.shapes=g),v.length>0&&(r.skeletons=v),y.length>0&&(r.animations=y),M.length>0&&(r.nodes=M)}return r.object=o,r;function u(f){const h=[];for(const p in f){const x=f[p];delete x.metadata,h.push(x)}return h}}clone(e){return new this.constructor().copy(this,e)}copy(e,i=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),e.pivot!==null&&(this.pivot=e.pivot.clone()),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.static=e.static,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),i===!0)for(let r=0;r<e.children.length;r++){const o=e.children[r];this.add(o.clone())}return this}}hi.DEFAULT_UP=new he(0,1,0);hi.DEFAULT_MATRIX_AUTO_UPDATE=!0;hi.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;class Cu extends hi{constructor(){super(),this.isGroup=!0,this.type="Group"}}const CT={type:"move"};class Yh{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Cu,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Cu,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new he,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new he),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Cu,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new he,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new he),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const i=this._hand;if(i)for(const r of e.hand.values())this._getHandJoint(i,r)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,i,r){let o=null,c=null,u=null;const f=this._targetRay,h=this._grip,p=this._hand;if(e&&i.session.visibilityState!=="visible-blurred"){if(p&&e.hand){u=!0;for(const T of e.hand.values()){const E=i.getJointPose(T,r),b=this._getHandJoint(p,T);E!==null&&(b.matrix.fromArray(E.transform.matrix),b.matrix.decompose(b.position,b.rotation,b.scale),b.matrixWorldNeedsUpdate=!0,b.jointRadius=E.radius),b.visible=E!==null}const x=p.joints["index-finger-tip"],g=p.joints["thumb-tip"],v=x.position.distanceTo(g.position),y=.02,M=.005;p.inputState.pinching&&v>y+M?(p.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!p.inputState.pinching&&v<=y-M&&(p.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else h!==null&&e.gripSpace&&(c=i.getPose(e.gripSpace,r),c!==null&&(h.matrix.fromArray(c.transform.matrix),h.matrix.decompose(h.position,h.rotation,h.scale),h.matrixWorldNeedsUpdate=!0,c.linearVelocity?(h.hasLinearVelocity=!0,h.linearVelocity.copy(c.linearVelocity)):h.hasLinearVelocity=!1,c.angularVelocity?(h.hasAngularVelocity=!0,h.angularVelocity.copy(c.angularVelocity)):h.hasAngularVelocity=!1));f!==null&&(o=i.getPose(e.targetRaySpace,r),o===null&&c!==null&&(o=c),o!==null&&(f.matrix.fromArray(o.transform.matrix),f.matrix.decompose(f.position,f.rotation,f.scale),f.matrixWorldNeedsUpdate=!0,o.linearVelocity?(f.hasLinearVelocity=!0,f.linearVelocity.copy(o.linearVelocity)):f.hasLinearVelocity=!1,o.angularVelocity?(f.hasAngularVelocity=!0,f.angularVelocity.copy(o.angularVelocity)):f.hasAngularVelocity=!1,this.dispatchEvent(CT)))}return f!==null&&(f.visible=o!==null),h!==null&&(h.visible=c!==null),p!==null&&(p.visible=u!==null),this}_getHandJoint(e,i){if(e.joints[i.jointName]===void 0){const r=new Cu;r.matrixAutoUpdate=!1,r.visible=!1,e.joints[i.jointName]=r,e.add(r)}return e.joints[i.jointName]}}const zS={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},xr={h:0,s:0,l:0},Iu={h:0,s:0,l:0};function Xh(a,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?a+(e-a)*6*i:i<1/2?e:i<2/3?a+(e-a)*6*(2/3-i):a}class qt{constructor(e,i,r){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,i,r)}set(e,i,r){if(i===void 0&&r===void 0){const o=e;o&&o.isColor?this.copy(o):typeof o=="number"?this.setHex(o):typeof o=="string"&&this.setStyle(o)}else this.setRGB(e,i,r);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,i=Ti){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,zt.colorSpaceToWorking(this,i),this}setRGB(e,i,r,o=zt.workingColorSpace){return this.r=e,this.g=i,this.b=r,zt.colorSpaceToWorking(this,o),this}setHSL(e,i,r,o=zt.workingColorSpace){if(e=mT(e,1),i=Ut(i,0,1),r=Ut(r,0,1),i===0)this.r=this.g=this.b=r;else{const c=r<=.5?r*(1+i):r+i-r*i,u=2*r-c;this.r=Xh(u,c,e+1/3),this.g=Xh(u,c,e),this.b=Xh(u,c,e-1/3)}return zt.colorSpaceToWorking(this,o),this}setStyle(e,i=Ti){function r(c){c!==void 0&&parseFloat(c)<1&&bt("Color: Alpha component of "+e+" will be ignored.")}let o;if(o=/^(\w+)\(([^\)]*)\)/.exec(e)){let c;const u=o[1],f=o[2];switch(u){case"rgb":case"rgba":if(c=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return r(c[4]),this.setRGB(Math.min(255,parseInt(c[1],10))/255,Math.min(255,parseInt(c[2],10))/255,Math.min(255,parseInt(c[3],10))/255,i);if(c=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return r(c[4]),this.setRGB(Math.min(100,parseInt(c[1],10))/100,Math.min(100,parseInt(c[2],10))/100,Math.min(100,parseInt(c[3],10))/100,i);break;case"hsl":case"hsla":if(c=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(f))return r(c[4]),this.setHSL(parseFloat(c[1])/360,parseFloat(c[2])/100,parseFloat(c[3])/100,i);break;default:bt("Color: Unknown color model "+e)}}else if(o=/^\#([A-Fa-f\d]+)$/.exec(e)){const c=o[1],u=c.length;if(u===3)return this.setRGB(parseInt(c.charAt(0),16)/15,parseInt(c.charAt(1),16)/15,parseInt(c.charAt(2),16)/15,i);if(u===6)return this.setHex(parseInt(c,16),i);bt("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,i);return this}setColorName(e,i=Ti){const r=zS[e.toLowerCase()];return r!==void 0?this.setHex(r,i):bt("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=ka(e.r),this.g=ka(e.g),this.b=ka(e.b),this}copyLinearToSRGB(e){return this.r=Eo(e.r),this.g=Eo(e.g),this.b=Eo(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ti){return zt.workingToColorSpace(zn.copy(this),e),Math.round(Ut(zn.r*255,0,255))*65536+Math.round(Ut(zn.g*255,0,255))*256+Math.round(Ut(zn.b*255,0,255))}getHexString(e=Ti){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,i=zt.workingColorSpace){zt.workingToColorSpace(zn.copy(this),i);const r=zn.r,o=zn.g,c=zn.b,u=Math.max(r,o,c),f=Math.min(r,o,c);let h,p;const x=(f+u)/2;if(f===u)h=0,p=0;else{const g=u-f;switch(p=x<=.5?g/(u+f):g/(2-u-f),u){case r:h=(o-c)/g+(o<c?6:0);break;case o:h=(c-r)/g+2;break;case c:h=(r-o)/g+4;break}h/=6}return e.h=h,e.s=p,e.l=x,e}getRGB(e,i=zt.workingColorSpace){return zt.workingToColorSpace(zn.copy(this),i),e.r=zn.r,e.g=zn.g,e.b=zn.b,e}getStyle(e=Ti){zt.workingToColorSpace(zn.copy(this),e);const i=zn.r,r=zn.g,o=zn.b;return e!==Ti?`color(${e} ${i.toFixed(3)} ${r.toFixed(3)} ${o.toFixed(3)})`:`rgb(${Math.round(i*255)},${Math.round(r*255)},${Math.round(o*255)})`}offsetHSL(e,i,r){return this.getHSL(xr),this.setHSL(xr.h+e,xr.s+i,xr.l+r)}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,i){return this.r=e.r+i.r,this.g=e.g+i.g,this.b=e.b+i.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,i){return this.r+=(e.r-this.r)*i,this.g+=(e.g-this.g)*i,this.b+=(e.b-this.b)*i,this}lerpColors(e,i,r){return this.r=e.r+(i.r-e.r)*r,this.g=e.g+(i.g-e.g)*r,this.b=e.b+(i.b-e.b)*r,this}lerpHSL(e,i){this.getHSL(xr),e.getHSL(Iu);const r=_h(xr.h,Iu.h,i),o=_h(xr.s,Iu.s,i),c=_h(xr.l,Iu.l,i);return this.setHSL(r,o,c),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){const i=this.r,r=this.g,o=this.b,c=e.elements;return this.r=c[0]*i+c[3]*r+c[6]*o,this.g=c[1]*i+c[4]*r+c[7]*o,this.b=c[2]*i+c[5]*r+c[8]*o,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,i=0){return this.r=e[i],this.g=e[i+1],this.b=e[i+2],this}toArray(e=[],i=0){return e[i]=this.r,e[i+1]=this.g,e[i+2]=this.b,e}fromBufferAttribute(e,i){return this.r=e.getX(i),this.g=e.getY(i),this.b=e.getZ(i),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const zn=new qt;qt.NAMES=zS;class IT extends hi{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Fa,this.environmentIntensity=1,this.environmentRotation=new Fa,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,i){return super.copy(e,i),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const i=super.toJSON(e);return this.fog!==null&&(i.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(i.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(i.object.backgroundIntensity=this.backgroundIntensity),i.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(i.object.environmentIntensity=this.environmentIntensity),i.object.environmentRotation=this.environmentRotation.toArray(),i}}const zi=new he,Ca=new he,Zh=new he,Ia=new he,ao=new he,ro=new he,Cy=new he,Wh=new he,Qh=new he,qh=new he,Kh=new hn,Jh=new hn,$h=new hn;class Fi{constructor(e=new he,i=new he,r=new he){this.a=e,this.b=i,this.c=r}static getNormal(e,i,r,o){o.subVectors(r,i),zi.subVectors(e,i),o.cross(zi);const c=o.lengthSq();return c>0?o.multiplyScalar(1/Math.sqrt(c)):o.set(0,0,0)}static getBarycoord(e,i,r,o,c){zi.subVectors(o,i),Ca.subVectors(r,i),Zh.subVectors(e,i);const u=zi.dot(zi),f=zi.dot(Ca),h=zi.dot(Zh),p=Ca.dot(Ca),x=Ca.dot(Zh),g=u*p-f*f;if(g===0)return c.set(0,0,0),null;const v=1/g,y=(p*h-f*x)*v,M=(u*x-f*h)*v;return c.set(1-y-M,M,y)}static containsPoint(e,i,r,o){return this.getBarycoord(e,i,r,o,Ia)===null?!1:Ia.x>=0&&Ia.y>=0&&Ia.x+Ia.y<=1}static getInterpolation(e,i,r,o,c,u,f,h){return this.getBarycoord(e,i,r,o,Ia)===null?(h.x=0,h.y=0,"z"in h&&(h.z=0),"w"in h&&(h.w=0),null):(h.setScalar(0),h.addScaledVector(c,Ia.x),h.addScaledVector(u,Ia.y),h.addScaledVector(f,Ia.z),h)}static getInterpolatedAttribute(e,i,r,o,c,u){return Kh.setScalar(0),Jh.setScalar(0),$h.setScalar(0),Kh.fromBufferAttribute(e,i),Jh.fromBufferAttribute(e,r),$h.fromBufferAttribute(e,o),u.setScalar(0),u.addScaledVector(Kh,c.x),u.addScaledVector(Jh,c.y),u.addScaledVector($h,c.z),u}static isFrontFacing(e,i,r,o){return zi.subVectors(r,i),Ca.subVectors(e,i),zi.cross(Ca).dot(o)<0}set(e,i,r){return this.a.copy(e),this.b.copy(i),this.c.copy(r),this}setFromPointsAndIndices(e,i,r,o){return this.a.copy(e[i]),this.b.copy(e[r]),this.c.copy(e[o]),this}setFromAttributeAndIndices(e,i,r,o){return this.a.fromBufferAttribute(e,i),this.b.fromBufferAttribute(e,r),this.c.fromBufferAttribute(e,o),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return zi.subVectors(this.c,this.b),Ca.subVectors(this.a,this.b),zi.cross(Ca).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Fi.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,i){return Fi.getBarycoord(e,this.a,this.b,this.c,i)}getInterpolation(e,i,r,o,c){return Fi.getInterpolation(e,this.a,this.b,this.c,i,r,o,c)}containsPoint(e){return Fi.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Fi.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,i){const r=this.a,o=this.b,c=this.c;let u,f;ao.subVectors(o,r),ro.subVectors(c,r),Wh.subVectors(e,r);const h=ao.dot(Wh),p=ro.dot(Wh);if(h<=0&&p<=0)return i.copy(r);Qh.subVectors(e,o);const x=ao.dot(Qh),g=ro.dot(Qh);if(x>=0&&g<=x)return i.copy(o);const v=h*g-x*p;if(v<=0&&h>=0&&x<=0)return u=h/(h-x),i.copy(r).addScaledVector(ao,u);qh.subVectors(e,c);const y=ao.dot(qh),M=ro.dot(qh);if(M>=0&&y<=M)return i.copy(c);const T=y*p-h*M;if(T<=0&&p>=0&&M<=0)return f=p/(p-M),i.copy(r).addScaledVector(ro,f);const E=x*M-y*g;if(E<=0&&g-x>=0&&y-M>=0)return Cy.subVectors(c,o),f=(g-x)/(g-x+(y-M)),i.copy(o).addScaledVector(Cy,f);const b=1/(E+T+v);return u=T*b,f=v*b,i.copy(r).addScaledVector(ao,u).addScaledVector(ro,f)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}class sc{constructor(e=new he(1/0,1/0,1/0),i=new he(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=i}set(e,i){return this.min.copy(e),this.max.copy(i),this}setFromArray(e){this.makeEmpty();for(let i=0,r=e.length;i<r;i+=3)this.expandByPoint(_i.fromArray(e,i));return this}setFromBufferAttribute(e){this.makeEmpty();for(let i=0,r=e.count;i<r;i++)this.expandByPoint(_i.fromBufferAttribute(e,i));return this}setFromPoints(e){this.makeEmpty();for(let i=0,r=e.length;i<r;i++)this.expandByPoint(e[i]);return this}setFromCenterAndSize(e,i){const r=_i.copy(i).multiplyScalar(.5);return this.min.copy(e).sub(r),this.max.copy(e).add(r),this}setFromObject(e,i=!1){return this.makeEmpty(),this.expandByObject(e,i)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,i=!1){e.updateWorldMatrix(!1,!1);const r=e.geometry;if(r!==void 0){const c=r.getAttribute("position");if(i===!0&&c!==void 0&&e.isInstancedMesh!==!0)for(let u=0,f=c.count;u<f;u++)e.isMesh===!0?e.getVertexPosition(u,_i):_i.fromBufferAttribute(c,u),_i.applyMatrix4(e.matrixWorld),this.expandByPoint(_i);else e.boundingBox!==void 0?(e.boundingBox===null&&e.computeBoundingBox(),Du.copy(e.boundingBox)):(r.boun
vendor: 1,039 bytes, line 9
9dingBox===null&&r.computeBoundingBox(),Du.copy(r.boundingBox)),Du.applyMatrix4(e.matrixWorld),this.union(Du)}const o=e.children;for(let c=0,u=o.length;c<u;c++)this.expandByObject(o[c],i);return this}containsPoint(e){return e.x>=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,i){return i.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,_i),_i.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let i,r;return e.normal.x>0?(i=e.normal.x*this.min.x,r=e.normal.x*this.max.x):(i=e.normal.x*this.max.x,r=e.normal.x*this.min.x),e.normal.y>
vendor: 20,390 bytes, line 9
90?(i+=e.normal.y*this.min.y,r+=e.normal.y*this.max.y):(i+=e.normal.y*this.max.y,r+=e.normal.y*this.min.y),e.normal.z>0?(i+=e.normal.z*this.min.z,r+=e.normal.z*this.max.z):(i+=e.normal.z*this.max.z,r+=e.normal.z*this.min.z),i<=-e.constant&&r>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Dl),Nu.subVectors(this.max,Dl),so.subVectors(e.a,Dl),oo.subVectors(e.b,Dl),lo.subVectors(e.c,Dl),yr.subVectors(oo,so),br.subVectors(lo,oo),Wr.subVectors(so,lo);let i=[0,-yr.z,yr.y,0,-br.z,br.y,0,-Wr.z,Wr.y,yr.z,0,-yr.x,br.z,0,-br.x,Wr.z,0,-Wr.x,-yr.y,yr.x,0,-br.y,br.x,0,-Wr.y,Wr.x,0];return!ep(i,so,oo,lo,Nu)||(i=[1,0,0,0,1,0,0,0,1],!ep(i,so,oo,lo,Nu))?!1:(Lu.crossVectors(yr,br),i=[Lu.x,Lu.y,Lu.z],ep(i,so,oo,lo,Nu))}clampPoint(e,i){return i.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,_i).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(_i).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(Da[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Da[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Da[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Da[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Da[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Da[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Da[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Da[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Da),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}}const Da=[new he,new he,new he,new he,new he,new he,new he,new he],_i=new he,Du=new sc,so=new he,oo=new he,lo=new he,yr=new he,br=new he,Wr=new he,Dl=new he,Nu=new he,Lu=new he,Qr=new he;function ep(a,e,i,r,o){for(let c=0,u=a.length-3;c<=u;c+=3){Qr.fromArray(a,c);const f=o.x*Math.abs(Qr.x)+o.y*Math.abs(Qr.y)+o.z*Math.abs(Qr.z),h=e.dot(Qr),p=i.dot(Qr),x=r.dot(Qr);if(Math.max(-Math.max(h,p,x),Math.min(h,p,x))>f)return!1}return!0}const bn=new he,Pu=new kt;let DT=0;class aa{constructor(e,i,r=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:DT++}),this.name="",this.array=e,this.itemSize=i,this.count=e!==void 0?e.length/i:0,this.normalized=r,this.usage=py,this.updateRanges=[],this.gpuType=ea,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,i){this.updateRanges.push({start:e,count:i})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,i,r){e*=this.itemSize,r*=i.itemSize;for(let o=0,c=this.itemSize;o<c;o++)this.array[e+o]=i.array[r+o];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let i=0,r=this.count;i<r;i++)Pu.fromBufferAttribute(this,i),Pu.applyMatrix3(e),this.setXY(i,Pu.x,Pu.y);else if(this.itemSize===3)for(let i=0,r=this.count;i<r;i++)bn.fromBufferAttribute(this,i),bn.applyMatrix3(e),this.setXYZ(i,bn.x,bn.y,bn.z);return this}applyMatrix4(e){for(let i=0,r=this.count;i<r;i++)bn.fromBufferAttribute(this,i),bn.applyMatrix4(e),this.setXYZ(i,bn.x,bn.y,bn.z);return this}applyNormalMatrix(e){for(let i=0,r=this.count;i<r;i++)bn.fromBufferAttribute(this,i),bn.applyNormalMatrix(e),this.setXYZ(i,bn.x,bn.y,bn.z);return this}transformDirection(e){for(let i=0,r=this.count;i<r;i++)bn.fromBufferAttribute(this,i),bn.transformDirection(e),this.setXYZ(i,bn.x,bn.y,bn.z);return this}set(e,i=0){return this.array.set(e,i),this}getComponent(e,i){let r=this.array[e*this.itemSize+i];return this.normalized&&(r=Cl(r,this.array)),r}setComponent(e,i,r){return this.normalized&&(r=ti(r,this.array)),this.array[e*this.itemSize+i]=r,this}getX(e){let i=this.array[e*this.itemSize];return this.normalized&&(i=Cl(i,this.array)),i}setX(e,i){return this.normalized&&(i=ti(i,this.array)),this.array[e*this.itemSize]=i,this}getY(e){let i=this.array[e*this.itemSize+1];return this.normalized&&(i=Cl(i,this.array)),i}setY(e,i){return this.normalized&&(i=ti(i,this.array)),this.array[e*this.itemSize+1]=i,this}getZ(e){let i=this.array[e*this.itemSize+2];return this.normalized&&(i=Cl(i,this.array)),i}setZ(e,i){return this.normalized&&(i=ti(i,this.array)),this.array[e*this.itemSize+2]=i,this}getW(e){let i=this.array[e*this.itemSize+3];return this.normalized&&(i=Cl(i,this.array)),i}setW(e,i){return this.normalized&&(i=ti(i,this.array)),this.array[e*this.itemSize+3]=i,this}setXY(e,i,r){return e*=this.itemSize,this.normalized&&(i=ti(i,this.array),r=ti(r,this.array)),this.array[e+0]=i,this.array[e+1]=r,this}setXYZ(e,i,r,o){return e*=this.itemSize,this.normalized&&(i=ti(i,this.array),r=ti(r,this.array),o=ti(o,this.array)),this.array[e+0]=i,this.array[e+1]=r,this.array[e+2]=o,this}setXYZW(e,i,r,o,c){return e*=this.itemSize,this.normalized&&(i=ti(i,this.array),r=ti(r,this.array),o=ti(o,this.array),c=ti(c,this.array)),this.array[e+0]=i,this.array[e+1]=r,this.array[e+2]=o,this.array[e+3]=c,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==py&&(e.usage=this.usage),e}}class _S extends aa{constructor(e,i,r){super(new Uint16Array(e),i,r)}}class HS extends aa{constructor(e,i,r){super(new Uint32Array(e),i,r)}}class za extends aa{constructor(e,i,r){super(new Float32Array(e),i,r)}}const NT=new sc,Nl=new he,tp=new he;class _m{constructor(e=new he,i=-1){this.isSphere=!0,this.center=e,this.radius=i}set(e,i){return this.center.copy(e),this.radius=i,this}setFromPoints(e,i){const r=this.center;i!==void 0?r.copy(i):NT.setFromPoints(e).getCenter(r);let o=0;for(let c=0,u=e.length;c<u;c++)o=Math.max(o,r.distanceToSquared(e[c]));return this.radius=Math.sqrt(o),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const i=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=i*i}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,i){const r=this.center.distanceToSquared(e);return i.copy(e),r>this.radius*this.radius&&(i.sub(this.center).normalize(),i.multiplyScalar(this.radius).add(this.center)),i}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;Nl.subVectors(e,this.center);const i=Nl.lengthSq();if(i>this.radius*this.radius){const r=Math.sqrt(i),o=(r-this.radius)*.5;this.center.addScaledVector(Nl,o/r),this.radius+=o}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(tp.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(Nl.copy(e.center).add(tp)),this.expandByPoint(Nl.copy(e.center).sub(tp))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}}let LT=0;const wi=new Sn,np=new hi,co=new he,di=new sc,Ll=new sc,Rn=new he;class Va extends No{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:LT++}),this.uuid=rc(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(fT(e)?HS:_S)(e,1):this.index=e,this}setIndirect(e,i=0){return this.indirect=e,this.indirectOffset=i,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,i){return this.attributes[e]=i,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,i,r=0){this.groups.push({start:e,count:i,materialIndex:r})}clearGroups(){this.groups=[]}setDrawRange(e,i){this.drawRange.start=e,this.drawRange.count=i}applyMatrix4(e){const i=this.attributes.position;i!==void 0&&(i.applyMatrix4(e),i.needsUpdate=!0);const r=this.attributes.normal;if(r!==void 0){const c=new Rt().getNormalMatrix(e);r.applyNormalMatrix(c),r.needsUpdate=!0}const o=this.attributes.tangent;return o!==void 0&&(o.transformDirection(e),o.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return wi.makeRotationFromQuaternion(e),this.applyMatrix4(wi),this}rotateX(e){return wi.makeRotationX(e),this.applyMatrix4(wi),this}rotateY(e){return wi.makeRotationY(e),this.applyMatrix4(wi),this}rotateZ(e){return wi.makeRotationZ(e),this.applyMatrix4(wi),this}translate(e,i,r){return wi.makeTranslation(e,i,r),this.applyMatrix4(wi),this}scale(e,i,r){return wi.makeScale(e,i,r),this.applyMatrix4(wi),this}lookAt(e){return np.lookAt(e),np.updateMatrix(),this.applyMatrix4(np.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(co).negate(),this.translate(co.x,co.y,co.z),this}setFromPoints(e){const i=this.getAttribute("position");if(i===void 0){const r=[];for(let o=0,c=e.length;o<c;o++){const u=e[o];r.push(u.x,u.y,u.z||0)}this.setAttribute("position",new za(r,3))}else{const r=Math.min(e.length,i.count);for(let o=0;o<r;o++){const c=e[o];i.setXYZ(o,c.x,c.y,c.z||0)}e.length>i.count&&bt("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),i.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new sc);const e=this.attributes.position,i=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){Vt("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new he(-1/0,-1/0,-1/0),new he(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),i)for(let r=0,o=i.length;r<o;r++){const c=i[r];di.setFromBufferAttribute(c),this.morphTargetsRelative?(Rn.addVectors(this.boundingBox.min,di.min),this.boundingBox.expandByPoint(Rn),Rn.addVectors(this.boundingBox.max,di.max),this.boundingBox.expandByPoint(Rn)):(this.boundingBox.expandByPoint(di.min),this.boundingBox.expandByPoint(di.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&Vt('BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new _m);const e=this.attributes.position,i=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){Vt("BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new he,1/0);return}if(e){const r=this.boundingSphere.center;if(di.setFromBufferAttribute(e),i)for(let c=0,u=i.length;c<u;c++){const f=i[c];Ll.setFromBufferAttribute(f),this.morphTargetsRelative?(Rn.addVectors(di.min,Ll.min),di.expandByPoint(Rn),Rn.addVectors(di.max,Ll.max),di.expandByPoint(Rn)):(di.expandByPoint(Ll.min),di.expandByPoint(Ll.max))}di.getCenter(r);let o=0;for(let c=0,u=e.count;c<u;c++)Rn.fromBufferAttribute(e,c),o=Math.max(o,r.distanceToSquared(Rn));if(i)for(let c=0,u=i.length;c<u;c++){const f=i[c],h=this.morphTargetsRelative;for(let p=0,x=f.count;p<x;p++)Rn.fromBufferAttribute(f,p),h&&(co.fromBufferAttribute(e,p),Rn.add(co)),o=Math.max(o,r.distanceToSquared(Rn))}this.boundingSphere.radius=Math.sqrt(o),isNaN(this.boundingSphere.radius)&&Vt('BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const e=this.index,i=this.attributes;if(e===null||i.position===void 0||i.normal===void 0||i.uv===void 0){Vt("BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const r=i.position,o=i.normal,c=i.uv;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new aa(new Float32Array(4*r.count),4));const u=this.getAttribute("tangent"),f=[],h=[];for(let A=0;A<r.count;A++)f[A]=new he,h[A]=new he;const p=new he,x=new he,g=new he,v=new kt,y=new kt,M=new kt,T=new he,E=new he;function b(A,L,X){p.fromBufferAttribute(r,A),x.fromBufferAttribute(r,L),g.fromBufferAttribute(r,X),v.fromBufferAttribute(c,A),y.fromBufferAttribute(c,L),M.fromBufferAttribute(c,X),x.sub(p),g.sub(p),y.sub(v),M.sub(v);const k=1/(y.x*M.y-M.x*y.y);isFinite(k)&&(T.copy(x).multiplyScalar(M.y).addScaledVector(g,-y.y).multiplyScalar(k),E.copy(g).multiplyScalar(y.x).addScaledVector(x,-M.x).multiplyScalar(k),f[A].add(T),f[L].add(T),f[X].add(T),h[A].add(E),h[L].add(E),h[X].add(E))}let R=this.groups;R.length===0&&(R=[{start:0,count:e.count}]);for(let A=0,L=R.length;A<L;++A){const X=R[A],k=X.start,G=X.count;for(let Y=k,ee=k+G;Y<ee;Y+=3)b(e.getX(Y+0),e.getX(Y+1),e.getX(Y+2))}const C=new he,I=new he,U=new he,B=new he;function D(A){U.fromBufferAttribute(o,A),B.copy(U);const L=f[A];C.copy(L),C.sub(U.multiplyScalar(U.dot(L))).normalize(),I.crossVectors(B,L);const k=I.dot(h[A])<0?-1:1;u.setXYZW(A,C.x,C.y,C.z,k)}for(let A=0,L=R.length;A<L;++A){const X=R[A],k=X.start,G=X.count;for(let Y=k,ee=k+G;Y<ee;Y+=3)D(e.getX(Y+0)),D(e.getX(Y+1)),D(e.getX(Y+2))}}computeVertexNormals(){const e=this.index,i=this.getAttribute("position");if(i!==void 0){let r=this.getAttribute("normal");if(r===void 0)r=new aa(new Float32Array(i.count*3),3),this.setAttribute("normal",r);else for(let v=0,y=r.count;v<y;v++)r.setXYZ(v,0,0,0);const o=new he,c=new he,u=new he,f=new he,h=new he,p=new he,x=new he,g=new he;if(e)for(let v=0,y=e.count;v<y;v+=3){const M=e.getX(v+0),T=e.getX(v+1),E=e.getX(v+2);o.fromBufferAttribute(i,M),c.fromBufferAttribute(i,T),u.fromBufferAttribute(i,E),x.subVectors(u,c),g.subVectors(o,c),x.cross(g),f.fromBufferAttribute(r,M),h.fromBufferAttribute(r,T),p.fromBufferAttribute(r,E),f.add(x),h.add(x),p.add(x),r.setXYZ(M,f.x,f.y,f.z),r.setXYZ(T,h.x,h.y,h.z),r.setXYZ(E,p.x,p.y,p.z)}else for(let v=0,y=i.count;v<y;v+=3)o.fromBufferAttribute(i,v+0),c.fromBufferAttribute(i,v+1),u.fromBufferAttribute(i,v+2),x.subVectors(u,c),g.subVectors(o,c),x.cross(g),r.setXYZ(v+0,x.x,x.y,x.z),r.setXYZ(v+1,x.x,x.y,x.z),r.setXYZ(v+2,x.x,x.y,x.z);this.normalizeNormals(),r.needsUpdate=!0}}normalizeNormals(){const e=this.attributes.normal;for(let i=0,r=e.count;i<r;i++)Rn.fromBufferAttribute(e,i),Rn.normalize(),e.setXYZ(i,Rn.x,Rn.y,Rn.z)}toNonIndexed(){function e(f,h){const p=f.array,x=f.itemSize,g=f.normalized,v=new p.constructor(h.length*x);let y=0,M=0;for(let T=0,E=h.length;T<E;T++){f.isInterleavedBufferAttribute?y=h[T]*f.data.stride+f.offset:y=h[T]*x;for(let b=0;b<x;b++)v[M++]=p[y++]}return new aa(v,x,g)}if(this.index===null)return bt("BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const i=new Va,r=this.index.array,o=this.attributes;for(const f in o){const h=o[f],p=e(h,r);i.setAttribute(f,p)}const c=this.morphAttributes;for(const f in c){const h=[],p=c[f];for(let x=0,g=p.length;x<g;x++){const v=p[x],y=e(v,r);h.push(y)}i.morphAttributes[f]=h}i.morphTargetsRelative=this.morphTargetsRelative;const u=this.groups;for(let f=0,h=u.length;f<h;f++){const p=u[f];i.addGroup(p.start,p.count,p.materialIndex)}return i}toJSON(){const e={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const h=this.parameters;for(const p in h)h[p]!==void 0&&(e[p]=h[p]);return e}e.data={attributes:{}};const i=this.index;i!==null&&(e.data.index={type:i.array.constructor.name,array:Array.prototype.slice.call(i.array)});const r=this.attributes;for(const h in r){const p=r[h];e.data.attributes[h]=p.toJSON(e.data)}const o={};let c=!1;for(const h in this.morphAttributes){const p=this.morphAttributes[h],x=[];for(let g=0,v=p.length;g<v;g++){const y=p[g];x.push(y.toJSON(e.data))}x.length>0&&(o[h]=x,c=!0)}c&&(e.data.morphAttributes=o,e.data.morphTargetsRelative=this.morphTargetsRelative);const u=this.groups;u.length>0&&(e.data.groups=JSON.parse(JSON.stringify(u)));const f=this.boundingSphere;return f!==null&&(e.data.boundingSphere=f.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const i={};this.name=e.name;const r=e.index;r!==null&&this.setIndex(r.clone());const o=e.attributes;for(const p in o){const x=o[p];this.setAttribute(p,x.clone(i))}const c=e.morphAttributes;for(const p in c){const x=[],g=c[p];for(let v=0,y=g.length;v<y;v++)x.push(g[v].clone(i));this.morphAttributes[p]=x}this.morphTargetsRelative=e.morphTargetsRelative;const u=e.groups;for(let p=0,x=u.length;p<x;p++){const g=u[p];this.addGroup(g.start,g.count,g.materialIndex)}const f=e.boundingBox;f!==null&&(this.boundingBox=f.clone());const h=e.boundingSphere;return h!==null&&(this.boundingSphere=h.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}let PT=0;class gf extends No{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:PT++}),this.uuid=rc(),this.name="",this.type="Material",this.blending=So,this.side=wr,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=Ip,this.blendDst=Dp,this.blendEquation=rs,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new qt(0,0,0),this.blendAlpha=0,this.depthFunc=wo,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=hy,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=$s,this.stencilZFail=$s,this.stencilZPass=$s,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const i in e){const r=e[i];if(r===void 0){bt(`Material: parameter '${i}' has value of undefined.`);continue}const o=this[i];if(o===void 0){bt(`Material: '${i}' is not a property of THREE.${this.type}.`);continue}o&&o.isColor?o.set(r):o&&o.isVector3&&r&&r.isVector3?o.copy(r):this[i]=r}}toJSON(e){const i=e===void 0||typeof e=="string";i&&(e={textures:{},images:{}});const r={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};
vendor: 9,098 bytes, line 9
9r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),this.color&&this.color.isColor&&(r.color=this.color.getHex()),this.roughness!==void 0&&(r.roughness=this.roughness),this.metalness!==void 0&&(r.metalness=this.metalness),this.sheen!==void 0&&(r.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(r.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(r.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(r.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(r.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(r.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(r.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(r.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(r.shininess=this.shininess),this.clearcoat!==void 0&&(r.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(r.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(r.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(r.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(r.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,r.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(r.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(r.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(r.dispersion=this.dispersion),this.iridescence!==void 0&&(r.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(r.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(r.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(r.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(r.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(r.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(r.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(r.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(r.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(r.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(r.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(r.lightMap=this.lightMap.toJSON(e).uuid,r.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(r.aoMap=this.aoMap.toJSON(e).uuid,r.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(r.bumpMap=this.bumpMap.toJSON(e).uuid,r.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(r.normalMap=this.normalMap.toJSON(e).uuid,r.normalMapType=this.normalMapType,r.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(r.displacementMap=this.displacementMap.toJSON(e).uuid,r.displacementScale=this.displacementScale,r.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(r.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(r.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(r.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(r.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(r.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(r.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(r.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(r.combine=this.combine)),this.envMapRotation!==void 0&&(r.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(r.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(r.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(r.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(r.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(r.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(r.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(r.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(r.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(r.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(r.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(r.size=this.size),this.shadowSide!==null&&(r.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(r.sizeAttenuation=this.sizeAttenuation),this.blending!==So&&(r.blending=this.blending),this.side!==wr&&(r.side=this.side),this.vertexColors===!0&&(r.vertexColors=!0),this.opacity<1&&(r.opacity=this.opacity),this.transparent===!0&&(r.transparent=!0),this.blendSrc!==Ip&&(r.blendSrc=this.blendSrc),this.blendDst!==Dp&&(r.blendDst=this.blendDst),this.blendEquation!==rs&&(r.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(r.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(r.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(r.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(r.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(r.blendAlpha=this.blendAlpha),this.depthFunc!==wo&&(r.depthFunc=this.depthFunc),this.depthTest===!1&&(r.depthTest=this.depthTest),this.depthWrite===!1&&(r.depthWrite=this.depthWrite),this.colorWrite===!1&&(r.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(r.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==hy&&(r.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(r.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(r.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==$s&&(r.stencilFail=this.stencilFail),this.stencilZFail!==$s&&(r.stencilZFail=this.stencilZFail),this.stencilZPass!==$s&&(r.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(r.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(r.rotation=this.rotation),this.polygonOffset===!0&&(r.polygonOffset=!0),this.polygonOffsetFactor!==0&&(r.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(r.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(r.linewidth=this.linewidth),this.dashSize!==void 0&&(r.dashSize=this.dashSize),this.gapSize!==void 0&&(r.gapSize=this.gapSize),this.scale!==void 0&&(r.scale=this.scale),this.dithering===!0&&(r.dithering=!0),this.alphaTest>0&&(r.alphaTest=this.alphaTest),this.alphaHash===!0&&(r.alphaHash=!0),this.alphaToCoverage===!0&&(r.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(r.premultipliedAlpha=!0),this.forceSinglePass===!0&&(r.forceSinglePass=!0),this.allowOverride===!1&&(r.allowOverride=!1),this.wireframe===!0&&(r.wireframe=!0),this.wireframeLinewidth>1&&(r.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(r.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(r.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(r.flatShading=!0),this.visible===!1&&(r.visible=!1),this.toneMapped===!1&&(r.toneMapped=!1),this.fog===!1&&(r.fog=!1),Object.keys(this.userData).length>0&&(r.userData=this.userData);function o(c){const u=[];for(const f in c){const h=c[f];delete h.metadata,u.push(h)}return u}if(i){const c=o(e.textures),u=o(e.images);c.length>0&&(r.textures=c),u.length>0&&(r.images=u)}return r}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const i=e.clippingPlanes;let r=null;if(i!==null){const o=i.length;r=new Array(o);for(let c=0;c!==o;++c)r[c]=i[c].clone()}return this.clippingPlanes=r,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipSh
vendor: 21,047 bytes, lines 9-13
9adows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.allowOverride=e.allowOverride,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}const Na=new he,ip=new he,Ou=new he,Sr=new he,ap=new he,Bu=new he,rp=new he;class OT{constructor(e=new he,i=new he(0,0,-1)){this.origin=e,this.direction=i}set(e,i){return this.origin.copy(e),this.direction.copy(i),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,i){return i.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Na)),this}closestPointToPoint(e,i){i.subVectors(e,this.origin);const r=i.dot(this.direction);return r<0?i.copy(this.origin):i.copy(this.origin).addScaledVector(this.direction,r)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const i=Na.subVectors(e,this.origin).dot(this.direction);return i<0?this.origin.distanceToSquared(e):(Na.copy(this.origin).addScaledVector(this.direction,i),Na.distanceToSquared(e))}distanceSqToSegment(e,i,r,o){ip.copy(e).add(i).multiplyScalar(.5),Ou.copy(i).sub(e).normalize(),Sr.copy(this.origin).sub(ip);const c=e.distanceTo(i)*.5,u=-this.direction.dot(Ou),f=Sr.dot(this.direction),h=-Sr.dot(Ou),p=Sr.lengthSq(),x=Math.abs(1-u*u);let g,v,y,M;if(x>0)if(g=u*h-f,v=u*f-h,M=c*x,g>=0)if(v>=-M)if(v<=M){const T=1/x;g*=T,v*=T,y=g*(g+u*v+2*f)+v*(u*g+v+2*h)+p}else v=c,g=Math.max(0,-(u*v+f)),y=-g*g+v*(v+2*h)+p;else v=-c,g=Math.max(0,-(u*v+f)),y=-g*g+v*(v+2*h)+p;else v<=-M?(g=Math.max(0,-(-u*c+f)),v=g>0?-c:Math.min(Math.max(-c,-h),c),y=-g*g+v*(v+2*h)+p):v<=M?(g=0,v=Math.min(Math.max(-c,-h),c),y=v*(v+2*h)+p):(g=Math.max(0,-(u*c+f)),v=g>0?c:Math.min(Math.max(-c,-h),c),y=-g*g+v*(v+2*h)+p);else v=u>0?-c:c,g=Math.max(0,-(u*v+f)),y=-g*g+v*(v+2*h)+p;return r&&r.copy(this.origin).addScaledVector(this.direction,g),o&&o.copy(ip).addScaledVector(Ou,v),y}intersectSphere(e,i){Na.subVectors(e.center,this.origin);const r=Na.dot(this.direction),o=Na.dot(Na)-r*r,c=e.radius*e.radius;if(o>c)return null;const u=Math.sqrt(c-o),f=r-u,h=r+u;return h<0?null:f<0?this.at(h,i):this.at(f,i)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const i=e.normal.dot(this.direction);if(i===0)return e.distanceToPoint(this.origin)===0?0:null;const r=-(this.origin.dot(e.normal)+e.constant)/i;return r>=0?r:null}intersectPlane(e,i){const r=this.distanceToPlane(e);return r===null?null:this.at(r,i)}intersectsPlane(e){const i=e.distanceToPoint(this.origin);return i===0||e.normal.dot(this.direction)*i<0}intersectBox(e,i){let r,o,c,u,f,h;const p=1/this.direction.x,x=1/this.direction.y,g=1/this.direction.z,v=this.origin;return p>=0?(r=(e.min.x-v.x)*p,o=(e.max.x-v.x)*p):(r=(e.max.x-v.x)*p,o=(e.min.x-v.x)*p),x>=0?(c=(e.min.y-v.y)*x,u=(e.max.y-v.y)*x):(c=(e.max.y-v.y)*x,u=(e.min.y-v.y)*x),r>u||c>o||((c>r||isNaN(r))&&(r=c),(u<o||isNaN(o))&&(o=u),g>=0?(f=(e.min.z-v.z)*g,h=(e.max.z-v.z)*g):(f=(e.max.z-v.z)*g,h=(e.min.z-v.z)*g),r>h||f>o)||((f>r||r!==r)&&(r=f),(h<o||o!==o)&&(o=h),o<0)?null:this.at(r>=0?r:o,i)}intersectsBox(e){return this.intersectBox(e,Na)!==null}intersectTriangle(e,i,r,o,c){ap.subVectors(i,e),Bu.subVectors(r,e),rp.crossVectors(ap,Bu);let u=this.direction.dot(rp),f;if(u>0){if(o)return null;f=1}else if(u<0)f=-1,u=-u;else return null;Sr.subVectors(this.origin,e);const h=f*this.direction.dot(Bu.crossVectors(Sr,Bu));if(h<0)return null;const p=f*this.direction.dot(ap.cross(Sr));if(p<0||h+p>u)return null;const x=-f*Sr.dot(rp);return x<0?null:this.at(x/u,c)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class FS extends gf{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new qt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Fa,this.combine=yS,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Iy=new Sn,qr=new OT,Uu=new _m,Dy=new he,ku=new he,zu=new he,_u=new he,sp=new he,Hu=new he,Ny=new he,Fu=new he;class sa extends hi{constructor(e=new Va,i=new FS){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=i,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,i){return super.copy(e,i),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const i=this.geometry.morphAttributes,r=Object.keys(i);if(r.length>0){const o=i[r[0]];if(o!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let c=0,u=o.length;c<u;c++){const f=o[c].name||String(c);this.morphTargetInfluences.push(0),this.morphTargetDictionary[f]=c}}}}getVertexPosition(e,i){const r=this.geometry,o=r.attributes.position,c=r.morphAttributes.position,u=r.morphTargetsRelative;i.fromBufferAttribute(o,e);const f=this.morphTargetInfluences;if(c&&f){Hu.set(0,0,0);for(let h=0,p=c.length;h<p;h++){const x=f[h],g=c[h];x!==0&&(sp.fromBufferAttribute(g,e),u?Hu.addScaledVector(sp,x):Hu.addScaledVector(sp.sub(i),x))}i.add(Hu)}return i}raycast(e,i){const r=this.geometry,o=this.material,c=this.matrixWorld;o!==void 0&&(r.boundingSphere===null&&r.computeBoundingSphere(),Uu.copy(r.boundingSphere),Uu.applyMatrix4(c),qr.copy(e.ray).recast(e.near),!(Uu.containsPoint(qr.origin)===!1&&(qr.intersectSphere(Uu,Dy)===null||qr.origin.distanceToSquared(Dy)>(e.far-e.near)**2))&&(Iy.copy(c).invert(),qr.copy(e.ray).applyMatrix4(Iy),!(r.boundingBox!==null&&qr.intersectsBox(r.boundingBox)===!1)&&this._computeIntersections(e,i,qr)))}_computeIntersections(e,i,r){let o;const c=this.geometry,u=this.material,f=c.index,h=c.attributes.position,p=c.attributes.uv,x=c.attributes.uv1,g=c.attributes.normal,v=c.groups,y=c.drawRange;if(f!==null)if(Array.isArray(u))for(let M=0,T=v.length;M<T;M++){const E=v[M],b=u[E.materialIndex],R=Math.max(E.start,y.start),C=Math.min(f.count,Math.min(E.start+E.count,y.start+y.count));for(let I=R,U=C;I<U;I+=3){const B=f.getX(I),D=f.getX(I+1),A=f.getX(I+2);o=Vu(this,b,e,r,p,x,g,B,D,A),o&&(o.faceIndex=Math.floor(I/3),o.face.materialIndex=E.materialIndex,i.push(o))}}else{const M=Math.max(0,y.start),T=Math.min(f.count,y.start+y.count);for(let E=M,b=T;E<b;E+=3){const R=f.getX(E),C=f.getX(E+1),I=f.getX(E+2);o=Vu(this,u,e,r,p,x,g,R,C,I),o&&(o.faceIndex=Math.floor(E/3),i.push(o))}}else if(h!==void 0)if(Array.isArray(u))for(let M=0,T=v.length;M<T;M++){const E=v[M],b=u[E.materialIndex],R=Math.max(E.start,y.start),C=Math.min(h.count,Math.min(E.start+E.count,y.start+y.count));for(let I=R,U=C;I<U;I+=3){const B=I,D=I+1,A=I+2;o=Vu(this,b,e,r,p,x,g,B,D,A),o&&(o.faceIndex=Math.floor(I/3),o.face.materialIndex=E.materialIndex,i.push(o))}}else{const M=Math.max(0,y.start),T=Math.min(h.count,y.start+y.count);for(let E=M,b=T;E<b;E+=3){const R=E,C=E+1,I=E+2;o=Vu(this,u,e,r,p,x,g,R,C,I),o&&(o.faceIndex=Math.floor(E/3),i.push(o))}}}}function BT(a,e,i,r,o,c,u,f){let h;if(e.side===ni?h=r.intersectTriangle(u,c,o,!0,f):h=r.intersectTriangle(o,c,u,e.side===wr,f),h===null)return null;Fu.copy(f),Fu.applyMatrix4(a.matrixWorld);const p=i.ray.origin.distanceTo(Fu);return p<i.near||p>i.far?null:{distance:p,point:Fu.clone(),object:a}}function Vu(a,e,i,r,o,c,u,f,h,p){a.getVertexPosition(f,ku),a.getVertexPosition(h,zu),a.getVertexPosition(p,_u);const x=BT(a,e,i,r,ku,zu,_u,Ny);if(x){const g=new he;Fi.getBarycoord(Ny,ku,zu,_u,g),o&&(x.uv=Fi.getInterpolatedAttribute(o,f,h,p,g,new kt)),c&&(x.uv1=Fi.getInterpolatedAttribute(c,f,h,p,g,new kt)),u&&(x.normal=Fi.getInterpolatedAttribute(u,f,h,p,g,new he),x.normal.dot(r.direction)>0&&x.normal.multiplyScalar(-1));const v={a:f,b:h,c:p,normal:new he,materialIndex:0};Fi.getNormal(ku,zu,_u,v.normal),x.face=v,x.barycoord=g}return x}class VS extends _n{constructor(e=null,i=1,r=1,o,c,u,f,h,p=On,x=On,g,v){super(null,u,f,h,p,x,o,c,g,v),this.isDataTexture=!0,this.image={data:e,width:i,height:r},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const op=new he,UT=new he,kT=new Rt;class ns{constructor(e=new he(1,0,0),i=0){this.isPlane=!0,this.normal=e,this.constant=i}set(e,i){return this.normal.copy(e),this.constant=i,this}setComponents(e,i,r,o){return this.normal.set(e,i,r),this.constant=o,this}setFromNormalAndCoplanarPoint(e,i){return this.normal.copy(e),this.constant=-i.dot(this.normal),this}setFromCoplanarPoints(e,i,r){const o=op.subVectors(r,i).cross(UT.subVectors(e,i)).normalize();return this.setFromNormalAndCoplanarPoint(o,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,i){return i.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,i){const r=e.delta(op),o=this.normal.dot(r);if(o===0)return this.distanceToPoint(e.start)===0?i.copy(e.start):null;const c=-(e.start.dot(this.normal)+this.constant)/o;return c<0||c>1?null:i.copy(e.start).addScaledVector(r,c)}intersectsLine(e){const i=this.distanceToPoint(e.start),r=this.distanceToPoint(e.end);return i<0&&r>0||r<0&&i>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,i){const r=i||kT.getNormalMatrix(e),o=this.coplanarPoint(op).applyMatrix4(e),c=this.normal.applyMatrix3(r).normalize();return this.constant=-o.dot(c),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const Kr=new _m,zT=new kt(.5,.5),Gu=new he;class GS{constructor(e=new ns,i=new ns,r=new ns,o=new ns,c=new ns,u=new ns){this.planes=[e,i,r,o,c,u]}set(e,i,r,o,c,u){const f=this.planes;return f[0].copy(e),f[1].copy(i),f[2].copy(r),f[3].copy(o),f[4].copy(c),f[5].copy(u),this}copy(e){const i=this.planes;for(let r=0;r<6;r++)i[r].copy(e.planes[r]);return this}setFromProjectionMatrix(e,i=ta,r=!1){const o=this.planes,c=e.elements,u=c[0],f=c[1],h=c[2],p=c[3],x=c[4],g=c[5],v=c[6],y=c[7],M=c[8],T=c[9],E=c[10],b=c[11],R=c[12],C=c[13],I=c[14],U=c[15];if(o[0].setComponents(p-u,y-x,b-M,U-R).normalize(),o[1].setComponents(p+u,y+x,b+M,U+R).normalize(),o[2].setComponents(p+f,y+g,b+T,U+C).normalize(),o[3].setComponents(p-f,y-g,b-T,U-C).normalize(),r)o[4].setComponents(h,v,E,I).normalize(),o[5].setComponents(p-h,y-v,b-E,U-I).normalize();else if(o[4].setComponents(p-h,y-v,b-E,U-I).normalize(),i===ta)o[5].setComponents(p+h,y+v,b+E,U+I).normalize();else if(i===ff)o[5].setComponents(h,v,E,I).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+i);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),Kr.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const i=e.geometry;i.boundingSphere===null&&i.computeBoundingSphere(),Kr.copy(i.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(Kr)}intersectsSprite(e){Kr.center.set(0,0,0);const i=zT.distanceTo(e.center);return Kr.radius=.7071067811865476+i,Kr.applyMatrix4(e.matrixWorld),this.intersectsSphere(Kr)}intersectsSphere(e){const i=this.planes,r=e.center,o=-e.radius;for(let c=0;c<6;c++)if(i[c].distanceToPoint(r)<o)return!1;return!0}intersectsBox(e){const i=this.planes;for(let r=0;r<6;r++){const o=i[r];if(Gu.x=o.normal.x>0?e.max.x:e.min.x,Gu.y=o.normal.y>0?e.max.y:e.min.y,Gu.z=o.normal.z>0?e.max.z:e.min.z,o.distanceToPoint(Gu)<0)return!1}return!0}containsPoint(e){const i=this.planes;for(let r=0;r<6;r++)if(i[r].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}class jS extends _n{constructor(e=[],i=ms,r,o,c,u,f,h,p,x){super(e,i,r,o,c,u,f,h,p,x),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class ac extends _n{constructor(e,i,r=ra,o,c,u,f=On,h=On,p,x=Ha,g=1){if(x!==Ha&&x!==ls)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const v={width:e,height:i,depth:g};super(v,o,c,u,f,h,x,r,p),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new zm(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const i=super.toJSON(e);return this.compareFunction!==null&&(i.compareFunction=this.compareFunction),i}}class _T extends ac{constructor(e,i=ra,r=ms,o,c,u=On,f=On,h,p=Ha){const x={width:e,height:e,depth:1},g=[x,x,x,x,x,x];super(e,e,i,r,o,c,u,f,h,p),this.image=g,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(e){this.image=e}}class YS extends _n{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}}class oc extends Va{constructor(e=1,i=1,r=1,o=1,c=1,u=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:i,depth:r,widthSegments:o,heightSegments:c,depthSegments:u};const f=this;o=Math.floor(o),c=Math.floor(c),u=Math.floor(u);const h=[],p=[],x=[],g=[];let v=0,y=0;M("z","y","x",-1,-1,r,i,e,u,c,0),M("z","y","x",1,-1,r,i,-e,u,c,1),M("x","z","y",1,1,e,r,i,o,u,2),M("x","z","y",1,-1,e,r,-i,o,u,3),M("x","y","z",1,-1,e,i,r,o,c,4),M("x","y","z",-1,-1,e,i,-r,o,c,5),this.setIndex(h),this.setAttribute("position",new za(p,3)),this.setAttribute("normal",new za(x,3)),this.setAttribute("uv",new za(g,2));function M(T,E,b,R,C,I,U,B,D,A,L){const X=I/D,k=U/A,G=I/2,Y=U/2,ee=B/2,Z=D+1,_=A+1;let F=0,se=0;const fe=new he;for(let ae=0;ae<_;ae++){const H=ae*k-Y;for(let Q=0;Q<Z;Q++){const Se=Q*X-G;fe[T]=Se*R,fe[E]=H*C,fe[b]=ee,p.push(fe.x,fe.y,fe.z),fe[T]=0,fe[E]=0,fe[b]=B>0?1:-1,x.push(fe.x,fe.y,fe.z),g.push(Q/D),g.push(1-ae/A),F+=1}}for(let ae=0;ae<A;ae++)for(let H=0;H<D;H++){const Q=v+H+Z*ae,Se=v+H+Z*(ae+1),ye=v+(H+1)+Z*(ae+1),Ce=v+(H+1)+Z*ae;h.push(Q,Se,Ce),h.push(Se,ye,Ce),se+=6}f.addGroup(y,se,L),y+=se,v+=F}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new oc(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}class lc extends Va{constructor(e=1,i=1,r=1,o=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:i,widthSegments:r,heightSegments:o};const c=e/2,u=i/2,f=Math.floor(r),h=Math.floor(o),p=f+1,x=h+1,g=e/f,v=i/h,y=[],M=[],T=[],E=[];for(let b=0;b<x;b++){const R=b*v-u;for(let C=0;C<p;C++){const I=C*g-c;M.push(I,-R,0),T.push(0,0,1),E.push(C/f),E.push(1-b/h)}}for(let b=0;b<h;b++)for(let R=0;R<f;R++){const C=R+p*b,I=R+p*(b+1),U=R+1+p*(b+1),B=R+1+p*b;y.push(C,I,B),y.push(I,U,B)}this.setIndex(y),this.setAttribute("position",new za(M,3)),this.setAttribute("normal",new za(T,3)),this.setAttribute("uv",new za(E,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new lc(e.width,e.height,e.widthSegments,e.heightSegments)}}function Io(a){const e={};for(const i in a){e[i]={};for(const r in a[i]){const o=a[i][r];o&&(o.isColor||o.isMatrix3||o.isMatrix4||o.isVector2||o.isVector3||o.isVector4||o.isTexture||o.isQuaternion)?o.isRenderTargetTexture?(bt("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[i][r]=null):e[i][r]=o.clone():Array.isArray(o)?e[i][r]=o.slice():e[i][r]=o}}return e}function Xn(a){const e={};for(let i=0;i<a.length;i++){const r=Io(a[i]);for(const o in r)e[o]=r[o]}return e}function HT(a){const e=[];for(let i=0;i<a.length;i++)e.push(a[i].clone());return e}function XS(a){const e=a.getRenderTarget();return e===null?a.outputColorSpace:e.isXRRenderTarget===!0?e.texture.colorSpace:zt.workingColorSpace}const FT={clone:Io,merge:Xn};var VT=`void main() { 10 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 11}`,GT=`void main() { 12 gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 ); 13}`;class ji extends gf{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=VT,this.fragmentShader=GT,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Io(e.uniforms),this.uniformsGroups=HT(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this.defaultAttributeValues=Object.assign({},e.defaultAttributeValues),this.index0AttributeName=e.index0AttributeName,this.uniformsNeedUpdate=e.uniformsNeedUpdate,this}toJSON(e){const i=super.toJSON(e);i.glslVersion=this.glslVersion,i.uniforms={};for(const o in this.uniforms){const u=this.uniforms[o].value;u&&u.isTexture?i.uniforms[o]={type:"t",value:u.toJSON(e).uuid}:u&&u.isColor?i.uniforms[o]={type:"c",value:u.getHex()}:u&&u.isVector2?i.uniforms[o]={type:"v2",value:u.toArray()}:u&&u.isVector3?i.uniforms[o]={type:"v3",value:u.toArray()}:u&&u.isVector4?i.uniforms[o]={type:"v4",value:u.toArray()}:u&&u.isMatrix3?i.uniforms[o]={type:"m3",value:u.toArray()}:u&&u.isMatrix4?i.uniforms[o]={type:"m4",value:u.toArray()}:i.uniforms[o]={value:u}}Object.keys(this.defines).length>0&&(i.defines=this.defines),i.vertexShader=this.vertexShader,i.fragmentShader=this.fragmentShader,i.lights=this.lights,i.clipping=this.clipping;const r={};for(const o in this.extensions)this.extensions[o]===!0&&(r[o]=!0);return Object.keys(r).length>0&&(i.extensions=r),i}}class jT extends ji{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class YT extends gf{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=nT,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class XT extends gf{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const lp={enabled:!1,files:{},add:function(a,e){this.enabled!==!1&&(Ly(a)||(this.files[a]=e))}
13,get:function(a){if(this.enabled!==!1&&!Ly(a))return this.files[a]},remove:function(a){delete this.files[a]},clear:function(){this.files={}}};function Ly(a){try{const e=a.slice(a.indexOf(":")+1);return new URL(e).protocol==="blob:"}catch{return!1}}class ZT{constructor(e,i,r){const o=this;let c=!1,u=0,f=0,h;const p=[];this.onStart=void 0,this.onLoad=e,this.onProgress=i,this.onError=r,this._abortController=null,this.itemStart=function(x){f++,c===!1&&o.onStart!==void 0&&o.onStart(x,u,f),c=!0},this.itemEnd=function(x){u++,o.onProgress!==void 0&&o.onProgress(x,u,f),u===f&&(c=!1,o.onLoad!==void 0&&o.onLoad())},this.itemError=function(x){o.onError!==void 0&&o.onError(x)},this.resolveURL=function(x){return h?h(x):x},this.setURLModifier=function(x){return h=x,this},this.addHandler=function(x,g){return p.push(x,g),this},this.removeHandler=function(x){const g=p.indexOf(x);return g!==-1&&p.splice(g,2),this},this.getHandler=function(x){for(let g=0,v=p.length;g<v;g+=2){const y=p[g],M=p[g+1];if(y.global&&(y.lastIndex=0),y.test(x))return M}return null},this.abort=function(){return this.abortController.abort(),this._abortController=null,this}}get abortController(){return this._abortController||(this._abortController=new AbortController),this._abortController}}const WT=new ZT;class Hm{constructor(e){this.manager=e!==void 0?e:WT,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}load(){}loadAsync(e,i){const r=this;return new Promise(function(o,c){r.load(e,o,i,c)})}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}abort(){return this}}Hm.DEFAULT_MATERIAL_NAME="__DEFAULT";const uo=new WeakMap;class QT extends Hm{constructor(e){super(e)}load(e,i,r,o){this.path!==void 0&&(e=this.path+e),e=this.manager.resolveURL(e);const c=this,u=lp.get(`image:${e}`);if(u!==void 0){if(u.complete===!0)c.manager.itemStart(e),setTimeout(function(){i&&i(u),c.manager.itemEnd(e)},0);else{let g=uo.get(u);g===void 0&&(g=[],uo.set(u,g)),g.push({onLoad:i,onError:o})}return u}const f=ic("img");function h(){x(),i&&i(this);const g=uo.get(this)||[];for(let v=0;v<g.length;v++){const y=g[v];y.onLoad&&y.onLoad(this)}uo.delete(this),c.manager.itemEnd(e)}function p(g){x(),o&&o(g),lp.remove(`image:${e}`);const v=uo.get(this)||[];for(let y=0;y<v.length;y++){const M=v[y];M.onError&&M.onError(g)}uo.delete(this),c.manager.itemError(e),c.manager.itemEnd(e)}function x(){f.removeEventListener("load",h,!1),f.removeEventListener("error",p,!1)}return f.addEventListener("load",h,!1),f.addEventListener("error",p,!1),e.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(f.crossOrigin=this.crossOrigin),lp.add(`image:${e}`,f),c.manager.itemStart(e),f.src=e,f}}class qT extends Hm{constructor(e){super(e)}load(e,i,r,o){const c=new _n,u=new QT(this.manager);return u.setCrossOrigin(this.crossOrigin),u.setPath(this.path),u.load(e,function(f){c.image=f,c.needsUpdate=!0,i!==void 0&&i(c)},r,o),c}}const ju=new he,Yu=new Lo,Ki=new he;class ZS extends hi{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Sn,this.projectionMatrix=new Sn,this.projectionMatrixInverse=new Sn,this.coordinateSystem=ta,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(e,i){return super.copy(e,i),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorld.decompose(ju,Yu,Ki),Ki.x===1&&Ki.y===1&&Ki.z===1?this.matrixWorldInverse.copy(this.matrixWorld).invert():this.matrixWorldInverse.compose(ju,Yu,Ki.set(1,1,1)).invert()}updateWorldMatrix(e,i){super.updateWorldMatrix(e,i),this.matrixWorld.decompose(ju,Yu,Ki),Ki.x===1&&Ki.y===1&&Ki.z===1?this.matrixWorldInverse.copy(this.matrixWorld).invert():this.matrixWorldInverse.compose(ju,Yu,Ki.set(1,1,1)).invert()}clone(){return new this.constructor().copy(this)}}const Er=new he,Py=new kt,Oy=new kt;class Hi extends ZS{constructor(e=50,i=1,r=.1,o=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=r,this.far=o,this.focus=10,this.aspect=i,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,i){return super.copy(e,i),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const i=.5*this.getFilmHeight()/e;this.fov=xm*2*Math.atan(i),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(zh*.5*this.fov);return .5*this.getFilmHeight()/e}
vendor: 15,371 bytes, lines 13-126
13getEffectiveFOV(){return xm*2*Math.atan(Math.tan(zh*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,i,r){Er.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Er.x,Er.y).multiplyScalar(-e/Er.z),Er.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),r.set(Er.x,Er.y).multiplyScalar(-e/Er.z)}getViewSize(e,i){return this.getViewBounds(e,Py,Oy),i.subVectors(Oy,Py)}setViewOffset(e,i,r,o,c,u){this.aspect=e/i,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=i,this.view.offsetX=r,this.view.offsetY=o,this.view.width=c,this.view.height=u,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let i=e*Math.tan(zh*.5*this.fov)/this.zoom,r=2*i,o=this.aspect*r,c=-.5*o;const u=this.view;if(this.view!==null&&this.view.enabled){const h=u.fullWidth,p=u.fullHeight;c+=u.offsetX*o/h,i-=u.offsetY*r/p,o*=u.width/h,r*=u.height/p}const f=this.filmOffset;f!==0&&(c+=e*f/this.getFilmWidth()),this.projectionMatrix.makePerspective(c,c+o,i,i-r,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const i=super.toJSON(e);return i.object.fov=this.fov,i.object.zoom=this.zoom,i.object.near=this.near,i.object.far=this.far,i.object.focus=this.focus,i.object.aspect=this.aspect,this.view!==null&&(i.object.view=Object.assign({},this.view)),i.object.filmGauge=this.filmGauge,i.object.filmOffset=this.filmOffset,i}}class Fm extends ZS{constructor(e=-1,i=1,r=1,o=-1,c=.1,u=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=i,this.top=r,this.bottom=o,this.near=c,this.far=u,this.updateProjectionMatrix()}copy(e,i){return super.copy(e,i),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,i,r,o,c,u){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=i,this.view.offsetX=r,this.view.offsetY=o,this.view.width=c,this.view.height=u,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),i=(this.top-this.bottom)/(2*this.zoom),r=(this.right+this.left)/2,o=(this.top+this.bottom)/2;let c=r-e,u=r+e,f=o+i,h=o-i;if(this.view!==null&&this.view.enabled){const p=(this.right-this.left)/this.view.fullWidth/this.zoom,x=(this.top-this.bottom)/this.view.fullHeight/this.zoom;c+=p*this.view.offsetX,u=c+p*this.view.width,f-=x*this.view.offsetY,h=f-x*this.view.height}this.projectionMatrix.makeOrthographic(c,u,f,h,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const i=super.toJSON(e);return i.object.zoom=this.zoom,i.object.left=this.left,i.object.right=this.right,i.object.top=this.top,i.object.bottom=this.bottom,i.object.near=this.near,i.object.far=this.far,this.view!==null&&(i.object.view=Object.assign({},this.view)),i}}const fo=-90,ho=1;class KT extends hi{constructor(e,i,r){super(),this.type="CubeCamera",this.renderTarget=r,this.coordinateSystem=null,this.activeMipmapLevel=0;const o=new Hi(fo,ho,e,i);o.layers=this.layers,this.add(o);const c=new Hi(fo,ho,e,i);c.layers=this.layers,this.add(c);const u=new Hi(fo,ho,e,i);u.layers=this.layers,this.add(u);const f=new Hi(fo,ho,e,i);f.layers=this.layers,this.add(f);const h=new Hi(fo,ho,e,i);h.layers=this.layers,this.add(h);const p=new Hi(fo,ho,e,i);p.layers=this.layers,this.add(p)}updateCoordinateSystem(){const e=this.coordinateSystem,i=this.children.concat(),[r,o,c,u,f,h]=i;for(const p of i)this.remove(p);if(e===ta)r.up.set(0,1,0),r.lookAt(1,0,0),o.up.set(0,1,0),o.lookAt(-1,0,0),c.up.set(0,0,-1),c.lookAt(0,1,0),u.up.set(0,0,1),u.lookAt(0,-1,0),f.up.set(0,1,0),f.lookAt(0,0,1),h.up.set(0,1,0),h.lookAt(0,0,-1);else if(e===ff)r.up.set(0,-1,0),r.lookAt(-1,0,0),o.up.set(0,-1,0),o.lookAt(1,0,0),c.up.set(0,0,1),c.lookAt(0,1,0),u.up.set(0,0,-1),u.lookAt(0,-1,0),f.up.set(0,-1,0),f.lookAt(0,0,1),h.up.set(0,-1,0),h.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const p of i)this.add(p),p.updateMatrixWorld()}update(e,i){this.parent===null&&this.updateMatrixWorld();const{renderTarget:r,activeMipmapLevel:o}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[c,u,f,h,p,x]=this.children,g=e.getRenderTarget(),v=e.getActiveCubeFace(),y=e.getActiveMipmapLevel(),M=e.xr.enabled;e.xr.enabled=!1;const T=r.texture.generateMipmaps;r.texture.generateMipmaps=!1;let E=!1;e.isWebGLRenderer===!0?E=e.state.buffers.depth.getReversed():E=e.reversedDepthBuffer,e.setRenderTarget(r,0,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,c),e.setRenderTarget(r,1,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,u),e.setRenderTarget(r,2,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,f),e.setRenderTarget(r,3,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,h),e.setRenderTarget(r,4,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,p),r.texture.generateMipmaps=T,e.setRenderTarget(r,5,o),E&&e.autoClear===!1&&e.clearDepth(),e.render(i,x),e.setRenderTarget(g,v,y),e.xr.enabled=M,r.texture.needsPMREMUpdate=!0}}class JT extends Hi{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}}class $T{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1,bt("THREE.Clock: This module has been deprecated. Please use THREE.Timer instead.")}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const i=performance.now();e=(i-this.oldTime)/1e3,this.oldTime=i,this.elapsedTime+=e}return e}}function By(a,e,i,r){const o=e2(r);switch(i){case LS:return a*e;case OS:return a*e/o.components*o.byteLength;case Pm:return a*e/o.components*o.byteLength;case Ro:return a*e*2/o.components*o.byteLength;case Om:return a*e*2/o.components*o.byteLength;case PS:return a*e*3/o.components*o.byteLength;case Ii:return a*e*4/o.components*o.byteLength;case Bm:return a*e*4/o.components*o.byteLength;case Ju:case $u:return Math.floor((a+3)/4)*Math.floor((e+3)/4)*8;case ef:case tf:return Math.floor((a+3)/4)*Math.floor((e+3)/4)*16;case Fp:case Gp:return Math.max(a,16)*Math.max(e,8)/4;case Hp:case Vp:return Math.max(a,8)*Math.max(e,8)/2;case jp:case Yp:case Zp:case Wp:return Math.floor((a+3)/4)*Math.floor((e+3)/4)*8;case Xp:case Qp:case qp:return Math.floor((a+3)/4)*Math.floor((e+3)/4)*16;case Kp:return Math.floor((a+3)/4)*Math.floor((e+3)/4)*16;case Jp:return Math.floor((a+4)/5)*Math.floor((e+3)/4)*16;case $p:return Math.floor((a+4)/5)*Math.floor((e+4)/5)*16;case em:return Math.floor((a+5)/6)*Math.floor((e+4)/5)*16;case tm:return Math.floor((a+5)/6)*Math.floor((e+5)/6)*16;case nm:return Math.floor((a+7)/8)*Math.floor((e+4)/5)*16;case im:return Math.floor((a+7)/8)*Math.floor((e+5)/6)*16;case am:return Math.floor((a+7)/8)*Math.floor((e+7)/8)*16;case rm:return Math.floor((a+9)/10)*Math.floor((e+4)/5)*16;case sm:return Math.floor((a+9)/10)*Math.floor((e+5)/6)*16;case om:return Math.floor((a+9)/10)*Math.floor((e+7)/8)*16;case lm:return Math.floor((a+9)/10)*Math.floor((e+9)/10)*16;case cm:return Math.floor((a+11)/12)*Math.floor((e+9)/10)*16;case um:return Math.floor((a+11)/12)*Math.floor((e+11)/12)*16;case fm:case dm:case hm:return Math.ceil(a/4)*Math.ceil(e/4)*16;case pm:case mm:return Math.ceil(a/4)*Math.ceil(e/4)*8;case gm:case vm:return Math.ceil(a/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${i} format.`)}function e2(a){switch(a){case Ri:case CS:return{byteLength:1,components:1};case tc:case IS:case _a:return{byteLength:2,components:1};case Nm:case Lm:return{byteLength:2,components:4};case ra:case Dm:case ea:return{byteLength:4,components:1};case DS:case NS:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${a}.`)}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:Im}}));typeof window<"u"&&(window.__THREE__?bt("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=Im);function WS(){let a=null,e=!1,i=null,r=null;function o(c,u){i(c,u),r=a.requestAnimationFrame(o)}return{start:function(){e!==!0&&i!==null&&(r=a.requestAnimationFrame(o),e=!0)},stop:function(){a.cancelAnimationFrame(r),e=!1},setAnimationLoop:function(c){i=c},setContext:function(c){a=c}}}function t2(a){const e=new WeakMap;function i(f,h){const p=f.array,x=f.usage,g=p.byteLength,v=a.createBuffer();a.bindBuffer(h,v),a.bufferData(h,p,x),f.onUploadCallback();let y;if(p instanceof Float32Array)y=a.FLOAT;else if(typeof Float16Array<"u"&&p instanceof Float16Array)y=a.HALF_FLOAT;else if(p instanceof Uint16Array)f.isFloat16BufferAttribute?y=a.HALF_FLOAT:y=a.UNSIGNED_SHORT;else if(p instanceof Int16Array)y=a.SHORT;else if(p instanceof Uint32Array)y=a.UNSIGNED_INT;else if(p instanceof Int32Array)y=a.INT;else if(p instanceof Int8Array)y=a.BYTE;else if(p instanceof Uint8Array)y=a.UNSIGNED_BYTE;else if(p instanceof Uint8ClampedArray)y=a.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+p);return{buffer:v,type:y,bytesPerElement:p.BYTES_PER_ELEMENT,version:f.version,size:g}}function r(f,h,p){const x=h.array,g=h.updateRanges;if(a.bindBuffer(p,f),g.length===0)a.bufferSubData(p,0,x);else{g.sort((y,M)=>y.start-M.start);let v=0;for(let y=1;y<g.length;y++){const M=g[v],T=g[y];T.start<=M.start+M.count+1?M.count=Math.max(M.count,T.start+T.count-M.start):(++v,g[v]=T)}g.length=v+1;for(let y=0,M=g.length;y<M;y++){const T=g[y];a.bufferSubData(p,T.start*x.BYTES_PER_ELEMENT,x,T.start,T.count)}h.clearUpdateRanges()}h.onUploadCallback()}function o(f){return f.isInterleavedBufferAttribute&&(f=f.data),e.get(f)}function c(f){f.isInterleavedBufferAttribute&&(f=f.data);const h=e.get(f);h&&(a.deleteBuffer(h.buffer),e.delete(f))}function u(f,h){if(f.isInterleavedBufferAttribute&&(f=f.data),f.isGLBufferAttribute){const x=e.get(f);(!x||x.version<f.version)&&e.set(f,{buffer:f.buffer,type:f.type,bytesPerElement:f.elementSize,version:f.version});return}const p=e.get(f);if(p===void 0)e.set(f,i(f,h));else if(p.version<f.version){if(p.size!==f.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");r(p.buffer,f,h),p.version=f.version}}return{get:o,remove:c,update:u}}var n2=`#ifdef USE_ALPHAHASH 14 if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard; 15#endif`,i2=`#ifdef USE_ALPHAHASH 16 const float ALPHA_HASH_SCALE = 0.05; 17 float hash2D( vec2 value ) { 18 return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) ); 19 } 20 float hash3D( vec3 value ) { 21 return hash2D( vec2( hash2D( value.xy ), value.z ) ); 22 } 23 float getAlphaHashThreshold( vec3 position ) { 24 float maxDeriv = max( 25 length( dFdx( position.xyz ) ), 26 length( dFdy( position.xyz ) ) 27 ); 28 float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv ); 29 vec2 pixScales = vec2( 30 exp2( floor( log2( pixScale ) ) ), 31 exp2( ceil( log2( pixScale ) ) ) 32 ); 33 vec2 alpha = vec2( 34 hash3D( floor( pixScales.x * position.xyz ) ), 35 hash3D( floor( pixScales.y * position.xyz ) ) 36 ); 37 float lerpFactor = fract( log2( pixScale ) ); 38 float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y; 39 float a = min( lerpFactor, 1.0 - lerpFactor ); 40 vec3 cases = vec3( 41 x * x / ( 2.0 * a * ( 1.0 - a ) ), 42 ( x - 0.5 * a ) / ( 1.0 - a ), 43 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) ) 44 ); 45 float threshold = ( x < ( 1.0 - a ) ) 46 ? ( ( x < a ) ? cases.x : cases.y ) 47 : cases.z; 48 return clamp( threshold , 1.0e-6, 1.0 ); 49 } 50#endif`,a2=`#ifdef USE_ALPHAMAP 51 diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g; 52#endif`,r2=`#ifdef USE_ALPHAMAP 53 uniform sampler2D alphaMap; 54#endif`,s2=`#ifdef USE_ALPHATEST 55 #ifdef ALPHA_TO_COVERAGE 56 diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a ); 57 if ( diffuseColor.a == 0.0 ) discard; 58 #else 59 if ( diffuseColor.a < alphaTest ) discard; 60 #endif 61#endif`,o2=`#ifdef USE_ALPHATEST 62 uniform float alphaTest; 63#endif`,l2=`#ifdef USE_AOMAP 64 float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0; 65 reflectedLight.indirectDiffuse *= ambientOcclusion; 66 #if defined( USE_CLEARCOAT ) 67 clearcoatSpecularIndirect *= ambientOcclusion; 68 #endif 69 #if defined( USE_SHEEN ) 70 sheenSpecularIndirect *= ambientOcclusion; 71 #endif 72 #if defined( USE_ENVMAP ) && defined( STANDARD ) 73 float dotNV = saturate( dot( geometryNormal, geometryViewDir ) ); 74 reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness ); 75 #endif 76#endif`,c2=`#ifdef USE_AOMAP 77 uniform sampler2D aoMap; 78 uniform float aoMapIntensity; 79#endif`,u2=`#ifdef USE_BATCHING 80 #if ! defined( GL_ANGLE_multi_draw ) 81 #define gl_DrawID _gl_DrawID 82 uniform int _gl_DrawID; 83 #endif 84 uniform highp sampler2D batchingTexture; 85 uniform highp usampler2D batchingIdTexture; 86 mat4 getBatchingMatrix( const in float i ) { 87 int size = textureSize( batchingTexture, 0 ).x; 88 int j = int( i ) * 4; 89 int x = j % size; 90 int y = j / size; 91 vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 ); 92 vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 ); 93 vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 ); 94 vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 ); 95 return mat4( v1, v2, v3, v4 ); 96 } 97 float getIndirectIndex( const in int i ) { 98 int size = textureSize( batchingIdTexture, 0 ).x; 99 int x = i % size; 100 int y = i / size; 101 return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r ); 102 } 103#endif 104#ifdef USE_BATCHING_COLOR 105 uniform sampler2D batchingColorTexture; 106 vec4 getBatchingColor( const in float i ) { 107 int size = textureSize( batchingColorTexture, 0 ).x; 108 int j = int( i ); 109 int x = j % size; 110 int y = j / size; 111 return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ); 112 } 113#endif`,f2=`#ifdef USE_BATCHING 114 mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) ); 115#endif`,d2=`vec3 transformed = vec3( position ); 116#ifdef USE_ALPHAHASH 117 vPosition = vec3( position ); 118#endif`,h2=`vec3 objectNormal = vec3( normal ); 119#ifdef USE_TANGENT 120 vec3 objectTangent = vec3( tangent.xyz ); 121#endif`,p2=`float G_BlinnPhong_Implicit( ) { 122 return 0.25; 123} 124float D_BlinnPhong( const in float shininess, const in float dotNH ) { 125 return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess ); 126}
127vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) { 128 vec3 halfDir = normalize( lightDir + viewDir ); 129 float dotNH = saturate( dot( normal, halfDir ) ); 130 float dotVH = saturate( dot( viewDir, halfDir ) ); 131 vec3 F = F_Schlick( specularColor, 1.0, dotVH ); 132 float G = G_BlinnPhong_Implicit( ); 133 float D = D_BlinnPhong( shininess, dotNH ); 134 return F * ( G * D ); 135} // validated`,m2=`#ifdef USE_IRIDESCENCE 136 const mat3 XYZ_TO_REC709 = mat3( 137 3.2404542, -0.9692660, 0.0556434, 138 -1.5371385, 1.8760108, -0.2040259, 139 -0.4985314, 0.0415560, 1.0572252 140 ); 141 vec3 Fresnel0ToIor( vec3 fresnel0 ) { 142 vec3 sqrtF0 = sqrt( fresnel0 ); 143 return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 ); 144 } 145 vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) { 146 return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) ); 147 } 148 float IorToFresnel0( float transmittedIor, float incidentIor ) { 149 return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor )); 150 } 151 vec3 evalSensitivity( float OPD, vec3 shift ) { 152 float phase = 2.0 * PI * OPD * 1.0e-9; 153 vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 ); 154 vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 ); 155 vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 ); 156 vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var ); 157 xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) ); 158 xyz /= 1.0685e-7; 159 vec3 rgb = XYZ_TO_REC709 * xyz; 160 return rgb; 161 } 162 vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) { 163 vec3 I; 164 float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) ); 165 float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) ); 166 float cosTheta2Sq = 1.0 - sinTheta2Sq; 167 if ( cosTheta2Sq < 0.0 ) { 168 return vec3( 1.0 ); 169 } 170 float cosTheta2 = sqrt( cosTheta2Sq ); 171 float R0 = IorToFresnel0( iridescenceIOR, outsideIOR ); 172 float R12 = F_Schlick( R0, 1.0, cosTheta1 );
173 float T121 = 1.0 - R12; 174 float phi12 = 0.0; 175 if ( iridescenceIOR < outsideIOR ) phi12 = PI; 176 float phi21 = PI - phi12; 177 vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR ); 178 vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 ); 179 vec3 phi23 = vec3( 0.0 ); 180 if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI; 181 if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI; 182 if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI; 183 float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2; 184 vec3 phi = vec3( phi21 ) + phi23; 185 vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 ); 186 vec3 r123 = sqrt( R123 ); 187 vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 ); 188 vec3 C0 = R12 + Rs; 189 I = C0; 190 vec3 Cm = Rs - T121; 191 for ( int m = 1; m <= 2; ++ m ) { 192 Cm *= r123; 193 vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi ); 194 I += Cm * Sm; 195 } 196 return max( I, vec3( 0.0 ) ); 197 } 198#endif`,g2=`#ifdef USE_BUMPMAP 199 uniform sampler2D bumpMap; 200 uniform float bumpScale; 201 vec2 dHdxy_fwd() { 202 vec2 dSTdx = dFdx( vBumpMapUv ); 203 vec2 dSTdy = dFdy( vBumpMapUv ); 204 float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x; 205 float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll; 206 float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll; 207 return vec2( dBx, dBy ); 208 } 209 vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) { 210 vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) ); 211 vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) ); 212 vec3 vN = surf_norm; 213 vec3 R1 = cross( vSigmaY, vN ); 214 vec3 R2 = cross( vN, vSigmaX ); 215 float fDet = dot( vSigmaX, R1 ) * faceDirection; 216 vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 ); 217 return normalize( abs( fDet ) * surf_norm - vGrad ); 218 } 219#endif`,v2=`#if NUM_CLIPPING_PLANES > 0 220 vec4 plane; 221 #ifdef ALPHA_TO_COVERAGE 222 float distanceToPlane, distanceGradient; 223 float clipOpacity = 1.0; 224 #pragma unroll_loop_start 225 for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { 226 plane = clippingPlanes[ i ]; 227 distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; 228 distanceGradient = fwidth( distanceToPlane ) / 2.0; 229 clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); 230 if ( clipOpacity == 0.0 ) discard; 231 } 232 #pragma unroll_loop_end 233 #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES 234 float unionClipOpacity = 1.0; 235 #pragma unroll_loop_start 236 for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { 237 plane = clippingPlanes[ i ]; 238 distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w; 239 distanceGradient = fwidth( distanceToPlane ) / 2.0; 240 unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane ); 241 } 242 #pragma unroll_loop_end 243 clipOpacity *= 1.0 - unionClipOpacity; 244 #endif 245 diffuseColor.a *= clipOpacity; 246 if ( diffuseColor.a == 0.0 ) discard; 247 #else 248 #pragma unroll_loop_start 249 for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) { 250 plane = clippingPlanes[ i ]; 251 if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard; 252 } 253 #pragma unroll_loop_end 254 #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES 255 bool clipped = true; 256 #pragma unroll_loop_start 257 for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) { 258 plane = clippingPlanes[ i ]; 259 clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped; 260 } 261 #pragma unroll_loop_end 262 if ( clipped ) discard; 263 #endif 264 #endif 265#endif`,x2=`#if NUM_CLIPPING_PLANES > 0 266 varying vec3 vClipPosition; 267 uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ]; 268#endif`,y2=`#if NUM_CLIPPING_PLANES > 0 269 varying vec3 vClipPosition; 270#endif`,b2=`#if NUM_CLIPPING_PLANES > 0 271 vClipPosition = - mvPosition.xyz; 272#endif`,S2=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) 273 diffuseColor *= vColor; 274#endif`,E2=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) 275 varying vec4 vColor; 276#endif`,M2=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) 277 varying vec4 vColor; 278#endif`,A2=`#if defined( USE_COLOR ) || defined( USE_COLOR_ALPHA ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR ) 279 vColor = vec4( 1.0 ); 280#endif 281#ifdef USE_COLOR_ALPHA 282 vColor *= color; 283#elif defined( USE_COLOR ) 284 vColor.rgb *= color; 285#endif 286#ifdef USE_INSTANCING_COLOR 287 vColor.rgb *= instanceColor.rgb; 288#endif 289#ifdef USE_BATCHING_COLOR 290 vColor *= getBatchingColor( getIndirectIndex( gl_DrawID ) ); 291#endif`,w2=`#define PI 3.141592653589793 292#define PI2 6.283185307179586 293#define PI_HALF 1.5707963267948966 294#define RECIPROCAL_PI 0.3183098861837907 295#define RECIPROCAL_PI2 0.15915494309189535 296#define EPSILON 1e-6 297#ifndef saturate 298#define saturate( a ) clamp( a, 0.0, 1.0 ) 299#endif 300#define whiteComplement( a ) ( 1.0 - saturate( a ) ) 301float pow2( const in float x ) { return x*x; } 302vec3 pow2( const in vec3 x ) { return x*x; } 303float pow3( const in float x ) { return x*x*x; } 304float pow4( const in float x ) { float x2 = x*x; return x2*x2; } 305float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); } 306float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); } 307highp float rand( const in vec2 uv ) { 308 const highp float a = 12.9898, b = 78.233, c = 43758.5453; 309 highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI ); 310 return fract( sin( sn ) * c ); 311} 312#ifdef HIGH_PRECISION 313 float precisionSafeLength( vec3 v ) { return length( v ); } 314#else 315 float precisionSafeLength( vec3 v ) { 316 float maxComponent = max3( abs( v ) ); 317 return length( v / maxComponent ) * maxComponent; 318 } 319#endif 320struct IncidentLight { 321 vec3 color; 322 vec3 direction; 323 bool visible; 324}; 325struct ReflectedLight { 326 vec3 directDiffuse; 327 vec3 directSpecular; 328 vec3 indirectDiffuse; 329 vec3 indirectSpecular; 330}; 331#ifdef USE_ALPHAHASH 332 varying vec3 vPosition; 333#endif 334vec3 transformDirection( in vec3 dir, in mat4 matrix ) { 335 return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); 336} 337vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) { 338 return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz ); 339} 340bool isPerspectiveMatrix( mat4 m ) { 341 return m[ 2 ][ 3 ] == - 1.0; 342} 343vec2 equirectUv( in vec3 dir ) { 344 float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5; 345 float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5; 346 return vec2( u, v ); 347}
348vec3 BRDF_Lambert( const in vec3 diffuseColor ) { 349 return RECIPROCAL_PI * diffuseColor; 350} 351vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) { 352 float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); 353 return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); 354} 355float F_Schlick( const in float f0, const in float f90, const in float dotVH ) { 356 float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH ); 357 return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel ); 358} // validated`,T2=`#ifdef ENVMAP_TYPE_CUBE_UV 359 #define cubeUV_minMipLevel 4.0 360 #define cubeUV_minTileSize 16.0 361 float getFace( vec3 direction ) { 362 vec3 absDirection = abs( direction ); 363 float face = - 1.0; 364 if ( absDirection.x > absDirection.z ) { 365 if ( absDirection.x > absDirection.y ) 366 face = direction.x > 0.0 ? 0.0 : 3.0; 367 else 368 face = direction.y > 0.0 ? 1.0 : 4.0; 369 } else { 370 if ( absDirection.z > absDirection.y ) 371 face = direction.z > 0.0 ? 2.0 : 5.0; 372 else 373 face = direction.y > 0.0 ? 1.0 : 4.0; 374 } 375 return face; 376 } 377 vec2 getUV( vec3 direction, float face ) { 378 vec2 uv; 379 if ( face == 0.0 ) { 380 uv = vec2( direction.z, direction.y ) / abs( direction.x ); 381 } else if ( face == 1.0 ) { 382 uv = vec2( - direction.x, - direction.z ) / abs( direction.y ); 383 } else if ( face == 2.0 ) { 384 uv = vec2( - direction.x, direction.y ) / abs( direction.z ); 385 } else if ( face == 3.0 ) { 386 uv = vec2( - direction.z, direction.y ) / abs( direction.x ); 387 } else if ( face == 4.0 ) { 388 uv = vec2( - direction.x, direction.z ) / abs( direction.y ); 389 } else { 390 uv = vec2( direction.x, direction.y ) / abs( direction.z ); 391 } 392 return 0.5 * ( uv + 1.0 ); 393 } 394 vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) { 395 float face = getFace( direction ); 396 float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 ); 397 mipInt = max( mipInt, cubeUV_minMipLevel ); 398 float faceSize = exp2( mipInt ); 399 highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0; 400 if ( face > 2.0 ) { 401 uv.y += faceSize; 402 face -= 3.0; 403 } 404 uv.x += face * faceSize; 405 uv.x += filterInt * 3.0 * cubeUV_minTileSize; 406 uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize ); 407 uv.x *= CUBEUV_TEXEL_WIDTH; 408 uv.y *= CUBEUV_TEXEL_HEIGHT; 409 #ifdef texture2DGradEXT 410 return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb; 411 #else 412 return texture2D( envMap, uv ).rgb; 413 #endif 414 } 415 #define cubeUV_r0 1.0 416 #define cubeUV_m0 - 2.0 417 #define cubeUV_r1 0.8 418 #define cubeUV_m1 - 1.0 419 #define cubeUV_r4 0.4 420 #define cubeUV_m4 2.0 421 #define cubeUV_r5 0.305 422 #define cubeUV_m5 3.0 423 #define cubeUV_r6 0.21 424 #define cubeUV_m6 4.0 425 float roughnessToMip( float roughness ) { 426 float mip = 0.0; 427 if ( roughness >= cubeUV_r1 ) { 428 mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0; 429 } else if ( roughness >= cubeUV_r4 ) { 430 mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1; 431 } else if ( roughness >= cubeUV_r5 ) { 432 mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4; 433 } else if ( roughness >= cubeUV_r6 ) { 434 mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5; 435 } else { 436 mip = - 2.0 * log2( 1.16 * roughness ); } 437 return mip; 438 } 439 vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) { 440 float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP ); 441 float mipF = fract( mip ); 442 float mipInt = floor( mip ); 443 vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt ); 444 if ( mipF == 0.0 ) { 445 return vec4( color0, 1.0 ); 446 } else { 447 vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 ); 448 return vec4( mix( color0, color1, mipF ), 1.0 ); 449 } 450 } 451#endif`,R2=`vec3 transformedNormal = objectNormal; 452#ifdef USE_TANGENT 453 vec3 transformedTangent = objectTangent; 454#endif 455#ifdef USE_BATCHING 456 mat3 bm = mat3( batchingMatrix ); 457 transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) ); 458 transformedNormal = bm * transformedNormal; 459 #ifdef USE_TANGENT 460 transformedTangent = bm * transformedTangent; 461 #endif 462#endif 463#ifdef USE_INSTANCING 464 mat3 im = mat3( instanceMatrix ); 465 transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) ); 466 transformedNormal = im * transformedNormal; 467 #ifdef USE_TANGENT 468 transformedTangent = im * transformedTangent; 469 #endif 470#endif 471transformedNormal = normalMatrix * transformedNormal; 472#ifdef FLIP_SIDED 473 transformedNormal = - transformedNormal; 474#endif 475#ifdef USE_TANGENT 476 transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz; 477 #ifdef FLIP_SIDED 478 transformedTangent = - transformedTangent; 479 #endif 480#endif`,C2=`#ifdef USE_DISPLACEMENTMAP 481 uniform sampler2D displacementMap; 482 uniform float displacementScale; 483 uniform float displacementBias; 484#endif`,I2=`#ifdef USE_DISPLACEMENTMAP 485 transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + dis
485placementBias ); 486#endif`,D2=`#ifdef USE_EMISSIVEMAP 487 vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv ); 488 #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE 489 emissiveColor = sRGBTransferEOTF( emissiveColor ); 490 #endif 491 totalEmissiveRadiance *= emissiveColor.rgb; 492#endif`,N2=`#ifdef USE_EMISSIVEMAP 493 uniform sampler2D emissiveMap; 494#endif`,L2="gl_FragColor = linearToOutputTexel( gl_FragColor );",P2=`vec4 LinearTransferOETF( in vec4 value ) { 495 return value; 496} 497vec4 sRGBTransferEOTF( in vec4 value ) { 498 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.a ); 499} 500vec4 sRGBTransferOETF( in vec4 value ) { 501 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.a ); 502}`,O2=`#ifdef USE_ENVMAP 503 #ifdef ENV_WORLDPOS 504 vec3 cameraToFrag; 505 if ( isOrthographic ) { 506 cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); 507 } else { 508 cameraToFrag = normalize( vWorldPosition - cameraPosition ); 509 } 510 vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); 511 #ifdef ENVMAP_MODE_REFLECTION 512 vec3 reflectVec = reflect( cameraToFrag, worldNormal ); 513 #else 514 vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio ); 515 #endif 516 #else 517 vec3 reflectVec = vReflect; 518 #endif 519 #ifdef ENVMAP_TYPE_CUBE 520 vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) ); 521 #ifdef ENVMAP_BLENDING_MULTIPLY 522 outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity ); 523 #elif defined( ENVMAP_BLENDING_MIX ) 524 outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity ); 525 #elif defined( ENVMAP_BLENDING_ADD ) 526 outgoingLight += envColor.xyz * specularStrength * reflectivity; 527 #endif 528 #endif 529#endif`,B2=`#ifdef USE_ENVMAP 530 uniform float envMapIntensity; 531 uniform float flipEnvMap; 532 uniform mat3 envMapRotation; 533 #ifdef ENVMAP_TYPE_CUBE 534 uniform samplerCube envMap; 535 #else 536 uniform sampler2D envMap; 537 #endif 538#endif`,U2=`#ifdef USE_ENVMAP 539 uniform float reflectivity; 540 #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) 541 #define ENV_WORLDPOS 542 #endif 543 #ifdef ENV_WORLDPOS 544 varying vec3 vWorldPosition; 545 uniform float refractionRatio; 546 #else 547 varying vec3 vReflect; 548 #endif 549#endif`,k2=`#ifdef USE_ENVMAP 550 #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT ) 551 #define ENV_WORLDPOS 552 #endif 553 #ifdef ENV_WORLDPOS 554 555 varying vec3 vWorldPosition; 556 #else 557 varying vec3 vReflect; 558 uniform float refractionRatio; 559 #endif 560#endif`,z2=`#ifdef USE_ENVMAP 561 #ifdef ENV_WORLDPOS 562 vWorldPosition = worldPosition.xyz; 563 #else 564 vec3 cameraToVertex; 565 if ( isOrthographic ) { 566 cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) ); 567 } else {
568 cameraToVertex = normalize( worldPosition.xyz - cameraPosition ); 569 } 570 vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); 571 #ifdef ENVMAP_MODE_REFLECTION 572 vReflect = reflect( cameraToVertex, worldNormal ); 573 #else 574 vReflect = refract( cameraToVertex, worldNormal, refractionRatio ); 575 #endif 576 #endif 577#endif`,_2=`#ifdef USE_FOG 578 vFogDepth = - mvPosition.z; 579#endif`,H2=`#ifdef USE_FOG 580 varying float vFogDepth; 581#endif`,F2=`#ifdef USE_FOG 582 #ifdef FOG_EXP2 583 float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth ); 584 #else 585 float fogFactor = smoothstep( fogNear, fogFar, vFogDepth ); 586 #endif 587 gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor ); 588#endif`,V2=`#ifdef USE_FOG 589 uniform vec3 fogColor; 590 varying float vFogDepth; 591 #ifdef FOG_EXP2 592 uniform float fogDensity; 593 #else 594 uniform float fogNear; 595 uniform float fogFar; 596 #endif 597#endif`,G2=`#ifdef USE_GRADIENTMAP 598 uniform sampler2D gradientMap; 599#endif 600vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) { 601 float dotNL = dot( normal, lightDirection ); 602 vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 ); 603 #ifdef USE_GRADIENTMAP 604 return vec3( texture2D( gradientMap, coord ).r ); 605 #else 606 vec2 fw = fwidth( coord ) * 0.5; 607 return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) ); 608 #endif 609}`,j2=`#ifdef USE_LIGHTMAP 610 uniform sampler2D lightMap; 611 uniform float lightMapIntensity; 612#endif`,Y2=`LambertMaterial material; 613material.diffuseColor = diffuseColor.rgb; 614material.specularStrength = specularStrength;`,X2=`varying vec3 vViewPosition; 615struct LambertMaterial { 616 vec3 diffuseColor; 617 float specularStrength; 618}; 619void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { 620 float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); 621 vec3 irradiance = dotNL * directLight.color; 622 reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 623} 624void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) { 625 reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 626} 627#define RE_Direct RE_Direct_Lambert 628#define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,Z2=`uniform bool receiveShadow; 629uniform vec3 ambientLightColor; 630#if defined( USE_LIGHT_PROBES ) 631 uniform vec3 lightProbe[ 9 ]; 632#endif 633vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) { 634 float x = normal.x, y = normal.y, z = normal.z; 635 vec3 result = shCoefficients[ 0 ] * 0.886227; 636 result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y; 637 result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z; 638 result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x; 639 result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y; 640 result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z; 641 result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 ); 642 result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z; 643 result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y ); 644 return result; 645} 646vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) { 647 vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); 648 vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe ); 649 return irradiance; 650} 651vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) { 652 vec3 irradiance = ambientLightColor; 653 return irradiance; 654} 655float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) { 656 float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 ); 657 if ( cutoffDistance > 0.0 ) { 658 distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) ); 659 } 660 return distanceFalloff; 661} 662float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) { 663 return smoothstep( coneCosine, penumbraCosine, angleCosine ); 664} 665#if NUM_DIR_LIGHTS > 0 666 struct DirectionalLight { 667 vec3 direction; 668 vec3 color; 669 }; 670 uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ]; 671 void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) { 672 light.color = directionalLight.color; 673 light.direction = directionalLight.direction; 674 light.visible = true; 675 } 676#endif 677#if NUM_POINT_LIGHTS > 0 678 struct PointLight { 679 vec3 position; 680 vec3 color; 681 float distance; 682 float decay; 683 }; 684 uniform PointLight pointLights[ NUM_POINT_LIGHTS ]; 685 void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) { 686 vec3 lVector = pointLight.position - geometryPosition; 687 light.direction = normalize( lVector ); 688 float lightDistance = length( lVector ); 689 light.color = pointLight.color; 690 light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay ); 691 light.visible = ( light.color != vec3( 0.0 ) ); 692 } 693#endif
694#if NUM_SPOT_LIGHTS > 0 695 struct SpotLight { 696 vec3 position; 697 vec3 direction; 698 vec3 color; 699 float distance; 700 float decay; 701 float coneCos; 702 float penumbraCos; 703 }; 704 uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ]; 705 void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) { 706 vec3 lVector = spotLight.position - geometryPosition; 707 light.direction = normalize( lVector ); 708 float angleCos = dot( light.direction, spotLight.direction ); 709 float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos ); 710 if ( spotAttenuation > 0.0 ) { 711 float lightDistance = length( lVector ); 712 light.color = spotLight.color * spotAttenuation; 713 light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay ); 714 light.visible = ( light.color != vec3( 0.0 ) ); 715 } else { 716 light.color = vec3( 0.0 ); 717 light.visible = false; 718 } 719 } 720#endif 721#if NUM_RECT_AREA_LIGHTS > 0 722 struct RectAreaLight { 723 vec3 color; 724 vec3 position; 725 vec3 halfWidth; 726 vec3 halfHeight; 727 }; 728 uniform sampler2D ltc_1; uniform sampler2D ltc_2; 729 uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ]; 730#endif 731#if NUM_HEMI_LIGHTS > 0 732 struct HemisphereLight { 733 vec3 direction; 734 vec3 skyColor; 735 vec3 groundColor; 736 }; 737 uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ]; 738 vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) { 739 float dotNL = dot( normal, hemiLight.direction ); 740 float hemiDiffuseWeight = 0.5 * dotNL + 0.5; 741 vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight ); 742 return irradiance; 743 } 744#endif`,W2=`#ifdef USE_ENVMAP 745 vec3 getIBLIrradiance( const in vec3 normal ) { 746 #ifdef ENVMAP_TYPE_CUBE_UV 747 vec3 worldNormal = inverseTransformDirection( normal, viewMatrix ); 748 vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 ); 749 return PI * envMapColor.rgb * envMapIntensity; 750 #else 751 return vec3( 0.0 ); 752 #endif 753 } 754 vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) { 755 #ifdef ENVMAP_TYPE_CUBE_UV 756 vec3 reflectVec = reflect( - viewDir, normal ); 757 reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) ); 758 reflectVec = inverseTransformDirection( reflectVec, viewMatrix ); 759 vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness ); 760 return envMapColor.rgb * envMapIntensity; 761 #else 762 return vec3( 0.0 ); 763 #endif 764 } 765 #ifdef USE_ANISOTROPY 766 vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) { 767 #ifdef ENVMAP_TYPE_CUBE_UV 768 vec3 bentNormal = cross( bitangent, viewDir ); 769 bentNormal = normalize( cross( bentNormal, bitangent ) ); 770 bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) ); 771 return getIBLRadiance( viewDir, bentNormal, roughness ); 772 #else 773 return vec3( 0.0 ); 774 #endif 775 } 776 #endif 777#endif`,Q2=`ToonMaterial material; 778material.diffuseColor = diffuseColor.rgb;`,q2=`varying vec3 vViewPosition; 779struct ToonMaterial { 780 vec3 diffuseColor; 781}; 782void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { 783 vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color; 784 reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 785} 786void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) { 787 reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 788} 789#define RE_Direct RE_Direct_Toon 790#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,K2=`BlinnPhongMaterial material; 791material.diffuseColor = diffuseColor.rgb; 792material.specularColor = specular; 793material.specularShininess = shininess; 794material.specularStrength = specularStrength;`,J2=`varying vec3 vViewPosition; 795struct BlinnPhongMaterial { 796 vec3 diffuseColor; 797 vec3 specularColor; 798 float specularShininess; 799 float specularStrength; 800}; 801void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
802 float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); 803 vec3 irradiance = dotNL * directLight.color; 804 reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 805 reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength; 806} 807void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) { 808 reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor ); 809} 810#define RE_Direct RE_Direct_BlinnPhong 811#define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,$2=`PhysicalMaterial material; 812material.diffuseColor = diffuseColor.rgb; 813material.diffuseContribution = diffuseColor.rgb * ( 1.0 - metalnessFactor ); 814material.metalness = metalnessFactor; 815vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) ); 816float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z ); 817material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness; 818material.roughness = min( material.roughness, 1.0 ); 819#ifdef IOR 820 material.ior = ior; 821 #ifdef USE_SPECULAR 822 float specularIntensityFactor = specularIntensity; 823 vec3 specularColorFactor = specularColor; 824 #ifdef USE_SPECULAR_COLORMAP 825 specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb; 826 #endif 827 #ifdef USE_SPECULAR_INTENSITYMAP 828 specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a; 829 #endif 830 material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor ); 831 #else 832 float specularIntensityFactor = 1.0; 833 vec3 specularColorFactor = vec3( 1.0 ); 834 material.specularF90 = 1.0; 835 #endif 836 material.specularColor = min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor; 837 material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); 838#else 839 material.specularColor = vec3( 0.04 ); 840 material.specularColorBlended = mix( material.specularColor, diffuseColor.rgb, metalnessFactor ); 841 material.specularF90 = 1.0; 842#endif 843#ifdef USE_CLEARCOAT 844 material.clearcoat = clearcoat; 845 material.clearcoatRoughness = clearcoatRoughness; 846 material.clearcoatF0 = vec3( 0.04 ); 847 material.clearcoatF90 = 1.0; 848 #ifdef USE_CLEARCOATMAP 849 material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x; 850 #endif 851 #ifdef USE_CLEARCOAT_ROUGHNESSMAP 852 material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y; 853 #endif 854 material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 ); 855 material.clearcoatRoughness += geometryRoughness; 856 material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 ); 857#endif 858#ifdef USE_DISPERSION 859 material.dispersion = dispersion; 860#endif 861#ifdef USE_IRIDESCENCE 862 material.iridescence = iridescence; 863 material.iridescenceIOR = iridescenceIOR; 864 #ifdef USE_IRIDESCENCEMAP 865 material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r; 866 #endif 867 #ifdef USE_IRIDESCENCE_THICKNESSMAP 868 material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum; 869 #else 870 material.iridescenceThickness = iridescenceThicknessMaximum; 871 #endif 872#endif 873#ifdef USE_SHEEN 874 material.sheenColor = sheenColor; 875 #ifdef USE_SHEEN_COLORMAP 876 material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb; 877 #endif 878 material.sheenRoughness = clamp( sheenRoughness, 0.0001, 1.0 ); 879 #ifdef USE_SHEEN_ROUGHNESSMAP 880 material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a; 881 #endif 882#endif 883#ifdef USE_ANISOTROPY 884 #ifdef USE_ANISOTROPYMAP 885 mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x ); 886 vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb; 887 vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b; 888 #else 889 vec2 anisotropyV = anisotropyVector; 890 #endif 891 material.anisotropy = length( anisotropyV ); 892 if( material.anisotropy == 0.0 ) { 893 anisotropyV = vec2( 1.0, 0.0 ); 894 } else { 895 anisotropyV /= material.anisotropy; 896 material.anisotropy = saturate( material.anisotropy ); 897 } 898 material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
899 material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y; 900 material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y; 901#endif`,eR
vendor: 9,654 bytes, lines 901-1132
901=`uniform sampler2D dfgLUT; 902struct PhysicalMaterial { 903 vec3 diffuseColor; 904 vec3 diffuseContribution; 905 vec3 specularColor; 906 vec3 specularColorBlended; 907 float roughness; 908 float metalness; 909 float specularF90; 910 float dispersion; 911 #ifdef USE_CLEARCOAT 912 float clearcoat; 913 float clearcoatRoughness; 914 vec3 clearcoatF0; 915 float clearcoatF90; 916 #endif 917 #ifdef USE_IRIDESCENCE 918 float iridescence; 919 float iridescenceIOR; 920 float iridescenceThickness; 921 vec3 iridescenceFresnel; 922 vec3 iridescenceF0; 923 vec3 iridescenceFresnelDielectric; 924 vec3 iridescenceFresnelMetallic; 925 #endif 926 #ifdef USE_SHEEN 927 vec3 sheenColor; 928 float sheenRoughness; 929 #endif 930 #ifdef IOR 931 float ior; 932 #endif 933 #ifdef USE_TRANSMISSION 934 float transmission; 935 float transmissionAlpha; 936 float thickness; 937 float attenuationDistance; 938 vec3 attenuationColor; 939 #endif 940 #ifdef USE_ANISOTROPY 941 float anisotropy; 942 float alphaT; 943 vec3 anisotropyT; 944 vec3 anisotropyB; 945 #endif 946}; 947vec3 clearcoatSpecularDirect = vec3( 0.0 ); 948vec3 clearcoatSpecularIndirect = vec3( 0.0 ); 949vec3 sheenSpecularDirect = vec3( 0.0 ); 950vec3 sheenSpecularIndirect = vec3(0.0 ); 951vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) { 952 float x = clamp( 1.0 - dotVH, 0.0, 1.0 ); 953 float x2 = x * x; 954 float x5 = clamp( x * x2 * x2, 0.0, 0.9999 ); 955 return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 ); 956} 957float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) { 958 float a2 = pow2( alpha ); 959 float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) ); 960 float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) ); 961 return 0.5 / max( gv + gl, EPSILON ); 962} 963float D_GGX( const in float alpha, const in float dotNH ) { 964 float a2 = pow2( alpha ); 965 float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0; 966 return RECIPROCAL_PI * a2 / pow2( denom ); 967} 968#ifdef USE_ANISOTROPY 969 float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) { 970 float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) ); 971 float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) ); 972 float v = 0.5 / ( gv + gl ); 973 return v; 974 } 975 float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) { 976 float a2 = alphaT * alphaB; 977 highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH ); 978 highp float v2 = dot( v, v ); 979 float w2 = a2 / v2; 980 return RECIPROCAL_PI * a2 * pow2 ( w2 ); 981 } 982#endif 983#ifdef USE_CLEARCOAT 984 vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) { 985 vec3 f0 = material.clearcoatF0; 986 float f90 = material.clearcoatF90; 987 float roughness = material.clearcoatRoughness; 988 float alpha = pow2( roughness ); 989 vec3 halfDir = normalize( lightDir + viewDir ); 990 float dotNL = saturate( dot( normal, lightDir ) ); 991 float dotNV = saturate( dot( normal, viewDir ) ); 992 float dotNH = saturate( dot( normal, halfDir ) ); 993 float dotVH = saturate( dot( viewDir, halfDir ) ); 994 vec3 F = F_Schlick( f0, f90, dotVH ); 995 float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); 996 float D = D_GGX( alpha, dotNH ); 997 return F * ( V * D ); 998 } 999#endif 1000vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { 1001 vec3 f0 = material.specularColorBlended; 1002 float f90 = material.specularF90; 1003 float roughness = material.roughness; 1004 float alpha = pow2( roughness ); 1005 vec3 halfDir = normalize( lightDir + viewDir ); 1006 float dotNL = saturate( dot( normal, lightDir ) ); 1007 float dotNV = saturate( dot( normal, viewDir ) ); 1008 float dotNH = saturate( dot( normal, halfDir ) ); 1009 float dotVH = saturate( dot( viewDir, halfDir ) ); 1010 vec3 F = F_Schlick( f0, f90, dotVH ); 1011 #ifdef USE_IRIDESCENCE 1012 F = mix( F, material.iridescenceFresnel, material.iridescence ); 1013 #endif 1014 #ifdef USE_ANISOTROPY 1015 float dotTL = dot( material.anisotropyT, lightDir ); 1016 float dotTV = dot( material.anisotropyT, viewDir ); 1017 float dotTH = dot( material.anisotropyT, halfDir ); 1018 float dotBL = dot( material.anisotropyB, lightDir ); 1019 float dotBV = dot( material.anisotropyB, viewDir ); 1020 float dotBH = dot( material.anisotropyB, halfDir ); 1021 float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL ); 1022 float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH ); 1023 #else 1024 float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV ); 1025 float D = D_GGX( alpha, dotNH ); 1026 #endif 1027 return F * ( V * D ); 1028} 1029vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) { 1030 const float LUT_SIZE = 64.0; 1031 const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE; 1032 const float LUT_BIAS = 0.5 / LUT_SIZE; 1033 float dotNV = saturate( dot( N, V ) ); 1034 vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) ); 1035 uv = uv * LUT_SCALE + LUT_BIAS; 1036 return uv; 1037} 1038float LTC_ClippedSphereFormFactor( const in vec3 f ) { 1039 float l = length( f ); 1040 return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 ); 1041} 1042vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) { 1043 float x = dot( v1, v2 ); 1044 float y = abs( x ); 1045 float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y; 1046 float b = 3.4175940 + ( 4.1616724 + y ) * y; 1047 float v = a / b; 1048 float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v; 1049 return cross( v1, v2 ) * theta_sintheta; 1050} 1051vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) { 1052 vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ]; 1053 vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ]; 1054 vec3 lightNormal = cross( v1, v2 ); 1055 if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 ); 1056 vec3 T1, T2; 1057 T1 = normalize( V - N * dot( V, N ) ); 1058 T2 = - cross( N, T1 ); 1059 mat3 mat = mInv * transpose( mat3( T1, T2, N ) ); 1060 vec3 coords[ 4 ]; 1061 coords[ 0 ] = mat * ( rectCoords[ 0 ] - P ); 1062 coords[ 1 ] = mat * ( rectCoords[ 1 ] - P ); 1063 coords[ 2 ] = mat * ( rectCoords[ 2 ] - P ); 1064 coords[ 3 ] = mat * ( rectCoords[ 3 ] - P ); 1065 coords[ 0 ] = normalize( coords[ 0 ] ); 1066 coords[ 1 ] = normalize( coords[ 1 ] ); 1067 coords[ 2 ] = normalize( coords[ 2 ] ); 1068 coords[ 3 ] = normalize( coords[ 3 ] ); 1069 vec3 vectorFormFactor = vec3( 0.0 ); 1070 vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] ); 1071 vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] ); 1072 vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] ); 1073 vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] ); 1074 float result = LTC_ClippedSphereFormFactor( vectorFormFactor ); 1075 return vec3( result ); 1076} 1077#if defined( USE_SHEEN ) 1078float D_Charlie( float roughness, float dotNH ) { 1079 float alpha = pow2( roughness ); 1080 float invAlpha = 1.0 / alpha; 1081 float cos2h = dotNH * dotNH; 1082 float sin2h = max( 1.0 - cos2h, 0.0078125 ); 1083 return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI ); 1084} 1085float V_Neubelt( float dotNV, float dotNL ) { 1086 return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) ); 1087} 1088vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) { 1089 vec3 halfDir = normalize( lightDir + viewDir ); 1090 float dotNL = saturate( dot( normal, lightDir ) ); 1091 float dotNV = saturate( dot( normal, viewDir ) ); 1092 float dotNH = saturate( dot( normal, halfDir ) ); 1093 float D = D_Charlie( sheenRoughness, dotNH ); 1094 float V = V_Neubelt( dotNV, dotNL ); 1095 return sheenColor * ( D * V ); 1096} 1097#endif 1098float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) { 1099 float dotNV = saturate( dot( normal, viewDir ) ); 1100 float r2 = roughness * roughness; 1101 float rInv = 1.0 / ( roughness + 0.1 ); 1102 float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv; 1103 float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv; 1104 float DG = exp( a * dotNV + b ); 1105 return saturate( DG ); 1106} 1107vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) { 1108 float dotNV = saturate( dot( normal, viewDir ) ); 1109 vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; 1110 return specularColor * fab.x + specularF90 * fab.y; 1111} 1112#ifdef USE_IRIDESCENCE 1113void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { 1114#else 1115void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) { 1116#endif 1117 float dotNV = saturate( dot( normal, viewDir ) ); 1118 vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg; 1119 #ifdef USE_IRIDESCENCE 1120 vec3 Fr = mix( specularColor, iridescenceF0, iridescence ); 1121 #else 1122 vec3 Fr = specularColor; 1123 #endif 1124 vec3 FssEss = Fr * fab.x + specularF90 * fab.y; 1125 float Ess = fab.x + fab.y; 1126 float Ems = 1.0 - Ess; 1127 vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg ); 1128 singleScatter += FssEss; 1129 multiScatter += Fms * Ems; 1130} 1131vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) { 1132 vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material );
vendor: 8,354 bytes, lines 1133-1262
1133 float dotNL = saturate( dot( normal, lightDir ) ); 1134 float dotNV = saturate( dot( normal, viewDir ) ); 1135 vec2 dfgV = texture2D( dfgLUT, vec2( material.roughness, dotNV ) ).rg; 1136 vec2 dfgL = texture2D( dfgLUT, vec2( material.roughness, dotNL ) ).rg; 1137 vec3 FssEss_V = material.specularColorBlended * dfgV.x + material.specularF90 * dfgV.y; 1138 vec3 FssEss_L = material.specularColorBlended * dfgL.x + material.specularF90 * dfgL.y; 1139 float Ess_V = dfgV.x + dfgV.y; 1140 float Ess_L = dfgL.x + dfgL.y; 1141 float Ems_V = 1.0 - Ess_V; 1142 float Ems_L = 1.0 - Ess_L; 1143 vec3 Favg = material.specularColorBlended + ( 1.0 - material.specularColorBlended ) * 0.047619; 1144 vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg + EPSILON ); 1145 float compensationFactor = Ems_V * Ems_L; 1146 vec3 multiScatter = Fms * compensationFactor; 1147 return singleScatter + multiScatter; 1148} 1149#if NUM_RECT_AREA_LIGHTS > 0 1150 void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { 1151 vec3 normal = geometryNormal; 1152 vec3 viewDir = geometryViewDir; 1153 vec3 position = geometryPosition; 1154 vec3 lightPos = rectAreaLight.position; 1155 vec3 halfWidth = rectAreaLight.halfWidth; 1156 vec3 halfHeight = rectAreaLight.halfHeight; 1157 vec3 lightColor = rectAreaLight.color; 1158 float roughness = material.roughness; 1159 vec3 rectCoords[ 4 ]; 1160 rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight; 1161 rectCoords[ 2 ] = lightPos - halfWidth + halfHeight; 1162 rectCoords[ 3 ] = lightPos + halfWidth + halfHeight; 1163 vec2 uv = LTC_Uv( normal, viewDir, roughness ); 1164 vec4 t1 = texture2D( ltc_1, uv ); 1165 vec4 t2 = texture2D( ltc_2, uv ); 1166 mat3 mInv = mat3( 1167 vec3( t1.x, 0, t1.y ), 1168 vec3( 0, 1, 0 ), 1169 vec3( t1.z, 0, t1.w ) 1170 ); 1171 vec3 fresnel = ( material.specularColorBlended * t2.x + ( material.specularF90 - material.specularColorBlended ) * t2.y ); 1172 reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords ); 1173 reflectedLight.directDiffuse += lightColor * material.diffuseContribution * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords ); 1174 #ifdef USE_CLEARCOAT 1175 vec3 Ncc = geometryClearcoatNormal; 1176 vec2 uvClearcoat = LTC_Uv( Ncc, viewDir, material.clearcoatRoughness ); 1177 vec4 t1Clearcoat = texture2D( ltc_1, uvClearcoat ); 1178 vec4 t2Clearcoat = texture2D( ltc_2, uvClearcoat ); 1179 mat3 mInvClearcoat = mat3( 1180 vec3( t1Clearcoat.x, 0, t1Clearcoat.y ), 1181 vec3( 0, 1, 0 ), 1182 vec3( t1Clearcoat.z, 0, t1Clearcoat.w ) 1183 ); 1184 vec3 fresnelClearcoat = material.clearcoatF0 * t2Clearcoat.x + ( material.clearcoatF90 - material.clearcoatF0 ) * t2Clearcoat.y; 1185 clearcoatSpecularDirect += lightColor * fresnelClearcoat * LTC_Evaluate( Ncc, viewDir, position, mInvClearcoat, rectCoords ); 1186 #endif 1187 } 1188#endif 1189void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { 1190 float dotNL = saturate( dot( geometryNormal, directLight.direction ) ); 1191 vec3 irradiance = dotNL * directLight.color; 1192 #ifdef USE_CLEARCOAT 1193 float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) ); 1194 vec3 ccIrradiance = dotNLcc * directLight.color; 1195 clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material ); 1196 #endif 1197 #ifdef USE_SHEEN 1198 1199 sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness ); 1200 1201 float sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); 1202 float sheenAlbedoL = IBLSheenBRDF( geometryNormal, directLight.direction, material.sheenRoughness ); 1203 1204 float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * max( sheenAlbedoV, sheenAlbedoL ); 1205 1206 irradiance *= sheenEnergyComp; 1207 1208 #endif 1209 reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material ); 1210 reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseContribution ); 1211} 1212void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) { 1213 vec3 diffuse = irradiance * BRDF_Lambert( material.diffuseContribution ); 1214 #ifdef USE_SHEEN 1215 float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); 1216 float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; 1217 diffuse *= sheenEnergyComp; 1218 #endif 1219 reflectedLight.indirectDiffuse += diffuse; 1220} 1221void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) { 1222 #ifdef USE_CLEARCOAT 1223 clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness ); 1224 #endif 1225 #ifdef USE_SHEEN 1226 sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI; 1227 #endif 1228 vec3 singleScatteringDielectric = vec3( 0.0 ); 1229 vec3 multiScatteringDielectric = vec3( 0.0 ); 1230 vec3 singleScatteringMetallic = vec3( 0.0 ); 1231 vec3 multiScatteringMetallic = vec3( 0.0 ); 1232 #ifdef USE_IRIDESCENCE 1233 computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); 1234 computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceFresnelMetallic, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); 1235 #else 1236 computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScatteringDielectric, multiScatteringDielectric ); 1237 computeMultiscattering( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.roughness, singleScatteringMetallic, multiScatteringMetallic ); 1238 #endif 1239 vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness ); 1240 vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness ); 1241 vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric; 1242 vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric ); 1243 vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI; 1244 vec3 indirectSpecular = radiance * singleScattering; 1245 indirectSpecular += multiScattering * cosineWeightedIrradiance; 1246 vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance; 1247 #ifdef USE_SHEEN 1248 float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ); 1249 float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo; 1250 indirectSpecular *= sheenEnergyComp; 1251 indirectDiffuse *= sheenEnergyComp; 1252 #endif 1253 reflectedLight.indirectSpecular += indirectSpecular; 1254 reflectedLight.indirectDiffuse += indirectDiffuse; 1255} 1256#define RE_Direct RE_Direct_Physical 1257#define RE_Direct_RectArea RE_Direct_RectArea_Physical 1258#define RE_IndirectDiffuse RE_IndirectDiffuse_Physical 1259#define RE_IndirectSpecular RE_IndirectSpecular_Physical 1260float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) { 1261 return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion ); 1262}`,
1262tR=` 1263vec3 geometryPosition = - vViewPosition; 1264vec3 geometryNormal = normal; 1265vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition ); 1266vec3 geometryClearcoatNormal = vec3( 0.0 ); 1267#ifdef USE_CLEARCOAT 1268 geometryClearcoatNormal = clearcoatNormal; 1269#endif 1270#ifdef USE_IRIDESCENCE 1271 float dotNVi = saturate( dot( normal, geometryViewDir ) ); 1272 if ( material.iridescenceThickness == 0.0 ) { 1273 material.iridescence = 0.0; 1274 } else { 1275 material.iridescence = saturate( material.iridescence ); 1276 } 1277 if ( material.iridescence > 0.0 ) { 1278 material.iridescenceFresnelDielectric = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor ); 1279 material.iridescenceFresnelMetallic = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.diffuseColor ); 1280 material.iridescenceFresnel = mix( material.iridescenceFresnelDielectric, material.iridescenceFresnelMetallic, material.metalness ); 1281 material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi ); 1282 } 1283#endif 1284IncidentLight directLight; 1285#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct ) 1286 PointLight pointLight; 1287 #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0 1288 PointLightShadow pointLightShadow; 1289 #endif 1290 #pragma unroll_loop_start 1291 for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) { 1292 pointLight = pointLights[ i ]; 1293 getPointLightInfo( pointLight, geometryPosition, directLight ); 1294 #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS ) && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) 1295 pointLightShadow = pointLightShadows[ i ]; 1296 directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0; 1297 #endif 1298 RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1299 } 1300 #pragma unroll_loop_end 1301#endif 1302#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct ) 1303 SpotLight spotLight; 1304 vec4 spotColor; 1305 vec3 spotLightCoord; 1306 bool inSpotLightMap; 1307 #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0 1308 SpotLightShadow spotLightShadow; 1309 #endif 1310 #pragma unroll_loop_start 1311 for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) { 1312 spotLight = spotLights[ i ]; 1313 getSpotLightInfo( spotLight, geometryPosition, directLight ); 1314 #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) 1315 #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX 1316 #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) 1317 #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS 1318 #else 1319 #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS ) 1320 #endif 1321 #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS ) 1322 spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w; 1323 inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) ); 1324 spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy ); 1325 directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color; 1326 #endif 1327 #undef SPOT_LIGHT_MAP_INDEX 1328 #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) 1329 spotLightShadow = spotLightShadows[ i ]; 1330 directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; 1331 #endif 1332 RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1333 } 1334 #pragma unroll_loop_end 1335#endif 1336#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct ) 1337 DirectionalLight directionalLight; 1338 #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0 1339 DirectionalLightShadow directionalLightShadow; 1340 #endif 1341 #pragma unroll_loop_start 1342 for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) { 1343 directionalLight = directionalLights[ i ]; 1344 getDirectionalLightInfo( directionalLight, directLight ); 1345 #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS ) 1346 directionalLightShadow = directionalLightShadows[ i ]; 1347 directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; 1348 #endif 1349 RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1350 } 1351 #pragma unroll_loop_end 1352#endif 1353#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea ) 1354 RectAreaLight rectAreaLight; 1355 #pragma unroll_loop_start 1356 for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) { 1357 rectAreaLight = rectAreaLights[ i ]; 1358 RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1359 } 1360 #pragma unroll_loop_end 1361#endif 1362#if defined( RE_IndirectDiffuse ) 1363 vec3 iblIrradiance = vec3( 0.0 ); 1364 vec3 irradiance = getAmbientLightIrradiance( ambientLightColor ); 1365 #if defined( USE_LIGHT_PROBES ) 1366 irradiance += getLightProbeIrradiance( lightProbe, geometryNormal ); 1367 #endif 1368 #if ( NUM_HEMI_LIGHTS > 0 ) 1369 #pragma unroll_loop_start 1370 for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) { 1371 irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal ); 1372 } 1373 #pragma unroll_loop_end 1374 #endif 1375#endif 1376#if defined( RE_IndirectSpecular ) 1377 vec3 radiance = vec3( 0.0 ); 1378 vec3 clearcoatRadiance = vec3( 0.0 ); 1379#endif`,nR=`#if defined( RE_IndirectDiffuse ) 1380 #ifdef USE_LIGHTMAP 1381 vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); 1382 vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity; 1383 irradiance += lightMapIrradiance; 1384 #endif 1385 #if defined( USE_ENVMAP ) && defined( ENVMAP_TYPE_CUBE_UV ) 1386 #if defined( STANDARD ) || defined( LAMBERT ) || defined( PHONG ) 1387 iblIrradiance += getIBLIrradiance( geometryNormal ); 1388 #endif 1389 #endif 1390#endif 1391#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular ) 1392 #ifdef USE_ANISOTROPY 1393 radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy ); 1394 #else 1395 radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness ); 1396 #endif 1397 #ifdef USE_CLEARCOAT 1398 clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness ); 1399 #endif 1400#endif`,iR=`#if defined( RE_IndirectDiffuse ) 1401 #if defined( LAMBERT ) || defined( PHONG ) 1402 irradiance += iblIrradiance; 1403 #endif 1404 RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1405#endif 1406#if defined( RE_IndirectSpecular ) 1407 RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight ); 1408#endif`,aR=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) 1409 gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5; 1410#endif`,rR=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER ) 1411 uniform float logDepthBufFC; 1412 varying float vFragDepth; 1413 varying float vIsPerspective; 1414#endif`,sR=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER 1415 varying float vFragDepth; 1416 varying float vIsPerspective; 1417#endif`,oR=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER 1418 vFragDepth = 1.0 + gl_Position.w; 1419 vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) ); 1420#endif`,lR=`#ifdef USE_MAP 1421 vec4 sampledDiffuseColor = texture2D( map, vMapUv ); 1422 #ifdef DECODE_VIDEO_TEXTURE 1423 sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor ); 1424 #endif 1425 diffuseColor *= sampledDiffuseColor; 1426#endif`,cR=`#ifdef USE_MAP 1427 uniform sampler2D map; 1428#endif`,uR=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP ) 1429 #if defined( USE_POINTS_UV ) 1430 vec2 uv = vUv; 1431 #else 1432 vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy; 1433 #endif 1434#endif 1435#ifdef USE_MAP 1436 diffuseColor *= texture2D( map, uv ); 1437#endif 1438#ifdef USE_ALPHAMAP 1439 diffuseColor.a *= texture2D( alphaMap, uv ).g; 1440#endif`,fR=`#if defined( USE_POINTS_UV ) 1441 varying vec2 vUv; 1442#else 1443 #if defined( USE_MAP ) || defined( USE_ALPHAMAP ) 1444 uniform mat3 uvTransform; 1445 #endif 1446#endif 1447#ifdef USE_MAP 1448 uniform sampler2D map; 1449#endif 1450#ifdef USE_ALPHAMAP 1451 uniform sampler2D alphaMap; 1452#endif`,dR=`float metalnessFactor = metalness; 1453#ifdef USE_METALNESSMAP 1454 vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv ); 1455 metalnessFactor *= texelMetalness.b; 1456#endif`,hR=`#ifdef USE_METALNESSMAP 1457 uniform sampler2D metalnessMap; 1458#endif`,pR=`#ifdef USE_INSTANCING_MORPH 1459 float morphTargetInfluences[ MORPHTARGETS_COUNT ]; 1460 float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r; 1461 for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { 1462 morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r; 1463 } 1464#endif`,mR=`#if defined( USE_MORPHCOLORS ) 1465 vColor *= morphTargetBaseInfluence; 1466 for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { 1467 #if defined( USE_COLOR_ALPHA ) 1468 if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ]; 1469 #elif defined( USE_COLOR ) 1470 if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ]; 1471 #endif 1472 } 1473#endif`,gR=`#ifdef USE_MORPHNORMALS 1474 objectNormal *= morphTargetBaseInfluence; 1475 for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { 1476 if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ]; 1477 } 1478#endif`,vR=`#ifdef USE_MORPHTARGETS 1479 #ifndef USE_INSTANCING_MORPH 1480 uniform float morphTargetBaseInfluence; 1481 uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ]; 1482 #endif 1483 uniform sampler2DArray morphTargetsTexture; 1484 uniform ivec2 morphTargetsTextureSize; 1485 vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) { 1486 int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset; 1487 int y = texelIndex / morphTargetsTextureSize.x; 1488 int x = texelIndex - y * morphTargetsTextureSize.x; 1489 ivec3 morphUV = ivec3( x, y, morphTargetIndex ); 1490 return texelFetch( morphTargetsTexture, morphUV, 0 ); 1491 } 1492#endif`,xR=`#ifdef USE_MORPHTARGETS 1493 transformed *= morphTargetBaseInfluence; 1494 for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) { 1495 if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ]; 1496 } 1497#endif`,yR=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0; 1498#ifdef FLAT_SHADED 1499 vec3 fdx = dFdx( vViewPosition ); 1500 vec3 fdy = dFdy( vViewPosition ); 1501 vec3 normal = normalize( cross( fdx, fdy ) ); 1502#else 1503 vec3 normal = normalize( vNormal ); 1504 #ifdef DOUBLE_SIDED 1505 normal *= faceDirection; 1506 #endif 1507#endif 1508#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) 1509 #ifdef USE_TANGENT 1510 mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); 1511 #else 1512 mat3 tbn = getTangentFrame( - vViewPosition, normal, 1513 #if defined( USE_NORMALMAP ) 1514 vNormalMapUv 1515 #elif defined( USE_CLEARCOAT_NORMALMAP ) 1516 vClearcoatNormalMapUv 1517 #else 1518 vUv 1519 #endif 1520 ); 1521 #endif 1522 #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) 1523 tbn[0] *= faceDirection; 1524 tbn[1] *= faceDirection; 1525 #endif 1526#endif 1527#ifdef USE_CLEARCOAT_NORMALMAP 1528 #ifdef USE_TANGENT 1529 mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal ); 1530 #else 1531 mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv ); 1532 #endif 1533 #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED ) 1534 tbn2[0] *= faceDirection; 1535 tbn2[1] *= faceDirection; 1536 #endif 1537#endif 1538vec3 nonPerturbedNormal = normal;`,bR=`#ifdef USE_NORMALMAP_OBJECTSPACE 1539 normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; 1540 #ifdef FLIP_SIDED 1541 normal = - normal; 1542 #endif 1543 #ifdef DOUBLE_SIDED 1544 normal = normal * faceDirection; 1545 #endif 1546 normal = normalize( normalMatrix * normal ); 1547#elif defined( USE_NORMALMAP_TANGENTSPACE ) 1548 vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0; 1549 mapN.xy *= normalScale; 1550 normal = normalize( tbn * mapN ); 1551#elif defined( USE_BUMPMAP )
1552 normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection ); 1553#endif`,SR=`#ifndef FLAT_SHADED 1554 varying vec3 vNormal; 1555 #ifdef USE_TANGENT 1556 varying vec3 vTangent; 1557 varying vec3 vBitangent; 1558 #endif 1559#endif`,ER=`#ifndef FLAT_SHADED 1560 varying vec3 vNormal; 1561 #ifdef USE_TANGENT 1562 varying vec3 vTangent; 1563 varying vec3 vBitangent; 1564 #endif 1565#endif`,MR=`#ifndef FLAT_SHADED 1566 vNormal = normalize( transformedNormal ); 1567 #ifdef USE_TANGENT 1568 vTangent = normalize( transformedTangent ); 1569 vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w ); 1570 #endif 1571#endif`,AR=`#ifdef USE_NORMALMAP 1572 uniform sampler2D normalMap; 1573 uniform vec2 normalScale; 1574#endif 1575#ifdef USE_NORMALMAP_OBJECTSPACE 1576 uniform mat3 normalMatrix; 1577#endif 1578#if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) ) 1579 mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) { 1580 vec3 q0 = dFdx( eye_pos.xyz ); 1581 vec3 q1 = dFdy( eye_pos.xyz ); 1582 vec2 st0 = dFdx( uv.st ); 1583 vec2 st1 = dFdy( uv.st ); 1584 vec3 N = surf_norm; 1585 vec3 q1perp = cross( q1, N ); 1586 vec3 q0perp = cross( N, q0 ); 1587 vec3 T = q1perp * st0.x + q0perp * st1.x; 1588 vec3 B = q1perp * st0.y + q0perp * st1.y; 1589 float det = max( dot( T, T ), dot( B, B ) ); 1590 float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det ); 1591 return mat3( T * scale, B * scale, N ); 1592 } 1593#endif`,wR=`#ifdef USE_CLEARCOAT 1594 vec3 clearcoatNormal = nonPerturbedNormal; 1595#endif`,TR=`#ifdef USE_CLEARCOAT_NORMALMAP 1596 vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0; 1597 clearcoatMapN.xy *= clearcoatNormalScale; 1598 clearcoatNormal = normalize( tbn2 * clearcoatMapN ); 1599#endif`,RR=`#ifdef USE_CLEARCOATMAP 1600 uniform sampler2D clearcoatMap; 1601#endif 1602#ifdef USE_CLEARCOAT_NORMALMAP 1603 uniform sampler2D clearcoatNormalMap; 1604 uniform vec2 clearcoatNormalScale; 1605#endif 1606#ifdef USE_CLEARCOAT_ROUGHNESSMAP 1607 uniform sampler2D clearcoatRoughnessMap; 1608#endif`,CR=`#ifdef USE_IRIDESCENCEMAP 1609 uniform sampler2D iridescenceMap; 1610#endif 1611#ifdef USE_IRIDESCENCE_THICKNESSMAP 1612 uniform sampler2D iridescenceThicknessMap; 1613#endif`,IR=`#ifdef OPAQUE 1614diffuseColor.a = 1.0; 1615#endif 1616#ifdef USE_TRANSMISSION 1617diffuseColor.a *= material.transmissionAlpha; 1618#endif 1619gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,DR=`vec3 packNormalToRGB( const in vec3 normal ) { 1620 return normalize( normal ) * 0.5 + 0.5; 1621} 1622vec3 unpackRGBToNormal( const in vec3 rgb ) { 1623 return 2.0 * rgb.xyz - 1.0; 1624} 1625const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.; 1626const float Inv255 = 1. / 255.; 1627const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 ); 1628const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g ); 1629const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b ); 1630const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a ); 1631vec4 packDepthToRGBA( const in float v ) { 1632 if( v <= 0.0 ) 1633 return vec4( 0., 0., 0., 0. ); 1634 if( v >= 1.0 ) 1635 return vec4( 1., 1., 1., 1. ); 1636 float vuf; 1637 float af = modf( v * PackFactors.a, vuf ); 1638 float bf = modf( vuf * ShiftRight8, vuf ); 1639 float gf = modf( vuf * ShiftRight8, vuf ); 1640 return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af ); 1641} 1642vec3 packDepthToRGB( const in float v ) { 1643 if( v <= 0.0 ) 1644 return vec3( 0., 0., 0. ); 1645 if( v >= 1.0 ) 1646 return vec3( 1., 1., 1. ); 1647 float vuf; 1648 float bf = modf( v * PackFactors.b, vuf ); 1649 float gf = modf( vuf * ShiftRight8, vuf ); 1650 return vec3( vuf * Inv255, gf * PackUpscale, bf ); 1651} 1652vec2 packDepthToRG( const in float v ) { 1653 if( v <= 0.0 ) 1654 return vec2( 0., 0. ); 1655 if( v >= 1.0 ) 1656 return vec2( 1., 1. ); 1657 float vuf; 1658 float gf = modf( v * 256., vuf ); 1659 return vec2( vuf * Inv255, gf ); 1660} 1661float unpackRGBAToDepth( const in vec4 v ) { 1662 return dot( v, UnpackFactors4 ); 1663} 1664float unpackRGBToDepth( const in vec3 v ) { 1665 return dot( v, UnpackFactors3 ); 1666} 1667float unpackRGToDepth( const in vec2 v ) { 1668 return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g; 1669} 1670vec4 pack2HalfToRGBA( const in vec2 v ) {
1671 vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) ); 1672 return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w ); 1673} 1674vec2 unpackRGBATo2Half( const in vec4 v ) { 1675 return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) ); 1676} 1677float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) { 1678 return ( viewZ + near ) / ( near - far ); 1679} 1680float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) { 1681 #ifdef USE_REVERSED_DEPTH_BUFFER 1682 1683 return depth * ( far - near ) - far; 1684 #else 1685 return depth * ( near - far ) - near; 1686 #endif 1687} 1688float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) { 1689 return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ ); 1690} 1691float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) { 1692 1693 #ifdef USE_REVERSED_DEPTH_BUFFER 1694 return ( near * far ) / ( ( near - far ) * depth - near ); 1695 #else 1696 return ( near * far ) / ( ( far - near ) * depth - far ); 1697 #endif 1698}`,NR=`#ifdef PREMULTIPLIED_ALPHA 1699 gl_FragColor.rgb *= gl_FragColor.a; 1700#endif`,LR=`vec4 mvPosition = vec4( transformed, 1.0 ); 1701#ifdef USE_BATCHING 1702 mvPosition = batchingMatrix * mvPosition; 1703#endif 1704#ifdef USE_INSTANCING 1705 mvPosition = instanceMatrix * mvPosition; 1706#endif 1707mvPosition = modelViewMatrix * mvPosition; 1708gl_Position = projectionMatrix * mvPosition;`,PR=`#ifdef DITHERING 1709 gl_FragColor.rgb = dithering( gl_FragColor.rgb ); 1710#endif`,OR=`#ifdef DITHERING 1711 vec3 dithering( vec3 color ) { 1712 float grid_position = rand( gl_FragCoord.xy ); 1713 vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 ); 1714 dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position ); 1715 return color + dither_shift_RGB; 1716 } 1717#endif`,BR=`float roughnessFactor = roughness; 1718#ifdef USE_ROUGHNESSMAP 1719 vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv ); 1720 roughnessFactor *= texelRoughness.g; 1721#endif`,UR=`#ifdef USE_ROUGHNESSMAP 1722 uniform sampler2D roughnessMap; 1723#endif`,kR=`#if NUM_SPOT_LIGHT_COORDS > 0 1724 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; 1725#endif 1726#if NUM_SPOT_LIGHT_MAPS > 0 1727 uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ]; 1728#endif 1729#ifdef USE_SHADOWMAP 1730 #if NUM_DIR_LIGHT_SHADOWS > 0 1731 #if defined( SHADOWMAP_TYPE_PCF ) 1732 uniform sampler2DShadow directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; 1733 #else 1734 uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ]; 1735 #endif 1736 varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; 1737 struct DirectionalLightShadow { 1738 float shadowIntensity; 1739 float shadowBias; 1740 float shadowNormalBias; 1741 float shadowRadius; 1742 vec2 shadowMapSize; 1743 }; 1744 uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; 1745 #endif 1746 #if NUM_SPOT_LIGHT_SHADOWS > 0 1747 #if defined( SHADOWMAP_TYPE_PCF ) 1748 uniform sampler2DShadow spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; 1749 #else 1750 uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ]; 1751 #endif 1752 struct SpotLightShadow { 1753 float shadowIntensity; 1754 float shadowBias; 1755 float shadowNormalBias; 1756 float shadowRadius; 1757 vec2 shadowMapSize; 1758 }; 1759 uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; 1760 #endif 1761 #if NUM_POINT_LIGHT_SHADOWS > 0 1762 #if defined( SHADOWMAP_TYPE_PCF ) 1763 uniform samplerCubeShadow pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; 1764 #elif defined( SHADOWMAP_TYPE_BASIC ) 1765 uniform samplerCube pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ]; 1766 #endif 1767 varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; 1768 struct PointLightShadow { 1769 float shadowIntensity; 1770 float shadowBias; 1771 float shadowNormalBias; 1772 float shadowRadius; 1773 vec2 shadowMapSize; 1774 float shadowCameraNear; 1775 float shadowCameraFar; 1776 }; 1777 uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; 1778 #endif 1779 #if defined( SHADOWMAP_TYPE_PCF ) 1780 float interleavedGradientNoise( vec2 position ) { 1781 return fract( 52.9829189 * fract( dot( position, vec2( 0.06711056, 0.00583715 ) ) ) ); 1782 } 1783 vec2 vogelDiskSample( int sampleIndex, int samplesCount, float phi ) { 1784 const float goldenAngle = 2.399963229728653; 1785 float r = sqrt( ( float( sampleIndex ) + 0.5 ) / float( samplesCount ) ); 1786 float theta = float( sampleIndex ) * goldenAngle + phi; 1787 return vec2( cos( theta ), sin( theta ) ) * r; 1788 } 1789 #endif 1790 #if defined( SHADOWMAP_TYPE_PCF ) 1791 float getShadow( sampler2DShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { 1792 float shadow = 1.0; 1793 shadowCoord.xyz /= shadowCoord.w; 1794 shadowCoord.z += shadowBias; 1795 bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; 1796 bool frustumTest = inFrustum && shadowCoord.z <= 1.0; 1797 if ( frustumTest ) { 1798 vec2 texelSize = vec2( 1.0 ) / shadowMapSize; 1799 float radius = shadowRadius * texelSize.x; 1800 float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; 1801 shadow = ( 1802 texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 0, 5, phi ) * radius, shadowCoord.z ) ) + 1803 texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 1, 5, phi ) * radius, shadowCoord.z ) ) + 1804 texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 2, 5, phi ) * radius, shadowCoord.z ) ) + 1805 texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 3, 5, phi ) * radius, shadowCoord.z ) ) + 1806 texture( shadowMap, vec3( shadowCoord.xy + vogelDiskSample( 4, 5, phi ) * radius, shadowCoord.z ) ) 1807 ) * 0.2; 1808 } 1809 return mix( 1.0, shadow, shadowIntensity ); 1810 } 1811 #elif defined( SHADOWMAP_TYPE_VSM ) 1812 float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { 1813 float shadow = 1.0; 1814 shadowCoord.xyz /= shadowCoord.w; 1815 #ifdef USE_REVERSED_DEPTH_BUFFER 1816 shadowCoord.z -= shadowBias; 1817 #else 1818 shadowCoord.z += shadowBias; 1819 #endif 1820 bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; 1821 bool frustumTest = inFrustum && shadowCoord.z <= 1.0; 1822 if ( frustumTest ) { 1823 vec2 distribution = texture2D( shadowMap, shadowCoord.xy ).rg; 1824 float mean = distribution.x; 1825 float variance = distribution.y * distribution.y; 1826 #ifdef USE_REVERSED_DEPTH_BUFFER 1827 float hard_shadow = step( mean, shadowCoord.z ); 1828 #else 1829 float hard_shadow = step( shadowCoord.z, mean ); 1830 #endif 1831 1832 if ( hard_shadow == 1.0 ) { 1833 shadow = 1.0; 1834 } else { 1835 variance = max( variance, 0.0000001 ); 1836 float d = shadowCoord.z - mean; 1837 float p_max = variance / ( variance + d * d ); 1838 p_max = clamp( ( p_max - 0.3 ) / 0.65, 0.0, 1.0 ); 1839 shadow = max( hard_shadow, p_max ); 1840 } 1841 } 1842 return mix( 1.0, shadow, shadowIntensity ); 1843 } 1844 #else 1845 float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) { 1846 float shadow = 1.0; 1847 shadowCoord.xyz /= shadowCoord.w; 1848 #ifdef USE_REVERSED_DEPTH_BUFFER 1849 shadowCoord.z -= shadowBias; 1850 #else 1851 shadowCoord.z += shadowBias; 1852 #endif 1853 bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0; 1854 bool frustumTest = inFrustum && shadowCoord.z <= 1.0; 1855 if ( frustumTest ) { 1856 float depth = texture2D( shadowMap, shadowCoord.xy ).r; 1857 #ifdef USE_REVERSED_DEPTH_BUFFER 1858 shadow = step( depth, shadowCoord.z ); 1859 #else 1860 shadow = step( shadowCoord.z, depth ); 1861 #endif 1862 } 1863 return mix( 1.0, shadow, shadowIntensity ); 1864 } 1865 #endif 1866 #if NUM_POINT_LIGHT_SHADOWS > 0 1867 #if defined( SHADOWMAP_TYPE_PCF ) 1868 float getPointShadow( samplerCubeShadow shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { 1869 float shadow = 1.0; 1870 vec3 lightToPosition = shadowCoord.xyz; 1871 vec3 bd3D = normalize( lightToPosition ); 1872 vec3 absVec = abs( lightToPosition ); 1873 float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); 1874 if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { 1875 #ifdef USE_REVERSED_DEPTH_BUFFER 1876 float dp = ( shadowCameraNear * ( shadowCameraFar - viewSpaceZ ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) );
1877 dp -= shadowBias; 1878 #else 1879 float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); 1880 dp += shadowBias; 1881 #endif 1882 float texelSize = shadowRadius / shadowMapSize.x; 1883 vec3 absDir = abs( bd3D ); 1884 vec3 tangent = absDir.x > absDir.z ? vec3( 0.0, 1.0, 0.0 ) : vec3( 1.0, 0.0, 0.0 ); 1885 tangent = normalize( cross( bd3D, tangent ) ); 1886 vec3 bitangent = cross( bd3D, tangent ); 1887 float phi = interleavedGradientNoise( gl_FragCoord.xy ) * PI2; 1888 vec2 sample0 = vogelDiskSample( 0, 5, phi ); 1889 vec2 sample1 = vogelDiskSample( 1, 5, phi ); 1890 vec2 sample2 = vogelDiskSample( 2, 5, phi ); 1891 vec2 sample3 = vogelDiskSample( 3, 5, phi ); 1892 vec2 sample4 = vogelDiskSample( 4, 5, phi ); 1893 shadow = ( 1894 texture( shadowMap, vec4( bd3D + ( tangent * sample0.x + bitangent * sample0.y ) * texelSize, dp ) ) + 1895 texture( shadowMap, vec4( bd3D + ( tangent * sample1.x + bitangent * sample1.y ) * texelSize, dp ) ) + 1896 texture( shadowMap, vec4( bd3D + ( tangent * sample2.x + bitangent * sample2.y ) * texelSize, dp ) ) + 1897 texture( shadowMap, vec4( bd3D + ( tangent * sample3.x + bitangent * sample3.y ) * texelSize, dp ) ) + 1898 texture( shadowMap, vec4( bd3D + ( tangent * sample4.x + bitangent * sample4.y ) * texelSize, dp ) ) 1899 ) * 0.2; 1900 } 1901 return mix( 1.0, shadow, shadowIntensity ); 1902 } 1903 #elif defined( SHADOWMAP_TYPE_BASIC ) 1904 float getPointShadow( samplerCube shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) { 1905 float shadow = 1.0; 1906 vec3 lightToPosition = shadowCoord.xyz; 1907 vec3 absVec = abs( lightToPosition ); 1908 float viewSpaceZ = max( max( absVec.x, absVec.y ), absVec.z ); 1909 if ( viewSpaceZ - shadowCameraFar <= 0.0 && viewSpaceZ - shadowCameraNear >= 0.0 ) { 1910 float dp = ( shadowCameraFar * ( viewSpaceZ - shadowCameraNear ) ) / ( viewSpaceZ * ( shadowCameraFar - shadowCameraNear ) ); 1911 dp += shadowBias; 1912 vec3 bd3D = normalize( lightToPosition ); 1913 float depth = textureCube( shadowMap, bd3D ).r; 1914 #ifdef USE_REVERSED_DEPTH_BUFFER 1915 depth = 1.0 - depth; 1916 #endif 1917 shadow = step( dp, depth ); 1918 } 1919 return mix( 1.0, shadow, shadowIntensity ); 1920 } 1921 #endif 1922 #endif 1923#endif`,zR=`#if NUM_SPOT_LIGHT_COORDS > 0 1924 uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ]; 1925 varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ]; 1926#endif 1927#ifdef USE_SHADOWMAP 1928 #if NUM_DIR_LIGHT_SHADOWS > 0 1929 uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ]; 1930 varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ]; 1931 struct DirectionalLightShadow { 1932 float shadowIntensity; 1933 float shadowBias; 1934 float shadowNormalBias; 1935 float shadowRadius; 1936 vec2 shadowMapSize; 1937 }; 1938 uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ]; 1939 #endif 1940 #if NUM_SPOT_LIGHT_SHADOWS > 0 1941 struct SpotLightShadow { 1942 float shadowIntensity; 1943 float shadowBias; 1944 float shadowNormalBias; 1945 float shadowRadius; 1946 vec2 shadowMapSize; 1947 }; 1948 uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ]; 1949 #endif 1950 #if NUM_POINT_LIGHT_SHADOWS > 0 1951 uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ]; 1952 varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ]; 1953 struct PointLightShadow { 1954 float shadowIntensity; 1955 float shadowBias; 1956 float shadowNormalBias; 1957 float shadowRadius; 1958 vec2 shadowMapSize; 1959 float shadowCameraNear; 1960 float shadowCameraFar; 1961 }; 1962 uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ]; 1963 #endif 1964#endif`,_R=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 ) 1965 vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix ); 1966 vec4 shadowWorldPosition; 1967#endif 1968#if defined( USE_SHADOWMAP ) 1969 #if NUM_DIR_LIGHT_SHADOWS > 0 1970 #pragma unroll_loop_start 1971 for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { 1972 shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 ); 1973 vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition; 1974 } 1975 #pragma unroll_loop_end 1976 #endif 1977 #if NUM_POINT_LIGHT_SHADOWS > 0 1978 #pragma unroll_loop_start 1979 for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { 1980 shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 ); 1981 vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition; 1982 } 1983 #pragma unroll_loop_end 1984 #endif 1985#endif
1986#if NUM_SPOT_LIGHT_COORDS > 0 1987 #pragma unroll_loop_start 1988 for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) { 1989 shadowWorldPosition = worldPosition; 1990 #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS ) 1991 shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias; 1992 #endif 1993 vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition; 1994 } 1995 #pragma unroll_loop_end 1996#endif`,HR=`float getShadowMask() { 1997 float shadow = 1.0; 1998 #ifdef USE_SHADOWMAP 1999 #if NUM_DIR_LIGHT_SHADOWS > 0 2000 DirectionalLightShadow directionalLight; 2001 #pragma unroll_loop_start 2002 for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) { 2003 directionalLight = directionalLightShadows[ i ]; 2004 shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0; 2005 } 2006 #pragma unroll_loop_end 2007 #endif 2008 #if NUM_SPOT_LIGHT_SHADOWS > 0 2009 SpotLightShadow spotLight; 2010 #pragma unroll_loop_start 2011 for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) { 2012 spotLight = spotLightShadows[ i ]; 2013 shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0; 2014 } 2015 #pragma unroll_loop_end 2016 #endif 2017 #if NUM_POINT_LIGHT_SHADOWS > 0 && ( defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_BASIC ) ) 2018 PointLightShadow pointLight; 2019 #pragma unroll_loop_start 2020 for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) { 2021 pointLight = pointLightShadows[ i ]; 2022 shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0; 2023 } 2024 #pragma unroll_loop_end 2025 #endif 2026 #endif 2027 return shadow; 2028}`,FR=`#ifdef USE_SKINNING 2029 mat4 boneMatX = getBoneMatrix( skinIndex.x ); 2030 mat4 boneMatY = getBoneMatrix( skinIndex.y ); 2031 mat4 boneMatZ = getBoneMatrix( skinIndex.z ); 2032 mat4 boneMatW = getBoneMatrix( skinIndex.w ); 2033#endif`,VR=`#ifdef USE_SKINNING 2034 uniform mat4 bindMatrix; 2035 uniform mat4 bindMatrixInverse; 2036 uniform highp sampler2D boneTexture; 2037 mat4 getBoneMatrix( const in float i ) { 2038 int size = textureSize( boneTexture, 0 ).x; 2039 int j = int( i ) * 4; 2040 int x = j % size; 2041 int y = j / size; 2042 vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 ); 2043 vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 ); 2044 vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 ); 2045 vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 ); 2046 return mat4( v1, v2, v3, v4 ); 2047 } 2048#endif`,GR=`#ifdef USE_SKINNING 2049 vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 ); 2050 vec4 skinned = vec4( 0.0 ); 2051 skinned += boneMatX * skinVertex * skinWeight.x; 2052 skinned += boneMatY * skinVertex * skinWeight.y; 2053 skinned += boneMatZ * skinVertex * skinWeight.z; 2054 skinned += boneMatW * skinVertex * skinWeight.w; 2055 transformed = ( bindMatrixInverse * skinned ).xyz; 2056#endif`,jR=`#ifdef USE_SKINNING 2057 mat4 skinMatrix = mat4( 0.0 ); 2058 skinMatrix += skinWeight.x * boneMatX; 2059 skinMatrix += skinWeight.y * boneMatY; 2060 skinMatrix += skinWeight.z * boneMatZ; 2061 skinMatrix += skinWeight.w * boneMatW; 2062 skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix; 2063 objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz; 2064 #ifdef USE_TANGENT 2065 objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz; 2066 #endif 2067#endif`,YR=`float specularStrength; 2068#ifdef USE_SPECULARMAP 2069 vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv ); 2070 specularStrength = texelSpecular.r; 2071#else 2072 specularStrength = 1.0; 2073#endif`,XR=`#ifdef USE_SPECULARMAP 2074 uniform sampler2D specularMap; 2075#endif`,ZR=`#if defined( TONE_MAPPING ) 2076 gl_FragColor.rgb = toneMapping( gl_FragColor.rgb ); 2077#endif`,WR=`#ifndef saturate 2078#define saturate( a ) clamp( a, 0.0, 1.0 ) 2079#endif 2080uniform float toneMappingExposure; 2081vec3 LinearToneMapping( vec3 color ) { 2082 return saturate( toneMappingExposure * color ); 2083} 2084vec3 ReinhardToneMapping( vec3 color ) { 2085 color *= toneMappingExposure; 2086 return saturate( color / ( vec3( 1.0 ) + color ) ); 2087} 2088vec3 CineonToneMapping( vec3 color ) { 2089 color *= toneMappingExposure; 2090 color = max( vec3( 0.0 ), color - 0.004 ); 2091 return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) ); 2092} 2093vec3 RRTAndODTFit( vec3 v ) { 2094 vec3 a = v * ( v + 0.0245786 ) - 0.000090537; 2095 vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081; 2096 return a / b; 2097} 2098vec3 ACESFilmicToneMapping( vec3 color ) { 2099 const mat3 ACESInputMat = mat3( 2100 vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ), 2101 vec3( 0.04823, 0.01566, 0.83777 ) 2102 ); 2103 const mat3 ACESOutputMat = mat3( 2104 vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ), 2105 vec3( -0.07367, -0.00605, 1.07602 ) 2106 ); 2107 color *= toneMappingExposure / 0.6; 2108 color = ACESInputMat * color; 2109 color = RRTAndODTFit( color ); 2110 color = ACESOutputMat * color; 2111 return saturate( color ); 2112} 2113const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3( 2114 vec3( 1.6605, - 0.1246, - 0.0182 ), 2115 vec3( - 0.5876, 1.1329, - 0.1006 ), 2116 vec3( - 0.0728, - 0.0083, 1.1187 ) 2117); 2118const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3( 2119 vec3( 0.6274, 0.0691, 0.0164 ), 2120 vec3( 0.3293, 0.9195, 0.0880 ), 2121 vec3( 0.0433, 0.0113, 0.8956 ) 2122); 2123vec3 agxDefaultContrastApprox( vec3 x ) { 2124 vec3 x2 = x * x; 2125 vec3 x4 = x2 * x2; 2126 return + 15.5 * x4 * x2 2127 - 40.14 * x4 * x 2128 + 31.96 * x4 2129 - 6.868 * x2 * x 2130 + 0.4298 * x2 2131 + 0.1191 * x 2132 - 0.00232; 2133} 2134vec3 AgXToneMapping( vec3 color ) { 2135 const mat3 AgXInsetMatrix = mat3( 2136 vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ), 2137 vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ), 2138 vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 ) 2139 );
2140 const mat3 AgXOutsetMatrix = mat3( 2141 vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ), 2142 vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ), 2143 vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 ) 2144 ); 2145 const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069; 2146 color *= toneMappingExposure; 2147 color = LINEAR_SRGB_TO_LINEAR_REC2020 * color; 2148 color = AgXInsetMatrix * color; 2149 color = max( color, 1e-10 ); color = log2( color ); 2150 color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv ); 2151 color = clamp( color, 0.0, 1.0 ); 2152 color = agxDefaultContrastApprox( color ); 2153 color = AgXOutsetMatrix * color; 2154 color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) ); 2155 color = LINEAR_REC2020_TO_LINEAR_SRGB * color; 2156 color = clamp( color, 0.0, 1.0 ); 2157 return color; 2158} 2159vec3 NeutralToneMapping( vec3 color ) { 2160 const float StartCompression = 0.8 - 0.04; 2161 const float Desaturation = 0.15; 2162 color *= toneMappingExposure; 2163 float x = min( color.r, min( color.g, color.b ) ); 2164 float offset = x < 0.08 ? x - 6.25 * x * x : 0.04; 2165 color -= offset; 2166 float peak = max( color.r, max( color.g, color.b ) ); 2167 if ( peak < StartCompression ) return color; 2168 float d = 1. - StartCompression; 2169 float newPeak = 1. - d * d / ( peak + d - StartCompression ); 2170 color *= newPeak / peak; 2171 float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. ); 2172 return mix( color, vec3( newPeak ), g ); 2173} 2174vec3 CustomToneMapping( vec3 color ) { return color; }`,QR=`#ifdef USE_TRANSMISSION 2175 material.transmission = transmission; 2176 material.transmissionAlpha = 1.0; 2177 material.thickness = thickness; 2178 material.attenuationDistance = attenuationDistance; 2179 material.attenuationColor = attenuationColor; 2180 #ifdef USE_TRANSMISSIONMAP 2181 material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r; 2182 #endif 2183 #ifdef USE_THICKNESSMAP 2184 material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g; 2185 #endif 2186 vec3 pos = vWorldPosition; 2187 vec3 v = normalize( cameraPosition - pos ); 2188 vec3 n = inverseTransformDirection( normal, viewMatrix ); 2189 vec4 transmitted = getIBLVolumeRefraction( 2190 n, v, material.roughness, material.diffuseContribution, material.specularColorBlended, material.specularF90, 2191 pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness, 2192 material.attenuationColor, material.attenuationDistance ); 2193 material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission ); 2194 totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission ); 2195#endif`,qR=`#ifdef USE_TRANSMISSION 2196 uniform float transmission; 2197 uniform float thickness; 2198 uniform float attenuationDistance; 2199 uniform vec3 attenuationColor; 2200 #ifdef USE_TRANSMISSIONMAP 2201 uniform sampler2D transmissionMap; 2202 #endif 2203 #ifdef USE_THICKNESSMAP 2204 uniform sampler2D thicknessMap; 2205 #endif 2206 uniform vec2 transmissionSamplerSize; 2207 uniform sampler2D transmissionSamplerMap; 2208 uniform mat4 modelMatrix; 2209 uniform mat4 projectionMatrix; 2210 varying vec3 vWorldPosition; 2211 float w0( float a ) { 2212 return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 ); 2213 } 2214 float w1( float a ) { 2215 return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 ); 2216 } 2217 float w2( float a ){ 2218 return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 ); 2219 } 2220 float w3( float a ) { 2221 return ( 1.0 / 6.0 ) * ( a * a * a ); 2222 } 2223 float g0( float a ) { 2224 return w0( a ) + w1( a ); 2225 } 2226 float g1( float a ) { 2227 return w2( a ) + w3( a ); 2228 } 2229 float h0( float a ) { 2230 return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) ); 2231 } 2232 float h1( float a ) { 2233 return 1.0 + w3( a ) / ( w2( a ) + w3( a ) ); 2234 } 2235 vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) { 2236 uv = uv * texelSize.zw + 0.5; 2237 vec2 iuv = floor( uv ); 2238 vec2 fuv = fract( uv ); 2239 float g0x = g0( fuv.x ); 2240 float g1x = g1( fuv.x ); 2241 float h0x = h0( fuv.x ); 2242 float h1x = h1( fuv.x ); 2243 float h0y = h0( fuv.y ); 2244 float h1y = h1( fuv.y ); 2245 vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; 2246 vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy; 2247 vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; 2248 vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy; 2249 return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) + 2250 g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) ); 2251 } 2252 vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) { 2253 vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) ); 2254 vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) ); 2255 vec2 fLodSizeInv = 1.0 / fLodSize; 2256 vec2 cLodSizeInv = 1.0 / cLodSize; 2257 vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) ); 2258 vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) ); 2259 return mix( fSample, cSample, fract( lod ) ); 2260 } 2261 vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) { 2262 vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior ); 2263 vec3 modelScale; 2264 modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) ); 2265 modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) ); 2266 modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) ); 2267 return normalize( refractionVector ) * thickness * modelScale; 2268 } 2269 float applyIorToRoughness( const in float roughness, const in float ior ) { 2270 return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 ); 2271 } 2272 vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) { 2273 float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior ); 2274 return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod ); 2275 } 2276 vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) { 2277 if ( isinf( attenuationDistance ) ) { 2278 return vec3( 1.0 ); 2279 } else { 2280 vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance; 2281 vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance; 2282 } 2283 } 2284 vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor, 2285 const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix, 2286 const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness, 2287 const in vec3 attenuationColor, const in float attenuationDistance ) { 2288 vec4 transmittedLight; 2289 vec3 transmittance; 2290 #ifdef USE_DISPERSION 2291 float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion; 2292 vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread ); 2293 for ( int i = 0; i < 3; i ++ ) { 2294 vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix ); 2295 vec3 refractedRayExit = position + transmissionRay; 2296 vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); 2297 vec2 refractionCoords = ndcPos.xy / ndcPos.w; 2298 refractionCoords += 1.0; 2299 refractionCoords /= 2.0; 2300 vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] ); 2301 transmittedLight[ i ] = transmissionSample[ i ]; 2302 transmittedLight.a += transmissionSample.a; 2303 transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ]; 2304 } 2305 transmittedLight.a /= 3.0; 2306 #else 2307 vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix ); 2308 vec3 refractedRayExit = position + transmissionRay; 2309 vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 ); 2310 vec2 refractionCoords = ndcPos.xy / ndcPos.w; 2311 refractionCoords += 1.0; 2312 refractionCoords /= 2.0; 2313 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior ); 2314 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance ); 2315 #endif 2316 vec3 attenuatedColor = transmittance * transmittedLight.rgb; 2317 vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness ); 2318 float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0; 2319 return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor ); 2320 } 2321#endif`,KR=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) 2322 varying vec2 vUv; 2323#endif 2324#ifdef USE_MAP 2325 varying vec2 vMapUv; 2326#endif 2327#ifdef USE_ALPHAMAP
2328 varying vec2 vAlphaMapUv; 2329#endif 2330#ifdef USE_LIGHTMAP 2331 varying vec2 vLightMapUv; 2332#endif 2333#ifdef USE_AOMAP 2334 varying vec2 vAoMapUv; 2335#endif 2336#ifdef USE_BUMPMAP 2337 varying vec2 vBumpMapUv; 2338#endif 2339#ifdef USE_NORMALMAP 2340 varying vec2 vNormalMapUv; 2341#endif 2342#ifdef USE_EMISSIVEMAP 2343 varying vec2 vEmissiveMapUv; 2344#endif 2345#ifdef USE_METALNESSMAP 2346 varying vec2 vMetalnessMapUv; 2347#endif 2348#ifdef USE_ROUGHNESSMAP 2349 varying vec2 vRoughnessMapUv; 2350#endif 2351#ifdef USE_ANISOTROPYMAP 2352 varying vec2 vAnisotropyMapUv; 2353#endif 2354#ifdef USE_CLEARCOATMAP 2355 varying vec2 vClearcoatMapUv; 2356#endif 2357#ifdef USE_CLEARCOAT_NORMALMAP 2358 varying vec2 vClearcoatNormalMapUv; 2359#endif 2360#ifdef USE_CLEARCOAT_ROUGHNESSMAP 2361 varying vec2 vClearcoatRoughnessMapUv; 2362#endif 2363#ifdef USE_IRIDESCENCEMAP 2364 varying vec2 vIridescenceMapUv; 2365#endif 2366#ifdef USE_IRIDESCENCE_THICKNESSMAP 2367 varying vec2 vIridescenceThicknessMapUv; 2368#endif 2369#ifdef USE_SHEEN_COLORMAP 2370 varying vec2 vSheenColorMapUv; 2371#endif 2372#ifdef USE_SHEEN_ROUGHNESSMAP 2373 varying vec2 vSheenRoughnessMapUv; 2374#endif 2375#ifdef USE_SPECULARMAP 2376 varying vec2 vSpecularMapUv; 2377#endif 2378#ifdef USE_SPECULAR_COLORMAP 2379 varying vec2 vSpecularColorMapUv; 2380#endif 2381#ifdef USE_SPECULAR_INTENSITYMAP 2382 varying vec2 vSpecularIntensityMapUv; 2383#endif 2384#ifdef USE_TRANSMISSIONMAP 2385 uniform mat3 transmissionMapTransform; 2386 varying vec2 vTransmissionMapUv; 2387#endif 2388#ifdef USE_THICKNESSMAP 2389 uniform mat3 thicknessMapTransform; 2390 varying vec2 vThicknessMapUv; 2391#endif`,JR=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) 2392 varying vec2 vUv; 2393#endif 2394#ifdef USE_MAP 2395 uniform mat3 mapTransform; 2396 varying vec2 vMapUv; 2397#endif 2398#ifdef USE_ALPHAMAP 2399 uniform mat3 alphaMapTransform; 2400 varying vec2 vAlphaMapUv; 2401#endif 2402#ifdef USE_LIGHTMAP 2403 uniform mat3 lightMapTransform; 2404 varying vec2 vLightMapUv; 2405#endif 2406#ifdef USE_AOMAP 2407 uniform mat3 aoMapTransform; 2408 varying vec2 vAoMapUv; 2409#endif 2410#ifdef USE_BUMPMAP 2411 uniform mat3 bumpMapTransform; 2412 varying vec2 vBumpMapUv; 2413#endif 2414#ifdef USE_NORMALMAP 2415 uniform mat3 normalMapTransform; 2416 varying vec2 vNormalMapUv; 2417#endif 2418#ifdef USE_DISPLACEMENTMAP 2419 uniform mat3 displacementMapTransform; 2420 varying vec2 vDisplacementMapUv; 2421#endif 2422#ifdef USE_EMISSIVEMAP 2423 uniform mat3 emissiveMapTransform; 2424 varying vec2 vEmissiveMapUv; 2425#endif 2426#ifdef USE_METALNESSMAP 2427 uniform mat3 metalnessMapTransform; 2428 varying vec2 vMetalnessMapUv; 2429#endif 2430#ifdef USE_ROUGHNESSMAP 2431 uniform mat3 roughnessMapTransform; 2432 varying vec2 vRoughnessMapUv; 2433#endif 2434#ifdef USE_ANISOTROPYMAP 2435 uniform mat3 anisotropyMapTransform; 2436 varying vec2 vAnisotropyMapUv; 2437#endif 2438#ifdef USE_CLEARCOATMAP 2439 uniform mat3 clearcoatMapTransform; 2440 varying vec2 vClearcoatMapUv; 2441#endif 2442#ifdef USE_CLEARCOAT_NORMALMAP 2443 uniform mat3 clearcoatNormalMapTransform; 2444 varying vec2 vClearcoatNormalMapUv; 2445#endif 2446#ifdef USE_CLEARCOAT_ROUGHNESSMAP 2447 uniform mat3 clearcoatRoughnessMapTransform; 2448 varying vec2 vClearcoatRoughnessMapUv; 2449#endif 2450#ifdef USE_SHEEN_COLORMAP 2451 uniform mat3 sheenColorMapTransform; 2452 varying vec2 vSheenColorMapUv; 2453#endif 2454#ifdef USE_SHEEN_ROUGHNESSMAP 2455 uniform mat3 sheenRoughnessMapTransform; 2456 varying vec2 vSheenRoughnessMapUv; 2457#endif 2458#ifdef USE_IRIDESCENCEMAP 2459 uniform mat3 iridescenceMapTransform; 2460 varying vec2 vIridescenceMapUv; 2461#endif 2462#ifdef USE_IRIDESCENCE_THICKNESSMAP 2463 uniform mat3 iridescenceThicknessMapTransform; 2464 varying vec2 vIridescenceThicknessMapUv; 2465#endif 2466#ifdef USE_SPECULARMAP 2467 uniform mat3 specularMapTransform; 2468 varying vec2 vSpecularMapUv; 2469#endif 2470#ifdef USE_SPECULAR_COLORMAP 2471 uniform mat3 specularColorMapTransform; 2472 varying vec2 vSpecularColorMapUv; 2473#endif 2474#ifdef USE_SPECULAR_INTENSITYMAP 2475 uniform mat3 specularIntensityMapTransform; 2476 varying vec2 vSpecularIntensityMapUv; 2477#endif 2478#ifdef USE_TRANSMISSIONMAP 2479 uniform mat3 transmissionMapTransform; 2480 varying vec2 vTransmissionMapUv; 2481#endif 2482#ifdef USE_THICKNESSMAP 2483 uniform mat3 thicknessMapTransform; 2484 varying vec2 vThicknessMapUv; 2485#endif`,$R=`#if defined( USE_UV ) || defined( USE_ANISOTROPY ) 2486 vUv = vec3( uv, 1 ).xy; 2487#endif 2488#ifdef USE_MAP 2489 vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy; 2490#endif 2491#ifdef USE_ALPHAMAP 2492 vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy; 2493#endif 2494#ifdef USE_LIGHTMAP 2495 vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy; 2496#endif 2497#ifdef USE_AOMAP 2498 vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy; 2499#endif 2500#ifdef USE_BUMPMAP 2501 vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy; 2502#endif 2503#ifdef USE_NORMALMAP 2504 vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy; 2505#endif 2506#ifdef USE_DISPLACEMENTMAP 2507 vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy; 2508#endif 2509#ifdef USE_EMISSIVEMAP 2510 vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy; 2511#endif 2512#ifdef USE_METALNESSMAP 2513 vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy; 2514#endif 2515#ifdef USE_ROUGHNESSMAP 2516 vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy; 2517#endif 2518#ifdef USE_ANISOTROPYMAP 2519 vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy; 2520#endif 2521#ifdef USE_CLEARCOATMAP 2522 vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy; 2523#endif 2524#ifdef USE_CLEARCOAT_NORMALMAP 2525 vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy; 2526#endif 2527#ifdef USE_CLEARCOAT_ROUGHNESSMAP 2528 vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy; 2529#endif
2530#ifdef USE_IRIDESCENCEMAP 2531 vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy; 2532#endif 2533#ifdef USE_IRIDESCENCE_THICKNESSMAP 2534 vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy; 2535#endif 2536#ifdef USE_SHEEN_COLORMAP 2537 vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy; 2538#endif 2539#ifdef USE_SHEEN_ROUGHNESSMAP 2540 vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy; 2541#endif 2542#ifdef USE_SPECULARMAP 2543 vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy; 2544#endif 2545#ifdef USE_SPECULAR_COLORMAP 2546 vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy; 2547#endif 2548#ifdef USE_SPECULAR_INTENSITYMAP 2549 vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy; 2550#endif 2551#ifdef USE_TRANSMISSIONMAP 2552 vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy; 2553#endif 2554#ifdef USE_THICKNESSMAP 2555 vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy; 2556#endif`,eC=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0 2557 vec4 worldPosition = vec4( transformed, 1.0 ); 2558 #ifdef USE_BATCHING 2559 worldPosition = batchingMatrix * worldPosition; 2560 #endif 2561 #ifdef USE_INSTANCING 2562 worldPosition = instanceMatrix * worldPosition; 2563 #endif 2564 worldPosition = modelMatrix * worldPosition; 2565#endif`;const tC=`varying vec2 vUv; 2566uniform mat3 uvTransform; 2567void main() { 2568 vUv = ( uvTransform * vec3( uv, 1 ) ).xy; 2569 gl_Position = vec4( position.xy, 1.0, 1.0 ); 2570}`,nC=`uniform sampler2D t2D; 2571uniform float backgroundIntensity; 2572varying vec2 vUv; 2573void main() { 2574 vec4 texColor = texture2D( t2D, vUv ); 2575 #ifdef DECODE_VIDEO_TEXTURE 2576 texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w ); 2577 #endif 2578 texColor.rgb *= backgroundIntensity; 2579 gl_FragColor = texColor; 2580 #include <tonemapping_fragment> 2581 #include <colorspace_fragment> 2582}`,iC=`varying vec3 vWorldDirection; 2583#include <common> 2584void main() { 2585 vWorldDirection = transformDirection( position, modelMatrix ); 2586 #include <begin_vertex> 2587 #include <project_vertex> 2588 gl_Position.z = gl_Position.w; 2589}`,aC=`#ifdef ENVMAP_TYPE_CUBE 2590 uniform samplerCube envMap; 2591#elif defined( ENVMAP_TYPE_CUBE_UV ) 2592 uniform sampler2D envMap; 2593#endif 2594uniform float flipEnvMap; 2595uniform float backgroundBlurriness; 2596uniform float backgroundIntensity; 2597uniform mat3 backgroundRotation; 2598varying vec3 vWorldDirection; 2599#include <cube_uv_reflection_fragment> 2600void main() { 2601 #ifdef ENVMAP_TYPE_CUBE 2602 vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) ); 2603 #elif defined( ENVMAP_TYPE_CUBE_UV ) 2604 vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness ); 2605 #else 2606 vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 ); 2607 #endif 2608 texColor.rgb *= backgroundIntensity; 2609 gl_FragColor = texColor; 2610 #include <tonemapping_fragment> 2611 #include <colorspace_fragment> 2612}`,rC=`varying vec3 vWorldDirection; 2613#include <common> 2614void main() { 2615 vWorldDirection = transformDirection( position, modelMatrix ); 2616 #include <begin_vertex> 2617 #include <project_vertex> 2618 gl_Position.z = gl_Position.w; 2619}`,sC=`uniform samplerCube tCube; 2620uniform float tFlip; 2621uniform float opacity; 2622varying vec3 vWorldDirection; 2623void main() { 2624 vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) ); 2625 gl_FragColor = texColor; 2626 gl_FragColor.a *= opacity; 2627 #include <tonemapping_fragment> 2628 #include <colorspace_fragment> 2629}`,oC=`#include <common> 2630#include <batching_pars_vertex> 2631#include <uv_pars_vertex> 2632#include <displacementmap_pars_vertex> 2633#include <morphtarget_pars_vertex> 2634#include <skinning_pars_vertex> 2635#include <logdepthbuf_pars_vertex> 2636#include <clipping_planes_pars_vertex> 2637varying vec2 vHighPrecisionZW; 2638void main() { 2639 #include <uv_vertex> 2640 #include <batching_vertex> 2641 #include <skinbase_vertex> 2642 #include <morphinstance_vertex> 2643 #ifdef USE_DISPLACEMENTMAP 2644 #include <beginnormal_vertex> 2645 #include <morphnormal_vertex> 2646 #include <skinnormal_vertex> 2647 #endif 2648 #include <begin_vertex> 2649 #include <morphtarget_vertex> 2650 #include <skinning_vertex> 2651 #include <displacementmap_vertex> 2652 #include <project_vertex> 2653 #include <logdepthbuf_vertex> 2654 #include <clipping_planes_vertex> 2655 vHighPrecisionZW = gl_Position.zw; 2656}`,lC=`#if DEPTH_PACKING == 3200 2657 uniform float opacity; 2658#endif 2659#include <common> 2660#include <packing> 2661#include <uv_pars_fragment> 2662#include <map_pars_fragment> 2663#include <alphamap_pars_fragment> 2664#include <alphatest_pars_fragment> 2665#include <alphahash_pars_fragment> 2666#include <logdepthbuf_pars_fragment> 2667#include <clipping_planes_pars_fragment> 2668varying vec2 vHighPrecisionZW; 2669void main() { 2670 vec4 diffuseColor = vec4( 1.0 ); 2671 #include <clipping_planes_fragment> 2672 #if DEPTH_PACKING == 3200 2673 diffuseColor.a = opacity; 2674 #endif 2675 #include <map_fragment> 2676 #include <alphamap_fragment> 2677 #include <alphatest_fragment> 2678 #include <alphahash_fragment> 2679 #include <logdepthbuf_fragment> 2680 #ifdef USE_REVERSED_DEPTH_BUFFER 2681 float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ]; 2682 #else 2683 float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5; 2684 #endif 2685 #if DEPTH_PACKING == 3200 2686 gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity ); 2687 #elif DEPTH_PACKING == 3201 2688 gl_FragColor = packDepthToRGBA( fragCoordZ ); 2689 #elif DEPTH_PACKING == 3202 2690 gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 ); 2691 #elif DEPTH_PACKING == 3203 2692 gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 ); 2693 #endif 2694}`,cC=`#define DISTANCE 2695varying vec3 vWorldPosition; 2696#include <common> 2697#include <batching_pars_vertex> 2698#include <uv_pars_vertex> 2699#include <displacementmap_pars_vertex> 2700#include <morphtarget_pars_vertex> 2701#include <skinning_pars_vertex> 2702#include <clipping_planes_pars_vertex> 2703void main() { 2704 #include <uv_vertex> 2705 #include <batching_vertex> 2706 #include <skinbase_vertex> 2707 #include <morphinstance_vertex> 2708 #ifdef USE_DISPLACEMENTMAP 2709 #include <beginnormal_vertex> 2710 #include <morphnormal_vertex> 2711 #include <skinnormal_vertex> 2712 #endif 2713 #include <begin_vertex> 2714 #include <morphtarget_vertex> 2715 #include <skinning_vertex> 2716 #include <displacementmap_vertex> 2717 #include <project_vertex> 2718 #include <worldpos_vertex> 2719 #include <clipping_planes_vertex> 2720 vWorldPosition = worldPosition.xyz; 2721}`,uC=`#define DISTANCE 2722uniform vec3 referencePosition; 2723uniform float nearDistance; 2724uniform float farDistance; 2725varying vec3 vWorldPosition; 2726#include <common> 2727#include <uv_pars_fragment> 2728#include <map_pars_fragment> 2729#include <alphamap_pars_fragment> 2730#include <alphatest_pars_fragment> 2731#include <alphahash_pars_fragment> 2732#include <clipping_planes_pars_fragment> 2733void main () { 2734 vec4 diffuseColor = vec4( 1.0 ); 2735 #include <clipping_planes_fragment> 2736 #include <map_fragment> 2737 #include <alphamap_fragment> 2738 #include <alphatest_fragment> 2739 #include <alphahash_fragment> 2740 float dist = length( vWorldPosition - referencePosition ); 2741 dist = ( dist - nearDistance ) / ( farDistance - nearDistance ); 2742 dist = saturate( dist ); 2743 gl_FragColor = vec4( dist, 0.0, 0.0, 1.0 ); 2744}`,fC=`varying vec3 vWorldDirection; 2745#include <common> 2746void main() { 2747 vWorldDirection = transformDirection( position, modelMatrix ); 2748 #include <begin_vertex> 2749 #include <project_vertex> 2750}`,dC=`uniform sampler2D tEquirect; 2751varying vec3 vWorldDirection; 2752#include <common> 2753void main() { 2754 vec3 direction = normalize( vWorldDirection ); 2755 vec2 sampleUV = equirectUv( direction ); 2756 gl_FragColor = texture2D( tEquirect, sampleUV ); 2757 #include <tonemapping_fragment> 2758 #include <colorspace_fragment> 2759}`,hC=`uniform float scale; 2760attribute float lineDistance; 2761varying float vLineDistance; 2762#include <common> 2763#include <uv_pars_vertex> 2764#include <color_pars_vertex> 2765#include <fog_pars_vertex> 2766#include <morphtarget_pars_vertex> 2767#include <logdepthbuf_pars_vertex> 2768#include <clipping_planes_pars_vertex> 2769void main() { 2770 vLineDistance = scale * lineDistance; 2771 #include <uv_vertex> 2772 #include <color_vertex> 2773 #include <morphinstance_vertex> 2774 #include <morphcolor_vertex> 2775 #include <begin_vertex> 2776 #include <morphtarget_vertex> 2777 #include <project_vertex> 2778 #include <logdepthbuf_vertex> 2779 #include <clipping_planes_vertex> 2780 #include <fog_vertex> 2781}`,pC=`uniform vec3 diffuse; 2782uniform float opacity; 2783uniform float dashSize; 2784uniform float totalSize; 2785varying float vLineDistance; 2786#include <common> 2787#include <color_pars_fragment> 2788#include <uv_pars_fragment> 2789#include <map_pars_fragment> 2790#include <fog_pars_fragment> 2791#include <logdepthbuf_pars_fragment> 2792#include <clipping_planes_pars_fragment> 2793void main() { 2794 vec4 diffuseColor = vec4( diffuse, opacity ); 2795 #include <clipping_planes_fragment> 2796 if ( mod( vLineDistance, totalSize ) > dashSize ) { 2797 discard; 2798 } 2799 vec3 outgoingLight = vec3( 0.0 ); 2800 #include <logdepthbuf_fragment> 2801 #include <map_fragment> 2802 #include <color_fragment> 2803 outgoingLight = diffuseColor.rgb; 2804 #include <opaque_fragment> 2805 #include <tonemapping_fragment> 2806 #include <colorspace_fragment> 2807 #include <fog_fragment> 2808 #include <premultiplied_alpha_fragment> 2809}`,mC=`#include <common> 2810#include <batching_pars_vertex> 2811#include <uv_pars_vertex> 2812#include <envmap_pars_vertex> 2813#include <color_pars_vertex> 2814#include <fog_pars_vertex> 2815#include <morphtarget_pars_vertex> 2816#include <skinning_pars_vertex> 2817#include <logdepthbuf_pars_vertex> 2818#include <clipping_planes_pars_vertex> 2819void main() { 2820 #include <uv_vertex> 2821 #include <color_vertex> 2822 #include <morphinstance_vertex> 2823 #include <morphcolor_vertex> 2824 #include <batching_vertex> 2825 #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING ) 2826 #include <beginnormal_vertex> 2827 #include <morphnormal_vertex> 2828 #include <skinbase_vertex> 2829 #include <skinnormal_vertex> 2830 #include <defaultnormal_vertex> 2831 #endif 2832 #include <begin_vertex> 2833 #include <morphtarget_vertex> 2834 #include <skinning_vertex> 2835 #include <project_vertex> 2836 #include <logdepthbuf_vertex> 2837 #include <clipping_planes_vertex> 2838 #include <worldpos_vertex> 2839 #include <envmap_vertex> 2840 #include <fog_vertex> 2841}`,gC=`uniform vec3 diffuse; 2842uniform float opacity; 2843#ifndef FLAT_SHADED 2844 varying vec3 vNormal; 2845#endif 2846#include <common> 2847#include <dithering_pars_fragment> 2848#include <color_pars_fragment> 2849#include <uv_pars_fragment> 2850#include <map_pars_fragment> 2851#include <alphamap_pars_fragment> 2852#include <alphatest_pars_fragment> 2853#include <alphahash_pars_fragment> 2854#include <aomap_pars_fragment> 2855#include <lightmap_pars_fragment> 2856#include <envmap_common_pars_fragment> 2857#include <envmap_pars_fragment> 2858#include <fog_pars_fragment> 2859#include <specularmap_pars_fragment> 2860#include <logdepthbuf_pars_fragment> 2861#include <clipping_planes_pars_fragment> 2862void main() { 2863 vec4 diffuseColor = vec4( diffuse, opacity ); 2864 #include <clipping_planes_fragment> 2865 #include <logdepthbuf_fragment> 2866 #include <map_fragment> 2867 #include <color_fragment> 2868 #include <alphamap_fragment> 2869 #include <alphatest_fragment> 2870 #include <alphahash_fragment> 2871 #include <specularmap_fragment> 2872 ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); 2873 #ifdef USE_LIGHTMAP 2874 vec4 lightMapTexel = texture2D( lightMap, vLightMapUv ); 2875 reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI; 2876 #else 2877 reflectedLight.indirectDiffuse += vec3( 1.0 ); 2878 #endif 2879 #include <aomap_fragment> 2880 reflectedLight.indirectDiffuse *= diffuseColor.rgb; 2881 vec3 outgoingLight = reflectedLight.indirectDiffuse; 2882 #include <envmap_fragment> 2883 #include <opaque_fragment> 2884 #include <tonemapping_fragment> 2885 #include <colorspace_fragment> 2886 #include <fog_fragment> 2887 #include <premultiplied_alpha_fragment> 2888 #include <dithering_fragment> 2889}`,vC=`#define LAMBERT 2890varying vec3 vViewPosition; 2891#include <common> 2892#include <batching_pars_vertex> 2893#include <uv_pars_vertex> 2894#include <displacementmap_pars_vertex> 2895#include <envmap_pars_vertex> 2896#include <color_pars_vertex> 2897#include <fog_pars_vertex> 2898#include <normal_pars_vertex> 2899#include <morphtarget_pars_vertex> 2900#include <skinning_pars_vertex> 2901#include <shadowmap_pars_vertex> 2902#include <logdepthbuf_pars_vertex> 2903#include <clipping_planes_pars_vertex> 2904void main() { 2905 #include <uv_vertex> 2906 #include <color_vertex> 2907 #include <morphinstance_vertex> 2908 #include <morphcolor_vertex> 2909 #include <batching_vertex> 2910 #include <beginnormal_vertex> 2911 #include <morphnormal_vertex> 2912 #include <skinbase_vertex> 2913 #include <skinnormal_vertex> 2914 #include <defaultnormal_vertex> 2915 #include <normal_vertex> 2916 #include <begin_vertex> 2917 #include <morphtarget_vertex> 2918 #include <skinning_vertex> 2919 #include <displacementmap_vertex> 2920 #include <project_vertex> 2921 #include <logdepthbuf_vertex> 2922 #include <clipping_planes_vertex> 2923 vViewPosition = - mvPosition.xyz; 2924 #include <worldpos_vertex> 2925 #include <envmap_vertex> 2926 #include <shadowmap_vertex> 2927 #include <fog_vertex> 2928}`,xC=`#define LAMBERT 2929uniform vec3 diffuse; 2930uniform vec3 emissive; 2931uniform float opacity; 2932#include <common> 2933#include <dithering_pars_fragment> 2934#include <color_pars_fragment> 2935#include <uv_pars_fragment> 2936#include <map_pars_fragment> 2937#include <alphamap_pars_fragment> 2938#include <alphatest_pars_fragment> 2939#include <alphahash_pars_fragment> 2940#include <aomap_pars_fragment> 2941#include <lightmap_pars_fragment> 2942#include <emissivemap_pars_fragment> 2943#include <cube_uv_reflection_fragment> 2944#include <envmap_common_pars_fragment> 2945#include <envmap_pars_fragment> 2946#include <envmap_physical_pars_fragment> 2947#include <fog_pars_fragment> 2948#include <bsdfs> 2949#include <lights_pars_begin> 2950#include <normal_pars_fragment> 2951#include <lights_lambert_pars_fragment> 2952#include <shadowmap_pars_fragment> 2953#include <bumpmap_pars_fragment> 2954#include <normalmap_pars_fragment> 2955#include <specularmap_pars_fragment> 2956#include <logdepthbuf_pars_fragment> 2957#include <clipping_planes_pars_fragment> 2958void main() { 2959 vec4 diffuseColor = vec4( diffuse, opacity ); 2960 #include <clipping_planes_fragment> 2961 ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); 2962 vec3 totalEmissiveRadiance = emissive; 2963 #include <logdepthbuf_fragment> 2964 #include <map_fragment> 2965 #include <color_fragment> 2966 #include <alphamap_fragment> 2967 #include <alphatest_fragment> 2968 #include <alphahash_fragment> 2969 #include <specularmap_fragment> 2970 #include <normal_fragment_begin> 2971 #include <normal_fragment_maps> 2972 #include <emissivemap_fragment> 2973 #include <lights_lambert_fragment> 2974 #include <lights_fragment_begin> 2975 #include <lights_fragment_maps> 2976 #include <lights_fragment_end> 2977 #include <aomap_fragment> 2978 vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; 2979 #include <envmap_fragment> 2980 #include <opaque_fragment> 2981 #include <tonemapping_fragment> 2982 #include <colorspace_fragment> 2983 #include <fog_fragment> 2984 #include <premultiplied_alpha_fragment> 2985 #include <dithering_fragment> 2986}`,yC=`#define MATCAP 2987varying vec3 vViewPosition; 2988#include <common> 2989#include <batching_pars_vertex> 2990#include <uv_pars_vertex> 2991#include <color_pars_vertex> 2992#include <displacementmap_pars_vertex> 2993#include <fog_pars_vertex> 2994#include <normal_pars_vertex> 2995#include <morphtarget_pars_vertex> 2996#include <skinning_pars_vertex> 2997#include <logdepthbuf_pars_vertex> 2998#include <clipping_planes_pars_vertex> 2999void main() { 3000 #include <uv_vertex> 3001 #include <color_vertex> 3002 #include <morphinstance_vertex> 3003 #include <morphcolor_vertex> 3004 #include <batching_vertex> 3005 #include <beginnormal_vertex> 3006 #include <morphnormal_vertex> 3007 #include <skinbase_vertex> 3008 #include <skinnormal_vertex> 3009 #include <defaultnormal_vertex> 3010 #include <normal_vertex> 3011 #include <begin_vertex> 3012 #include <morphtarget_vertex> 3013 #include <skinning_vertex> 3014 #include <displacementmap_vertex> 3015 #include <project_vertex> 3016 #include <logdepthbuf_vertex> 3017 #include <clipping_planes_vertex> 3018 #include <fog_vertex> 3019 vViewPosition = - mvPosition.xyz; 3020}`,bC=`#define MATCAP 3021uniform vec3 diffuse; 3022uniform float opacity; 3023uniform sampler2D matcap; 3024varying vec3 vViewPosition; 3025#include <common> 3026#include <dithering_pars_fragment> 3027#include <color_pars_fragment> 3028#include <uv_pars_fragment> 3029#include <map_pars_fragment> 3030#include <alphamap_pars_fragment> 3031#include <alphatest_pars_fragment> 3032#include <alphahash_pars_fragment> 3033#include <fog_pars_fragment> 3034#include <normal_pars_fragm
3034ent> 3035#include <bumpmap_pars_fragment> 3036#include <normalmap_pars_fragment> 3037#include <logdepthbuf_pars_fragment> 3038#include <clipping_planes_pars_fragment> 3039void main() { 3040 vec4 diffuseColor = vec4( diffuse, opacity ); 3041 #include <clipping_planes_fragment> 3042 #include <logdepthbuf_fragment> 3043 #include <map_fragment> 3044 #include <color_fragment> 3045 #include <alphamap_fragment> 3046 #include <alphatest_fragment> 3047 #include <alphahash_fragment> 3048 #include <normal_fragment_begin> 3049 #include <normal_fragment_maps> 3050 vec3 viewDir = normalize( vViewPosition ); 3051 vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) ); 3052 vec3 y = cross( viewDir, x ); 3053 vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5; 3054 #ifdef USE_MATCAP 3055 vec4 matcapColor = texture2D( matcap, uv ); 3056 #else 3057 vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 ); 3058 #endif 3059 vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb; 3060 #include <opaque_fragment> 3061 #include <tonemapping_fragment> 3062 #include <colorspace_fragment> 3063 #include <fog_fragment> 3064 #include <premultiplied_alpha_fragment> 3065 #include <dithering_fragment> 3066}`,SC=`#define NORMAL 3067#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) 3068 varying vec3 vViewPosition; 3069#endif 3070#include <common> 3071#include <batching_pars_vertex> 3072#include <uv_pars_vertex> 3073#include <displacementmap_pars_vertex> 3074#include <normal_pars_vertex> 3075#include <morphtarget_pars_vertex> 3076#include <skinning_pars_vertex> 3077#include <logdepthbuf_pars_vertex> 3078#include <clipping_planes_pars_vertex> 3079void main() { 3080 #include <uv_vertex> 3081 #include <batching_vertex> 3082 #include <beginnormal_vertex> 3083 #include <morphinstance_vertex> 3084 #include <morphnormal_vertex> 3085 #include <skinbase_vertex> 3086 #include <skinnormal_vertex> 3087 #include <defaultnormal_vertex> 3088 #include <normal_vertex> 3089 #include <begin_vertex> 3090 #include <morphtarget_vertex> 3091 #include <skinning_vertex> 3092 #include <displacementmap_vertex> 3093 #include <project_vertex> 3094 #include <logdepthbuf_vertex> 3095 #include <clipping_planes_vertex> 3096#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) 3097 vViewPosition = - mvPosition.xyz; 3098#endif 3099}`,EC=`#define NORMAL 3100uniform float opacity; 3101#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE ) 3102 varying vec3 vViewPosition; 3103#endif 3104#include <uv_pars_fragment> 3105#include <normal_pars_fragment> 3106#include <bumpmap_pars_fragment> 3107#include <normalmap_pars_fragment> 3108#include <logdepthbuf_pars_fragment> 3109#include <clipping_planes_pars_fragment> 3110void main() { 3111 vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity ); 3112 #include <clipping_planes_fragment> 3113 #include <logdepthbuf_fragment> 3114 #include <normal_fragment_begin> 3115 #include <normal_fragment_maps> 3116 gl_FragColor = vec4( normalize( normal ) * 0.5 + 0.5, diffuseColor.a ); 3117 #ifdef OPAQUE 3118 gl_FragColor.a = 1.0; 3119 #endif 3120}`,MC=`#define PHONG 3121varying vec3 vViewPosition; 3122#include <common> 3123#include <batching_pars_vertex> 3124#include <uv_pars_vertex> 3125#include <displacementmap_pars_vertex> 3126#include <envmap_pars_vertex> 3127#include <color_pars_vertex> 3128#include <fog_pars_vertex> 3129#include <normal_pars_vertex> 3130#include <morphtarget_pars_vertex> 3131#include <skinning_pars_vertex> 3132#include <shadowmap_pars_vertex> 3133#include <logdepthbuf_pars_vertex> 3134#include <clipping_planes_pars_vertex> 3135void main() { 3136 #include <uv_vertex> 3137 #include <color_vertex> 3138 #include <morphcolor_vertex> 3139 #include <batching_vertex> 3140 #include <beginnormal_vertex> 3141 #include <morphinstance_vertex> 3142 #include <morphnormal_vertex> 3143 #include <skinbase_vertex> 3144 #include <skinnormal_vertex> 3145 #include <defaultnormal_vertex> 3146 #include <normal_vertex> 3147 #include <begin_vertex> 3148 #include <morphtarget_vertex> 3149 #include <skinning_vertex> 3150 #include <displacementmap_vertex> 3151 #include <project_vertex> 3152 #include <logdepthbuf_vertex> 3153 #include <clipping_planes_vertex> 3154 vViewPosition = - mvPosition.xyz; 3155 #include <worldpos_vertex> 3156 #include <envmap_vertex> 3157 #include <shadowmap_vertex> 3158 #include <fog_vertex> 3159}`,AC=`#define PHONG 3160uniform vec3 diffuse; 3161uniform vec3 emissive; 3162uniform vec3 specular; 3163uniform float shininess; 3164uniform float opacity; 3165#include <common> 3166#include <dithering_pars_fragment> 3167#include <color_pars_fragment> 3168#include <uv_pars_fragment> 3169#include <map_pars_fragment> 3170#include <alphamap_pars_fragment> 3171#include <alphatest_pars_fragment> 3172#include <alphahash_pars_fragment> 3173#include <aomap_pars_fragment> 3174#include <lightmap_pars_fragment> 3175#include <emissivemap_pars_fragment> 3176#include <cube_uv_reflection_fragment> 3177#include <envmap_common_pars_fragment> 3178#include <envmap_pars_fragment> 3179#include <envmap_physical_pars_fragment> 3180#include <fog_pars_fragment> 3181#include <bsdfs> 3182#include <lights_pars_begin> 3183#include <normal_pars_fragment> 3184#include <lights_phong_pars_fragment> 3185#include <shadowmap_pars_fragment> 3186#include <bumpmap_pars_fragment> 3187#include <normalmap_pars_fragment> 3188#include <specularmap_pars_fragment> 3189#include <logdepthbuf_pars_fragment> 3190#include <clipping_planes_pars_fragment> 3191void main() { 3192 vec4 diffuseColor = vec4( diffuse, opacity ); 3193 #include <clipping_planes_fragment> 3194 ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); 3195 vec3 totalEmissiveRadiance = emissive; 3196 #include <logdepthbuf_fragment> 3197 #include <map_fragment> 3198 #include <color_fragment> 3199 #include <alphamap_fragment> 3200 #include <alphatest_fragment> 3201 #include <alphahash_fragment> 3202 #include <specularmap_fragment> 3203 #include <normal_fragment_begin> 3204 #include <normal_fragment_maps> 3205 #include <emissivemap_fragment> 3206 #include <lights_phong_fragment> 3207 #include <lights_fragment_begin> 3208 #include <lights_fragment_maps> 3209 #include <lights_fragment_end> 3210 #include <aomap_fragment> 3211 vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance; 3212 #include <envmap_fragment> 3213 #include <opaque_fragment> 3214 #include <tonemapping_fragment> 3215 #include <colorspace_fragment> 3216 #include <fog_fragment> 3217 #include <premultiplied_alpha_fragment> 3218 #include <dithering_fragment> 3219}`,wC=`#define STANDARD 3220varying vec3 vViewPosition; 3221#ifdef USE_TRANSMISSION 3222 varying vec3 vWorldPosition; 3223#endif 3224#include <common> 3225#include <batching_pars_vertex> 3226#include <uv_pars_vertex> 3227#include <displacementmap_pars_vertex> 3228#include <color_pars_vertex> 3229#include <fog_pars_vertex> 3230#include <normal_pars_vertex> 3231#include <morphtarget_pars_vertex> 3232#include <skinning_pars_vertex> 3233#include <shadowmap_pars_vertex> 3234#include <logdepthbuf_pars_vertex> 3235#include <clipping_planes_pars_vertex> 3236void main() { 3237 #include <uv_vertex> 3238 #include <color_vertex> 3239 #include <morphinstance_vertex> 3240 #include <morphcolor_vertex> 3241 #include <batching_vertex> 3242 #include <beginnormal_vertex> 3243 #include <morphnormal_vertex> 3244 #include <skinbase_vertex> 3245 #include <skinnormal_vertex> 3246 #include <defaultnormal_vertex> 3247 #include <normal_vertex> 3248 #include <begin_vertex> 3249 #include <morphtarget_vertex> 3250 #include <skinning_vertex> 3251 #include <displacementmap_vertex> 3252 #include <project_vertex> 3253 #include <logdepthbuf_vertex> 3254 #include <clipping_planes_vertex> 3255 vViewPosition = - mvPosition.xyz; 3256 #include <worldpos_vertex> 3257 #include <shadowmap_vertex> 3258 #include <fog_vertex> 3259#ifdef USE_TRANSMISSION 3260 vWorldPosition = worldPosition.xyz; 3261#endif 3262}`,TC=`#define STANDARD 3263#ifdef PHYSICAL 3264 #define IOR 3265 #define USE_SPECULAR 3266#endif 3267uniform vec3 diffuse; 3268uniform vec3 emissive; 3269uniform float roughness; 3270uniform float metalness; 3271uniform float opacity; 3272#ifdef IOR 3273 uniform float ior; 3274#endif 3275#ifdef USE_SPECULAR 3276 uniform float specularIntensity; 3277 uniform vec3 specularColor; 3278 #ifdef USE_SPECULAR_COLORMAP 3279 uniform sampler2D specularColorMap; 3280 #endif 3281 #ifdef USE_SPECULAR_INTENSITYMAP 3282 uniform sampler2D specularIntensityMap; 3283 #endif 3284#endif 3285#ifdef USE_CLEARCOAT 3286 uniform float clearcoat; 3287 uniform float clearcoatRoughness; 3288#endif 3289#ifdef USE_DISPERSION 3290 uniform float dispersion; 3291#endif
3292#ifdef USE_IRIDESCENCE 3293 uniform float iridescence; 3294 uniform float iridescenceIOR; 3295 uniform float iridescenceThicknessMinimum; 3296 uniform float iridescenceThicknessMaximum; 3297#endif 3298#ifdef USE_SHEEN 3299 uniform vec3 sheenColor; 3300 uniform float sheenRoughness; 3301 #ifdef USE_SHEEN_COLORMAP 3302 uniform sampler2D sheenColorMap; 3303 #endif 3304 #ifdef USE_SHEEN_ROUGHNESSMAP 3305 uniform sampler2D sheenRoughnessMap; 3306 #endif 3307#endif 3308#ifdef USE_ANISOTROPY 3309 uniform vec2 anisotropyVector; 3310 #ifdef USE_ANISOTROPYMAP 3311 uniform sampler2D anisotropyMap; 3312 #endif 3313#endif 3314varying vec3 vViewPosition; 3315#include <common> 3316#include <dithering_pars_fragment> 3317#include <color_pars_fragment> 3318#include <uv_pars_fragment> 3319#include <map_pars_fragment> 3320#include <alphamap_pars_fragment> 3321#include <alphatest_pars_fragment> 3322#include <alphahash_pars_fragment> 3323#include <aomap_pars_fragment> 3324#include <lightmap_pars_fragment> 3325#include <emissivemap_pars_fragment> 3326#include <iridescence_fragment> 3327#include <cube_uv_reflection_fragment> 3328#include <envmap_common_pars_fragment> 3329#include <envmap_physical_pars_fragment> 3330#include <fog_pars_fragment> 3331#include <lights_pars_begin> 3332#include <normal_pars_fragment> 3333#include <lights_physical_pars_fragment> 3334#include <transmission_pars_fragment> 3335#include <shadowmap_pars_fragment> 3336#include <bumpmap_pars_fragment> 3337#include <normalmap_pars_fragment> 3338#include <clearcoat_pars_fragment> 3339#include <iridescence_pars_fragment> 3340#include <roughnessmap_pars_fragment> 3341#include <metalnessmap_pars_fragment> 3342#include <logdepthbuf_pars_fragment> 3343#include <clipping_planes_pars_fragment> 3344void main() { 3345 vec4 diffuseColor = vec4( diffuse, opacity ); 3346 #include <clipping_planes_fragment> 3347 ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); 3348 vec3 totalEmissiveRadiance = emissive; 3349 #include <logdepthbuf_fragment> 3350 #include <map_fragment> 3351 #include <color_fragment> 3352 #include <alphamap_fragment> 3353 #include <alphatest_fragment> 3354 #include <alphahash_fragment> 3355 #include <roughnessmap_fragment> 3356 #include <metalnessmap_fragment> 3357 #include <normal_fragment_begin> 3358 #include <normal_fragment_maps> 3359 #include <clearcoat_normal_fragment_begin> 3360 #include <clearcoat_normal_fragment_maps> 3361 #include <emissivemap_fragment> 3362 #include <lights_physical_fragment> 3363 #include <lights_fragment_begin> 3364 #include <lights_fragment_maps> 3365 #include <lights_fragment_end> 3366 #include <aomap_fragment> 3367 vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse; 3368 vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular; 3369 #include <transmission_fragment> 3370 vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance; 3371 #ifdef USE_SHEEN 3372 3373 outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect; 3374 3375 #endif 3376 #ifdef USE_CLEARCOAT 3377 float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) ); 3378 vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc ); 3379 outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat; 3380 #endif 3381 #include <opaque_fragment> 3382 #include <tonemapping_fragment> 3383 #include <colorspace_fragment> 3384 #include <fog_fragment> 3385 #include <premultiplied_alpha_fragment> 3386 #include <dithering_fragment> 3387}`,RC=`#define TOON 3388varying vec3 vViewPosition; 3389#include <common> 3390#include <batching_pars_vertex> 3391#include <uv_pars_vertex> 3392#include <displacementmap_pars_vertex> 3393#include <color_pars_vertex> 3394#include <fog_pars_vertex> 3395#include <normal_pars_vertex> 3396#include <morphtarget_pars_vertex> 3397#include <skinning_pars_vertex> 3398#include <shadowmap_pars_vertex> 3399#include <logdepthbuf_pars_vertex> 3400#include <clipping_planes_pars_vertex> 3401void main() { 3402 #include <uv_vertex> 3403 #include <color_vertex> 3404 #include <morphinstance_vertex> 3405 #include <morphcolor_vertex> 3406 #include <batching_vertex> 3407 #include <beginnormal_vertex> 3408 #include <morphnormal_vertex> 3409 #include <skinbase_vertex> 3410 #include <skinnormal_vertex> 3411 #include <defaultnormal_vertex> 3412 #include <normal_vertex> 3413 #include <begin_vertex> 3414 #include <morphtarget_vertex> 3415 #include <skinning_vertex> 3416 #include <displacementmap_vertex> 3417 #include <project_vertex> 3418 #include <logdepthbuf_vertex> 3419 #include <clipping_planes_vertex> 3420 vViewPosition = - mvPosition.xyz; 3421 #include <worldpos_vertex> 3422 #include <shadowmap_vertex> 3423 #include <fog_vertex> 3424}`,CC=`#define TOON 3425uniform vec3 diffuse; 3426uniform vec3 emissive; 3427uniform float opacity; 3428#include <common> 3429#include <dithering_pars_fragment> 3430#include <color_pars_fragment> 3431#include <uv_pars_fragment> 3432#include <map_pars_fragment> 3433#include <alphamap_pars_fragment> 3434#include <alphatest_pars_fragment> 3435#include <alphahash_pars_fragment> 3436#include <aomap_pars_fragment> 3437#include <lightmap_pars_fragment> 3438#include <emissivemap_pars_fragment> 3439#include <gradientmap_pars_fragment> 3440#include <fog_pars_fragment> 3441#include <bsdfs> 3442#include <lights_pars_begin> 3443#include <normal_pars_fragment> 3444#include <lights_toon_pars_fragment> 3445#include <shadowmap_pars_fragment> 3446#include <bumpmap_pars_fragment> 3447#include <normalmap_pars_fragment> 3448#include <logdepthbuf_pars_fragment> 3449#include <clipping_planes_pars_fragment> 3450void main() { 3451 vec4 diffuseColor = vec4( diffuse, opacity ); 3452 #include <clipping_planes_fragment> 3453 ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) ); 3454 vec3 totalEmissiveRadiance = emissive; 3455 #include <logdepthbuf_fragment> 3456 #include <map_fragment> 3457 #include <color_fragment> 3458 #include <alphamap_fragment> 3459 #include <alphatest_fragment> 3460 #include <alphahash_fragment> 3461 #include <normal_fragment_begin> 3462 #include <normal_fragment_maps> 3463 #include <emissivemap_fragment> 3464 #include <lights_toon_fragment> 3465 #include <lights_fragment_begin> 3466 #include <lights_fragment_maps> 3467 #include <lights_fragment_end> 3468 #include <aomap_fragment> 3469 vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance; 3470 #include <opaque_fragment> 3471 #include <tonemapping_fragment> 3472 #include <colorspace_fragment> 3473 #include <fog_fragment> 3474 #include <premultiplied_alpha_fragment> 3475 #include <dithering_fragment> 3476}`,IC=`uniform float size; 3477uniform float scale; 3478#include <common> 3479#include <color_pars_vertex> 3480#include <fog_pars_vertex> 3481#include <morphtarget_pars_vertex> 3482#include <logdepthbuf_pars_vertex> 3483#include <clipping_planes_pars_vertex> 3484#ifdef USE_POINTS_UV 3485 varying vec2 vUv; 3486 uniform mat3 uvTransform; 3487#endif 3488void main() { 3489 #ifdef USE_POINTS_UV 3490 vUv = ( uvTransform * vec3( uv, 1 ) ).xy; 3491 #endif 3492 #include <color_vertex> 3493 #include <morphinstance_vertex> 3494 #include <morphcolor_vertex> 3495 #include <begin_vertex> 3496 #include <morphtarget_vertex> 3497 #include <project_vertex> 3498 gl_PointSize = size; 3499 #ifdef USE_SIZEATTENUATION 3500 bool isPerspective = isPerspectiveMatrix( projectionMatrix ); 3501 if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z ); 3502 #endif 3503 #include <logdepthbuf_vertex> 3504 #include <clipping_planes_vertex> 3505 #include <worldpos_vertex> 3506 #include <fog_vertex> 3507}`,DC=`uniform vec3 diffuse; 3508uniform float opacity; 3509#include <common> 3510#include <color_pars_fragment> 3511#include <map_particle_pars_fragment> 3512#include <alphatest_pars_fragment> 3513#include <alphahash_pars_fragment> 3514#include <fog_pars_fragment> 3515#include <logdepthbuf_pars_fragment> 3516#include <clipping_planes_pars_fragment> 3517void main() { 3518 vec4 diffuseColor = vec4( diffuse, opacity ); 3519 #include <clipping_planes_fragment> 3520 vec3 outgoingLight = vec3( 0.0 ); 3521 #include <logdepthbuf_fragment> 3522 #include <map_particle_fragment> 3523 #include <color_fragment> 3524 #include <alphatest_fragment> 3525 #include <alphahash_fragment> 3526 outgoingLight = diffuseColor.rgb; 3527 #include <opaque_fragment> 3528 #include <tonemapping_fragment> 3529 #include <colorspace_fragment> 3530 #include <fog_fragment> 3531 #include <premultiplied_alpha_fragment> 3532}`,NC=`#include <common> 3533#include <batching_pars_vertex> 3534#include <fog_pars_vertex> 3535#include <morphtarget_pars_vertex> 3536#include <skinning_pars_vertex> 3537#include <logdepthbuf_pars_vertex> 3538#include <shadowmap_pars_vertex> 3539void main() { 3540 #include <batching_vertex> 3541 #include <beginnormal_vertex> 3542 #include <morphinstance_vertex> 3543 #include <morphnormal_vertex> 3544 #include <skinbase_vertex> 3545 #include <skinnormal_vertex> 3546 #include <defaultnormal_vertex> 3547 #include <begin_vertex> 3548 #include <morphtarget_vertex> 3549 #include <skinning_vertex> 3550 #include <project_vertex> 3551 #include <logdepthbuf_vertex> 3552 #include <worldpos_vertex> 3553 #include <shadowmap_vertex> 3554 #include <fog_vertex> 3555}`,LC=`uniform vec3 color; 3556uniform float opacity; 3557#include <common> 3558#include <fog_pars_fragment> 3559#include <bsdfs> 3560#include <lights_pars_begin> 3561#include <logdepthbuf_pars_fragment> 3562#include <shadowmap_pars_fragment> 3563#include <shadowmask_pars_fragment> 3564void main() { 3565 #include <logdepthbuf_fragment> 3566 gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) ); 3567 #include <tonemapping_fragment> 3568 #include <colorspace_fragment> 3569 #include <fog_fragment> 3570 #include <premultiplied_alpha_fragment> 3571}`,PC=`uniform float rotation; 3572uniform vec2 center; 3573#include <common> 3574#include <uv_pars_vertex> 3575#include <fog_pars_vertex> 3576#include <logdepthbuf_pars_vertex> 3577#include <clipping_planes_pars_vertex> 3578void main() { 3579 #include <uv_vertex> 3580 vec4 mvPosition = modelViewMatrix[ 3 ]; 3581 vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) ); 3582 #ifndef USE_SIZEATTENUATION 3583 bool isPerspective = isPerspectiveMatrix( projectionMatrix ); 3584 if ( isPerspective ) scale *= - mvPosition.z; 3585 #endif 3586 vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale; 3587 vec2 rotatedPosition; 3588 rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; 3589 rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; 3590 mvPosition.xy += rotatedPosition; 3591 gl_Position = projectionMatrix * mvPosition; 3592 #include <logdepthbuf_vertex> 3593 #include <clipping_planes_vertex> 3594 #include <fog_vertex> 3595}`,OC=`uniform vec3 diffuse; 3596uniform float opacity; 3597#include <common> 3598#include <uv_pars_fragment> 3599#include <map_pars_fragment> 3600#include <alphamap_pars_fragment> 3601#include <alphatest_pars_fragment> 3602#include <alphahash_pars_fragment> 3603#include <fog_pars_fragment> 3604#include <logdepthbuf_pars_fragment> 3605#include <clipping_planes_pars_fragment> 3606void main() { 3607 vec4 diffuseColor = vec4( diffuse, opacity ); 3608 #include <clipping_planes_fragment> 3609 vec3 outgoingLight = vec3( 0.0 ); 3610 #include <logdepthbuf_fragment> 3611 #include <map_fragment> 3612 #include <alphamap_fragment> 3613 #include <alphatest_fragment> 3614 #include <alphahash_fragment> 3615 outgoingLight = diffuseColor.rgb; 3616 #include <opaque_fragment> 3617 #include <tonemapping_fragment> 3618 #include <colorspace_fragment> 3619 #include <fog_fragment> 3620}`,Ct={alphahash_fragment:n2,alphahash_pars_fragment:i2,alphamap_fragment:a2,alphamap_pars_fragment:r2,alphatest_fragment:s2,alphatest_pars_fragment:o2,aomap_fragment:l2,aomap_pars_fragment:c2,batching_pars_vertex:u2,batching_vertex:f2,begin_vertex:d2,beginnormal_vertex:h2,bsdfs:p2,iridescence_fragment:m2,bumpmap_pars_fragment:g2,clipping_planes_fragment:v2,clipping_planes_pars_fragment:x2,clipping_planes_pars_vertex:y2,clipping_planes_vertex:b2,color_fragment:S2,color_pars_fragment:E2,color_pars_vertex:M2,color_vertex:A2,common:w2,cube_uv_reflection_fragment:T2,defaultnormal_vertex:R2,displacementmap_pars_vertex:C2,displacementmap_vertex:I2,emissivemap_fragment:D2,emissivemap_pars_fragment:N2,colorspace_fragment:L2,colorspace_pars_fragment:P2,envmap_fragment:O2,envmap_common_pars_fragment:B2,envmap_pars_fragment:U2,envmap_pars_vertex:k2,envmap_physical_pars_fragment:W2,envmap_vertex:z2,fog_vertex:_2,fog_pars_vertex:H2,fog_fragment:F2,fog_pars_fragment:V2,gradientmap_pars_fragment:G2,lightmap_pars_fragment:j2,lights_lambert_fragment:Y2,lights_lambert_pars_fragment:X2,lights_pars_begin:Z2,lights_toon_fragment:Q2,lights_toon_pars_fragment:q2,lights_phong_fragment:K2,lights_phong_pars_fragment:J2,lights_physical_fragment:$2,lights_physical_pars_fragment:eR,lights_fragment_begin:tR,lights_fragment_maps:nR,lights_fragment_end:iR,logdepthbuf_fragment:aR,logdepthbuf_pars_fragment:rR,logdepthbuf_pars_vertex:sR,logdepthbuf_vertex:oR,map_fragment:lR,map_pars_fragment:cR,map_particle_fragment:uR,map_particle_pars_fragment:fR,metalnessmap_fragment:dR,metalnessmap_pars_fragment:hR,morphinstance_vertex:pR,morphcolor_vertex:mR,morphnormal_vertex:gR,morphtarget_pars_vertex:vR,morphtarget_vertex:xR,normal_fragment_begin:yR,normal_fragment_maps:bR,normal_pars_fragment:SR,normal_pars_vertex:ER,normal_vertex:MR,normalmap_pars_fragment:AR,clearcoat_normal_fragment_begin:wR,clearcoat_normal_fragment_maps:TR,clearcoat_pars_fragment:RR,iridescence_pars_fragment:CR,opaque_fragment:IR,packing:DR,premultiplied_alpha_fragment:NR,project_vertex:LR,dithering_fragment:PR,dithering_pars_fragment:OR,roughnessmap_fragment:BR,roughnessmap_pars_fragment:UR,shadowmap_pars_fragment:kR,shadowmap_pars_vertex:zR,shadowmap_vertex:_R,shadowmask_pars_fragment:HR,skinbase_vertex:FR,skinning_pars_vertex:VR,skinning_vertex:GR,skinnormal_vertex:jR,specularmap_fragment:YR,specularmap_pars_fragment:XR,tonemapping_fragment:ZR,tonemapping_pars_fragment:WR,transmission_fragment:QR,transmission_pars_fragment:qR,uv_pars_fragment:KR,uv_pars_vertex:JR,uv_vertex:$R,worldpos_vertex:eC,background_vert:tC,background_frag:nC,backgroundCube_vert:iC,backgroundCube_frag:aC,cube_vert:rC,cube_frag:sC,depth_vert:oC,depth_frag:lC,distance_vert:cC,distance_frag:uC,equirect_vert:fC,equirect_frag:dC,linedashed_vert:hC,linedashed_frag:pC,meshbasic_vert:mC,meshbasic_frag:gC,meshlambert_vert:vC,meshlambert_frag:xC,meshmatcap_vert:yC,meshmatcap_frag:bC,meshnormal_vert:SC,meshnormal_frag:EC,meshphong_vert:MC,meshphong_frag:AC,meshphysical_vert:wC,meshphysical_frag:TC,meshtoon_vert:RC,meshtoon_frag:CC,points_vert:IC,points_frag:DC,shadow_vert:NC,shadow_frag:LC,sprite_vert:PC,sprite_frag:OC},Xe={common:{diffuse:{value:new qt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new Rt}},envmap:{envMap:{value:null},envMapRotation:{value:new Rt},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new Rt}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new Rt}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new Rt},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new Rt},normalScale:{value:new kt(1,1)}}
vendor: 2,287 bytes, line 3620
3620,displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new Rt},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new Rt}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new Rt}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new Rt}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new qt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new qt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0},uvTransform:{value:new Rt}},sprite:{diffuse:{value:new qt(16777215)},opacity:{value:1},center:{value:new kt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new Rt},alphaMap:{value:null},alphaMapTransform:{value:new Rt},alphaTest:{value:0}}},$i={basic:{uniforms:Xn([Xe.common,Xe.specularmap,Xe.envmap,Xe.aomap,Xe.lightmap,Xe.fog]),vertexShader:Ct.meshbasic_vert,fragmentShader:Ct.meshbasic_frag},lambert:{uniforms:Xn([Xe.common,Xe.specularmap,Xe.envmap,Xe.aomap,Xe.lightmap,Xe.emissivemap,Xe.bumpmap,Xe.normalmap,Xe.dis
3620placementmap,Xe.fog,Xe.lights,{emissive:{value:new qt(0)},envMapIntensity:{value:1}}]),vertexShader:Ct.meshlambert_vert,fragmentShader:Ct.meshlambert_frag},phong:{uniforms:Xn([Xe.common,Xe.specularmap,Xe.envmap,Xe.aomap,Xe.lightmap,Xe.emissivemap,Xe.bumpmap,Xe.normalmap,Xe.displacementmap,Xe.fog,Xe.lights,{emissive:{value:new qt(0)},specular:{value:new qt(1118481)},shininess:{value:30},envMapIntensity:{value:1}}]),vertexShader:Ct.meshphong_vert,fragmentShader:Ct.meshphong_frag},standard:{uniforms:Xn([Xe.common,Xe.envmap,Xe.aomap,Xe.lightmap,Xe.emissivemap,Xe.bumpmap,Xe.normalmap,Xe.displacementmap,Xe.roughnessmap,Xe.metalnessmap,Xe.fog,Xe.lights,{emissive:{value:new qt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Ct.meshphysical_vert,fragmentShader:Ct.meshphysical_frag},toon:{uniforms:Xn([Xe.common,Xe.aomap,Xe.lightmap,Xe.emissivemap,Xe.bumpmap,Xe.normalmap,Xe.displacementmap,Xe.gradientmap,Xe.fog,Xe.lights,{emissive:{value:new qt(0)}}]),vertexShader:Ct.meshtoon_vert,fragmentShader:Ct.meshtoon_frag}
vendor: 4,121 bytes, line 3620
3620,matcap:{uniforms:Xn([Xe.common,Xe.bumpmap,Xe.normalmap,Xe.displacementmap,Xe.fog,{matcap:{value:null}}]),vertexShader:Ct.meshmatcap_vert,fragmentShader:Ct.meshmatcap_frag},points:{uniforms:Xn([Xe.points,Xe.fog]),vertexShader:Ct.points_vert,fragmentShader:Ct.points_frag},dashed:{uniforms:Xn([Xe.common,Xe.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Ct.linedashed_vert,fragmentShader:Ct.linedashed_frag},depth:{uniforms:Xn([Xe.common,Xe.displacementmap]),vertexShader:Ct.depth_vert,fragmentShader:Ct.depth_frag},normal:{uniforms:Xn([Xe.common,Xe.bumpmap,Xe.normalmap,Xe.displacementmap,{opacity:{value:1}}]),vertexShader:Ct.meshnormal_vert,fragmentShader:Ct.meshnormal_frag},sprite:{uniforms:Xn([Xe.sprite,Xe.fog]),vertexShader:Ct.sprite_vert,fragmentShader:Ct.sprite_frag},background:{uniforms:{uvTransform:{value:new Rt},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Ct.background_vert,fragmentShader:Ct.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new Rt}},vertexShader:Ct.backgroundCube_vert,fragmentShader:Ct.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Ct.cube_vert,fragmentShader:Ct.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Ct.equirect_vert,fragmentShader:Ct.equirect_frag},distance:{uniforms:Xn([Xe.common,Xe.displacementmap,{referencePosition:{value:new he},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Ct.distance_vert,fragmentShader:Ct.distance_frag},shadow:{uniforms:Xn([Xe.lights,Xe.fog,{color:{value:new qt(0)},opacity:{value:1}}]),vertexShader:Ct.shadow_vert,fragmentShader:Ct.shadow_frag}};$i.physical={uniforms:Xn([$i.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new Rt},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new Rt},clearcoatNormalScale:{value:new kt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new Rt},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new Rt},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new Rt},sheen:{value:0},sheenColor:{value:new qt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new Rt},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new Rt},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new Rt},transmissionSamplerSize:{value:new kt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new Rt},attenuationDistance:{value:0},attenuationColor:{value:new qt(0)},specularColor:{value:new qt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new Rt},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new Rt},anisotropyVector:{value:new kt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new Rt}}]),vertexShader:Ct.meshphysical_vert,fragmentShader:Ct.meshphysical_frag};const Xu={r:0,b:0,g:0},Jr=new Fa,BC=new Sn;function UC(a,e,i,r,o,c){const u=new qt(0);let f=o===!0?0:1,h,p,x=null,g=0,v=null;function y(R){let C=R.isScene===!0?R.background:null;if(C&&C.isTexture){const I=R.backgroundBlurriness>0;C=e.get(C,I)}return C}function M(R){let C=!1;const I=y(R);I===null?E(u,f):I&&I.isColor&&(E(I,1),C=!0);const U=a.xr.getEnvironmentBlendMode();U==="additive"?i.buffers.color.setClear(0,0,0,1,c):U==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,c),(a.autoClear||C)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),a.clear(a.autoClearColor,a.autoClearDepth,a.autoClearStencil))}function T(R,C){const I=y(C);I&&(I.isCubeTexture||I.mapping===mf)?(p===void 0&&(p=new sa(new oc(1,1,1),new ji({name:"Backgroun
3620dCubeMaterial",uniforms:Io($i.backgroundCube.uniforms),vertexShader:$i.backgroundCube.vertexShader,fragmentShader:$i.backgroundCube.fragmentShader,side:ni,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),p.geometry.deleteAttribute("normal"),p.geometry.deleteAttribute("uv"),p.onBeforeRender=function(U,B,D){this.matrixWorld.copyPosition(D.matrixWorld)},Object.defineProperty(p.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(p)),Jr.copy(C.backgroundRotation),Jr.x*=-1,Jr.y*=-1,Jr.z*=-1,I.isCubeTexture&&I.isRenderTargetTexture===!1&&(Jr.y*=-1,Jr.z*=-1),p.material.uniforms.envMap.value=I,p.material.uniforms.flipEnvMap.value=I.isCubeTexture&&I.isRenderTargetTexture===!1?-1:1,p.material.uniforms.backgroundBlurriness.value=C.backgroundBlurriness,p.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,p.material.uniforms.backgroundRotation.value.setFromMatrix4(BC.makeRotationFromEuler(Jr)),p.material.toneMapped=zt.getTransfer(I.colorSpace)!==Xt,(x!==I||g!==I.version||v!==a.toneMapping)&&(p.material.needsUpdate=!0,x=I,g=I.version,v=a.toneMapping),p.layers.enableAll(),R.unshift(p,p.geometry,p.material,0,0,null)):I&&I.isTexture&&(h===void 0&&(h=new sa(new lc(2,2),new ji({name:"BackgroundMaterial",uniforms:Io($i.background.uniforms),vertexShader:$i.background.vertexShader,fragmentShader:$i.background.fragmentShader,side:wr,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),h.geometry.deleteAttribute("normal"),Object.defineProperty(h.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(h)),h.material.uniforms.t2D.value=I,h.material.uniforms.backgroundIntensity.value=C.backgroundIntensity,h.material.toneMapped=zt.getTransfer(I.colorSpace)!==Xt,I.matrixAutoUpdate===!0&&I.updateMatrix(),h.material.uniforms.uvTransform.value.copy(I.matrix),(x!==I||g!==I.version||v!==a.toneMapping)&&(h.material.needsUpdate=!0,x=I,g=I.version,v=a.toneMapping),h.layers.enableAll(),R.unshift(h,h.geometry,h.material,0,0,null))}function E(R,C){R.getRGB(Xu,XS(a)),i.buffers.color.setClear(Xu.r,Xu.g,Xu.b,C,c)}function b(){p!==void 0&&(p.geometry.dispose(),p.material.dispose(),p=void 0),h!==void 0&&(h.geometry.dispose(),h.material.dispose(),h=void 0)}return{getClearColor:function(){return u},setClearColor:function(R,C=1){u.set(R),f=C,E(u,f)},getClearAlpha:function(){return f},setClearAlpha:function(R){f=R,E(u,f)},render:M,addToRenderList:T,dispose:b}}function kC(a,e){const i=a.getParameter(a.MAX_VERTEX_ATTRIBS),r={},o=v(null);let c=o,u=!1;function f(k,G,Y,ee,Z){let _=!1;const F=g(k,ee,Y,G);c!==F&&(c=F,p(c.object)),_=y(k,ee,Y,Z),_&&M(k,ee,Y,Z),Z!==null&&e.update(Z,a.ELEMENT_ARRAY_BUFFER),(_||u)&&(u=!1,I(k,G,Y,ee),Z!==null&&a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,e.get(Z).buffer))}function h(){return a.createVertexArray()}function p(k){return a.bindVertexArray(k)}function x(k){return a.deleteVertexArray(k)}function g(k,G,Y,ee){const Z=ee.wireframe===!0;let _=r[G.id];_===void 0&&(_={},r[G.id]=_);const F=k.isInstancedMesh===!0?k.id:0;let se=_[F];se===void 0&&(se={},_[F]=se);let fe=se[Y.id];fe===void 0&&(fe={},se[Y.id]=fe);let ae=fe[Z];return ae===void 0&&(ae=v(h()),fe[Z]=ae),ae}function v(k){const G=[],Y=[],ee=[];for(let Z=0;Z<i;Z++)G[Z]=0,Y[Z]=0,ee[Z]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:G,enabledAttributes:Y,attributeDivisors:ee,object:k,attributes:{},index:null}}function y(k,G,Y,ee){const Z=c.attributes,_=G.attributes;let F=0;const se=Y.getAttributes();for(const fe in se)if(se[fe].location>=0){const H=Z[fe];let Q=_[fe];if(Q===void 0&&(fe==="instanceMatrix"&&k.instanceMatrix&&(Q=k.instanceMatrix),fe==="instanceColor"&&k.instanceColor&&(Q=k.instanceColor)),H===void 0||H.attribute!==Q||Q&&H.data!==Q.data)return!0;F++}return c.attributesNum!==F||c.index!==ee}function M(k,G,Y,ee){const Z={},_=G.attributes;let F=0;const se=Y.getAttributes();for(const fe in se)if(se[fe].location>=0){let H=_[fe];H===void 0&&(fe==="instanceMatrix"&&k.instanceMatrix&&(H=k.instanceMatrix),fe==="instanceColor"&&k.instanceColor&&(H=k.instanceColor));const Q={};Q.attribute=H,H&&H.data&&(Q.data=H.data),Z[fe]=Q,F++}c.attributes=Z,c.attributesNum=F,c.index=ee}function T(){const k=c.newAttributes;for(let G=0,Y=k.length;G<Y;G++)k[G]=0}function E(k){b(k,0)}function b(k,G){const Y=c.newAttributes,ee=c.enabledAttributes,Z=c.attributeDivisors;Y[k]=1,ee[k]===0&&(a.enableVertexAttribArray(k),ee[k]=1),Z[k]!==G&&(a.vertexAttribDivisor(k,G),Z[k]=G)}function R(){const k=c.newAttributes,G=c.enabledAttributes;for(let Y=0,ee=G.length;Y<ee;Y++)G[Y]!==k[Y]&&(a.disableVertexAttribArray(Y),G[Y]=0)}function C(k,G,Y,ee,Z,_,F){F===!0?a.vertexAttribIPointer(k,G,Y,Z,_):a.vertexAttribPointer(k,G,Y,ee,Z,_)}function I(k,G,Y,ee){T();const Z=ee.attributes,_=Y.getAttributes(),F=G.defaultAttributeValues;for(const se in _){const fe=_[se];if(fe.location>=0){let ae=Z[se];if(ae===void 0&&(se==="instanceMatrix"&&k.instanceMatrix&&(ae=k.instanceMatrix),se==="instanceColor"&&k.instanceColor&&(ae=k.instanceColor)),ae!==void 0){const H=ae.normalized,Q=ae.itemSize,Se=e.get(ae);if(Se===void 0)continue;const ye=Se.buffer,Ce=Se.type,$=Se.bytesPerElement,me=Ce===a.INT||Ce===a.UNSIGNED_INT||ae.gpuType===Dm;if(ae.isInterleavedBufferAttribute){const Me=ae.data,Te=Me.stride,Ze=ae.offset;if(Me.isInstancedInterleavedBuffer){for(let tt=0;tt<fe.locationSize;tt++)b(fe.location+tt,Me.meshPerAttribute);k.isInstancedMesh!==!0&&ee._maxInstanceCount===void 0&&(ee._maxInstanceCount=Me.meshPerAttribute*Me.count)}else for(let tt=0;tt<fe.locationSize;tt++)E(fe.location+tt);a.bindBuffer(a.ARRAY_BUFFER,ye);for(let tt=0;tt<fe.locationSize;tt++)C(fe.location+tt,Q/fe.locationSize,Ce,H,Te*$,(Ze+Q/fe.locationSize*tt)*$,me)}else{if(ae.isInstancedBufferAttribute){for(let Me=0;Me<fe.locationSize;Me++)b(fe.location+Me,ae.meshPerAttribute);k.isInstancedMesh!==!0&&ee._maxInstanceCount===void 0&&(ee._maxInstanceCount=ae.meshPerAttribute*ae.count)}else for(let Me=0;Me<fe.locationSize;Me++)E(fe.location+Me);a.bindBuffer(a.ARRAY_BUFFER,ye);for(let Me=0;Me<fe.locationSize;Me++)C(fe.location+Me,Q/fe.locationSize,Ce,H,Q*$,Q/fe.locationSize*Me*$,me)}}else if(F!==void 0){const H=F[se];if(H!==void 0)switch(H.length){case 2:a.vertexAttrib2fv(fe.location,H);break;case 3:a.vertexAttrib3fv(fe.location,H);break;case 4:a.vertexAttrib4fv(fe.location,H);break;default:a.vertexAttrib1fv(fe.location,H)}}}}R()}function U(){L();for(const k in r){const G=r[k];for(const Y in G){const ee=G[Y];for(const Z in ee){const _=ee[Z];for(const F in _)x(_[F].object),delete _[F];delete ee[Z]}}delete r[k]}}function B(k){if(r[k.id]===void 0)return;const G=r[k.id];for(const Y in G){const ee=G[Y];for(const Z in ee){const _=ee[Z];for(const F in _)x(_[F].object),delete _[F];delete ee[Z]}}delete r[k.id]}function D(k){for(const G in r){const Y=r[G];for(const ee in Y){const Z=Y[ee];if(Z[k.id]===void 0)continue;const _=Z[k.id];for(const F in _)x(_[F].object),delete _[F];delete Z[k.id]}}}function A(k){for(const G in r){const Y=r[G],ee=k.isInstancedMesh===!0?k.id:0,Z=Y[ee];if(Z!==void 0){for(const _ in Z){const F=Z[_];for(const se in F)x(F[se].object),delete F[se];delete Z[_]}delete Y[ee],Object.keys(Y).length===0&&delete r[G]}}}function L(){X(),u=!0,c!==o&&(c=o,p(c.object))}function X(){o.geometry=null,o.program=null,o.wireframe=!1}return{setup:f,reset:L,resetDefaultState:X,dispose:U,releaseStatesOfGeometry:B,releaseStatesOfObject:A,releaseStatesOfProgram:D,initAttributes:T,enableAttribute:E,disableUnusedAttributes:R}}function zC(a,e,i){let r;function o(p){r=p}function c(p,x){a.drawArrays(r,p,x),i.update(x,r,1)}function u(p,x,g){g!==0&&(a.drawArraysInstanced(r,p,x,g),i.update(x,r,g))}function f(p,x,g){if(g===0)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(r,p,0,x,0,g);let y=0;for(let M=0;M<g;M++)y+=x[M];i.update(y,r,1)}function h(p,x,g,v){if(g===0)return;const y=e.get("WEBGL_multi_draw");if(y===null)for(let M=0;M<p.length;M++)u(p[M],x[M],v[M]);
vendor: 6,650 bytes, line 3620
3620else{y.multiDrawArraysInstancedWEBGL(r,p,0,x,0,v,0,g);let M=0;for(let T=0;T<g;T++)M+=x[T]*v[T];i.update(M,r,1)}}this.setMode=o,this.render=c,this.renderInstances=u,this.renderMultiDraw=f,this.renderMultiDrawInstances=h}function _C(a,e,i,r){let o;function c(){if(o!==void 0)return o;if(e.has("EXT_texture_filter_anisotropic")===!0){const D=e.get("EXT_texture_filter_anisotropic");o=a.getParameter(D.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else o=0;return o}function u(D){return!(D!==Ii&&r.convert(D)!==a.getParameter(a.IMPLEMENTATION_COLOR_READ_FORMAT))}function f(D){const A=D===_a&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(D!==Ri&&r.convert(D)!==a.getParameter(a.IMPLEMENTATION_COLOR_READ_TYPE)&&D!==ea&&!A)}function h(D){if(D==="highp"){if(a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.HIGH_FLOAT).precision>0&&a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.HIGH_FLOAT).precision>0)return"highp";D="mediump"}return D==="mediump"&&a.getShaderPrecisionFormat(a.VERTEX_SHADER,a.MEDIUM_FLOAT).precision>0&&a.getShaderPrecisionFormat(a.FRAGMENT_SHADER,a.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let p=i.precision!==void 0?i.precision:"highp";const x=h(p);x!==p&&(bt("WebGLRenderer:",p,"not supported, using",x,"instead."),p=x);const g=i.logarithmicDepthBuffer===!0,v=i.reversedDepthBuffer===!0&&e.has("EXT_clip_control"),y=a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS),M=a.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),T=a.getParameter(a.MAX_TEXTURE_SIZE),E=a.getParameter(a.MAX_CUBE_MAP_TEXTURE_SIZE),b=a.getParameter(a.MAX_VERTEX_ATTRIBS),R=a.getParameter(a.MAX_VERTEX_UNIFORM_VECTORS),C=a.getParameter(a.MAX_VARYING_VECTORS),I=a.getParameter(a.MAX_FRAGMENT_UNIFORM_VECTORS),U=a.getParameter(a.MAX_SAMPLES),B=a.getParameter(a.SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:c,getMaxPrecision:h,textureFormatReadable:u,textureTypeReadable:f,precision:p,logarithmicDepthBuffer:g,reversedDepthBuffer:v,maxTextures:y,maxVertexTextures:M,maxTextureSize:T,maxCubemapSize:E,maxAttributes:b,maxVertexUniforms:R,maxVaryings:C,maxFragmentUniforms:I,maxSamples:U,samples:B}}function HC(a){const e=this;let i=null,r=0,o=!1,c=!1;const u=new ns,f=new Rt,h={value:null,needsUpdate:!1};this.uniform=h,this.numPlanes=0,this.numIntersection=0,this.init=function(g,v){const y=g.length!==0||v||r!==0||o;return o=v,r=g.length,y},this.beginShadows=function(){c=!0,x(null)},this.endShadows=function(){c=!1},this.setGlobalState=function(g,v){i=x(g,v,0)},this.setState=function(g,v,y){const M=g.clippingPlanes,T=g.clipIntersection,E=g.clipShadows,b=a.get(g);if(!o||M===null||M.length===0||c&&!E)c?x(null):p();else{const R=c?0:r,C=R*4;let I=b.clippingState||null;h.value=I,I=x(M,v,C,y);for(let U=0;U!==C;++U)I[U]=i[U];b.clippingState=I,this.numIntersection=T?this.numPlanes:0,this.numPlanes+=R}};function p(){h.value!==i&&(h.value=i,h.needsUpdate=r>0),e.numPlanes=r,e.numIntersection=0}function x(g,v,y,M){const T=g!==null?g.length:0;let E=null;if(T!==0){if(E=h.value,M!==!0||E===null){const b=y+T*4,R=v.matrixWorldInverse;f.getNormalMatrix(R),(E===null||E.length<b)&&(E=new Float32Array(b));for(let C=0,I=y;C!==T;++C,I+=4)u.copy(g[C]).applyMatrix4(R,f),u.normal.toArray(E,I),E[I+3]=u.constant}h.value=E,h.needsUpdate=!0}return e.numPlanes=T,e.numIntersection=0,E}}const Ar=4,Uy=[.125,.215,.35,.446,.526,.582],ss=20,FC=256,Pl=new Fm,ky=new qt;let cp=null,up=0,fp=0,dp=!1;const VC=new he;class zy{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._backgroundBox=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._blurMaterial=null,this._ggxMaterial=null}fromScene(e,i=0,r=.1,o=100,c={}){const{size:u=256,position:f=VC}=c;cp=this._renderer.getRenderTarget(),up=this._renderer.getActiveCubeFace(),fp=this._renderer.getActiveMipmapLevel(),dp=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(u);const h=this._allocateTargets();return h.depthBuffer=!0,this._sceneToCubeUV(e,r,o,h,f),i>0&&this._blur(h,0,0,i),this._applyPMREM(h),this._cleanup(h),h}fromEquirectangular(e,i=null){return this._fromTexture(e,i)}fromCubemap(e,i=null){return this._fromTexture(e,i)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=Fy(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=Hy(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodMeshes.length;e++)this._lodMeshes[e].geometry.dispose()}_cleanup(e){this._renderer.setRenderTarget(cp,up,fp),this._renderer.xr.enabled=dp,e.scissorTest=!1,po(e,0,0,e.width,e.height)}_fromTexture(e,i){e.mapping===ms||e.mapping===To?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),cp=this._renderer.getRenderTarget(),up=this._renderer.getActiveCubeFace(),fp=this._renderer.getActiveMipmapLevel(),dp=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const r=i||this._allocateTargets();return this._textureToCubeUV(e,r),this._applyPMREM(r),this._cleanup(r),r}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),i=4*this._cubeSize,r={magFilter:Bn,minFilter:Bn,generateMipmaps:!1,type:_a,format:Ii,colorSpace:Co,depthBuffer:!1},o=_y(e,i,r);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==i){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=_y(e,i,r);const{_lodMax:c}=this;({lodMeshes:this._lodMeshes,sizeLods:this._sizeLods,sigmas:this._sigmas}=GC(c)),this._blurMaterial=YC(c,e,i),this._ggxMaterial=jC(c,e,i)}return o}_compileMaterial(e){const i=new sa(new Va,e);this._renderer.compile(i,Pl)}_sceneToCubeUV(e,i,r,o,c){const h=new Hi(90,1,i,r),p=[1,-1,1,1,1,1],x=[1,1,1,-1,-1,-1],g=this._renderer,v=g.autoClear,y=g.toneMapping;g.getClearColor(ky),g.toneMapping=na,g.autoClear=!1,g.state.buffers.depth.getReversed()&&(g.setRenderTarget(o),g.clearDepth(),g.setRenderTarget(null)),this._backgroundBox===null&&(this._backgroundBox=new sa(new oc,new FS({name:"PMREM.Backgroun
3620d",side:ni,depthWrite:!1,depthTest:!1})));const T=this._backgroundBox,E=T.material;let b=!1;const R=e.background;R?R.isColor&&(E.color.copy(R),e.background=null,b=!0):(E.color.copy(ky),b=!0);for(let C=0;C<6;C++){const I=C%3;I===0?(h.up.set(0,p[C],0),h.position.set(c.x,c.y,c.z),h.lookAt(c.x+x[C],c.y,c.z)):I===1?(h.up.set(0,0,p[C]),h.position.set(c.x,c.y,c.z),h.lookAt(c.x,c.y+x[C],c.z)):(h.up.set(0,p[C],0),h.position.set(c.x,c.y,c.z),h.lookAt(c.x,c.y,c.z+x[C]));const U=this._cubeSize;po(o,I*U,C>2?U:0,U,U),g.setRenderTarget(o),b&&g.render(T,h),g.render(e,h)}g.toneMapping=y,g.autoClear=v,e.background=R}_textureToCubeUV(e,i){const r=this._renderer,o=e.mapping===ms||e.mapping===To;o?(this._cubemapMaterial===null&&(this._cubemapMaterial=Fy()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=Hy());const c=o?this._cubemapMaterial:this._equirectMaterial,u=this._lodMeshes[0];u.material=c;const f=c.uniforms;f.envMap.value=e;const h=this._cubeSize;po(i,0,0,3*h,2*h),r.setRenderTarget(i),r.render(u,Pl)}_applyPMREM(e){const i=this._renderer,r=i.autoClear;i.autoClear=!1;const o=this._lodMeshes.length;for(let c=1;c<o;c++)this._applyGGXFilter(e,c-1,c);i.autoClear=r}_applyGGXFilter(e,i,r){const o=this._renderer,c=this._pingPongRenderTarget,u=this._ggxMaterial,f=this._lodMeshes[r];f.material=u;const h=u.uniforms,p=r/(this._lodMeshes.length-1),x=i/(this._lodMeshes.length-1),g=Math.sqrt(p*p-x*x),v=0+p*1.25,y=g*v,{_lodMax:M}=this,T=this._sizeLods[r],E=3*T*(r>M-Ar?r-M+Ar:0),b=4*(this._cubeSize-T);h.envMap.value=e.texture,h.roughness.value=y,h.mipInt.value=M-i,po(c,E,b,3*T,2*T),o.setRenderTarget(c),o.render(f,Pl),h.envMap.value=c.texture,h.roughness.value=0,h.mipInt.value=M-r,po(e,E,b,3*T,2*T),o.setRenderTarget(e),o.render(f,Pl)}_blur(e,i,r,o,c){const u=this._pingPongRenderTarget;this._halfBlur(e,u,i,r,o,"latitudinal",c),this._halfBlur(u,e,r,r,o,"longitudinal",c)}_halfBlur(e,i,r,o,c,u,f){const h=this._renderer,p=this._blurMaterial;u!=="latitudinal"&&u!=="longitudinal"&&Vt("blur direction must be either latitudinal or longitudinal!");const x=3,g=this._lodMeshes[o];g.material=p;const v=p.uniforms,y=this._sizeLods[r]-1,M=isFinite(c)?Math.PI/(2*y):2*Math.PI/(2*ss-1),T=c/M,E=isFinite(c)?1+Math.floor(x*T):ss;E>ss&&bt(`sigmaRadians, ${c}, is too large and will clip, as it requested ${E} samples when the maximum is set to ${ss}`);const b=[];let R=0;for(let D=0;D<ss;++D){const A=D/T,L=Math.exp(-A*A/2);b.push(L),D===0?R+=L:D<E&&(R+=2*L)}for(let D=0;D<b.length;D++)b[D]=b[D]/R;v.envMap.value=e.texture,v.samples.value=E,v.weights.value=b,v.latitudinal.value=u==="latitudinal",f&&(v.poleAxis.value=f);const{_lodMax:C}=this;v.dTheta.value=M,v.mipInt.value=C-r;const I=this._sizeLods[o],U=3*I*(o>C-Ar?o-C+Ar:0),B=4*(this._cubeSize-I);po(i,U,B,3*I,2*I),h.setRenderTarget(i),h.render(g,Pl)}}function GC(a){const e=[],i=[],r=[];let o=a;const c=a-Ar+1+Uy.length;for(let u=0;u<c;u++){const f=Math.pow(2,o);e.push(f);let h=1/f;u>a-Ar?h=Uy[u-a+Ar-1]:u===0&&(h=0),i.push(h);const p=1/(f-2),x=-p,g=1+p,v=[x,x,g,x,g,g,x,x,g,g,x,g],y=6,M=6,T=3,E=2,b=1,R=new Float32Array(T*M*y),C=new Float32Array(E*M*y),I=new Float32Array(b*M*y);for(let B=0;B<y;B++){const D=B%3*2/3-1,A=B>2?0:-1,L=[D,A,0,D+2/3,A,0,D+2/3,A+1,0,D,A,0,D+2/3,A+1,0,D,A+1,0];R.set(L,T*M*B),C.set(v,E*M*B);const X=[B,B,B,B,B,B];I.set(X,b*M*B)}const U=new Va;U.setAttribute("position",new aa(R,T)),U.setAttribute("uv",new aa(C,E)),U.setAttribute("faceIndex",new aa(I,b)),r.push(new sa(U,null)),o>Ar&&o--}return{lodMeshes:r,sizeLods:e,sigmas:i}}function _y(a,e,i){const r=new ia(a,e,i);return r.texture.mapping=mf,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function po(a,e,i,r,o){a.viewport.set(e,i,r,o),a.scissor.set(e,i,r,o)}function jC(a,e,i){return new ji({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:FC,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/i,CUBEUV_MAX_MIP:`${a}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:vf(),fragmentShader:` 3621 3622 precision highp float; 3623 precision highp int; 3624 3625 varying vec3 vOutputDirection; 3626 3627 uniform sampler2D envMap; 3628 uniform float roughness; 3629 uniform float mipInt; 3630 3631 #define ENVMAP_TYPE_CUBE_UV 3632 #include <cube_uv_reflection_fragment> 3633 3634 #define PI 3.14159265359 3635 3636 // Van der Corput radical inverse 3637 float radicalInverse_VdC(uint bits) { 3638 bits = (bits << 16u) | (bits >> 16u); 3639 bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); 3640 bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); 3641 bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); 3642 bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); 3643 return float(bits) * 2.3283064365386963e-10; // / 0x100000000 3644 } 3645 3646 // Hammersley sequence 3647 vec2 hammersley(uint i, uint N) { 3648 return vec2(float(i) / float(N), radicalInverse_VdC(i)); 3649 } 3650 3651 // GGX VNDF importance sampling (Eric Heitz 2018) 3652 // "Sampling the GGX Distribution of Visible Normals" 3653 // https://jcgt.org/published/0007/04/01/ 3654 vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) { 3655 float alpha = roughness * roughness; 3656 3657 // Section 4.1: Orthonormal basis 3658 vec3 T1 = vec3(1.0, 0.0, 0.0); 3659 vec3 T2 = cross(V, T1); 3660 3661 // Section 4.2: Parameterization of projected area 3662 float r = sqrt(Xi.x); 3663 float phi = 2.0 * PI * Xi.y; 3664 float t1 = r * cos(phi); 3665 float t2 = r * sin(phi); 3666 float s = 0.5 * (1.0 + V.z); 3667 t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2; 3668 3669 // Section 4.3: Reprojection onto hemisphere 3670 vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * V; 3671 3672 // Section 3.4: Transform back to ellipsoid configuration 3673 return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z))); 3674 } 3675 3676 void main() { 3677 vec3 N = normalize(vOutputDirection); 3678 vec3 V = N; // Assume view direction equals normal for pre-filtering 3679 3680 vec3 prefilteredColor = vec3(0.0); 3681 float totalWeight = 0.0; 3682 3683 // For very low roughness, just sample the environment directly 3684 if (roughness < 0.001) { 3685 gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0); 3686 return; 3687 } 3688 3689 // Tangent space basis for VNDF sampling 3690 vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); 3691 vec3 tangent = normalize(cross(up, N)); 3692 vec3 bitangent = cross(N, tangent); 3693
3694 for(uint i = 0u; i < uint(GGX_SAMPLES); i++) { 3695 vec2 Xi = hammersley(i, uint(GGX_SAMPLES)); 3696 3697 // For PMREM, V = N, so in tangent space V is always (0, 0, 1) 3698 vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness); 3699 3700 // Transform H back to world space 3701 vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z); 3702 vec3 L = normalize(2.0 * dot(V, H) * H - V); 3703 3704 float NdotL = max(dot(N, L), 0.0); 3705 3706 if(NdotL > 0.0) { 3707 // Sample environment at fixed mip level 3708 // VNDF importance sampling handles the distribution filtering 3709 vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt); 3710 3711 // Weight by NdotL for the split-sum approximation 3712 // VNDF PDF naturally accounts for the visible microfacet distribution 3713 prefilteredColor += sampleColor * NdotL; 3714 totalWeight += NdotL; 3715 } 3716 } 3717 3718 if (totalWeight > 0.0) { 3719 prefilteredColor = prefilteredColor / totalWeight; 3720 } 3721 3722 gl_FragColor = vec4(prefilteredColor, 1.0); 3723 } 3724 `,blending:Ua,depthTest:!1,depthWrite:!1})}function YC(a,e,i){const r=new Float32Array(ss),o=new he(0,1,0);return new ji({name:"SphericalGaussianBlur",defines:{n:ss,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/i,CUBEUV_MAX_MIP:`${a}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:o}},vertexShader:vf(),fragmentShader:` 3725 3726 precision mediump float; 3727 precision mediump int; 3728 3729 varying vec3 vOutputDirection; 3730 3731 uniform sampler2D envMap; 3732 uniform int samples; 3733 uniform float weights[ n ]; 3734 uniform bool latitudinal; 3735 uniform float dTheta; 3736 uniform float mipInt; 3737 uniform vec3 poleAxis; 3738 3739 #define ENVMAP_TYPE_CUBE_UV 3740 #include <cube_uv_reflection_fragment> 3741 3742 vec3 getSample( float theta, vec3 axis ) { 3743 3744 float cosTheta = cos( theta ); 3745 // Rodrigues' axis-angle rotation 3746 vec3 sampleDirection = vOutputDirection * cosTheta 3747 + cross( axis, vOutputDirection ) * sin( theta ) 3748 + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta ); 3749 3750 return bilinearCubeUV( envMap, sampleDirection, mipInt ); 3751 3752 } 3753 3754 void main() { 3755 3756 vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection ); 3757 3758 if ( all( equal( axis, vec3( 0.0 ) ) ) ) { 3759 3760 axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x ); 3761 3762 } 3763 3764 axis = normalize( axis ); 3765 3766 gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 ); 3767 gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis ); 3768 3769 for ( int i = 1; i < n; i++ ) { 3770 3771 if ( i >= samples ) { 3772 3773 break; 3774 3775 } 3776 3777 float theta = dTheta * float( i ); 3778 gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis ); 3779 gl_FragColor.rgb += weights[ i ] * getSample( theta, axis ); 3780 3781 } 3782 3783 } 3784 `,blending:Ua,depthTest:!1,depthWrite:!1})}function Hy(){return new ji({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:vf(),fragmentShader:` 3785 3786 precision mediump float; 3787 precision mediump int; 3788 3789 varying vec3 vOutputDirection; 3790 3791 uniform sampler2D envMap; 3792 3793 #include <common> 3794 3795 void main() { 3796 3797 vec3 outputDirection = normalize( vOutputDirection ); 3798 vec2 uv = equirectUv( outputDirection ); 3799 3800 gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 ); 3801 3802 } 3803 `,blending:Ua,depthTest:!1,depthWrite:!1})}function Fy(){return new ji({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:vf(),fragmentShader:` 3804 3805 precision mediump float; 3806 precision mediump int; 3807 3808 uniform float flipEnvMap; 3809 3810 varying vec3 vOutputDirection; 3811 3812 uniform samplerCube envMap; 3813 3814 void main() { 3815 3816 gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) ); 3817 3818 } 3819 `,blending:Ua,depthTest:!1,depthWrite:!1})}function vf(){return` 3820 3821 precision mediump float; 3822 precision mediump int; 3823 3824 attribute float faceIndex; 3825 3826 varying vec3 vOutputDirection; 3827 3828 // RH coordinate system; PMREM face-indexing convention 3829 vec3 getDirection( vec2 uv, float face ) { 3830 3831 uv = 2.0 * uv - 1.0; 3832 3833 vec3 direction = vec3( uv, 1.0 ); 3834 3835 if ( face == 0.0 ) { 3836 3837 direction = direction.zyx; // ( 1, v, u ) pos x 3838 3839 } else if ( face == 1.0 ) { 3840 3841 direction = direction.xzy; 3842 direction.xz *= -1.0; // ( -u, 1, -v ) pos y 3843 3844 } else if ( face == 2.0 ) { 3845 3846 direction.x *= -1.0; // ( -u, v, 1 ) pos z 3847 3848 } else if ( face == 3.0 ) { 3849 3850 direction = direction.zyx; 3851 direction.xz *= -1.0; // ( -1, v, -u ) neg x 3852 3853 } else if ( face == 4.0 ) { 3854 3855 direction = direction.xzy; 3856 direction.xy *= -1.0; // ( -u, -1, v ) neg y 3857 3858 } else if ( face == 5.0 ) { 3859 3860 direction.z *= -1.0; // ( u, v, -1 ) neg z 3861 3862 } 3863 3864 return direction; 3865 3866 } 3867 3868 void main() { 3869 3870 vOutputDirection = getDirection( uv, faceIndex ); 3871 gl_Position = vec4( position, 1.0 ); 3872 3873 } 3874 `}class QS extends ia{constructor(e=1,i={}
vendor: 25,967 bytes, lines 3874-3990
3874){super(e,e,i),this.isWebGLCubeRenderTarget=!0;const r={width:e,height:e,depth:1},o=[r,r,r,r,r,r];this.texture=new jS(o),this._setTextureOptions(i),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,i){this.texture.type=i.type,this.texture.colorSpace=i.colorSpace,this.texture.generateMipmaps=i.generateMipmaps,this.texture.minFilter=i.minFilter,this.texture.magFilter=i.magFilter;const r={uniforms:{tEquirect:{value:null}},vertexShader:` 3875 3876 varying vec3 vWorldDirection; 3877 3878 vec3 transformDirection( in vec3 dir, in mat4 matrix ) { 3879 3880 return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz ); 3881 3882 } 3883 3884 void main() { 3885 3886 vWorldDirection = transformDirection( position, modelMatrix ); 3887 3888 #include <begin_vertex> 3889 #include <project_vertex> 3890 3891 } 3892 `,fragmentShader:` 3893 3894 uniform sampler2D tEquirect; 3895 3896 varying vec3 vWorldDirection; 3897 3898 #include <common> 3899 3900 void main() { 3901 3902 vec3 direction = normalize( vWorldDirection ); 3903 3904 vec2 sampleUV = equirectUv( direction ); 3905 3906 gl_FragColor = texture2D( tEquirect, sampleUV ); 3907 3908 } 3909 `},o=new oc(5,5,5),c=new ji({name:"CubemapFromEquirect",uniforms:Io(r.uniforms),vertexShader:r.vertexShader,fragmentShader:r.fragmentShader,side:ni,blending:Ua});c.uniforms.tEquirect.value=i;const u=new sa(o,c),f=i.minFilter;return i.minFilter===os&&(i.minFilter=Bn),new KT(1,10,this).update(e,u),i.minFilter=f,u.geometry.dispose(),u.material.dispose(),this}clear(e,i=!0,r=!0,o=!0){const c=e.getRenderTarget();for(let u=0;u<6;u++)e.setRenderTarget(this,u),e.clear(i,r,o);e.setRenderTarget(c)}}function XC(a){let e=new WeakMap,i=new WeakMap,r=null;function o(v,y=!1){return v==null?null:y?u(v):c(v)}function c(v){if(v&&v.isTexture){const y=v.mapping;if(y===Bh||y===Uh)if(e.has(v)){const M=e.get(v).texture;return f(M,v.mapping)}else{const M=v.image;if(M&&M.height>0){const T=new QS(M.height);return T.fromEquirectangularTexture(a,v),e.set(v,T),v.addEventListener("dispose",p),f(T.texture,v.mapping)}else return null}}return v}function u(v){if(v&&v.isTexture){const y=v.mapping,M=y===Bh||y===Uh,T=y===ms||y===To;if(M||T){let E=i.get(v);const b=E!==void 0?E.texture.pmremVersion:0;if(v.isRenderTargetTexture&&v.pmremVersion!==b)return r===null&&(r=new zy(a)),E=M?r.fromEquirectangular(v,E):r.fromCubemap(v,E),E.texture.pmremVersion=v.pmremVersion,i.set(v,E),E.texture;if(E!==void 0)return E.texture;{const R=v.image;return M&&R&&R.height>0||T&&R&&h(R)?(r===null&&(r=new zy(a)),E=M?r.fromEquirectangular(v):r.fromCubemap(v),E.texture.pmremVersion=v.pmremVersion,i.set(v,E),v.addEventListener("dispose",x),E.texture):null}}}return v}function f(v,y){return y===Bh?v.mapping=ms:y===Uh&&(v.mapping=To),v}function h(v){let y=0;const M=6;for(let T=0;T<M;T++)v[T]!==void 0&&y++;return y===M}function p(v){const y=v.target;y.removeEventListener("dispose",p);const M=e.get(y);M!==void 0&&(e.delete(y),M.dispose())}function x(v){const y=v.target;y.removeEventListener("dispose",x);const M=i.get(y);M!==void 0&&(i.delete(y),M.dispose())}function g(){e=new WeakMap,i=new WeakMap,r!==null&&(r.dispose(),r=null)}return{get:o,dispose:g}}function ZC(a){const e={};function i(r){if(e[r]!==void 0)return e[r];const o=a.getExtension(r);return e[r]=o,o}return{has:function(r){return i(r)!==null},init:function(){i("EXT_color_buffer_float"),i("WEBGL_clip_cull_distance"),i("OES_texture_float_linear"),i("EXT_color_buffer_half_float"),i("WEBGL_multisampled_render_to_texture"),i("WEBGL_render_shared_exponent")},get:function(r){const o=i(r);return o===null&&df("WebGLRenderer: "+r+" extension not supported."),o}}}function WC(a,e,i,r){const o={},c=new WeakMap;function u(g){const v=g.target;v.index!==null&&e.remove(v.index);for(const M in v.attributes)e.remove(v.attributes[M]);v.removeEventListener("dispose",u),delete o[v.id];const y=c.get(v);y&&(e.remove(y),c.delete(v)),r.releaseStatesOfGeometry(v),v.isInstancedBufferGeometry===!0&&delete v._maxInstanceCount,i.memory.geometries--}function f(g,v){return o[v.id]===!0||(v.addEventListener("dispose",u),o[v.id]=!0,i.memory.geometries++),v}function h(g){const v=g.attributes;for(const y in v)e.update(v[y],a.ARRAY_BUFFER)}function p(g){const v=[],y=g.index,M=g.attributes.position;let T=0;if(M===void 0)return;if(y!==null){const R=y.array;T=y.version;for(let C=0,I=R.length;C<I;C+=3){const U=R[C+0],B=R[C+1],D=R[C+2];v.push(U,B,B,D,D,U)}}else{const R=M.array;T=M.version;for(let C=0,I=R.length/3-1;C<I;C+=3){const U=C+0,B=C+1,D=C+2;v.push(U,B,B,D,D,U)}}const E=new(M.count>=65535?HS:_S)(v,1);E.version=T;const b=c.get(g);b&&e.remove(b),c.set(g,E)}function x(g){const v=c.get(g);if(v){const y=g.index;y!==null&&v.version<y.version&&p(g)}else p(g);return c.get(g)}return{get:f,update:h,getWireframeAttribute:x}}function QC(a,e,i){let r;function o(v){r=v}let c,u;function f(v){c=v.type,u=v.bytesPerElement}function h(v,y){a.drawElements(r,y,c,v*u),i.update(y,r,1)}function p(v,y,M){M!==0&&(a.drawElementsInstanced(r,y,c,v*u,M),i.update(y,r,M))}function x(v,y,M){if(M===0)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(r,y,0,c,v,0,M);let E=0;for(let b=0;b<M;b++)E+=y[b];i.update(E,r,1)}function g(v,y,M,T){if(M===0)return;const E=e.get("WEBGL_multi_draw");if(E===null)for(let b=0;b<v.length;b++)p(v[b]/u,y[b],T[b]);else{E.multiDrawElementsInstancedWEBGL(r,y,0,c,v,0,T,0,M);let b=0;for(let R=0;R<M;R++)b+=y[R]*T[R];i.update(b,r,1)}}this.setMode=o,this.setIndex=f,this.render=h,this.renderInstances=p,this.renderMultiDraw=x,this.renderMultiDrawInstances=g}function qC(a){const e={geometries:0,textures:0},i={frame:0,calls:0,triangles:0,points:0,lines:0};function r(c,u,f){switch(i.calls++,u){case a.TRIANGLES:i.triangles+=f*(c/3);break;case a.LINES:i.lines+=f*(c/2);break;case a.LINE_STRIP:i.lines+=f*(c-1);break;case a.LINE_LOOP:i.lines+=f*c;break;case a.POINTS:i.points+=f*c;break;default:Vt("WebGLInfo: Unknown draw mode:",u);break}}function o(){i.calls=0,i.triangles=0,i.points=0,i.lines=0}return{memory:e,render:i,programs:null,autoReset:!0,reset:o,update:r}}function KC(a,e,i){const r=new WeakMap,o=new hn;function c(u,f,h){const p=u.morphTargetInfluences,x=f.morphAttributes.position||f.morphAttributes.normal||f.morphAttributes.color,g=x!==void 0?x.length:0;let v=r.get(f);if(v===void 0||v.count!==g){let X=function(){A.dispose(),r.delete(f),f.removeEventListener("dispose",X)};var y=X;v!==void 0&&v.texture.dispose();const M=f.morphAttributes.position!==void 0,T=f.morphAttributes.normal!==void 0,E=f.morphAttributes.color!==void 0,b=f.morphAttributes.position||[],R=f.morphAttributes.normal||[],C=f.morphAttributes.color||[];let I=0;M===!0&&(I=1),T===!0&&(I=2),E===!0&&(I=3);let U=f.attributes.position.count*I,B=1;U>e.maxTextureSize&&(B=Math.ceil(U/e.maxTextureSize),U=e.maxTextureSize);const D=new Float32Array(U*B*4*g),A=new US(D,U,B,g);A.type=ea,A.needsUpdate=!0;const L=I*4;for(let k=0;k<g;k++){const G=b[k],Y=R[k],ee=C[k],Z=U*B*4*k;for(let _=0;_<G.count;_++){const F=_*L;M===!0&&(o.fromBufferAttribute(G,_),D[Z+F+0]=o.x,D[Z+F+1]=o.y,D[Z+F+2]=o.z,D[Z+F+3]=0),T===!0&&(o.fromBufferAttribute(Y,_),D[Z+F+4]=o.x,D[Z+F+5]=o.y,D[Z+F+6]=o.z,D[Z+F+7]=0),E===!0&&(o.fromBufferAttribute(ee,_),D[Z+F+8]=o.x,D[Z+F+9]=o.y,D[Z+F+10]=o.z,D[Z+F+11]=ee.itemSize===4?o.w:1)}}v={count:g,texture:A,size:new kt(U,B)},r.set(f,v),f.addEventListener("dispose",X)}if(u.isInstancedMesh===!0&&u.morphTexture!==null)h.getUniforms().setValue(a,"morphTexture",u.morphTexture,i);else{let M=0;for(let E=0;E<p.length;E++)M+=p[E];const T=f.morphTargetsRelative?1:1-M;h.getUniforms().setValue(a,"morphTargetBaseInfluence",T),h.getUniforms().setValue(a,"morphTargetInfluences",p)}h.getUniforms().setValue(a,"morphTargetsTexture",v.texture,i),h.getUniforms().setValue(a,"morphTargetsTextureSize",v.size)}return{update:c}}function JC(a,e,i,r,o){let c=new WeakMap;function u(p){const x=o.render.frame,g=p.geometry,v=e.get(p,g);if(c.get(v)!==x&&(e.update(v),c.set(v,x)),p.isInstancedMesh&&(p.hasEventListener("dispose",h)===!1&&p.addEventListener("dispose",h),c.get(p)!==x&&(i.update(p.instanceMatrix,a.ARRAY_BUFFER),p.instanceColor!==null&&i.update(p.instanceColor,a.ARRAY_BUFFER),c.set(p,x))),p.isSkinnedMesh){const y=p.skeleton;c.get(y)!==x&&(y.update(),c.set(y,x))}return v}function f(){c=new WeakMap}function h(p){const x=p.target;x.removeEventListener("dispose",h),r.releaseStatesOfObject(x),i.remove(x.instanceMatrix),x.instanceColor!==null&&i.remove(x.instanceColor)}return{update:u,dispose:f}}const $C={[bS]:"LINEAR_TONE_MAPPING",[SS]:"REINHARD_TONE_MAPPING",[ES]:"CINEON_TONE_MAPPING",[MS]:"ACES_FILMIC_TONE_MAPPING",[wS]:"AGX_TONE_MAPPING",[TS]:"NEUTRAL_TONE_MAPPING",[AS]:"CUSTOM_TONE_MAPPING"};function e3(a,e,i,r,o){const c=new ia(e,i,{type:a,depthBuffer:r,stencilBuffer:o}),u=new ia(e,i,{type:_a,depthBuffer:!1,stencilBuffer:!1}),f=new Va;f.setAttribute("position",new za([-1,3,0,-1,-1,0,3,-1,0],3)),f.setAttribute("uv",new za([0,2,0,0,2,0],2));const h=new jT({uniforms:{tDiffuse:{value:null}},vertexShader:` 3910 precision highp float; 3911 3912 uniform mat4 modelViewMatrix; 3913 uniform mat4 projectionMatrix; 3914 3915 attribute vec3 position; 3916 attribute vec2 uv; 3917 3918 varying vec2 vUv; 3919 3920 void main() { 3921 vUv = uv; 3922 gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 ); 3923 }`,fragmentShader:` 3924 precision highp float; 3925 3926 uniform sampler2D tDiffuse; 3927 3928 varying vec2 vUv; 3929 3930 #include <tonemapping_pars_fragment> 3931 #include <colorspace_pars_fragment> 3932 3933 void main() { 3934 gl_FragColor = texture2D( tDiffuse, vUv ); 3935 3936 #ifdef LINEAR_TONE_MAPPING 3937 gl_FragColor.rgb = LinearToneMapping( gl_FragColor.rgb ); 3938 #elif defined( REINHARD_TONE_MAPPING ) 3939 gl_FragColor.rgb = ReinhardToneMapping( gl_FragColor.rgb ); 3940 #elif defined( CINEON_TONE_MAPPING ) 3941 gl_FragColor.rgb = CineonToneMapping( gl_FragColor.rgb ); 3942 #elif defined( ACES_FILMIC_TONE_MAPPING ) 3943 gl_FragColor.rgb = ACESFilmicToneMapping( gl_FragColor.rgb ); 3944 #elif defined( AGX_TONE_MAPPING ) 3945 gl_FragColor.rgb = AgXToneMapping( gl_FragColor.rgb ); 3946 #elif defined( NEUTRAL_TONE_MAPPING ) 3947 gl_FragColor.rgb = NeutralToneMapping( gl_FragColor.rgb ); 3948 #elif defined( CUSTOM_TONE_MAPPING ) 3949 gl_FragColor.rgb = CustomToneMapping( gl_FragColor.rgb ); 3950 #endif 3951 3952 #ifdef SRGB_TRANSFER 3953 gl_FragColor = sRGBTransferOETF( gl_FragColor ); 3954 #endif 3955 }`,depthTest:!1,depthWrite:!1}),p=new sa(f,h),x=new Fm(-1,1,1,-1,0,1);let g=null,v=null,y=!1,M,T=null,E=[],b=!1;this.setSize=function(R,C){c.setSize(R,C),u.setSize(R,C);for(let I=0;I<E.length;I++){const U=E[I];U.setSize&&U.setSize(R,C)}},this.setEffects=function(R){E=R,b=E.length>0&&E[0].isRenderPass===!0;const C=c.width,I=c.height;for(let U=0;U<E.length;U++){const B=E[U];B.setSize&&B.setSize(C,I)}},this.begin=function(R,C){if(y||R.toneMapping===na&&E.length===0)return!1;if(T=C,C!==null){const I=C.width,U=C.height;(c.width!==I||c.height!==U)&&this.setSize(I,U)}return b===!1&&R.setRenderTarget(c),M=R.toneMapping,R.toneMapping=na,!0},this.hasRenderPass=function(){return b},this.end=function(R,C){R.toneMapping=M,y=!0;let I=c,U=u;for(let B=0;B<E.length;B++){const D=E[B];if(D.enabled!==!1&&(D.render(R,U,I,C),D.needsSwap!==!1)){const A=I;I=U,U=A}}if(g!==R.outputColorSpace||v!==R.toneMapping){g=R.outputColorSpace,v=R.toneMapping,h.defines={},zt.getTransfer(g)===Xt&&(h.defines.SRGB_TRANSFER="");const B=$C[v];B&&(h.defines[B]=""),h.needsUpdate=!0}h.uniforms.tDiffuse.value=I.texture,R.setRenderTarget(T),R.render(p,x),T=null,y=!1},this.isCompositing=function(){return y},this.dispose=function(){c.dispose(),u.dispose(),f.dispose(),h.dispose()}}const qS=new _n,ym=new ac(1,1),KS=new US,JS=new ST,$S=new jS,Vy=[],Gy=[],jy=new Float32Array(16),Yy=new Float32Array(9),Xy=new Float32Array(4);function Po(a,e,i){const r=a[0];if(r<=0||r>0)return a;const o=e*i;let c=Vy[o];if(c===void 0&&(c=new Float32Array(o),Vy[o]=c),e!==0){r.toArray(c,0);for(let u=1,f=0;u!==e;++u)f+=i,a[u].toArray(c,f)}return c}function An(a,e){if(a.length!==e.length)return!1;for(let i=0,r=a.length;i<r;i++)if(a[i]!==e[i])return!1;return!0}function wn(a,e){for(let i=0,r=e.length;i<r;i++)a[i]=e[i]}function xf(a,e){let i=Gy[e];i===void 0&&(i=new Int32Array(e),Gy[e]=i);for(let r=0;r!==e;++r)i[r]=a.allocateTextureUnit();return i}function t3(a,e){const i=this.cache;i[0]!==e&&(a.uniform1f(this.addr,e),i[0]=e)}function n3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y)&&(a.uniform2f(this.addr,e.x,e.y),i[0]=e.x,i[1]=e.y);else{if(An(i,e))return;a.uniform2fv(this.addr,e),wn(i,e)}}function i3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z)&&(a.uniform3f(this.addr,e.x,e.y,e.z),i[0]=e.x,i[1]=e.y,i[2]=e.z);else if(e.r!==void 0)(i[0]!==e.r||i[1]!==e.g||i[2]!==e.b)&&(a.uniform3f(this.addr,e.r,e.g,e.b),i[0]=e.r,i[1]=e.g,i[2]=e.b);else{if(An(i,e))return;a.uniform3fv(this.addr,e),wn(i,e)}}function a3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z||i[3]!==e.w)&&(a.uniform4f(this.addr,e.x,e.y,e.z,e.w),i[0]=e.x,i[1]=e.y,i[2]=e.z,i[3]=e.w);else{if(An(i,e))return;a.uniform4fv(this.addr,e),wn(i,e)}}function r3(a,e){const i=this.cache,r=e.elements;if(r===void 0){if(An(i,e))return;a.uniformMatrix2fv(this.addr,!1,e),wn(i,e)}else{if(An(i,r))return;Xy.set(r),a.uniformMatrix2fv(this.addr,!1,Xy),wn(i,r)}}function s3(a,e){const i=this.cache,r=e.elements;if(r===void 0){if(An(i,e))return;a.uniformMatrix3fv(this.addr,!1,e),wn(i,e)}else{if(An(i,r))return;Yy.set(r),a.uniformMatrix3fv(this.addr,!1,Yy),wn(i,r)}}function o3(a,e){const i=this.cache,r=e.elements;if(r===void 0){if(An(i,e))return;a.uniformMatrix4fv(this.addr,!1,e),wn(i,e)}else{if(An(i,r))return;jy.set(r),a.uniformMatrix4fv(this.addr,!1,jy),wn(i,r)}}function l3(a,e){const i=this.cache;i[0]!==e&&(a.uniform1i(this.addr,e),i[0]=e)}function c3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y)&&(a.uniform2i(this.addr,e.x,e.y),i[0]=e.x,i[1]=e.y);else{if(An(i,e))return;a.uniform2iv(this.addr,e),wn(i,e)}}function u3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z)&&(a.uniform3i(this.addr,e.x,e.y,e.z),i[0]=e.x,i[1]=e.y,i[2]=e.z);else{if(An(i,e))return;a.uniform3iv(this.addr,e),wn(i,e)}}function f3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z||i[3]!==e.w)&&(a.uniform4i(this.addr,e.x,e.y,e.z,e.w),i[0]=e.x,i[1]=e.y,i[2]=e.z,i[3]=e.w);else{if(An(i,e))return;a.uniform4iv(this.addr,e),wn(i,e)}}function d3(a,e){const i=this.cache;i[0]!==e&&(a.uniform1ui(this.addr,e),i[0]=e)}function h3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y)&&(a.uniform2ui(this.addr,e.x,e.y),i[0]=e.x,i[1]=e.y);else{if(An(i,e))return;a.uniform2uiv(this.addr,e),wn(i,e)}}function p3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z)&&(a.uniform3ui(this.addr,e.x,e.y,e.z),i[0]=e.x,i[1]=e.y,i[2]=e.z);else{if(An(i,e))return;a.uniform3uiv(this.addr,e),wn(i,e)}}function m3(a,e){const i=this.cache;if(e.x!==void 0)(i[0]!==e.x||i[1]!==e.y||i[2]!==e.z||i[3]!==e.w)&&(a.uniform4ui(this.addr,e.x,e.y,e.z,e.w),i[0]=e.x,i[1]=e.y,i[2]=e.z,i[3]=e.w);else{if(An(i,e))return;a.uniform4uiv(this.addr,e),wn(i,e)}}function g3(a,e,i){const r=this.cache,o=i.allocateTextureUnit();r[0]!==o&&(a.uniform1i(this.addr,o),r[0]=o);let c;this.type===a.SAMPLER_2D_SHADOW?(ym.compareFunction=i.isReversedDepthBuffer()?km:Um,c=ym):c=qS,i.setTexture2D(e||c,o)}function v3(a,e,i){const r=this.cache,o=i.allocateTextureUnit();r[0]!==o&&(a.uniform1i(this.addr,o),r[0]=o),i.setTexture3D(e||JS,o)}function x3(a,e,i){const r=this.cache,o=i.allocateTextureUnit();r[0]!==o&&(a.uniform1i(this.addr,o),r[0]=o),i.setTextureCube(e||$S,o)}function y3(a,e,i){const r=this.cache,o=i.allocateTextureUnit();r[0]!==o&&(a.uniform1i(this.addr,o),r[0]=o),i.setTexture2DArray(e||KS,o)}function b3(a){switch(a){case 5126:return t3;case 35664:return n3;case 35665:return i3;case 35666:return a3;case 35674:return r3;case 35675:return s3;case 35676:return o3;case 5124:case 35670:return l3;case 35667:case 35671:return c3;case 35668:case 35672:return u3;case 35669:case 35673:return f3;case 5125:return d3;case 36294:return h3;case 36295:return p3;case 36296:return m3;case 35678:case 36198:case 36298:case 36306:case 35682:return g3;case 35679:case 36299:case 36307:return v3;case 35680:case 36300:case 36308:case 36293:return x3;case 36289:case 36303:case 36311:case 36292:return y3}}function S3(a,e){a.uniform1fv(this.addr,e)}function E3(a,e){const i=Po(e,this.size,2);a.uniform2fv(this.addr,i)}function M3(a,e){const i=Po(e,this.size,3);a.uniform3fv(this.addr,i)}function A3(a,e){const i=Po(e,this.size,4);a.uniform4fv(this.addr,i)}function w3(a,e){const i=Po(e,this.size,4);a.uniformMatrix2fv(this.addr,!1,i)}function T3(a,e){const i=Po(e,this.size,9);a.uniformMatrix3fv(this.addr,!1,i)}function R3(a,e){const i=Po(e,this.size,16);a.uniformMatrix4fv(this.addr,!1,i)}function C3(a,e){a.uniform1iv(this.addr,e)}function I3(a,e){a.uniform2iv(this.addr,e)}function D3(a,e){a.uniform3iv(this.addr,e)}function N3(a,e){a.uniform4iv(this.addr,e)}function L3(a,e){a.uniform1uiv(this.addr,e)}function P3(a,e){a.uniform2uiv(this.addr,e)}function O3(a,e){a.uniform3uiv(this.addr,e)}function B3(a,e){a.uniform4uiv(this.addr,e)}function U3(a,e,i){const r=this.cache,o=e.length,c=xf(i,o);An(r,c)||(a.uniform1iv(this.addr,c),wn(r,c));let u;this.type===a.SAMPLER_2D_SHADOW?u=ym:u=qS;for(let f=0;f!==o;++f)i.setTexture2D(e[f]||u,c[f])}function k3(a,e,i){const r=this.cache,o=e.length,c=xf(i,o);An(r,c)||(a.uniform1iv(this.addr,c),wn(r,c));for(let u=0;u!==o;++u)i.setTexture3D(e[u]||JS,c[u])}function z3(a,e,i){const r=this.cache,o=e.length,c=xf(i,o);An(r,c)||(a.uniform1iv(this.addr,c),wn(r,c));for(let u=0;u!==o;++u)i.setTextureCube(e[u]||$S,c[u])}function _3(a,e,i){const r=this.cache,o=e.length,c=xf(i,o);An(r,c)||(a.uniform1iv(this.addr,c),wn(r,c));for(let u=0;u!==o;++u)i.setTexture2DArray(e[u]||KS,c[u])}function H3(a){switch(a){case 5126:return S3;case 35664:return E3;case 35665:return M3;case 35666:return A3;case 35674:return w3;case 35675:return T3;case 35676:return R3;case 5124:case 35670:return C3;case 35667:case 35671:return I3;case 35668:case 35672:return D3;case 35669:case 35673:return N3;case 5125:return L3;case 36294:return P3;case 36295:return O3;case 36296:return B3;case 35678:case 36198:case 36298:case 36306:case 35682:return U3;case 35679:case 36299:case 36307:return k3;case 35680:case 36300:case 36308:case 36293:return z3;case 36289:case 36303:case 36311:case 36292:return _3}}class F3{constructor(e,i,r){this.id=e,this.addr=r,this.cache=[],this.type=i.type,this.setValue=b3(i.type)}}class V3{constructor(e,i,r){this.id=e,this.addr=r,this.cache=[],this.type=i.type,this.size=i.size,this.setValue=H3(i.type)}}class G3{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,i,r){const o=this.seq;for(let c=0,u=o.length;c!==u;++c){const f=o[c];f.setValue(e,i[f.id],r)}}}const hp=/(\w+)(\])?(\[|\.)?/g;function Zy(a,e){a.seq.push(e),a.map[e.id]=e}function j3(a,e,i){const r=a.name,o=r.length;for(hp.lastIndex=0;;){const c=hp.exec(r),u=hp.lastIndex;let f=c[1];const h=c[2]==="]",p=c[3];if(h&&(f=f|0),p===void 0||p==="["&&u+2===o){Zy(i,p===void 0?new F3(f,a,e):new V3(f,a,e));break}else{let g=i.map[f];g===void 0&&(g=new G3(f),Zy(i,g)),i=g}}}class nf{constructor(e,i){this.seq=[],this.map={};const r=e.getProgramParameter(i,e.ACTIVE_UNIFORMS);for(let u=0;u<r;++u){const f=e.getActiveUniform(i,u),h=e.getUniformLocation(i,f.name);j3(f,h,this)}const o=[],c=[];for(const u of this.seq)u.type===e.SAMPLER_2D_SHADOW||u.type===e.SAMPLER_CUBE_SHADOW||u.type===e.SAMPLER_2D_ARRAY_SHADOW?o.push(u):c.push(u);o.length>0&&(this.seq=o.concat(c))}setValue(e,i,r,o){const c=this.map[i];c!==void 0&&c.setValue(e,r,o)}setOptional(e,i,r){const o=i[r];o!==void 0&&this.setValue(e,r,o)}static upload(e,i,r,o){for(let c=0,u=i.length;c!==u;++c){const f=i[c],h=r[f.id];h.needsUpdate!==!1&&f.setValue(e,h.value,o)}}static seqWithValue(e,i){const r=[];for(let o=0,c=e.length;o!==c;++o){const u=e[o];u.id in i&&r.push(u)}return r}}function Wy(a,e,i){const r=a.createShader(e);return a.shaderSource(r,i),a.compileShader(r),r}const Y3=37297;let X3=0;function Z3(a,e){const i=a.split(` 3956`),r=[],o=Math.max(e-6,0),c=Math.min(e+6,i.length);for(let u=o;u<c;u++){const f=u+1;r.push(`${f===e?">":" "} ${f}: ${i[u]}`)}return r.join(` 3957`)}const Qy=new Rt;function W3(a){zt._getMatrix(Qy,zt.workingColorSpace,a);const e=`mat3( ${Qy.elements.map(i=>i.toFixed(4))} )`;switch(zt.getTransfer(a)){case uf:return[e,"LinearTransferOETF"];case Xt:return[e,"sRGBTransferOETF"];default:return bt("WebGLProgram: Unsupported color space: ",a),[e,"LinearTransferOETF"]}}function qy(a,e,i){const r=a.getShaderParameter(e,a.COMPILE_STATUS),c=(a.getShaderInfoLog(e)||"").trim();if(r&&c==="")return"";const u=/ERROR: 0:(\d+)/.exec(c);if(u){const f=parseInt(u[1]);return i.toUpperCase()+` 3958 3959`+c+` 3960 3961`+Z3(a.getShaderSource(e),f)}else return c}function Q3(a,e){const i=W3(e);return[`vec4 ${a}( vec4 value ) {`,` return ${i[1]}( vec4( value.rgb * ${i[0]}, value.a ) );`,"}"].join(` 3962`)}const q3={[bS]:"Linear",[SS]:"Reinhard",[ES]:"Cineon",[MS]:"ACESFilmic",[wS]:"AgX",[TS]:"Neutral",[AS]:"Custom"};function K3(a,e){const i=q3[e];return i===void 0?(bt("WebGLProgram: Unsupported toneMapping:",e),"vec3 "+a+"( vec3 color ) { return LinearToneMapping( color ); }"):"vec3 "+a+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}const Zu=new he;function J3(){zt.getLuminanceCoefficients(Zu);const a=Zu.x.toFixed(4),e=Zu.y.toFixed(4),i=Zu.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${a}, ${e}, ${i} );`," return dot( weights, rgb );","}"].join(` 3963`)}function $3(a){return[a.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",a.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Gl).join(` 3964`)}function eI(a){const e=[];for(const i in a){const r=a[i];r!==!1&&e.push("#define "+i+" "+r)}return e.join(` 3965`)}function tI(a,e){const i={},r=a.getProgramParameter(e,a.ACTIVE_ATTRIBUTES);for(let o=0;o<r;o++){const c=a.getActiveAttrib(e,o),u=c.name;let f=1;c.type===a.FLOAT_MAT2&&(f=2),c.type===a.FLOAT_MAT3&&(f=3),c.type===a.FLOAT_MAT4&&(f=4),i[u]={type:c.type,location:a.getAttribLocation(e,u),locationSize:f}}return i}function Gl(a){return a!==""}function Ky(a,e){const i=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return a.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,i).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function Jy(a,e){return a.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const nI=/^[ \t]*#include +<([\w\d./]+)>/gm;function bm(a){return a.replace(nI,aI)}const iI=new Map;function aI(a,e){let i=Ct[e];if(i===void 0){const r=iI.get(e);if(r!==void 0)i=Ct[r],bt('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,r);else throw new Error("Can not resolve #include <"+e+">")}return bm(i)}const rI=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function $y(a){return a.replace(rI,sI)}function sI(a,e,i,r){let o="";for(let c=parseInt(e);c<parseInt(i);c++)o+=r.replace(/\[\s*i\s*\]/g,"[ "+c+" ]").replace(/UNROLLED_LOOP_INDEX/g,c);return o}function eb(a){let e=`precision ${a.precision} float; 3966 precision ${a.precision} int; 3967 precision ${a.precision} sampler2D; 3968 precision ${a.precision} samplerCube; 3969 precision ${a.precision} sampler3D; 3970 precision ${a.precision} sampler2DArray; 3971 precision ${a.precision} sampler2DShadow; 3972 precision ${a.precision} samplerCubeShadow; 3973 precision ${a.precision} sampler2DArrayShadow; 3974 precision ${a.precision} isampler2D; 3975 precision ${a.precision} isampler3D; 3976 precision ${a.precision} isamplerCube; 3977 precision ${a.precision} isampler2DArray; 3978 precision ${a.precision} usampler2D; 3979 precision ${a.precision} usampler3D; 3980 precision ${a.precision} usamplerCube; 3981 precision ${a.precision} usampler2DArray; 3982 `;return a.precision==="highp"?e+=` 3983#define HIGH_PRECISION`:a.precision==="mediump"?e+=` 3984#define MEDIUM_PRECISION`:a.precision==="lowp"&&(e+=` 3985#define LOW_PRECISION`),e}const oI={[Ku]:"SHADOWMAP_TYPE_PCF",[Vl]:"SHADOWMAP_TYPE_VSM"};function lI(a){return oI[a.shadowMapType]||"SHADOWMAP_TYPE_BASIC"}const cI={[ms]:"ENVMAP_TYPE_CUBE",[To]:"ENVMAP_TYPE_CUBE",[mf]:"ENVMAP_TYPE_CUBE_UV"};function uI(a){return a.envMap===!1?"ENVMAP_TYPE_CUBE":cI[a.envMapMode]||"ENVMAP_TYPE_CUBE"}const fI={[To]:"ENVMAP_MODE_REFRACTION"};function dI(a){return a.envMap===!1?"ENVMAP_MODE_REFLECTION":fI[a.envMapMode]||"ENVMAP_MODE_REFLECTION"}const hI={[yS]:"ENVMAP_BLENDING_MULTIPLY",[$1]:"ENVMAP_BLENDING_MIX",[eT]:"ENVMAP_BLENDING_ADD"};function pI(a){return a.envMap===!1?"ENVMAP_BLENDING_NONE":hI[a.combine]||"ENVMAP_BLENDING_NONE"}function mI(a){const e=a.envMapCubeUVHeight;if(e===null)return null;const i=Math.log2(e)-2,r=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,i),112)),texelHeight:r,maxMip:i}}function gI(a,e,i,r){const o=a.getContext(),c=i.defines;let u=i.vertexShader,f=i.fragmentShader;const h=lI(i),p=uI(i),x=dI(i),g=pI(i),v=mI(i),y=$3(i),M=eI(c),T=o.createProgram();let E,b,R=i.glslVersion?"#version "+i.glslVersion+` 3986`:"";i.isRawShaderMaterial?(E=["#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,M].filter(Gl).join(` 3987`),E.length>0&&(E+=` 3988`),b=["#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,M].filter(Gl).join(` 3989`),b.length>0&&(b+=` 3990`)):(E=[eb(i),"#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,M,i.extensionCl
vendor: 9,674 bytes, lines 3990-3999
3990ipCullDistance?"#define USE_CLIP_DISTANCE":"",i.batching?"#define USE_BATCHING":"",i.batchingColor?"#define USE_BATCHING_COLOR":"",i.instancing?"#define USE_INSTANCING":"",i.instancingColor?"#define USE_INSTANCING_COLOR":"",i.instancingMorph?"#define USE_INSTANCING_MORPH":"",i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+x:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",i.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",i.displacementMap?"#define USE_DISPLACEMENTMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.anisotropy?"#define USE_ANISOTROPY":"",i.anisotropyMap?"#define USE_ANISOTROPYMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",i.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaHash?"#define USE_ALPHAHASH":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",i.mapUv?"#define MAP_UV "+i.mapUv:"",i.alphaMapUv?"#define ALPHAMAP_UV "+i.alphaMapUv:"",i.lightMapUv?"#define LIGHTMAP_UV "+i.lightMapUv:"",i.aoMapUv?"#define AOMAP_UV "+i.aoMapUv:"",i.emissiveMapUv?"#define EMISSIVEMAP_UV "+i.emissiveMapUv:"",i.bumpMapUv?"#define BUMPMAP_UV "+i.bumpMapUv:"",i.normalMapUv?"#define NORMALMAP_UV "+i.normalMapUv:"",i.displacementMapUv?"#define DISPLACEMENTMAP_UV "+i.displacementMapUv:"",i.metalnessMapUv?"#define METALNESSMAP_UV "+i.metalnessMapUv:"",i.roughnessMapUv?"#define ROUGHNESSMAP_UV "+i.roughnessMapUv:"",i.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+i.anisotropyMapUv:"",i.clearcoatMapUv?"#define CLEARCOATMAP_UV "+i.clearcoatMapUv:"",i.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+i.clearcoatNormalMapUv:"",i.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+i.clearcoatRoughnessMapUv:"",i.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+i.iridescenceMapUv:"",i.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+i.iridescenceThicknessMapUv:"",i.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+i.sheenColorMapUv:"",i.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+i.sheenRoughnessMapUv:"",i.specularMapUv?"#define SPECULARMAP_UV "+i.specularMapUv:"",i.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+i.specularColorMapUv:"",i.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+i.specularIntensityMapUv:"",i.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+i.transmissionMapUv:"",i.thicknessMapUv?"#define THICKNESSMAP_UV "+i.thicknessMapUv:"",i.vertexTangents&&i.flatShading===!1?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUv1s?"#define USE_UV1":"",i.vertexUv2s?"#define USE_UV2":"",i.vertexUv3s?"#define USE_UV3":"",i.pointsUvs?"#define USE_POINTS_UV":"",i.flatShading?"#define FLAT_SHADED":"",i.skinning?"#define USE_SKINNING":"",i.morphTargets?"#define USE_MORPHTARGETS":"",i.morphNormals&&i.flatShading===!1?"#define USE_MORPHNORMALS":"",i.morphColors?"#define USE_MORPHCOLORS":"",i.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+i.morphTextureStride:"",i.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+i.morphTargetsCount:"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+h:"",i.sizeAttenuation?"#define USE_SIZEATTENUATION":"",i.numLightProbes>0?"#define USE_LIGHT_PROBES":"",i.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",i.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",` 3991`].filter(Gl).join(` 3992`),b=[eb(i),"#define SHADER_TYPE "+i.shaderType,"#define SHADER_NAME "+i.shaderName,M,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",i.map?"#define USE_MAP":"",i.matcap?"#define USE_MATCAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+p:"",i.envMap?"#define "+x:"",i.envMap?"#define "+g:"",v?"#define CUBEUV_TEXEL_WIDTH "+v.texelWidth:"",v?"#define CUBEUV_TEXEL_HEIGHT "+v.texelHeight:"",v?"#define CUBEUV_MAX_MIP "+v.maxMip+".0":"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",i.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.anisotropy?"#define USE_ANISOTROPY":"",i.anisotropyMap?"#define USE_ANISOTROPYMAP":"",i.clearcoat?"#define USE_CLEARCOAT":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.dispersion?"#define USE_DISPERSION":"",i.iridescence?"#define USE_IRIDESCENCE":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",i.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaTest?"#define USE_ALPHATEST":"",i.alphaHash?"#define USE_ALPHAHASH":"",i.sheen?"#define USE_SHEEN":"",i.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.vertexTangents&&i.flatShading===!1?"#define USE_TANGENT":"",i.vertexColors||i.instancingColor?"#define USE_COLOR":"",i.vertexAlphas||i.batchingColor?"#define USE_COLOR_ALPHA":"",i.vertexUv1s?"#define USE_UV1":"",i.vertexUv2s?"#define USE_UV2":"",i.vertexUv3s?"#define USE_UV3":"",i.pointsUvs?"#define USE_POINTS_UV":"",i.gradientMap?"#define USE_GRADIENTMAP":"",i.flatShading?"#define FLAT_SHADED":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+h:"",i.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",i.numLightProbes>0?"#define USE_LIGHT_PROBES":"",i.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",i.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",i.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",i.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",i.toneMapping!==na?"#define TONE_MAPPING":"",i.toneMapping!==na?Ct.tonemapping_pars_fragment:"",i.toneMapping!==na?K3("toneMapping",i.toneMapping):"",i.dithering?"#define DITHERING":"",i.opaque?"#define OPAQUE":"",Ct.colorspace_pars_fragment,Q3("linearToOutputTexel",i.outputColorSpace),J3(),i.useDepthPacking?"#define DEPTH_PACKING "+i.depthPacking:"",` 3993`].filter(Gl).join(` 3994`)),u=bm(u),u=Ky(u,i),u=Jy(u,i),f=bm(f),f=Ky(f,i),f=Jy(f,i),u=$y(u),f=$y(f),i.isRawShaderMaterial!==!0&&(R=`#version 300 es 3995`,E=[y,"#define attribute in","#define varying out","#define texture2D texture"].join(` 3996`)+` 3997`+E,b=["#define varying in",i.glslVersion===my?"":"layout(location = 0) out highp vec4 pc_fragColor;",i.glslVersion===my?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(` 3998`)+` 3999`+b);const C=R+E+u,I=R+b+f,U=Wy(o,o.VERTEX_SHADER,C),B=Wy(o,o.FRAGMENT_SHADER,I);o.attachShader(T,U),o.attachShader(T,B),i.index0AttributeName!==void 0?o.bindAttribLocation(T,0,i.index0AttributeName):i.morphTargets===!0&&o.bindAttribLocation(T,0,"position"),o.linkProgram(T);
vendor: 23,024 bytes, lines 3999-4033
3999function D(k){if(a.debug.checkShaderErrors){const G=o.getProgramInfoLog(T)||"",Y=o.getShaderInfoLog(U)||"",ee=o.getShaderInfoLog(B)||"",Z=G.trim(),_=Y.trim(),F=ee.trim();let se=!0,fe=!0;if(o.getProgramParameter(T,o.LINK_STATUS)===!1)if(se=!1,typeof a.debug.onShaderError=="function")a.debug.onShaderError(o,T,U,B);else{const ae=qy(o,U,"vertex"),H=qy(o,B,"fragment");Vt("THREE.WebGLProgram: Shader Error "+o.getError()+" - VALIDATE_STATUS "+o.getProgramParameter(T,o.VALIDATE_STATUS)+` 4000 4001Material Name: `+k.name+` 4002Material Type: `+k.type+` 4003 4004Program Info Log: `+Z+` 4005`+ae+` 4006`+H)}else Z!==""?bt("WebGLProgram: Program Info Log:",Z):(_===""||F==="")&&(fe=!1);fe&&(k.diagnostics={runnable:se,programLog:Z,vertexShader:{log:_,prefix:E},fragmentShader:{log:F,prefix:b}})}o.deleteShader(U),o.deleteShader(B),A=new nf(o,T),L=tI(o,T)}let A;this.getUniforms=function(){return A===void 0&&D(this),A};let L;this.getAttributes=function(){return L===void 0&&D(this),L};let X=i.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return X===!1&&(X=o.getProgramParameter(T,Y3)),X},this.destroy=function(){r.releaseStatesOfProgram(this),o.deleteProgram(T),this.program=void 0},this.type=i.shaderType,this.name=i.shaderName,this.id=X3++,this.cacheKey=e,this.usedTimes=1,this.program=T,this.vertexShader=U,this.fragmentShader=B,this}let vI=0;class xI{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const i=e.vertexShader,r=e.fragmentShader,o=this._getShaderStage(i),c=this._getShaderStage(r),u=this._getShaderCacheForMaterial(e);return u.has(o)===!1&&(u.add(o),o.usedTimes++),u.has(c)===!1&&(u.add(c),c.usedTimes++),this}remove(e){const i=this.materialCache.get(e);for(const r of i)r.usedTimes--,r.usedTimes===0&&this.shaderCache.delete(r.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const i=this.materialCache;let r=i.get(e);return r===void 0&&(r=new Set,i.set(e,r)),r}_getShaderStage(e){const i=this.shaderCache;let r=i.get(e);return r===void 0&&(r=new yI(e),i.set(e,r)),r}}class yI{constructor(e){this.id=vI++,this.code=e,this.usedTimes=0}}function bI(a,e,i,r,o,c){const u=new kS,f=new xI,h=new Set,p=[],x=new Map,g=r.logarithmicDepthBuffer;let v=r.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distance",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function M(A){return h.add(A),A===0?"uv":`uv${A}`}function T(A,L,X,k,G){const Y=k.fog,ee=G.geometry,Z=A.isMeshStandardMaterial||A.isMeshLambertMaterial||A.isMeshPhongMaterial?k.environment:null,_=A.isMeshStandardMaterial||A.isMeshLambertMaterial&&!A.envMap||A.isMeshPhongMaterial&&!A.envMap,F=e.get(A.envMap||Z,_),se=F&&F.mapping===mf?F.image.height:null,fe=y[A.type];A.precision!==null&&(v=r.getMaxPrecision(A.precision),v!==A.precision&&bt("WebGLProgram.getParameters:",A.precision,"not supported, using",v,"instead."));const ae=ee.morphAttributes.position||ee.morphAttributes.normal||ee.morphAttributes.color,H=ae!==void 0?ae.length:0;let Q=0;ee.morphAttributes.position!==void 0&&(Q=1),ee.morphAttributes.normal!==void 0&&(Q=2),ee.morphAttributes.color!==void 0&&(Q=3);let Se,ye,Ce,$;if(fe){const Dt=$i[fe];Se=Dt.vertexShader,ye=Dt.fragmentShader}else Se=A.vertexShader,ye=A.fragmentShader,f.update(A),Ce=f.getVertexShaderID(A),$=f.getFragmentShaderID(A);const me=a.getRenderTarget(),Me=a.state.buffers.depth.getReversed(),Te=G.isInstancedMesh===!0,Ze=G.isBatchedMesh===!0,tt=!!A.map,yt=!!A.matcap,xt=!!F,pt=!!A.aoMap,ft=!!A.lightMap,je=!!A.bumpMap,Ne=!!A.normalMap,V=!!A.displacementMap,gt=!!A.emissiveMap,ct=!!A.metalnessMap,pe=!!A.roughnessMap,Ie=A.anisotropy>0,z=A.clearcoat>0,N=A.dispersion>0,W=A.iridescence>0,xe=A.sheen>0,Ae=A.transmission>0,ve=Ie&&!!A.anisotropyMap,Ge=z&&!!A.clearcoatMap,Be=z&&!!A.clearcoatNormalMap,Je=z&&!!A.clearcoatRoughnessMap,dt=W&&!!A.iridescenceMap,Pe=W&&!!A.iridescenceThicknessMap,Le=xe&&!!A.sheenColorMap,Ye=xe&&!!A.sheenRoughnessMap,He=!!A.specularMap,We=!!A.specularColorMap,lt=!!A.specularIntensityMap,J=Ae&&!!A.transmissionMap,ze=Ae&&!!A.thicknessMap,Ue=!!A.gradientMap,Qe=!!A.alphaMap,Oe=A.alphaTest>0,be=!!A.alphaHash,et=!!A.extensions;let $e=na;A.toneMapped&&(me===null||me.isXRRenderTarget===!0)&&($e=a.toneMapping);const vt={shaderID:fe,shaderType:A.type,shaderName:A.name,vertexShader:Se,fragmentShader:ye,defines:A.defines,customVertexShaderID:Ce,customFragmentShaderID:$,isRawShaderMaterial:A.isRawShaderMaterial===!0,glslVersion:A.glslVersion,precision:v,batching:Ze,batchingColor:Ze&&G._colorsTexture!==null,instancing:Te,instancingColor:Te&&G.instanceColor!==null,instancingMorph:Te&&G.morphTexture!==null,outputColorSpace:me===null?a.outputColorSpace:me.isXRRenderTarget===!0?me.texture.colorSpace:Co,alphaToCoverage:!!A.alphaToCoverage,map:tt,matcap:yt,envMap:xt,envMapMode:xt&&F.mapping,envMapCubeUVHeight:se,aoMap:pt,lightMap:ft,bumpMap:je,normalMap:Ne,displacementMap:V,emissiveMap:gt,normalMapObjectSpace:Ne&&A.normalMapType===aT,normalMapTangentSpace:Ne&&A.normalMapType===iT,metalnessMap:ct,roughnessMap:pe,anisotropy:Ie,anisotropyMap:ve,clearcoat:z,clearcoatMap:Ge,clearcoatNormalMap:Be,clearcoatRoughnessMap:Je,dispersion:N,iridescence:W,iridescenceMap:dt,iridescenceThicknessMap:Pe,sheen:xe,sheenColorMap:Le,sheenRoughnessMap:Ye,specularMap:He,specularColorMap:We,specularIntensityMap:lt,transmission:Ae,transmissionMap:J,thicknessMap:ze,gradientMap:Ue,opaque:A.transparent===!1&&A.blending===So&&A.alphaToCoverage===!1,alphaMap:Qe,alphaTest:Oe,alphaHash:be,combine:A.combine,mapUv:tt&&M(A.map.channel),aoMapUv:pt&&M(A.aoMap.channel),lightMapUv:ft&&M(A.lightMap.channel),bumpMapUv:je&&M(A.bumpMap.channel),normalMapUv:Ne&&M(A.normalMap.channel),displacementMapUv:V&&M(A.displacementMap.channel),emissiveMapUv:gt&&M(A.emissiveMap.channel),metalnessMapUv:ct&&M(A.metalnessMap.channel),roughnessMapUv:pe&&M(A.roughnessMap.channel),anisotropyMapUv:ve&&M(A.anisotropyMap.channel),clearcoatMapUv:Ge&&M(A.clearcoatMap.channel),clearcoatNormalMapUv:Be&&M(A.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Je&&M(A.clearcoatRoughnessMap.channel),iridescenceMapUv:dt&&M(A.iridescenceMap.channel),iridescenceThicknessMapUv:Pe&&M(A.iridescenceThicknessMap.channel),sheenColorMapUv:Le&&M(A.sheenColorMap.channel),sheenRoughnessMapUv:Ye&&M(A.sheenRoughnessMap.channel),specularMapUv:He&&M(A.specularMap.channel),specularColorMapUv:We&&M(A.specularColorMap.channel),specularIntensityMapUv:lt&&M(A.specularIntensityMap.channel),transmissionMapUv:J&&M(A.transmissionMap.channel),thicknessMapUv:ze&&M(A.thicknessMap.channel),alphaMapUv:Qe&&M(A.alphaMap.channel),vertexTangents:!!ee.attributes.tangent&&(Ne||Ie),vertexColors:A.vertexColors,vertexAlphas:A.vertexColors===!0&&!!ee.attributes.color&&ee.attributes.color.itemSize===4,pointsUvs:G.isPoints===!0&&!!ee.attributes.uv&&(tt||Qe),fog:!!Y,useFog:A.fog===!0,fogExp2:!!Y&&Y.isFogExp2,flatShading:A.wireframe===!1&&(A.flatShading===!0||ee.attributes.normal===void 0&&Ne===!1&&(A.isMeshLambertMaterial||A.isMeshPhongMaterial||A.isMeshStandardMaterial||A.isMeshPhysicalMaterial)),sizeAttenuation:A.sizeAttenuation===!0,logarithmicDepthBuffer:g,reversedDepthBuffer:Me,skinning:G.isSkinnedMesh===!0,morphTargets:ee.morphAttributes.position!==void 0,morphNormals:ee.morphAttributes.normal!==void 0,morphColors:ee.morphAttributes.color!==void 0,morphTargetsCount:H,morphTextureStride:Q,numDirLights:L.directional.length,numPointLights:L.point.length,numSpotLights:L.spot.length,numSpotLightMaps:L.spotLightMap.length,numRectAreaLights:L.rectArea.length,numHemiLights:L.hemi.length,numDirLightShadows:L.directionalShadowMap.length,numPointLightShadows:L.pointShadowMap.length,numSpotLightShadows:L.spotShadowMap.length,numSpotLightShadowsWithMaps:L.numSpotLightShadowsWithMaps,numLightProbes:L.numLightProbes,numClippingPlanes:c.numPlanes,numClipIntersection:c.numIntersection,dithering:A.dithering,shadowMapEnabled:a.shadowMap.enabled&&X.length>0,shadowMapType:a.shadowMap.type,toneMapping:$e,decodeVideoTexture:tt&&A.map.isVideoTexture===!0&&zt.getTransfer(A.map.colorSpace)===Xt,decodeVideoTextureEmissive:gt&&A.emissiveMap.isVideoTexture===!0&&zt.getTransfer(A.emissiveMap.colorSpace)===Xt,premultipliedAlpha:A.premultipliedAlpha,doubleSided:A.side===Pa,flipSided:A.side===ni,useDepthPacking:A.depthPacking>=0,depthPacking:A.depthPacking||0,index0AttributeName:A.index0AttributeName,extensionClipCullDistance:et&&A.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(et&&A.extensions.multiDraw===!0||Ze)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:A.customProgramCacheKey()};return vt.vertexUv1s=h.has(1),vt.vertexUv2s=h.has(2),vt.vertexUv3s=h.has(3),h.clear(),vt}function E(A){const L=[];if(A.shaderID?L.push(A.shaderID):(L.push(A.customVertexShaderID),L.push(A.customFragmentShaderID)),A.defines!==void 0)for(const X in A.defines)L.push(X),L.push(A.defines[X]);return A.isRawShaderMaterial===!1&&(b(L,A),R(L,A),L.push(a.outputColorSpace)),L.push(A.customProgramCacheKey),L.join()}function b(A,L){A.push(L.precision),A.push(L.outputColorSpace),A.push(L.envMapMode),A.push(L.envMapCubeUVHeight),A.push(L.mapUv),A.push(L.alphaMapUv),A.push(L.lightMapUv),A.push(L.aoMapUv),A.push(L.bumpMapUv),A.push(L.normalMapUv),A.push(L.displacementMapUv),A.push(L.emissiveMapUv),A.push(L.metalnessMapUv),A.push(L.roughnessMapUv),A.push(L.anisotropyMapUv),A.push(L.clearcoatMapUv),A.push(L.clearcoatNormalMapUv),A.push(L.clearcoatRoughnessMapUv),A.push(L.iridescenceMapUv),A.push(L.iridescenceThicknessMapUv),A.push(L.sheenColorMapUv),A.push(L.sheenRoughnessMapUv),A.push(L.specularMapUv),A.push(L.specularColorMapUv),A.push(L.specularIntensityMapUv),A.push(L.transmissionMapUv),A.push(L.thicknessMapUv),A.push(L.combine),A.push(L.fogExp2),A.push(L.sizeAttenuation),A.push(L.morphTargetsCount),A.push(L.morphAttributeCount),A.push(L.numDirLights),A.push(L.numPointLights),A.push(L.numSpotLights),A.push(L.numSpotLightMaps),A.push(L.numHemiLights),A.push(L.numRectAreaLights),A.push(L.numDirLightShadows),A.push(L.numPointLightShadows),A.push(L.numSpotLightShadows),A.push(L.numSpotLightShadowsWithMaps),A.push(L.numLightProbes),A.push(L.shadowMapType),A.push(L.toneMapping),A.push(L.numClippingPlanes),A.push(L.numClipIntersection),A.push(L.depthPacking)}function R(A,L){u.disableAll(),L.instancing&&u.enable(0),L.instancingColor&&u.enable(1),L.instancingMorph&&u.enable(2),L.matcap&&u.enable(3),L.envMap&&u.enable(4),L.normalMapObjectSpace&&u.enable(5),L.normalMapTangentSpace&&u.enable(6),L.clearcoat&&u.enable(7),L.iridescence&&u.enable(8),L.alphaTest&&u.enable(9),L.vertexColors&&u.enable(10),L.vertexAlphas&&u.enable(11),L.vertexUv1s&&u.enable(12),L.vertexUv2s&&u.enable(13),L.vertexUv3s&&u.enable(14),L.vertexTangents&&u.enable(15),L.anisotropy&&u.enable(16),L.alphaHash&&u.enable(17),L.batching&&u.enable(18),L.dispersion&&u.enable(19),L.batchingColor&&u.enable(20),L.gradientMap&&u.enable(21),A.push(u.mask),u.disableAll(),L.fog&&u.enable(0),L.useFog&&u.enable(1),L.flatShading&&u.enable(2),L.logarithmicDepthBuffer&&u.enable(3),L.reversedDepthBuffer&&u.enable(4),L.skinning&&u.enable(5),L.morphTargets&&u.enable(6),L.morphNormals&&u.enable(7),L.morphColors&&u.enable(8),L.premultipliedAlpha&&u.enable(9),L.shadowMapEnabled&&u.enable(10),L.doubleSided&&u.enable(11),L.flipSided&&u.enable(12),L.useDepthPacking&&u.enable(13),L.dithering&&u.enable(14),L.transmission&&u.enable(15),L.sheen&&u.enable(16),L.opaque&&u.enable(17),L.pointsUvs&&u.enable(18),L.decodeVideoTexture&&u.enable(19),L.decodeVideoTextureEmissive&&u.enable(20),L.alphaToCoverage&&u.enable(21),A.push(u.mask)}function C(A){const L=y[A.type];let X;if(L){const k=$i[L];X=FT.clone(k.uniforms)}else X=A.uniforms;return X}function I(A,L){let X=x.get(L);return X!==void 0?++X.usedTimes:(X=new gI(a,L,A,o),p.push(X),x.set(L,X)),X}function U(A){if(--A.usedTimes===0){const L=p.indexOf(A);p[L]=p[p.length-1],p.pop(),x.delete(A.cacheKey),A.destroy()}}function B(A){f.remove(A)}function D(){f.dispose()}return{getParameters:T,getProgramCacheKey:E,getUniforms:C,acquireProgram:I,releaseProgram:U,releaseShaderCache:B,programs:p,dispose:D}}function SI(){let a=new WeakMap;function e(u){return a.has(u)}function i(u){let f=a.get(u);return f===void 0&&(f={},a.set(u,f)),f}function r(u){a.delete(u)}function o(u,f,h){a.get(u)[f]=h}function c(){a=new WeakMap}return{has:e,get:i,remove:r,update:o,dispose:c}}function EI(a,e){return a.groupOrder!==e.groupOrder?a.groupOrder-e.groupOrder:a.renderOrder!==e.renderOrder?a.renderOrder-e.renderOrder:a.material.id!==e.material.id?a.material.id-e.material.id:a.materialVariant!==e.materialVariant?a.materialVariant-e.materialVariant:a.z!==e.z?a.z-e.z:a.id-e.id}function tb(a,e){return a.groupOrder!==e.groupOrder?a.groupOrder-e.groupOrder:a.renderOrder!==e.renderOrder?a.renderOrder-e.renderOrder:a.z!==e.z?e.z-a.z:a.id-e.id}function nb(){const a=[];let e=0;const i=[],r=[],o=[];function c(){e=0,i.length=0,r.length=0,o.length=0}function u(v){let y=0;return v.isInstancedMesh&&(y+=2),v.isSkinnedMesh&&(y+=1),y}function f(v,y,M,T,E,b){let R=a[e];return R===void 0?(R={id:v.id,object:v,geometry:y,material:M,materialVariant:u(v),groupOrder:T,renderOrder:v.renderOrder,z:E,group:b},a[e]=R):(R.id=v.id,R.object=v,R.geometry=y,R.material=M,R.materialVariant=u(v),R.groupOrder=T,R.renderOrder=v.renderOrder,R.z=E,R.group=b),e++,R}function h(v,y,M,T,E,b){const R=f(v,y,M,T,E,b);M.transmission>0?r.push(R):M.transparent===!0?o.push(R):i.push(R)}function p(v,y,M,T,E,b){const R=f(v,y,M,T,E,b);M.transmission>0?r.unshift(R):M.transparent===!0?o.unshift(R):i.unshift(R)}function x(v,y){i.length>1&&i.sort(v||EI),r.length>1&&r.sort(y||tb),o.length>1&&o.sort(y||tb)}function g(){for(let v=e,y=a.length;v<y;v++){const M=a[v];if(M.id===null)break;M.id=null,M.object=null,M.geometry=null,M.material=null,M.group=null}}return{opaque:i,transmissive:r,transparent:o,init:c,push:h,unshift:p,finish:g,sort:x}}function MI(){let a=new WeakMap;function e(r,o){const c=a.get(r);let u;return c===void 0?(u=new nb,a.set(r,[u])):o>=c.length?(u=new nb,c.push(u)):u=c[o],u}function i(){a=new WeakMap}return{get:e,dispose:i}}function AI(){const a={};return{get:function(e){if(a[e.id]!==void 0)return a[e.id];let i;switch(e.type){case"DirectionalLight":i={direction:new he,color:new qt};break;case"SpotLight":i={position:new he,direction:new he,color:new qt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":i={position:new he,color:new qt,distance:0,decay:0};break;case"HemisphereLight":i={direction:new he,skyColor:new qt,groundColor:new qt};break;case"RectAreaLight":i={color:new qt,position:new he,halfWidth:new he,halfHeight:new he};break}return a[e.id]=i,i}}}function wI(){const a={};return{get:function(e){if(a[e.id]!==void 0)return a[e.id];let i;switch(e.type){case"DirectionalLight":i={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new kt};break;case"SpotLight":i={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new kt};break;case"PointLight":i={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new kt,shadowCameraNear:1,shadowCameraFar:1e3};break}return a[e.id]=i,i}}}let TI=0;function RI(a,e){return(e.castShadow?2:0)-(a.castShadow?2:0)+(e.map?1:0)-(a.map?1:0)}function CI(a){const e=new AI,i=wI(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let p=0;p<9;p++)r.probe.push(new he);const o=new he,c=new Sn,u=new Sn;function f(p){let x=0,g=0,v=0;for(let L=0;L<9;L++)r.probe[L].set(0,0,0);let y=0,M=0,T=0,E=0,b=0,R=0,C=0,I=0,U=0,B=0,D=0;p.sort(RI);for(let L=0,X=p.length;L<X;L++){const k=p[L],G=k.color,Y=k.intensity,ee=k.distance;let Z=null;if(k.shadow&&k.shadow.map&&(k.shadow.map.texture.format===Ro?Z=k.shadow.map.texture:Z=k.shadow.map.depthTexture||k.shadow.map.texture),k.isAmbientLight)x+=G.r*Y,g+=G.g*Y,v+=G.b*Y;else if(k.isLightProbe){for(let _=0;_<9;_++)r.probe[_].addScaledVector(k.sh.coefficients[_],Y);D++}else if(k.isDirectionalLight){const _=e.get(k);if(_.color.copy(k.color).multiplyScalar(k.intensity),k.castShadow){const F=k.shadow,se=i.get(k);se.shadowIntensity=F.intensity,se.shadowBias=F.bias,se.shadowNormalBias=F.normalBias,se.shadowRadius=F.radius,se.shadowMapSize=F.mapSize,r.directionalShadow[y]=se,r.directionalShadowMap[y]=Z,r.directionalShadowMatrix[y]=k.shadow.matrix,R++}r.directional[y]=_,y++}else if(k.isSpotLight){const _=e.get(k);_.position.setFromMatrixPosition(k.matrixWorld),_.color.copy(G).multiplyScalar(Y),_.distance=ee,_.coneCos=Math.cos(k.angle),_.penumbraCos=Math.cos(k.angle*(1-k.penumbra)),_.decay=k.decay,r.spot[T]=_;const F=k.shadow;if(k.map&&(r.spotLightMap[U]=k.map,U++,F.updateMatrices(k),k.castShadow&&B++),r.spotLightMatrix[T]=F.matrix,k.castShadow){const se=i.get(k);se.shadowIntensity=F.intensity,se.shadowBias=F.bias,se.shadowNormalBias=F.normalBias,se.shadowRadius=F.radius,se.shadowMapSize=F.mapSize,r.spotShadow[T]=se,r.spotShadowMap[T]=Z,I++}T++}else if(k.isRectAreaLight){const _=e.get(k);_.color.copy(G).multiplyScalar(Y),_.halfWidth.set(k.width*.5,0,0),_.halfHeight.set(0,k.height*.5,0),r.rectArea[E]=_,E++}else if(k.isPointLight){const _=e.get(k);if(_.color.copy(k.color).multiplyScalar(k.intensity),_.distance=k.distance,_.decay=k.decay,k.castShadow){const F=k.shadow,se=i.get(k);se.shadowIntensity=F.intensity,se.shadowBias=F.bias,se.shadowNormalBias=F.normalBias,se.shadowRadius=F.radius,se.shadowMapSize=F.mapSize,se.shadowCameraNear=F.camera.near,se.shadowCameraFar=F.camera.far,r.pointShadow[M]=se,r.pointShadowMap[M]=Z,r.pointShadowMatrix[M]=k.shadow.matrix,C++}r.point[M]=_,M++}else if(k.isHemisphereLight){const _=e.get(k);_.skyColor.copy(k.color).multiplyScalar(Y),_.groundColor.copy(k.groundColor).multiplyScalar(Y),r.hemi[b]=_,b++}}E>0&&(a.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=Xe.LTC_FLOAT_1,r.rectAreaLTC2=Xe.LTC_FLOAT_2):(r.rectAreaLTC1=Xe.LTC_HALF_1,r.rectAreaLTC2=Xe.LTC_HALF_2)),r.ambient[0]=x,r.ambient[1]=g,r.ambient[2]=v;const A=r.hash;(A.directionalLength!==y||A.pointLength!==M||A.spotLength!==T||A.rectAreaLength!==E||A.hemiLength!==b||A.numDirectionalShadows!==R||A.numPointShadows!==C||A.numSpotShadows!==I||A.numSpotMaps!==U||A.numLightProbes!==D)&&(r.directional.length=y,r.spot.length=T,r.rectArea.length=E,r.point.length=M,r.hemi.length=b,r.directionalShadow.length=R,r.directionalShadowMap.length=R,r.pointShadow.length=C,r.pointShadowMap.length=C,r.spotShadow.length=I,r.spotShadowMap.length=I,r.directionalShadowMatrix.length=R,r.pointShadowMatrix.length=C,r.spotLightMatrix.length=I+U-B,r.spotLightMap.length=U,r.numSpotLightShadowsWithMaps=B,r.numLightProbes=D,A.directionalLength=y,A.pointLength=M,A.spotLength=T,A.rectAreaLength=E,A.hemiLength=b,A.numDirectionalShadows=R,A.numPointShadows=C,A.numSpotShadows=I,A.numSpotMaps=U,A.numLightProbes=D,r.version=TI++)}function h(p,x){let g=0,v=0,y=0,M=0,T=0;const E=x.matrixWorldInverse;for(let b=0,R=p.length;b<R;b++){const C=p[b];if(C.isDirectionalLight){const I=r.directional[g];I.direction.setFromMatrixPosition(C.matrixWorld),o.setFromMatrixPosition(C.target.matrixWorld),I.direction.sub(o),I.direction.transformDirection(E),g++}else if(C.isSpotLight){const I=r.spot[y];I.position.setFromMatrixPosition(C.matrixWorld),I.position.applyMatrix4(E),I.direction.setFromMatrixPosition(C.matrixWorld),o.setFromMatrixPosition(C.target.matrixWorld),I.direction.sub(o),I.direction.transformDirection(E),y++}else if(C.isRectAreaLight){const I=r.rectArea[M];I.position.setFromMatrixPosition(C.matrixWorld),I.position.applyMatrix4(E),u.identity(),c.copy(C.matrixWorld),c.premultiply(E),u.extractRotation(c),I.halfWidth.set(C.width*.5,0,0),I.halfHeight.set(0,C.height*.5,0),I.halfWidth.applyMatrix4(u),I.halfHeight.applyMatrix4(u),M++}else if(C.isPointLight){const I=r.point[v];I.position.setFromMatrixPosition(C.matrixWorld),I.position.applyMatrix4(E),v++}else if(C.isHemisphereLight){const I=r.hemi[T];I.direction.setFromMatrixPosition(C.matrixWorld),I.direction.transformDirection(E),T++}}}return{setup:f,setupView:h,state:r}}function ib(a){const e=new CI(a),i=[],r=[];function o(x){p.camera=x,i.length=0,r.length=0}function c(x){i.push(x)}function u(x){r.push(x)}function f(){e.setup(i)}function h(x){e.setupView(i,x)}const p={lightsArray:i,shadowsArray:r,camera:null,lights:e,transmissionRenderTarget:{}};return{init:o,state:p,setupLights:f,setupLightsView:h,pushLight:c,pushShadow:u}}function II(a){let e=new WeakMap;function i(o,c=0){const u=e.get(o);let f;return u===void 0?(f=new ib(a),e.set(o,[f])):c>=u.length?(f=new ib(a),u.push(f)):f=u[c],f}function r(){e=new WeakMap}return{get:i,dispose:r}}const DI=`void main() { 4007 gl_Position = vec4( position, 1.0 ); 4008}`,NI=`uniform sampler2D shadow_pass; 4009uniform vec2 resolution; 4010uniform float radius; 4011void main() { 4012 const float samples = float( VSM_SAMPLES ); 4013 float mean = 0.0; 4014 float squared_mean = 0.0; 4015 float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 ); 4016 float uvStart = samples <= 1.0 ? 0.0 : - 1.0; 4017 for ( float i = 0.0; i < samples; i ++ ) { 4018 float uvOffset = uvStart + i * uvStride; 4019 #ifdef HORIZONTAL_PASS 4020 vec2 distribution = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ).rg; 4021 mean += distribution.x; 4022 squared_mean += distribution.y * distribution.y + distribution.x * distribution.x; 4023 #else 4024 float depth = texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ).r; 4025 mean += depth; 4026 squared_mean += depth * depth; 4027 #endif 4028 } 4029 mean = mean / samples; 4030 squared_mean = squared_mean / samples; 4031 float std_dev = sqrt( max( 0.0, squared_mean - mean * mean ) ); 4032 gl_FragColor = vec4( mean, std_dev, 0.0, 1.0 ); 4033}`,LI=[new he(1,0,0),new he(-1,0,0),new he(0,1,0),new he(0,-1,0),new he(0,0,1),new he(0,0,-1)],PI=[new he(0,-1,0),new he(0,-1,0),new he(0,0,1),new he(0,0,-1),new he(0,-1,0),new he(0,-1,0)],ab=new Sn,Ol=new he,pp=new he;function OI(a,e,i){let r=new GS;const o=new kt,c=new kt,u=new hn,f=new YT,h=new XT,p={},x=i.maxTextureSize,g={[wr]:ni,[ni]:wr,[Pa]:Pa}
vendor: 3,552 bytes, line 4033
4033,v=new ji({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new kt},radius:{value:4}},vertexShader:DI,fragmentShader:NI}),y=v.clone();y.defines.HORIZONTAL_PASS=1;const M=new Va;M.setAttribute("position",new aa(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const T=new sa(M,v),E=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=Ku;let b=this.type;this.render=function(B,D,A){if(E.enabled===!1||E.autoUpdate===!1&&E.needsUpdate===!1||B.length===0)return;this.type===O1&&(bt("WebGLShadowMap: PCFSoftShadowMap has been deprecated. Using PCFShadowMap instead."),this.type=Ku);const L=a.getRenderTarget(),X=a.getActiveCubeFace(),k=a.getActiveMipmapLevel(),G=a.state;G.setBlending(Ua),G.buffers.depth.getReversed()===!0?G.buffers.color.setClear(0,0,0,0):G.buffers.color.setClear(1,1,1,1),G.buffers.depth.setTest(!0),G.setScissorTest(!1);const Y=b!==this.type;Y&&D.traverse(function(ee){ee.material&&(Array.isArray(ee.material)?ee.material.forEach(Z=>Z.needsUpdate=!0):ee.material.needsUpdate=!0)});for(let ee=0,Z=B.length;ee<Z;ee++){const _=B[ee],F=_.shadow;if(F===void 0){bt("WebGLShadowMap:",_,"has no shadow.");continue}if(F.autoUpdate===!1&&F.needsUpdate===!1)continue;o.copy(F.mapSize);const se=F.getFrameExtents();o.multiply(se),c.copy(F.mapSize),(o.x>x||o.y>x)&&(o.x>x&&(c.x=Math.floor(x/se.x),o.x=c.x*se.x,F.mapSize.x=c.x),o.y>x&&(c.y=Math.floor(x/se.y),o.y=c.y*se.y,F.mapSize.y=c.y));const fe=a.state.buffers.depth.getReversed();if(F.camera._reversedDepth=fe,F.map===null||Y===!0){if(F.map!==null&&(F.map.depthTexture!==null&&(F.map.depthTexture.dispose(),F.map.depthTexture=null),F.map.dispose()),this.type===Vl){if(_.isPointLight){bt("WebGLShadowMap: VSM shadow maps are not supported for PointLights. Use PCF or BasicShadowMap instead.");continue}F.map=new ia(o.x,o.y,{format:Ro,type:_a,minFilter:Bn,magFilter:Bn,generateMipmaps:!1}),F.map.texture.name=_.name+".shadowMap",F.map.depthTexture=new ac(o.x,o.y,ea),F.map.depthTexture.name=_.name+".shadowMapDepth",F.map.depthTexture.format=Ha,F.map.depthTexture.compareFunction=null,F.map.depthTexture.minFilter=On,F.map.depthTexture.magFilter=On}else _.isPointLight?(F.map=new QS(o.x),F.map.depthTexture=new _T(o.x,ra)):(F.map=new ia(o.x,o.y),F.map.depthTexture=new ac(o.x,o.y,ra)),F.map.depthTexture.name=_.name+".shadowMap",F.map.depthTexture.format=Ha,this.type===Ku?(F.map.depthTexture.compareFunction=fe?km:Um,F.map.depthTexture.minFilter=Bn,F.map.depthTexture.magFilter=Bn):(F.map.depthTexture.compareFunction=null,F.map.depthTexture.minFilter=On,F.map.depthTexture.magFilter=On);F.camera.updateProjectionMatrix()}const ae=F.map.isWebGLCubeRenderTarget?6:1;for(let H=0;H<ae;H++){if(F.map.isWebGLCubeRenderTarget)a.setRenderTarget(F.map,H),a.clear();else{H===0&&(a.setRenderTarget(F.map),a.clear());const Q=F.getViewport(H);u.set(c.x*Q.x,c.y*Q.y,c.x*Q.z,c.y*Q.w),G.viewport(u)}if(_.isPointLight){const Q=F.camera,Se=F.matrix,ye=_.distance||Q.far;ye!==Q.far&&(Q.far=ye,Q.updateProjectionMatrix()),Ol.setFromMatrixPosition(_.matrixWorld),Q.position.copy(Ol),pp.copy(Q.position),pp.add(LI[H]),Q.up.copy(PI[H]),Q.lookAt(pp),Q.updateMatrixWorld(),Se.makeTranslation(-Ol.x,-Ol.y,-Ol.z),ab.multiplyMatrices(Q.projectionMatrix,Q.matrixWorldInverse),F._frustum.setFromProjectionMatrix(ab,Q.coordinateSystem,Q.reversedDepth)}else F.updateMatrices(_);r=F.getFrustum(),I(D,A,F.camera,_,this.type)}F.isPointLightShadow!==!0&&this.type===Vl&&R(F,A),F.needsUpdate=!1}b=this.type,E.needsUpdate=!1,a.setRenderTarget(L,X,k)};function R(B,D){const A=e.update(T);
vendor: 103,668 bytes, lines 4033-4083
4033v.defines.VSM_SAMPLES!==B.blurSamples&&(v.defines.VSM_SAMPLES=B.blurSamples,y.defines.VSM_SAMPLES=B.blurSamples,v.needsUpdate=!0,y.needsUpdate=!0),B.mapPass===null&&(B.mapPass=new ia(o.x,o.y,{format:Ro,type:_a})),v.uniforms.shadow_pass.value=B.map.depthTexture,v.uniforms.resolution.value=B.mapSize,v.uniforms.radius.value=B.radius,a.setRenderTarget(B.mapPass),a.clear(),a.renderBufferDirect(D,null,A,v,T,null),y.uniforms.shadow_pass.value=B.mapPass.texture,y.uniforms.resolution.value=B.mapSize,y.uniforms.radius.value=B.radius,a.setRenderTarget(B.map),a.clear(),a.renderBufferDirect(D,null,A,y,T,null)}function C(B,D,A,L){let X=null;const k=A.isPointLight===!0?B.customDistanceMaterial:B.customDepthMaterial;if(k!==void 0)X=k;else if(X=A.isPointLight===!0?h:f,a.localClippingEnabled&&D.clipShadows===!0&&Array.isArray(D.clippingPlanes)&&D.clippingPlanes.length!==0||D.displacementMap&&D.displacementScale!==0||D.alphaMap&&D.alphaTest>0||D.map&&D.alphaTest>0||D.alphaToCoverage===!0){const G=X.uuid,Y=D.uuid;let ee=p[G];ee===void 0&&(ee={},p[G]=ee);let Z=ee[Y];Z===void 0&&(Z=X.clone(),ee[Y]=Z,D.addEventListener("dispose",U)),X=Z}if(X.visible=D.visible,X.wireframe=D.wireframe,L===Vl?X.side=D.shadowSide!==null?D.shadowSide:D.side:X.side=D.shadowSide!==null?D.shadowSide:g[D.side],X.alphaMap=D.alphaMap,X.alphaTest=D.alphaToCoverage===!0?.5:D.alphaTest,X.map=D.map,X.clipShadows=D.clipShadows,X.clippingPlanes=D.clippingPlanes,X.clipIntersection=D.clipIntersection,X.displacementMap=D.displacementMap,X.displacementScale=D.displacementScale,X.displacementBias=D.displacementBias,X.wireframeLinewidth=D.wireframeLinewidth,X.linewidth=D.linewidth,A.isPointLight===!0&&X.isMeshDistanceMaterial===!0){const G=a.properties.get(X);G.light=A}return X}function I(B,D,A,L,X){if(B.visible===!1)return;if(B.layers.test(D.layers)&&(B.isMesh||B.isLine||B.isPoints)&&(B.castShadow||B.receiveShadow&&X===Vl)&&(!B.frustumCulled||r.intersectsObject(B))){B.modelViewMatrix.multiplyMatrices(A.matrixWorldInverse,B.matrixWorld);const Y=e.update(B),ee=B.material;if(Array.isArray(ee)){const Z=Y.groups;for(let _=0,F=Z.length;_<F;_++){const se=Z[_],fe=ee[se.materialIndex];if(fe&&fe.visible){const ae=C(B,fe,L,X);B.onBeforeShadow(a,B,D,A,Y,ae,se),a.renderBufferDirect(A,null,Y,ae,B,se),B.onAfterShadow(a,B,D,A,Y,ae,se)}}}else if(ee.visible){const Z=C(B,ee,L,X);B.onBeforeShadow(a,B,D,A,Y,Z,null),a.renderBufferDirect(A,null,Y,Z,B,null),B.onAfterShadow(a,B,D,A,Y,Z,null)}}const G=B.children;for(let Y=0,ee=G.length;Y<ee;Y++)I(G[Y],D,A,L,X)}function U(B){B.target.removeEventListener("dispose",U);for(const A in p){const L=p[A],X=B.target.uuid;X in L&&(L[X].dispose(),delete L[X])}}}function BI(a,e){function i(){let J=!1;const ze=new hn;let Ue=null;const Qe=new hn(0,0,0,0);return{setMask:function(Oe){Ue!==Oe&&!J&&(a.colorMask(Oe,Oe,Oe,Oe),Ue=Oe)},setLocked:function(Oe){J=Oe},setClear:function(Oe,be,et,$e,vt){vt===!0&&(Oe*=$e,be*=$e,et*=$e),ze.set(Oe,be,et,$e),Qe.equals(ze)===!1&&(a.clearColor(Oe,be,et,$e),Qe.copy(ze))},reset:function(){J=!1,Ue=null,Qe.set(-1,0,0,0)}}}function r(){let J=!1,ze=!1,Ue=null,Qe=null,Oe=null;return{setReversed:function(be){if(ze!==be){const et=e.get("EXT_clip_control");be?et.clipControlEXT(et.LOWER_LEFT_EXT,et.ZERO_TO_ONE_EXT):et.clipControlEXT(et.LOWER_LEFT_EXT,et.NEGATIVE_ONE_TO_ONE_EXT),ze=be;const $e=Oe;Oe=null,this.setClear($e)}},getReversed:function(){return ze},setTest:function(be){be?me(a.DEPTH_TEST):Me(a.DEPTH_TEST)},setMask:function(be){Ue!==be&&!J&&(a.depthMask(be),Ue=be)},setFunc:function(be){if(ze&&(be=pT[be]),Qe!==be){switch(be){case Np:a.depthFunc(a.NEVER);break;case Lp:a.depthFunc(a.ALWAYS);break;case Pp:a.depthFunc(a.LESS);break;case wo:a.depthFunc(a.LEQUAL);break;case Op:a.depthFunc(a.EQUAL);break;case Bp:a.depthFunc(a.GEQUAL);break;case Up:a.depthFunc(a.GREATER);break;case kp:a.depthFunc(a.NOTEQUAL);break;default:a.depthFunc(a.LEQUAL)}Qe=be}},setLocked:function(be){J=be},setClear:function(be){Oe!==be&&(Oe=be,ze&&(be=1-be),a.clearDepth(be))},reset:function(){J=!1,Ue=null,Qe=null,Oe=null,ze=!1}}}function o(){let J=!1,ze=null,Ue=null,Qe=null,Oe=null,be=null,et=null,$e=null,vt=null;return{setTest:function(Dt){J||(Dt?me(a.STENCIL_TEST):Me(a.STENCIL_TEST))},setMask:function(Dt){ze!==Dt&&!J&&(a.stencilMask(Dt),ze=Dt)},setFunc:function(Dt,$t,Zn){(Ue!==Dt||Qe!==$t||Oe!==Zn)&&(a.stencilFunc(Dt,$t,Zn),Ue=Dt,Qe=$t,Oe=Zn)},setOp:function(Dt,$t,Zn){(be!==Dt||et!==$t||$e!==Zn)&&(a.stencilOp(Dt,$t,Zn),be=Dt,et=$t,$e=Zn)},setLocked:function(Dt){J=Dt},setClear:function(Dt){vt!==Dt&&(a.clearStencil(Dt),vt=Dt)},reset:function(){J=!1,ze=null,Ue=null,Qe=null,Oe=null,be=null,et=null,$e=null,vt=null}}}const c=new i,u=new r,f=new o,h=new WeakMap,p=new WeakMap;let x={},g={},v=new WeakMap,y=[],M=null,T=!1,E=null,b=null,R=null,C=null,I=null,U=null,B=null,D=new qt(0,0,0),A=0,L=!1,X=null,k=null,G=null,Y=null,ee=null;const Z=a.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let _=!1,F=0;const se=a.getParameter(a.VERSION);se.indexOf("WebGL")!==-1?(F=parseFloat(/^WebGL (\d)/.exec(se)[1]),_=F>=1):se.indexOf("OpenGL ES")!==-1&&(F=parseFloat(/^OpenGL ES (\d)/.exec(se)[1]),_=F>=2);let fe=null,ae={};const H=a.getParameter(a.SCISSOR_BOX),Q=a.getParameter(a.VIEWPORT),Se=new hn().fromArray(H),ye=new hn().fromArray(Q);function Ce(J,ze,Ue,Qe){const Oe=new Uint8Array(4),be=a.createTexture();a.bindTexture(J,be),a.texParameteri(J,a.TEXTURE_MIN_FILTER,a.NEAREST),a.texParameteri(J,a.TEXTURE_MAG_FILTER,a.NEAREST);for(let et=0;et<Ue;et++)J===a.TEXTURE_3D||J===a.TEXTURE_2D_ARRAY?a.texImage3D(ze,0,a.RGBA,1,1,Qe,0,a.RGBA,a.UNSIGNED_BYTE,Oe):a.texImage2D(ze+et,0,a.RGBA,1,1,0,a.RGBA,a.UNSIGNED_BYTE,Oe);return be}const $={};$[a.TEXTURE_2D]=Ce(a.TEXTURE_2D,a.TEXTURE_2D,1),$[a.TEXTURE_CUBE_MAP]=Ce(a.TEXTURE_CUBE_MAP,a.TEXTURE_CUBE_MAP_POSITIVE_X,6),$[a.TEXTURE_2D_ARRAY]=Ce(a.TEXTURE_2D_ARRAY,a.TEXTURE_2D_ARRAY,1,1),$[a.TEXTURE_3D]=Ce(a.TEXTURE_3D,a.TEXTURE_3D,1,1),c.setClear(0,0,0,1),u.setClear(1),f.setClear(0),me(a.DEPTH_TEST),u.setFunc(wo),je(!1),Ne(cy),me(a.CULL_FACE),pt(Ua);function me(J){x[J]!==!0&&(a.enable(J),x[J]=!0)}function Me(J){x[J]!==!1&&(a.disable(J),x[J]=!1)}function Te(J,ze){return g[J]!==ze?(a.bindFramebuffer(J,ze),g[J]=ze,J===a.DRAW_FRAMEBUFFER&&(g[a.FRAMEBUFFER]=ze),J===a.FRAMEBUFFER&&(g[a.DRAW_FRAMEBUFFER]=ze),!0):!1}function Ze(J,ze){let Ue=y,Qe=!1;if(J){Ue=v.get(ze),Ue===void 0&&(Ue=[],v.set(ze,Ue));const Oe=J.textures;if(Ue.length!==Oe.length||Ue[0]!==a.COLOR_ATTACHMENT0){for(let be=0,et=Oe.length;be<et;be++)Ue[be]=a.COLOR_ATTACHMENT0+be;Ue.length=Oe.length,Qe=!0}}else Ue[0]!==a.BACK&&(Ue[0]=a.BACK,Qe=!0);Qe&&a.drawBuffers(Ue)}function tt(J){return M!==J?(a.useProgram(J),M=J,!0):!1}const yt={[rs]:a.FUNC_ADD,[U1]:a.FUNC_SUBTRACT,[k1]:a.FUNC_REVERSE_SUBTRACT};yt[z1]=a.MIN,yt[_1]=a.MAX;const xt={[H1]:a.ZERO,[F1]:a.ONE,[V1]:a.SRC_COLOR,[Ip]:a.SRC_ALPHA,[W1]:a.SRC_ALPHA_SATURATE,[X1]:a.DST_COLOR,[j1]:a.DST_ALPHA,[G1]:a.ONE_MINUS_SRC_COLOR,[Dp]:a.ONE_MINUS_SRC_ALPHA,[Z1]:a.ONE_MINUS_DST_COLOR,[Y1]:a.ONE_MINUS_DST_ALPHA,[Q1]:a.CONSTANT_COLOR,[q1]:a.ONE_MINUS_CONSTANT_COLOR,[K1]:a.CONSTANT_ALPHA,[J1]:a.ONE_MINUS_CONSTANT_ALPHA};function pt(J,ze,Ue,Qe,Oe,be,et,$e,vt,Dt){if(J===Ua){T===!0&&(Me(a.BLEND),T=!1);return}if(T===!1&&(me(a.BLEND),T=!0),J!==B1){if(J!==E||Dt!==L){if((b!==rs||I!==rs)&&(a.blendEquation(a.FUNC_ADD),b=rs,I=rs),Dt)switch(J){case So:a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA);break;case uy:a.blendFunc(a.ONE,a.ONE);break;case fy:a.blendFuncSeparate(a.ZERO,a.ONE_MINUS_SRC_COLOR,a.ZERO,a.ONE);break;case dy:a.blendFuncSeparate(a.DST_COLOR,a.ONE_MINUS_SRC_ALPHA,a.ZERO,a.ONE);break;default:Vt("WebGLState: Invalid blending: ",J);break}else switch(J){case So:a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA);break;case uy:a.blendFuncSeparate(a.SRC_ALPHA,a.ONE,a.ONE,a.ONE);break;case fy:Vt("WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true");break;case dy:Vt("WebGLState: MultiplyBlending requires material.premultipliedAlpha = true");break;default:Vt("WebGLState: Invalid blending: ",J);break}R=null,C=null,U=null,B=null,D.set(0,0,0),A=0,E=J,L=Dt}return}Oe=Oe||ze,be=be||Ue,et=et||Qe,(ze!==b||Oe!==I)&&(a.blendEquationSeparate(yt[ze],yt[Oe]),b=ze,I=Oe),(Ue!==R||Qe!==C||be!==U||et!==B)&&(a.blendFuncSeparate(xt[Ue],xt[Qe],xt[be],xt[et]),R=Ue,C=Qe,U=be,B=et),($e.equals(D)===!1||vt!==A)&&(a.blendColor($e.r,$e.g,$e.b,vt),D.copy($e),A=vt),E=J,L=!1}function ft(J,ze){J.side===Pa?Me(a.CULL_FACE):me(a.CULL_FACE);let Ue=J.side===ni;ze&&(Ue=!Ue),je(Ue),J.blending===So&&J.transparent===!1?pt(Ua):pt(J.blending,J.blendEquation,J.blendSrc,J.blendDst,J.blendEquationAlpha,J.blendSrcAlpha,J.blendDstAlpha,J.blendColor,J.blendAlpha,J.premultipliedAlpha),u.setFunc(J.depthFunc),u.setTest(J.depthTest),u.setMask(J.depthWrite),c.setMask(J.colorWrite);const Qe=J.stencilWrite;f.setTest(Qe),Qe&&(f.setMask(J.stencilWriteMask),f.setFunc(J.stencilFunc,J.stencilRef,J.stencilFuncMask),f.setOp(J.stencilFail,J.stencilZFail,J.stencilZPass)),gt(J.polygonOffset,J.polygonOffsetFactor,J.polygonOffsetUnits),J.alphaToCoverage===!0?me(a.SAMPLE_ALPHA_TO_COVERAGE):Me(a.SAMPLE_ALPHA_TO_COVERAGE)}function je(J){X!==J&&(J?a.frontFace(a.CW):a.frontFace(a.CCW),X=J)}function Ne(J){J!==L1?(me(a.CULL_FACE),J!==k&&(J===cy?a.cullFace(a.BACK):J===P1?a.cullFace(a.FRONT):a.cullFace(a.FRONT_AND_BACK))):Me(a.CULL_FACE),k=J}function V(J){J!==G&&(_&&a.lineWidth(J),G=J)}function gt(J,ze,Ue){J?(me(a.POLYGON_OFFSET_FILL),(Y!==ze||ee!==Ue)&&(Y=ze,ee=Ue,u.getReversed()&&(ze=-ze),a.polygonOffset(ze,Ue))):Me(a.POLYGON_OFFSET_FILL)}function ct(J){J?me(a.SCISSOR_TEST):Me(a.SCISSOR_TEST)}function pe(J){J===void 0&&(J=a.TEXTURE0+Z-1),fe!==J&&(a.activeTexture(J),fe=J)}function Ie(J,ze,Ue){Ue===void 0&&(fe===null?Ue=a.TEXTURE0+Z-1:Ue=fe);let Qe=ae[Ue];Qe===void 0&&(Qe={type:void 0,texture:void 0},ae[Ue]=Qe),(Qe.type!==J||Qe.texture!==ze)&&(fe!==Ue&&(a.activeTexture(Ue),fe=Ue),a.bindTexture(J,ze||$[J]),Qe.type=J,Qe.texture=ze)}function z(){const J=ae[fe];J!==void 0&&J.type!==void 0&&(a.bindTexture(J.type,null),J.type=void 0,J.texture=void 0)}function N(){try{a.compressedTexImage2D(...arguments)}catch(J){Vt("WebGLState:",J)}}function W(){try{a.compressedTexImage3D(...arguments)}catch(J){Vt("WebGLState:",J)}}function xe(){try{a.texSubImage2D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Ae(){try{a.texSubImage3D(...arguments)}catch(J){Vt("WebGLState:",J)}}function ve(){try{a.compressedTexSubImage2D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Ge(){try{a.compressedTexSubImage3D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Be(){try{a.texStorage2D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Je(){try{a.texStorage3D(...arguments)}catch(J){Vt("WebGLState:",J)}}function dt(){try{a.texImage2D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Pe(){try{a.texImage3D(...arguments)}catch(J){Vt("WebGLState:",J)}}function Le(J){Se.equals(J)===!1&&(a.scissor(J.x,J.y,J.z,J.w),Se.copy(J))}function Ye(J){ye.equals(J)===!1&&(a.viewport(J.x,J.y,J.z,J.w),ye.copy(J))}function He(J,ze){let Ue=p.get(ze);Ue===void 0&&(Ue=new WeakMap,p.set(ze,Ue));let Qe=Ue.get(J);Qe===void 0&&(Qe=a.getUniformBlockIndex(ze,J.name),Ue.set(J,Qe))}function We(J,ze){const Qe=p.get(ze).get(J);h.get(ze)!==Qe&&(a.uniformBlockBinding(ze,Qe,J.__bindingPointIndex),h.set(ze,Qe))}function lt(){a.disable(a.BLEND),a.disable(a.CULL_FACE),a.disable(a.DEPTH_TEST),a.disable(a.POLYGON_OFFSET_FILL),a.disable(a.SCISSOR_TEST),a.disable(a.STENCIL_TEST),a.disable(a.SAMPLE_ALPHA_TO_COVERAGE),a.blendEquation(a.FUNC_ADD),a.blendFunc(a.ONE,a.ZERO),a.blendFuncSeparate(a.ONE,a.ZERO,a.ONE,a.ZERO),a.blendColor(0,0,0,0),a.colorMask(!0,!0,!0,!0),a.clearColor(0,0,0,0),a.depthMask(!0),a.depthFunc(a.LESS),u.setReversed(!1),a.clearDepth(1),a.stencilMask(4294967295),a.stencilFunc(a.ALWAYS,0,4294967295),a.stencilOp(a.KEEP,a.KEEP,a.KEEP),a.clearStencil(0),a.cullFace(a.BACK),a.frontFace(a.CCW),a.polygonOffset(0,0),a.activeTexture(a.TEXTURE0),a.bindFramebuffer(a.FRAMEBUFFER,null),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,null),a.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.useProgram(null),a.lineWidth(1),a.scissor(0,0,a.canvas.width,a.canvas.height),a.viewport(0,0,a.canvas.width,a.canvas.height),x={},fe=null,ae={},g={},v=new WeakMap,y=[],M=null,T=!1,E=null,b=null,R=null,C=null,I=null,U=null,B=null,D=new qt(0,0,0),A=0,L=!1,X=null,k=null,G=null,Y=null,ee=null,Se.set(0,0,a.canvas.width,a.canvas.height),ye.set(0,0,a.canvas.width,a.canvas.height),c.reset(),u.reset(),f.reset()}return{buffers:{color:c,depth:u,stencil:f},enable:me,disable:Me,bindFramebuffer:Te,drawBuffers:Ze,useProgram:tt,setBlending:pt,setMaterial:ft,setFlipSided:je,setCullFace:Ne,setLineWidth:V,setPolygonOffset:gt,setScissorTest:ct,activeTexture:pe,bindTexture:Ie,unbindTexture:z,compressedTexImage2D:N,compressedTexImage3D:W,texImage2D:dt,texImage3D:Pe,updateUBOMapping:He,uniformBlockBinding:We,texStorage2D:Be,texStorage3D:Je,texSubImage2D:xe,texSubImage3D:Ae,compressedTexSubImage2D:ve,compressedTexSubImage3D:Ge,scissor:Le,viewport:Ye,reset:lt}}function UI(a,e,i,r,o,c,u){const f=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,h=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),p=new kt,x=new WeakMap;let g;const v=new WeakMap;let y=!1;try{y=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function M(z,N){return y?new OffscreenCanvas(z,N):ic("canvas")}function T(z,N,W){let xe=1;const Ae=Ie(z);if((Ae.width>W||Ae.height>W)&&(xe=W/Math.max(Ae.width,Ae.height)),xe<1)if(typeof HTMLImageElement<"u"&&z instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&z instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&z instanceof ImageBitmap||typeof VideoFrame<"u"&&z instanceof VideoFrame){const ve=Math.floor(xe*Ae.width),Ge=Math.floor(xe*Ae.height);g===void 0&&(g=M(ve,Ge));const Be=N?M(ve,Ge):g;return Be.width=ve,Be.height=Ge,Be.getContext("2d").drawImage(z,0,0,ve,Ge),bt("WebGLRenderer: Texture has been resized from ("+Ae.width+"x"+Ae.height+") to ("+ve+"x"+Ge+")."),Be}else return"data"in z&&bt("WebGLRenderer: Image in DataTexture is too big ("+Ae.width+"x"+Ae.height+")."),z;return z}function E(z){return z.generateMipmaps}function b(z){a.generateMipmap(z)}function R(z){return z.isWebGLCubeRenderTarget?a.TEXTURE_CUBE_MAP:z.isWebGL3DRenderTarget?a.TEXTURE_3D:z.isWebGLArrayRenderTarget||z.isCompressedArrayTexture?a.TEXTURE_2D_ARRAY:a.TEXTURE_2D}function C(z,N,W,xe,Ae=!1){if(z!==null){if(a[z]!==void 0)return a[z];bt("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+z+"'")}let ve=N;if(N===a.RED&&(W===a.FLOAT&&(ve=a.R32F),W===a.HALF_FLOAT&&(ve=a.R16F),W===a.UNSIGNED_BYTE&&(ve=a.R8)),N===a.RED_INTEGER&&(W===a.UNSIGNED_BYTE&&(ve=a.R8UI),W===a.UNSIGNED_SHORT&&(ve=a.R16UI),W===a.UNSIGNED_INT&&(ve=a.R32UI),W===a.BYTE&&(ve=a.R8I),W===a.SHORT&&(ve=a.R16I),W===a.INT&&(ve=a.R32I)),N===a.RG&&(W===a.FLOAT&&(ve=a.RG32F),W===a.HALF_FLOAT&&(ve=a.RG16F),W===a.UNSIGNED_BYTE&&(ve=a.RG8)),N===a.RG_INTEGER&&(W===a.UNSIGNED_BYTE&&(ve=a.RG8UI),W===a.UNSIGNED_SHORT&&(ve=a.RG16UI),W===a.UNSIGNED_INT&&(ve=a.RG32UI),W===a.BYTE&&(ve=a.RG8I),W===a.SHORT&&(ve=a.RG16I),W===a.INT&&(ve=a.RG32I)),N===a.RGB_INTEGER&&(W===a.UNSIGNED_BYTE&&(ve=a.RGB8UI),W===a.UNSIGNED_SHORT&&(ve=a.RGB16UI),W===a.UNSIGNED_INT&&(ve=a.RGB32UI),W===a.BYTE&&(ve=a.RGB8I),W===a.SHORT&&(ve=a.RGB16I),W===a.INT&&(ve=a.RGB32I)),N===a.RGBA_INTEGER&&(W===a.UNSIGNED_BYTE&&(ve=a.RGBA8UI),W===a.UNSIGNED_SHORT&&(ve=a.RGBA16UI),W===a.UNSIGNED_INT&&(ve=a.RGBA32UI),W===a.BYTE&&(ve=a.RGBA8I),W===a.SHORT&&(ve=a.RGBA16I),W===a.INT&&(ve=a.RGBA32I)),N===a.RGB&&(W===a.UNSIGNED_INT_5_9_9_9_REV&&(ve=a.RGB9_E5),W===a.UNSIGNED_INT_10F_11F_11F_REV&&(ve=a.R11F_G11F_B10F)),N===a.RGBA){const Ge=Ae?uf:zt.getTransfer(xe);W===a.FLOAT&&(ve=a.RGBA32F),W===a.HALF_FLOAT&&(ve=a.RGBA16F),W===a.UNSIGNED_BYTE&&(ve=Ge===Xt?a.SRGB8_ALPHA8:a.RGBA8),W===a.UNSIGNED_SHORT_4_4_4_4&&(ve=a.RGBA4),W===a.UNSIGNED_SHORT_5_5_5_1&&(ve=a.RGB5_A1)}return(ve===a.R16F||ve===a.R32F||ve===a.RG16F||ve===a.RG32F||ve===a.RGBA16F||ve===a.RGBA32F)&&e.get("EXT_color_buffer_float"),ve}function I(z,N){let W;return z?N===null||N===ra||N===nc?W=a.DEPTH24_STENCIL8:N===ea?W=a.DEPTH32F_STENCIL8:N===tc&&(W=a.DEPTH24_STENCIL8,bt("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):N===null||N===ra||N===nc?W=a.DEPTH_COMPONENT24:N===ea?W=a.DEPTH_COMPONENT32F:N===tc&&(W=a.DEPTH_COMPONENT16),W}function U(z,N){return E(z)===!0||z.isFramebufferTexture&&z.minFilter!==On&&z.minFilter!==Bn?Math.log2(Math.max(N.width,N.height))+1:z.mipmaps!==void 0&&z.mipmaps.length>0?z.mipmaps.length:z.isCompressedTexture&&Array.isArray(z.image)?N.mipmaps.length:1}function B(z){const N=z.target;N.removeEventListener("dispose",B),A(N),N.isVideoTexture&&x.delete(N)}function D(z){const N=z.target;N.removeEventListener("dispose",D),X(N)}function A(z){const N=r.get(z);if(N.__webglInit===void 0)return;const W=z.source,xe=v.get(W);if(xe){const Ae=xe[N.__cacheKey];Ae.usedTimes--,Ae.usedTimes===0&&L(z),Object.keys(xe).length===0&&v.delete(W)}r.remove(z)}function L(z){const N=r.get(z);a.deleteTexture(N.__webglTexture);const W=z.source,xe=v.get(W);delete xe[N.__cacheKey],u.memory.textures--}function X(z){const N=r.get(z);if(z.depthTexture&&(z.depthTexture.dispose(),r.remove(z.depthTexture)),z.isWebGLCubeRenderTarget)for(let xe=0;xe<6;xe++){if(Array.isArray(N.__webglFramebuffer[xe]))for(let Ae=0;Ae<N.__webglFramebuffer[xe].length;Ae++)a.deleteFramebuffer(N.__webglFramebuffer[xe][Ae]);else a.deleteFramebuffer(N.__webglFramebuffer[xe]);N.__webglDepthbuffer&&a.deleteRenderbuffer(N.__webglDepthbuffer[xe])}else{if(Array.isArray(N.__webglFramebuffer))for(let xe=0;xe<N.__webglFramebuffer.length;xe++)a.deleteFramebuffer(N.__webglFramebuffer[xe]);else a.deleteFramebuffer(N.__webglFramebuffer);if(N.__webglDepthbuffer&&a.deleteRenderbuffer(N.__webglDepthbuffer),N.__webglMultisampledFramebuffer&&a.deleteFramebuffer(N.__webglMultisampledFramebuffer),N.__webglColorRenderbuffer)for(let xe=0;xe<N.__webglColorRenderbuffer.length;xe++)N.__webglColorRenderbuffer[xe]&&a.deleteRenderbuffer(N.__webglColorRenderbuffer[xe]);N.__webglDepthRenderbuffer&&a.deleteRenderbuffer(N.__webglDepthRenderbuffer)}const W=z.textures;for(let xe=0,Ae=W.length;xe<Ae;xe++){const ve=r.get(W[xe]);ve.__webglTexture&&(a.deleteTexture(ve.__webglTexture),u.memory.textures--),r.remove(W[xe])}r.remove(z)}let k=0;function G(){k=0}function Y(){const z=k;return z>=o.maxTextures&&bt("WebGLTextures: Trying to use "+z+" texture units while this GPU supports only "+o.maxTextures),k+=1,z}function ee(z){const N=[];return N.push(z.wrapS),N.push(z.wrapT),N.push(z.wrapR||0),N.push(z.magFilter),N.push(z.minFilter),N.push(z.anisotropy),N.push(z.internalFormat),N.push(z.format),N.push(z.type),N.push(z.generateMipmaps),N.push(z.premultiplyAlpha),N.push(z.flipY),N.push(z.unpackAlignment),N.push(z.colorSpace),N.join()}function Z(z,N){const W=r.get(z);if(z.isVideoTexture&&ct(z),z.isRenderTargetTexture===!1&&z.isExternalTexture!==!0&&z.version>0&&W.__version!==z.version){const xe=z.image;if(xe===null)bt("WebGLRenderer: Texture marked for update but no image data found.");else if(xe.complete===!1)bt("WebGLRenderer: Texture marked for update but image is incomplete");else{$(W,z,N);return}}else z.isExternalTexture&&(W.__webglTexture=z.sourceTexture?z.sourceTexture:null);i.bindTexture(a.TEXTURE_2D,W.__webglTexture,a.TEXTURE0+N)}function _(z,N){const W=r.get(z);if(z.isRenderTargetTexture===!1&&z.version>0&&W.__version!==z.version){$(W,z,N);return}else z.isExternalTexture&&(W.__webglTexture=z.sourceTexture?z.sourceTexture:null);i.bindTexture(a.TEXTURE_2D_ARRAY,W.__webglTexture,a.TEXTURE0+N)}function F(z,N){const W=r.get(z);if(z.isRenderTargetTexture===!1&&z.version>0&&W.__version!==z.version){$(W,z,N);return}i.bindTexture(a.TEXTURE_3D,W.__webglTexture,a.TEXTURE0+N)}function se(z,N){const W=r.get(z);if(z.isCubeDepthTexture!==!0&&z.version>0&&W.__version!==z.version){me(W,z,N);return}i.bindTexture(a.TEXTURE_CUBE_MAP,W.__webglTexture,a.TEXTURE0+N)}const fe={[zp]:a.REPEAT,[Oa]:a.CLAMP_TO_EDGE,[_p]:a.MIRRORED_REPEAT},ae={[On]:a.NEAREST,[tT]:a.NEAREST_MIPMAP_NEAREST,[wu]:a.NEAREST_MIPMAP_LINEAR,[Bn]:a.LINEAR,[kh]:a.LINEAR_MIPMAP_NEAREST,[os]:a.LINEAR_MIPMAP_LINEAR},H={[rT]:a.NEVER,[uT]:a.ALWAYS,[sT]:a.LESS,[Um]:a.LEQUAL,[oT]:a.EQUAL,[km]:a.GEQUAL,[lT]:a.GREATER,[cT]:a.NOTEQUAL};function Q(z,N){if(N.type===ea&&e.has("OES_texture_float_linear")===!1&&(N.magFilter===Bn||N.magFilter===kh||N.magFilter===wu||N.magFilter===os||N.minFilter===Bn||N.minFilter===kh||N.minFilter===wu||N.minFilter===os)&&bt("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),a.texParameteri(z,a.TEXTURE_WRAP_S,fe[N.wrapS]),a.texParameteri(z,a.TEXTURE_WRAP_T,fe[N.wrapT]),(z===a.TEXTURE_3D||z===a.TEXTURE_2D_ARRAY)&&a.texParameteri(z,a.TEXTURE_WRAP_R,fe[N.wrapR]),a.texParameteri(z,a.TEXTURE_MAG_FILTER,ae[N.magFilter]),a.texParameteri(z,a.TEXTURE_MIN_FILTER,ae[N.minFilter]),N.compareFunction&&(a.texParameteri(z,a.TEXTURE_COMPARE_MODE,a.COMPARE_REF_TO_TEXTURE),a.texParameteri(z,a.TEXTURE_COMPARE_FUNC,H[N.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(N.magFilter===On||N.minFilter!==wu&&N.minFilter!==os||N.type===ea&&e.has("OES_texture_float_linear")===!1)return;if(N.anisotropy>1||r.get(N).__currentAnisotropy){const W=e.get("EXT_texture_filter_anisotropic");a.texParameterf(z,W.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(N.anisotropy,o.getMaxAnisotropy())),r.get(N).__currentAnisotropy=N.anisotropy}}}function Se(z,N){let W=!1;z.__webglInit===void 0&&(z.__webglInit=!0,N.addEventListener("dispose",B));const xe=N.source;let Ae=v.get(xe);Ae===void 0&&(Ae={},v.set(xe,Ae));const ve=ee(N);if(ve!==z.__cacheKey){Ae[ve]===void 0&&(Ae[ve]={texture:a.createTexture(),usedTimes:0},u.memory.textures++,W=!0),Ae[ve].usedTimes++;const Ge=Ae[z.__cacheKey];Ge!==void 0&&(Ae[z.__cacheKey].usedTimes--,Ge.usedTimes===0&&L(N)),z.__cacheKey=ve,z.__webglTexture=Ae[ve].texture}return W}function ye(z,N,W){return Math.floor(Math.floor(z/W)/N)}function Ce(z,N,W,xe){const ve=z.updateRanges;if(ve.length===0)i.texSubImage2D(a.TEXTURE_2D,0,0,0,N.width,N.height,W,xe,N.data);else{ve.sort((Pe,Le)=>Pe.start-Le.start);let Ge=0;for(let Pe=1;Pe<ve.length;Pe++){const Le=ve[Ge],Ye=ve[Pe],He=Le.start+Le.count,We=ye(Ye.start,N.width,4),lt=ye(Le.start,N.width,4);Ye.start<=He+1&&We===lt&&ye(Ye.start+Ye.count-1,N.width,4)===We?Le.count=Math.max(Le.count,Ye.start+Ye.count-Le.start):(++Ge,ve[Ge]=Ye)}ve.length=Ge+1;const Be=a.getParameter(a.UNPACK_ROW_LENGTH),Je=a.getParameter(a.UNPACK_SKIP_PIXELS),dt=a.getParameter(a.UNPACK_SKIP_ROWS);a.pixelStorei(a.UNPACK_ROW_LENGTH,N.width);for(let Pe=0,Le=ve.length;Pe<Le;Pe++){const Ye=ve[Pe],He=Math.floor(Ye.start/4),We=Math.ceil(Ye.count/4),lt=He%N.width,J=Math.floor(He/N.width),ze=We,Ue=1;a.pixelStorei(a.UNPACK_SKIP_PIXELS,lt),a.pixelStorei(a.UNPACK_SKIP_ROWS,J),i.texSubImage2D(a.TEXTURE_2D,0,lt,J,ze,Ue,W,xe,N.data)}z.clearUpdateRanges(),a.pixelStorei(a.UNPACK_ROW_LENGTH,Be),a.pixelStorei(a.UNPACK_SKIP_PIXELS,Je),a.pixelStorei(a.UNPACK_SKIP_ROWS,dt)}}function $(z,N,W){let xe=a.TEXTURE_2D;(N.isDataArrayTexture||N.isCompressedArrayTexture)&&(xe=a.TEXTURE_2D_ARRAY),N.isData3DTexture&&(xe=a.TEXTURE_3D);const Ae=Se(z,N),ve=N.source;i.bindTexture(xe,z.__webglTexture,a.TEXTURE0+W);const Ge=r.get(ve);if(ve.version!==Ge.__version||Ae===!0){i.activeTexture(a.TEXTURE0+W);const Be=zt.getPrimaries(zt.workingColorSpace),Je=N.colorSpace===Mr?null:zt.getPrimaries(N.colorSpace),dt=N.colorSpace===Mr||Be===Je?a.NONE:a.BROWSER_DEFAULT_WEBGL;a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,N.flipY),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,N.premultiplyAlpha),a.pixelStorei(a.UNPACK_ALIGNMENT,N.unpackAlignment),a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,dt);let Pe=T(N.image,!1,o.maxTextureSize);Pe=pe(N,Pe);const Le=c.convert(N.format,N.colorSpace),Ye=c.convert(N.type);let He=C(N.internalFormat,Le,Ye,N.colorSpace,N.isVideoTexture);Q(xe,N);let We;const lt=N.mipmaps,J=N.isVideoTexture!==!0,ze=Ge.__version===void 0||Ae===!0,Ue=ve.dataReady,Qe=U(N,Pe);if(N.isDepthTexture)He=I(N.format===ls,N.type),ze&&(J?i.texStorage2D(a.TEXTURE_2D,1,He,Pe.width,Pe.height):i.texImage2D(a.TEXTURE_2D,0,He,Pe.width,Pe.height,0,Le,Ye,null));else if(N.isDataTexture)if(lt.length>0){J&&ze&&i.texStorage2D(a.TEXTURE_2D,Qe,He,lt[0].width,lt[0].height);for(let Oe=0,be=lt.length;Oe<be;Oe++)We=lt[Oe],J?Ue&&i.texSubImage2D(a.TEXTURE_2D,Oe,0,0,We.width,We.height,Le,Ye,We.data):i.texImage2D(a.TEXTURE_2D,Oe,He,We.width,We.height,0,Le,Ye,We.data);N.generateMipmaps=!1}else J?(ze&&i.texStorage2D(a.TEXTURE_2D,Qe,He,Pe.width,Pe.height),Ue&&Ce(N,Pe,Le,Ye)):i.texImage2D(a.TEXTURE_2D,0,He,Pe.width,Pe.height,0,Le,Ye,Pe.data);else if(N.isCompressedTexture)if(N.isCompressedArrayTexture){J&&ze&&i.texStorage3D(a.TEXTURE_2D_ARRAY,Qe,He,lt[0].width,lt[0].height,Pe.depth);for(let Oe=0,be=lt.length;Oe<be;Oe++)if(We=lt[Oe],N.format!==Ii)if(Le!==null)if(J){if(Ue)if(N.layerUpdates.size>0){const et=By(We.width,We.height,N.format,N.type);for(const $e of N.layerUpdates){const vt=We.data.subarray($e*et/We.data.BYTES_PER_ELEMENT,($e+1)*et/We.data.BYTES_PER_ELEMENT);i.compressedTexSubImage3D(a.TEXTURE_2D_ARRAY,Oe,0,0,$e,We.width,We.height,1,Le,vt)}N.clearLayerUpdates()}else i.compressedTexSubImage3D(a.TEXTURE_2D_ARRAY,Oe,0,0,0,We.width,We.height,Pe.depth,Le,We.data)}else i.compressedTexImage3D(a.TEXTURE_2D_ARRAY,Oe,He,We.width,We.height,Pe.depth,0,We.data,0,0);else bt("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else J?Ue&&i.texSubImage3D(a.TEXTURE_2D_ARRAY,Oe,0,0,0,We.width,We.height,Pe.depth,Le,Ye,We.data):i.texImage3D(a.TEXTURE_2D_ARRAY,Oe,He,We.width,We.height,Pe.depth,0,Le,Ye,We.data)}else{J&&ze&&i.texStorage2D(a.TEXTURE_2D,Qe,He,lt[0].width,lt[0].height);for(let Oe=0,be=lt.length;Oe<be;Oe++)We=lt[Oe],N.format!==Ii?Le!==null?J?Ue&&i.compressedTexSubImage2D(a.TEXTURE_2D,Oe,0,0,We.width,We.height,Le,We.data):i.compressedTexImage2D(a.TEXTURE_2D,Oe,He,We.width,We.height,0,We.data):bt("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):J?Ue&&i.texSubImage2D(a.TEXTURE_2D,Oe,0,0,We.width,We.height,Le,Ye,We.data):i.texImage2D(a.TEXTURE_2D,Oe,He,We.width,We.height,0,Le,Ye,We.data)}else if(N.isDataArrayTexture)if(J){if(ze&&i.texStorage3D(a.TEXTURE_2D_ARRAY,Qe,He,Pe.width,Pe.height,Pe.depth),Ue)if(N.layerUpdates.size>0){const Oe=By(Pe.width,Pe.height,N.format,N.type);for(const be of N.layerUpdates){const et=Pe.data.subarray(be*Oe/Pe.data.BYTES_PER_ELEMENT,(be+1)*Oe/Pe.data.BYTES_PER_ELEMENT);i.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,be,Pe.width,Pe.height,1,Le,Ye,et)}N.clearLayerUpdates()}else i.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,0,Pe.width,Pe.height,Pe.depth,Le,Ye,Pe.data)}else i.texImage3D(a.TEXTURE_2D_ARRAY,0,He,Pe.width,Pe.height,Pe.depth,0,Le,Ye,Pe.data);else if(N.isData3DTexture)J?(ze&&i.texStorage3D(a.TEXTURE_3D,Qe,He,Pe.width,Pe.height,Pe.depth),Ue&&i.texSubImage3D(a.TEXTURE_3D,0,0,0,0,Pe.width,Pe.height,Pe.depth,Le,Ye,Pe.data)):i.texImage3D(a.TEXTURE_3D,0,He,Pe.width,Pe.height,Pe.depth,0,Le,Ye,Pe.data);else if(N.isFramebufferTexture){if(ze)if(J)i.texStorage2D(a.TEXTURE_2D,Qe,He,Pe.width,Pe.height);else{let Oe=Pe.width,be=Pe.height;for(let et=0;et<Qe;et++)i.texImage2D(a.TEXTURE_2D,et,He,Oe,be,0,Le,Ye,null),Oe>>=1,be>>=1}}else if(lt.length>0){if(J&&ze){const Oe=Ie(lt[0]);i.texStorage2D(a.TEXTURE_2D,Qe,He,Oe.width,Oe.height)}for(let Oe=0,be=lt.length;Oe<be;Oe++)We=lt[Oe],J?Ue&&i.texSubImage2D(a.TEXTURE_2D,Oe,0,0,Le,Ye,We):i.texImage2D(a.TEXTURE_2D,Oe,He,Le,Ye,We);N.generateMipmaps=!1}else if(J){if(ze){const Oe=Ie(Pe);i.texStorage2D(a.TEXTURE_2D,Qe,He,Oe.width,Oe.height)}Ue&&i.texSubImage2D(a.TEXTURE_2D,0,0,0,Le,Ye,Pe)}else i.texImage2D(a.TEXTURE_2D,0,He,Le,Ye,Pe);E(N)&&b(xe),Ge.__version=ve.version,N.onUpdate&&N.onUpdate(N)}z.__version=N.version}function me(z,N,W){if(N.image.length!==6)return;const xe=Se(z,N),Ae=N.source;i.bindTexture(a.TEXTURE_CUBE_MAP,z.__webglTexture,a.TEXTURE0+W);const ve=r.get(Ae);if(Ae.version!==ve.__version||xe===!0){i.activeTexture(a.TEXTURE0+W);const Ge=zt.getPrimaries(zt.workingColorSpace),Be=N.colorSpace===Mr?null:zt.getPrimaries(N.colorSpace),Je=N.colorSpace===Mr||Ge===Be?a.NONE:a.BROWSER_DEFAULT_WEBGL;a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,N.flipY),a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,N.premultiplyAlpha),a.pixelStorei(a.UNPACK_ALIGNMENT,N.unpackAlignment),a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,Je);const dt=N.isCompressedTexture||N.image[0].isCompressedTexture,Pe=N.image[0]&&N.image[0].isDataTexture,Le=[];for(let be=0;be<6;be++)!dt&&!Pe?Le[be]=T(N.image[be],!0,o.maxCubemapSize):Le[be]=Pe?N.image[be].image:N.image[be],Le[be]=pe(N,Le[be]);const Ye=Le[0],He=c.convert(N.format,N.colorSpace),We=c.convert(N.type),lt=C(N.internalFormat,He,We,N.colorSpace),J=N.isVideoTexture!==!0,ze=ve.__version===void 0||xe===!0,Ue=Ae.dataReady;let Qe=U(N,Ye);Q(a.TEXTURE_CUBE_MAP,N);let Oe;if(dt){J&&ze&&i.texStorage2D(a.TEXTURE_CUBE_MAP,Qe,lt,Ye.width,Ye.height);for(let be=0;be<6;be++){Oe=Le[be].mipmaps;for(let et=0;et<Oe.length;et++){const $e=Oe[et];N.format!==Ii?He!==null?J?Ue&&i.compressedTexSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et,0,0,$e.width,$e.height,He,$e.data):i.compressedTexImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et,lt,$e.width,$e.height,0,$e.data):bt("WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):J?Ue&&i.texSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et,0,0,$e.width,$e.height,He,We,$e.data):i.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et,lt,$e.width,$e.height,0,He,We,$e.data)}}}else{if(Oe=N.mipmaps,J&&ze){Oe.length>0&&Qe++;const be=Ie(Le[0]);i.texStorage2D(a.TEXTURE_CUBE_MAP,Qe,lt,be.width,be.height)}for(let be=0;be<6;be++)if(Pe){J?Ue&&i.texSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,0,0,0,Le[be].width,Le[be].height,He,We,Le[be].data):i.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,0,lt,Le[be].width,Le[be].height,0,He,We,Le[be].data);for(let et=0;et<Oe.length;et++){const vt=Oe[et].image[be].image;J?Ue&&i.texSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et+1,0,0,vt.width,vt.height,He,We,vt.data):i.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et+1,lt,vt.width,vt.height,0,He,We,vt.data)}}else{J?Ue&&i.texSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,0,0,0,He,We,Le[be]):i.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,0,lt,He,We,Le[be]);for(let et=0;et<Oe.length;et++){const $e=Oe[et];J?Ue&&i.texSubImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et+1,0,0,He,We,$e.image[be]):i.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+be,et+1,lt,He,We,$e.image[be])}}}E(N)&&b(a.TEXTURE_CUBE_MAP),ve.__version=Ae.version,N.onUpdate&&N.onUpdate(N)}z.__version=N.version}function Me(z,N,W,xe,Ae,ve){const Ge=c.convert(W.format,W.colorSpace),Be=c.convert(W.type),Je=C(W.internalFormat,Ge,Be,W.colorSpace),dt=r.get(N),Pe=r.get(W);if(Pe.__renderTarget=N,!dt.__hasExternalTextures){const Le=Math.max(1,N.width>>ve),Ye=Math.max(1,N.height>>ve);Ae===a.TEXTURE_3D||Ae===a.TEXTURE_2D_ARRAY?i.texImage3D(Ae,ve,Je,Le,Ye,N.depth,0,Ge,Be,null):i.texImage2D(Ae,ve,Je,Le,Ye,0,Ge,Be,null)}i.bindFramebuffer(a.FRAMEBUFFER,z),gt(N)?f.framebufferTexture2DMultisampleEXT(a.FRAMEBUFFER,xe,Ae,Pe.__webglTexture,0,V(N)):(Ae===a.TEXTURE_2D||Ae>=a.TEXTURE_CUBE_MAP_POSITIVE_X&&Ae<=a.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&a.framebufferTexture2D(a.FRAMEBUFFER,xe,Ae,Pe.__webglTexture,ve),i.bindFramebuffer(a.FRAMEBUFFER,null)}function Te(z,N,W){if(a.bindRenderbuffer(a.RENDERBUFFER,z),N.depthBuffer){const xe=N.depthTexture,Ae=xe&&xe.isDepthTexture?xe.type:null,ve=I(N.stencilBuffer,Ae),Ge=N.stencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT;gt(N)?f.renderbufferStorageMultisampleEXT(a.RENDERBUFFER,V(N),ve,N.width,N.height):W?a.renderbufferStorageMultisample(a.RENDERBUFFER,V(N),ve,N.width,N.height):a.renderbufferStorage(a.RENDERBUFFER,ve,N.width,N.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,Ge,a.RENDERBUFFER,z)}else{const xe=N.textures;for(let Ae=0;Ae<xe.length;Ae++){const ve=xe[Ae],Ge=c.convert(ve.format,ve.colorSpace),Be=c.convert(ve.type),Je=C(ve.internalFormat,Ge,Be,ve.colorSpace);gt(N)?f.renderbufferStorageMultisampleEXT(a.RENDERBUFFER,V(N),Je,N.width,N.height):W?a.renderbufferStorageMultisample(a.RENDERBUFFER,V(N),Je,N.width,N.height):a.renderbufferStorage(a.RENDERBUFFER,Je,N.width,N.height)}}a.bindRenderbuffer(a.RENDERBUFFER,null)}function Ze(z,N,W){const xe=N.isWebGLCubeRenderTarget===!0;if(i.bindFramebuffer(a.FRAMEBUFFER,z),!(N.depthTexture&&N.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");const Ae=r.get(N.depthTexture);if(Ae.__renderTarget=N,(!Ae.__webglTexture||N.depthTexture.image.width!==N.width||N.depthTexture.image.height!==N.height)&&(N.depthTexture.image.width=N.width,N.depthTexture.image.height=N.height,N.depthTexture.needsUpdate=!0),xe){if(Ae.__webglInit===void 0&&(Ae.__webglInit=!0,N.depthTexture.addEventListener("dispose",B)),Ae.__webglTexture===void 0){Ae.__webglTexture=a.createTexture(),i.bindTexture(a.TEXTURE_CUBE_MAP,Ae.__webglTexture),Q(a.TEXTURE_CUBE_MAP,N.depthTexture);const dt=c.convert(N.depthTexture.format),Pe=c.convert(N.depthTexture.type);let Le;N.depthTexture.format===Ha?Le=a.DEPTH_COMPONENT24:N.depthTexture.format===ls&&(Le=a.DEPTH24_STENCIL8);for(let Ye=0;Ye<6;Ye++)a.texImage2D(a.TEXTURE_CUBE_MAP_POSITIVE_X+Ye,0,Le,N.width,N.height,0,dt,Pe,null)}}else Z(N.depthTexture,0);const ve=Ae.__webglTexture,Ge=V(N),Be=xe?a.TEXTURE_CUBE_MAP_POSITIVE_X+W:a.TEXTURE_2D,Je=N.depthTexture.format===ls?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT;if(N.depthTexture.format===Ha)gt(N)?f.framebufferTexture2DMultisampleEXT(a.FRAMEBUFFER,Je,Be,ve,0,Ge):a.framebufferTexture2D(a.FRAMEBUFFER,Je,Be,ve,0);else if(N.depthTexture.format===ls)gt(N)?f.framebufferTexture2DMultisampleEXT(a.FRAMEBUFFER,Je,Be,ve,0,Ge):a.framebufferTexture2D(a.FRAMEBUFFER,Je,Be,ve,0);else throw new Error("Unknown depthTexture format")}function tt(z){const N=r.get(z),W=z.isWebGLCubeRenderTarget===!0;if(N.__boundDepthTexture!==z.depthTexture){const xe=z.depthTexture;if(N.__depthDisposeCallback&&N.__depthDisposeCallback(),xe){const Ae=()=>{delete N.__boundDepthTexture,delete N.__depthDisposeCallback,xe.removeEventListener("dispose",Ae)};xe.addEventListener("dispose",Ae),N.__depthDisposeCallback=Ae}N.__boundDepthTexture=xe}if(z.depthTexture&&!N.__autoAllocateDepthBuffer)if(W)for(let xe=0;xe<6;xe++)Ze(N.__webglFramebuffer[xe],z,xe);else{const xe=z.texture.mipmaps;xe&&xe.length>0?Ze(N.__webglFramebuffer[0],z,0):Ze(N.__webglFramebuffer,z,0)}else if(W){N.__webglDepthbuffer=[];for(let xe=0;xe<6;xe++)if(i.bindFramebuffer(a.FRAMEBUFFER,N.__webglFramebuffer[xe]),N.__webglDepthbuffer[xe]===void 0)N.__webglDepthbuffer[xe]=a.createRenderbuffer(),Te(N.__webglDepthbuffer[xe],z,!1);else{const Ae=z.stencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT,ve=N.__webglDepthbuffer[xe];a.bindRenderbuffer(a.RENDERBUFFER,ve),a.framebufferRenderbuffer(a.FRAMEBUFFER,Ae,a.RENDERBUFFER,ve)}}else{const xe=z.texture.mipmaps;if(xe&&xe.length>0?i.bindFramebuffer(a.FRAMEBUFFER,N.__webglFramebuffer[0]):i.bindFramebuffer(a.FRAMEBUFFER,N.__webglFramebuffer),N.__webglDepthbuffer===void 0)N.__webglDepthbuffer=a.createRenderbuffer(),Te(N.__webglDepthbuffer,z,!1);else{const Ae=z.stencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT,ve=N.__webglDepthbuffer;a.bindRenderbuffer(a.RENDERBUFFER,ve),a.framebufferRenderbuffer(a.FRAMEBUFFER,Ae,a.RENDERBUFFER,ve)}}i.bindFramebuffer(a.FRAMEBUFFER,null)}function yt(z,N,W){const xe=r.get(z);N!==void 0&&Me(xe.__webglFramebuffer,z,z.texture,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,0),W!==void 0&&tt(z)}function xt(z){const N=z.texture,W=r.get(z),xe=r.get(N);z.addEventListener("dispose",D);const Ae=z.textures,ve=z.isWebGLCubeRenderTarget===!0,Ge=Ae.length>1;if(Ge||(xe.__webglTexture===void 0&&(xe.__webglTexture=a.createTexture()),xe.__version=N.version,u.memory.textures++),ve){W.__webglFramebuffer=[];for(let Be=0;Be<6;Be++)if(N.mipmaps&&N.mipmaps.length>0){W.__webglFramebuffer[Be]=[];for(let Je=0;Je<N.mipmaps.length;Je++)W.__webglFramebuffer[Be][Je]=a.createFramebuffer()}else W.__webglFramebuffer[Be]=a.createFramebuffer()}else{if(N.mipmaps&&N.mipmaps.length>0){W.__webglFramebuffer=[];for(let Be=0;Be<N.mipmaps.length;Be++)W.__webglFramebuffer[Be]=a.createFramebuffer()}else W.__webglFramebuffer=a.createFramebuffer();if(Ge)for(let Be=0,Je=Ae.length;Be<Je;Be++){const dt=r.get(Ae[Be]);dt.__webglTexture===void 0&&(dt.__webglTexture=a.createTexture(),u.memory.textures++)}if(z.samples>0&>(z)===!1){W.__webglMultisampledFramebuffer=a.createFramebuffer(),W.__webglColorRenderbuffer=[],i.bindFramebuffer(a.FRAMEBUFFER,W.__webglMultisampledFramebuffer);for(let Be=0;Be<Ae.length;Be++){const Je=Ae[Be];W.__webglColorRenderbuffer[Be]=a.createRenderbuffer(),a.bindRenderbuffer(a.RENDERBUFFER,W.__webglColorRenderbuffer[Be]);const dt=c.convert(Je.format,Je.colorSpace),Pe=c.convert(Je.type),Le=C(Je.internalFormat,dt,Pe,Je.colorSpace,z.isXRRenderTarget===!0),Ye=V(z);a.renderbufferStorageMultisample(a.RENDERBUFFER,Ye,Le,z.width,z.height),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+Be,a.RENDERBUFFER,W.__webglColorRenderbuffer[Be])}a.bindRenderbuffer(a.RENDERBUFFER,null),z.depthBuffer&&(W.__webglDepthRenderbuffer=a.createRenderbuffer(),Te(W.__webglDepthRenderbuffer,z,!0)),i.bindFramebuffer(a.FRAMEBUFFER,null)}}if(ve){i.bindTexture(a.TEXTURE_CUBE_MAP,xe.__webglTexture),Q(a.TEXTURE_CUBE_MAP,N);for(let Be=0;Be<6;Be++)if(N.mipmaps&&N.mipmaps.length>0)for(let Je=0;Je<N.mipmaps.length;Je++)Me(W.__webglFramebuffer[Be][Je],z,N,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+Be,Je);else Me(W.__webglFramebuffer[Be],z,N,a.COLOR_ATTACHMENT0,a.TEXTURE_CUBE_MAP_POSITIVE_X+Be,0);E(N)&&b(a.TEXTURE_CUBE_MAP),i.unbindTexture()}else if(Ge){for(let Be=0,Je=Ae.length;Be<Je;Be++){const dt=Ae[Be],Pe=r.get(dt);let Le=a.TEXTURE_2D;(z.isWebGL3DRenderTarget||z.isWebGLArrayRenderTarget)&&(Le=z.isWebGL3DRenderTarget?a.TEXTURE_3D:a.TEXTURE_2D_ARRAY),i.bindTexture(Le,Pe.__webglTexture),Q(Le,dt),Me(W.__webglFramebuffer,z,dt,a.COLOR_ATTACHMENT0+Be,Le,0),E(dt)&&b(Le)}i.unbindTexture()}else{let Be=a.TEXTURE_2D;if((z.isWebGL3DRenderTarget||z.isWebGLArrayRenderTarget)&&(Be=z.isWebGL3DRenderTarget?a.TEXTURE_3D:a.TEXTURE_2D_ARRAY),i.bindTexture(Be,xe.__webglTexture),Q(Be,N),N.mipmaps&&N.mipmaps.length>0)for(let Je=0;Je<N.mipmaps.length;Je++)Me(W.__webglFramebuffer[Je],z,N,a.COLOR_ATTACHMENT0,Be,Je);else Me(W.__webglFramebuffer,z,N,a.COLOR_ATTACHMENT0,Be,0);E(N)&&b(Be),i.unbindTexture()}z.depthBuffer&&tt(z)}function pt(z){const N=z.textures;for(let W=0,xe=N.length;W<xe;W++){const Ae=N[W];if(E(Ae)){const ve=R(z),Ge=r.get(Ae).__webglTexture;i.bindTexture(ve,Ge),b(ve),i.unbindTexture()}}}const ft=[],je=[];function Ne(z){if(z.samples>0){if(gt(z)===!1){const N=z.textures,W=z.width,xe=z.height;let Ae=a.COLOR_BUFFER_BIT;const ve=z.stencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT,Ge=r.get(z),Be=N.length>1;if(Be)for(let dt=0;dt<N.length;dt++)i.bindFramebuffer(a.FRAMEBUFFER,Ge.__webglMultisampledFramebuffer),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+dt,a.RENDERBUFFER,null),i.bindFramebuffer(a.FRAMEBUFFER,Ge.__webglFramebuffer),a.framebufferTexture2D(a.DRAW_FRAMEBUFFER,a.COLOR_ATTACHMENT0+dt,a.TEXTURE_2D,null,0);i.bindFramebuffer(a.READ_FRAMEBUFFER,Ge.__webglMultisampledFramebuffer);const Je=z.texture.mipmaps;Je&&Je.length>0?i.bindFramebuffer(a.DRAW_FRAMEBUFFER,Ge.__webglFramebuffer[0]):i.bindFramebuffer(a.DRAW_FRAMEBUFFER,Ge.__webglFramebuffer);for(let dt=0;dt<N.length;dt++){if(z.resolveDepthBuffer&&(z.depthBuffer&&(Ae|=a.DEPTH_BUFFER_BIT),z.stencilBuffer&&z.resolveStencilBuffer&&(Ae|=a.STENCIL_BUFFER_BIT)),Be){a.framebufferRenderbuffer(a.READ_FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.RENDERBUFFER,Ge.__webglColorRenderbuffer[dt]);const Pe=r.get(N[dt]).__webglTexture;a.framebufferTexture2D(a.DRAW_FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,Pe,0)}a.blitFramebuffer(0,0,W,xe,0,0,W,xe,Ae,a.NEAREST),h===!0&&(ft.length=0,je.length=0,ft.push(a.COLOR_ATTACHMENT0+dt),z.depthBuffer&&z.resolveDepthBuffer===!1&&(ft.push(ve),je.push(ve),a.invalidateFramebuffer(a.DRAW_FRAMEBUFFER,je)),a.invalidateFramebuffer(a.READ_FRAMEBUFFER,ft))}if(i.bindFramebuffer(a.READ_FRAMEBUFFER,null),i.bindFramebuffer(a.DRAW_FRAMEBUFFER,null),Be)for(let dt=0;dt<N.length;dt++){i.bindFramebuffer(a.FRAMEBUFFER,Ge.__webglMultisampledFramebuffer),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+dt,a.RENDERBUFFER,Ge.__webglColorRenderbuffer[dt]);const Pe=r.get(N[dt]).__webglTexture;i.bindFramebuffer(a.FRAMEBUFFER,Ge.__webglFramebuffer),a.framebufferTexture2D(a.DRAW_FRAMEBUFFER,a.COLOR_ATTACHMENT0+dt,a.TEXTURE_2D,Pe,0)}i.bindFramebuffer(a.DRAW_FRAMEBUFFER,Ge.__webglMultisampledFramebuffer)}else if(z.depthBuffer&&z.resolveDepthBuffer===!1&&h){const N=z.stencilBuffer?a.DEPTH_STENCIL_ATTACHMENT:a.DEPTH_ATTACHMENT;a.invalidateFramebuffer(a.DRAW_FRAMEBUFFER,[N])}}}function V(z){return Math.min(o.maxSamples,z.samples)}function gt(z){const N=r.get(z);return z.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&N.__useRenderToTexture!==!1}function ct(z){const N=u.render.frame;x.get(z)!==N&&(x.set(z,N),z.update())}function pe(z,N){const W=z.colorSpace,xe=z.format,Ae=z.type;return z.isCompressedTexture===!0||z.isVideoTexture===!0||W!==Co&&W!==Mr&&(zt.getTransfer(W)===Xt?(xe!==Ii||Ae!==Ri)&&bt("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):Vt("WebGLTextures: Unsupported texture color space:",W)),N}function Ie(z){return typeof HTMLImageElement<"u"&&z instanceof HTMLImageElement?(p.width=z.naturalWidth||z.width,p.height=z.naturalHeight||z.height):typeof VideoFrame<"u"&&z instanceof VideoFrame?(p.width=z.displayWidth,p.height=z.displayHeight):(p.width=z.width,p.height=z.height),p}this.allocateTextureUnit=Y,this.resetTextureUnits=G,this.setTexture2D=Z,this.setTexture2DArray=_,this.setTexture3D=F,this.setTextureCube=se,this.rebindTextures=yt,this.setupRenderTarget=xt,this.updateRenderTargetMipmap=pt,this.updateMultisampleRenderTarget=Ne,this.setupDepthRenderbuffer=tt,this.setupFrameBufferTexture=Me,this.useMultisampledRTT=gt,this.isReversedDepthBuffer=function(){return i.buffers.depth.getReversed()}}function kI(a,e){function i(r,o=Mr){let c;const u=zt.getTransfer(o);if(r===Ri)return a.UNSIGNED_BYTE;if(r===Nm)return a.UNSIGNED_SHORT_4_4_4_4;if(r===Lm)return a.UNSIGNED_SHORT_5_5_5_1;if(r===DS)return a.UNSIGNED_INT_5_9_9_9_REV;if(r===NS)return a.UNSIGNED_INT_10F_11F_11F_REV;if(r===CS)return a.BYTE;if(r===IS)return a.SHORT;if(r===tc)return a.UNSIGNED_SHORT;if(r===Dm)return a.INT;if(r===ra)return a.UNSIGNED_INT;if(r===ea)return a.FLOAT;if(r===_a)return a.HALF_FLOAT;if(r===LS)return a.ALPHA;if(r===PS)return a.RGB;if(r===Ii)return a.RGBA;if(r===Ha)return a.DEPTH_COMPONENT;if(r===ls)return a.DEPTH_STENCIL;if(r===OS)return a.RED;if(r===Pm)return a.RED_INTEGER;if(r===Ro)return a.RG;if(r===Om)return a.RG_INTEGER;if(r===Bm)return a.RGBA_INTEGER;if(r===Ju||r===$u||r===ef||r===tf)if(u===Xt)if(c=e.get("WEBGL_compressed_texture_s3tc_srgb"),c!==null){if(r===Ju)return c.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(r===$u)return c.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(r===ef)return c.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(r===tf)return c.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(c=e.get("WEBGL_compressed_texture_s3tc"),c!==null){if(r===Ju)return c.COMPRESSED_RGB_S3TC_DXT1_EXT;if(r===$u)return c.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(r===ef)return c.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(r===tf)return c.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(r===Hp||r===Fp||r===Vp||r===Gp)if(c=e.get("WEBGL_compressed_texture_pvrtc"),c!==null){if(r===Hp)return c.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(r===Fp)return c.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(r===Vp)return c.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(r===Gp)return c.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(r===jp||r===Yp||r===Xp||r===Zp||r===Wp||r===Qp||r===qp)if(c=e.get("WEBGL_compressed_texture_etc"),c!==null){if(r===jp||r===Yp)return u===Xt?c.COMPRESSED_SRGB8_ETC2:c.COMPRESSED_RGB8_ETC2;if(r===Xp)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:c.COMPRESSED_RGBA8_ETC2_EAC;if(r===Zp)return c.COMPRESSED_R11_EAC;if(r===Wp)return c.COMPRESSED_SIGNED_R11_EAC;if(r===Qp)return c.COMPRESSED_RG11_EAC;if(r===qp)return c.COMPRESSED_SIGNED_RG11_EAC}else return null;if(r===Kp||r===Jp||r===$p||r===em||r===tm||r===nm||r===im||r===am||r===rm||r===sm||r===om||r===lm||r===cm||r===um)if(c=e.get("WEBGL_compressed_texture_astc"),c!==null){if(r===Kp)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:c.COMPRESSED_RGBA_ASTC_4x4_KHR;if(r===Jp)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:c.COMPRESSED_RGBA_ASTC_5x4_KHR;if(r===$p)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:c.COMPRESSED_RGBA_ASTC_5x5_KHR;if(r===em)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:c.COMPRESSED_RGBA_ASTC_6x5_KHR;if(r===tm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:c.COMPRESSED_RGBA_ASTC_6x6_KHR;if(r===nm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:c.COMPRESSED_RGBA_ASTC_8x5_KHR;if(r===im)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:c.COMPRESSED_RGBA_ASTC_8x6_KHR;if(r===am)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:c.COMPRESSED_RGBA_ASTC_8x8_KHR;if(r===rm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:c.COMPRESSED_RGBA_ASTC_10x5_KHR;if(r===sm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:c.COMPRESSED_RGBA_ASTC_10x6_KHR;if(r===om)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:c.COMPRESSED_RGBA_ASTC_10x8_KHR;if(r===lm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:c.COMPRESSED_RGBA_ASTC_10x10_KHR;if(r===cm)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:c.COMPRESSED_RGBA_ASTC_12x10_KHR;if(r===um)return u===Xt?c.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:c.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(r===fm||r===dm||r===hm)if(c=e.get("EXT_texture_compression_bptc"),c!==null){if(r===fm)return u===Xt?c.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:c.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(r===dm)return c.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(r===hm)return c.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(r===pm||r===mm||r===gm||r===vm)if(c=e.get("EXT_texture_compression_rgtc"),c!==null){if(r===pm)return c.COMPRESSED_RED_RGTC1_EXT;if(r===mm)return c.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(r===gm)return c.COMPRESSED_RED_GREEN_RGTC2_EXT;if(r===vm)return c.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return r===nc?a.UNSIGNED_INT_24_8:a[r]!==void 0?a[r]:null}return{convert:i}}const zI=` 4034void main() { 4035 4036 gl_Position = vec4( position, 1.0 ); 4037 4038}`,_I=` 4039uniform sampler2DArray depthColor; 4040uniform float depthWidth; 4041uniform float depthHeight; 4042 4043void main() { 4044 4045 vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight ); 4046 4047 if ( coord.x >= 1.0 ) { 4048 4049 gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r; 4050 4051 } else { 4052 4053 gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r; 4054 4055 } 4056 4057}`;class HI{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,i){if(this.texture===null){const r=new YS(e.texture);(e.depthNear!==i.depthNear||e.depthFar!==i.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}getMesh(e){if(this.texture!==null&&this.mesh===null){const i=e.cameras[0].viewport,r=new ji({vertexShader:zI,fragmentShader:_I,uniforms:{depthColor:{value:this.texture},depthWidth:{value:i.z},depthHeight:{value:i.w}}});this.mesh=new sa(new lc(20,20),r)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}class FI extends No{constructor(e,i){super();const r=this;let o=null,c=1,u=null,f="local-floor",h=1,p=null,x=null,g=null,v=null,y=null,M=null;const T=typeof XRWebGLBinding<"u",E=new HI,b={},R=i.getContextAttributes();let C=null,I=null;const U=[],B=[],D=new kt;let A=null;const L=new Hi;L.viewport=new hn;const X=new Hi;X.viewport=new hn;const k=[L,X],G=new JT;let Y=null,ee=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function($){let me=U[$];return me===void 0&&(me=new Yh,U[$]=me),me.getTargetRaySpace()},this.getControllerGrip=function($){let me=U[$];return me===void 0&&(me=new Yh,U[$]=me),me.getGripSpace()},this.getHand=function($){let me=U[$];return me===void 0&&(me=new Yh,U[$]=me),me.getHandSpace()};function Z($){const me=B.indexOf($.inputSource);if(me===-1)return;const Me=U[me];Me!==void 0&&(Me.update($.inputSource,$.frame,p||u),Me.dispatchEvent({type:$.type,data:$.inputSource}))}function _(){o.removeEventListener("select",Z),o.removeEventListener("selectstart",Z),o.removeEventListener("selectend",Z),o.removeEventListener("squeeze",Z),o.removeEventListener("squeezestart",Z),o.removeEventListener("squeezeend",Z),o.removeEventListener("end",_),o.removeEventListener("inputsourceschange",F);for(let $=0;$<U.length;$++){const me=B[$];me!==null&&(B[$]=null,U[$].disconnect(me))}Y=null,ee=null,E.reset();for(const $ in b)delete b[$];e.setRenderTarget(C),y=null,v=null,g=null,o=null,I=null,Ce.stop(),r.isPresenting=!1,e.setPixelRatio(A),e.setSize(D.width,D.height,!1),r.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function($){c=$,r.isPresenting===!0&&bt("WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function($){f=$,r.isPresenting===!0&&bt("WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return p||u},this.setReferenceSpace=function($){p=$},this.getBaseLayer=function(){return v!==null?v:y},this.getBinding=function(){return g===null&&T&&(g=new XRWebGLBinding(o,i)),g},this.getFrame=function(){return M},this.getSession=function(){return o},this.setSession=async function($){if(o=$,o!==null){if(C=e.getRenderTarget(),o.addEventListener("select",Z),o.addEventListener("selectstart",Z),o.addEventListener("selectend",Z),o.addEventListener("squeeze",Z),o.addEventListener("squeezestart",Z),o.addEventListener("squeezeend",Z),o.addEventListener("end",_),o.addEventListener("inputsourceschange",F),R.xrCompatible!==!0&&await i.makeXRCompatible(),A=e.getPixelRatio(),e.getSize(D),T&&"createProjectionLayer"in XRWebGLBinding.prototype){let Me=null,Te=null,Ze=null;R.depth&&(Ze=R.stencil?i.DEPTH24_STENCIL8:i.DEPTH_COMPONENT24,Me=R.stencil?ls:Ha,Te=R.stencil?nc:ra);const tt={colorFormat:i.RGBA8,depthFormat:Ze,scaleFactor:c};g=this.getBinding(),v=g.createProjectionLayer(tt),o.updateRenderState({layers:[v]}),e.setPixelRatio(1),e.setSize(v.textureWidth,v.textureHeight,!1),I=new ia(v.textureWidth,v.textureHeight,{format:Ii,type:Ri,depthTexture:new ac(v.textureWidth,v.textureHeight,Te,void 0,void 0,void 0,void 0,void 0,void 0,Me),stencilBuffer:R.stencil,colorSpace:e.outputColorSpace,samples:R.antialias?4:0,resolveDepthBuffer:v.ignoreDepthValues===!1,resolveStencilBuffer:v.ignoreDepthValues===!1})}else{const Me={antialias:R.antialias,alpha:!0,depth:R.depth,stencil:R.stencil,framebufferScaleFactor:c};y=new XRWebGLLayer(o,i,Me),o.updateRenderState({baseLayer:y}),e.setPixelRatio(1),e.setSize(y.framebufferWidth,y.framebufferHeight,!1),I=new ia(y.framebufferWidth,y.framebufferHeight,{format:Ii,type:Ri,colorSpace:e.outputColorSpace,stencilBuffer:R.stencil,resolveDepthBuffer:y.ignoreDepthValues===!1,resolveStencilBuffer:y.ignoreDepthValues===!1})}I.isXRRenderTarget=!0,this.setFoveation(h),p=null,u=await o.requestReferenceSpace(f),Ce.setContext(o),Ce.start(),r.isPresenting=!0,r.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(o!==null)return o.environmentBlendMode},this.getDepthTexture=function(){return E.getDepthTexture()};function F($){for(let me=0;me<$.removed.length;me++){const Me=$.removed[me],Te=B.indexOf(Me);Te>=0&&(B[Te]=null,U[Te].disconnect(Me))}for(let me=0;me<$.added.length;me++){const Me=$.added[me];let Te=B.indexOf(Me);if(Te===-1){for(let tt=0;tt<U.length;tt++)if(tt>=B.length){B.push(Me),Te=tt;break}else if(B[tt]===null){B[tt]=Me,Te=tt;break}if(Te===-1)break}const Ze=U[Te];Ze&&Ze.connect(Me)}}const se=new he,fe=new he;function ae($,me,Me){se.setFromMatrixPosition(me.matrixWorld),fe.setFromMatrixPosition(Me.matrixWorld);const Te=se.distanceTo(fe),Ze=me.projectionMatrix.elements,tt=Me.projectionMatrix.elements,yt=Ze[14]/(Ze[10]-1),xt=Ze[14]/(Ze[10]+1),pt=(Ze[9]+1)/Ze[5],ft=(Ze[9]-1)/Ze[5],je=(Ze[8]-1)/Ze[0],Ne=(tt[8]+1)/tt[0],V=yt*je,gt=yt*Ne,ct=Te/(-je+Ne),pe=ct*-je;if(me.matrixWorld.decompose($.position,$.quaternion,$.scale),$.translateX(pe),$.translateZ(ct),$.matrixWorld.compose($.position,$.quaternion,$.scale),$.matrixWorldInverse.copy($.matrixWorld).invert(),Ze[10]===-1)$.projectionMatrix.copy(me.projectionMatrix),$.projectionMatrixInverse.copy(me.projectionMatrixInverse);else{const Ie=yt+ct,z=xt+ct,N=V-pe,W=gt+(Te-pe),xe=pt*xt/z*Ie,Ae=ft*xt/z*Ie;$.projectionMatrix.makePerspective(N,W,xe,Ae,Ie,z),$.projectionMatrixInverse.copy($.projectionMatrix).invert()}}function H($,me){me===null?$.matrixWorld.copy($.matrix):$.matrixWorld.multiplyMatrices(me.matrixWorld,$.matrix),$.matrixWorldInverse.copy($.matrixWorld).invert()}this.updateCamera=function($){if(o===null)return;let me=$.near,Me=$.far;E.texture!==null&&(E.depthNear>0&&(me=E.depthNear),E.depthFar>0&&(Me=E.depthFar)),G.near=X.near=L.near=me,G.far=X.far=L.far=Me,(Y!==G.near||ee!==G.far)&&(o.updateRenderState({depthNear:G.near,depthFar:G.far}),Y=G.near,ee=G.far),G.layers.mask=$.layers.mask|6,L.layers.mask=G.layers.mask&-5,X.layers.mask=G.layers.mask&-3;const Te=$.parent,Ze=G.cameras;H(G,Te);for(let tt=0;tt<Ze.length;tt++)H(Ze[tt],Te);Ze.length===2?ae(G,L,X):G.projectionMatrix.copy(L.projectionMatrix),Q($,G,Te)};function Q($,me,Me){Me===null?$.matrix.copy(me.matrixWorld):($.matrix.copy(Me.matrixWorld),$.matrix.invert(),$.matrix.multiply(me.matrixWorld)),$.matrix.decompose($.position,$.quaternion,$.scale),$.updateMatrixWorld(!0),$.projectionMatrix.copy(me.projectionMatrix),$.projectionMatrixInverse.copy(me.projectionMatrixInverse),$.isPerspectiveCamera&&($.fov=xm*2*Math.atan(1/$.projectionMatrix.elements[5]),$.zoom=1)}this.getCamera=function(){return G},this.getFoveation=function(){if(!(v===null&&y===null))return h},this.setFoveation=function($){h=$,v!==null&&(v.fixedFoveation=$),y!==null&&y.fixedFoveation!==void 0&&(y.fixedFoveation=$)},this.hasDepthSensing=function(){return E.texture!==null},this.getDepthSensingMesh=function(){return E.getMesh(G)},this.getCameraTexture=function($){return b[$]};let Se=null;function ye($,me){if(x=me.getViewerPose(p||u),M=me,x!==null){const Me=x.views;y!==null&&(e.setRenderTargetFramebuffer(I,y.framebuffer),e.setRenderTarget(I));let Te=!1;Me.length!==G.cameras.length&&(G.cameras.length=0,Te=!0);for(let xt=0;xt<Me.length;xt++){const pt=Me[xt];let ft=null;if(y!==null)ft=y.getViewport(pt);else{const Ne=g.getViewSubImage(v,pt);ft=Ne.viewport,xt===0&&(e.setRenderTargetTextures(I,Ne.colorTexture,Ne.depthStencilTexture),e.setRenderTarget(I))}let je=k[xt];je===void 0&&(je=new Hi,je.layers.enable(xt),je.viewport=new hn,k[xt]=je),je.matrix.fromArray(pt.transform.matrix),je.matrix.decompose(je.position,je.quaternion,je.scale),je.projectionMatrix.fromArray(pt.projectionMatrix),je.projectionMatrixInverse.copy(je.projectionMatrix).invert(),je.viewport.set(ft.x,ft.y,ft.width,ft.height),xt===0&&(G.matrix.copy(je.matrix),G.matrix.decompose(G.position,G.quaternion,G.scale)),Te===!0&&G.cameras.push(je)}const Ze=o.enabledFeatures;if(Ze&&Ze.includes("depth-sensing")&&o.depthUsage=="gpu-optimized"&&T){g=r.getBinding();const xt=g.getDepthInformation(Me[0]);xt&&xt.isValid&&xt.texture&&E.init(xt,o.renderState)}if(Ze&&Ze.includes("camera-access")&&T){e.state.unbindTexture(),g=r.getBinding();for(let xt=0;xt<Me.length;xt++){const pt=Me[xt].camera;if(pt){let ft=b[pt];ft||(ft=new YS,b[pt]=ft);const je=g.getCameraImage(pt);ft.sourceTexture=je}}}}for(let Me=0;Me<U.length;Me++){const Te=B[Me],Ze=U[Me];Te!==null&&Ze!==void 0&&Ze.update(Te,me,p||u)}Se&&Se($,me),me.detectedPlanes&&r.dispatchEvent({type:"planesdetected",data:me}),M=null}const Ce=new WS;Ce.setAnimationLoop(ye),this.setAnimationLoop=function($){Se=$},this.dispose=function(){}}}const $r=new Fa,VI=new Sn;function GI(a,e){function i(E,b){E.matrixAutoUpdate===!0&&E.updateMatrix(),b.value.copy(E.matrix)}function r(E,b){b.color.getRGB(E.fogColor.value,XS(a)),b.isFog?(E.fogNear.value=b.near,E.fogFar.value=b.far):b.isFogExp2&&(E.fogDensity.value=b.density)}function o(E,b,R,C,I){b.isMeshBasicMaterial?c(E,b):b.isMeshLambertMaterial?(c(E,b),b.envMap&&(E.envMapIntensity.value=b.envMapIntensity)):b.isMeshToonMaterial?(c(E,b),g(E,b)):b.isMeshPhongMaterial?(c(E,b),x(E,b),b.envMap&&(E.envMapIntensity.value=b.envMapIntensity)):b.isMeshStandardMaterial?(c(E,b),v(E,b),b.isMeshPhysicalMaterial&&y(E,b,I)):b.isMeshMatcapMaterial?(c(E,b),M(E,b)):b.isMeshDepthMaterial?c(E,b):b.isMeshDistanceMaterial?(c(E,b),T(E,b)):b.isMeshNormalMaterial?c(E,b):b.isLineBasicMaterial?(u(E,b),b.isLineDashedMaterial&&f(E,b)):b.isPointsMaterial?h(E,b,R,C):b.isSpriteMaterial?p(E,b):b.isShadowMaterial?(E.color.value.copy(b.color),E.opacity.value=b.opacity):b.isShaderMaterial&&(b.uniformsNeedUpdate=!1)}function c(E,b){E.opacity.value=b.opacity,b.color&&E.diffuse.value.copy(b.color),b.emissive&&E.emissive.value.copy(b.emissive).multiplyScalar(b.emissiveIntensity),b.map&&(E.map.value=b.map,i(b.map,E.mapTransform)),b.alphaMap&&(E.alphaMap.value=b.alphaMap,i(b.alphaMap,E.alphaMapTransform)),b.bumpMap&&(E.bumpMap.value=b.bumpMap,i(b.bumpMap,E.bumpMapTransform),E.bumpScale.value=b.bumpScale,b.side===ni&&(E.bumpScale.value*=-1)),b.normalMap&&(E.normalMap.value=b.normalMap,i(b.normalMap,E.normalMapTransform),E.normalScale.value.copy(b.normalScale),b.side===ni&&E.normalScale.value.negate()),b.displacementMap&&(E.displacementMap.value=b.displacementMap,i(b.displacementMap,E.displacementMapTransform),E.displacementScale.value=b.displacementScale,E.displacementBias.value=b.displacementBias),b.emissiveMap&&(E.emissiveMap.value=b.emissiveMap,i(b.emissiveMap,E.emissiveMapTransform)),b.specularMap&&(E.specularMap.value=b.specularMap,i(b.specularMap,E.specularMapTransform)),b.alphaTest>0&&(E.alphaTest.value=b.alphaTest);const R=e.get(b),C=R.envMap,I=R.envMapRotation;C&&(E.envMap.value=C,$r.copy(I),$r.x*=-1,$r.y*=-1,$r.z*=-1,C.isCubeTexture&&C.isRenderTargetTexture===!1&&($r.y*=-1,$r.z*=-1),E.envMapRotation.value.setFromMatrix4(VI.makeRotationFromEuler($r)),E.flipEnvMap.value=C.isCubeTexture&&C.isRenderTargetTexture===!1?-1:1,E.reflectivity.value=b.reflectivity,E.ior.value=b.ior,E.refractionRatio.value=b.refractionRatio),b.lightMap&&(E.lightMap.value=b.lightMap,E.lightMapIntensity.value=b.lightMapIntensity,i(b.lightMap,E.lightMapTransform)),b.aoMap&&(E.aoMap.value=b.aoMap,E.aoMapIntensity.value=b.aoMapIntensity,i(b.aoMap,E.aoMapTransform))}function u(E,b){E.diffuse.value.copy(b.color),E.opacity.value=b.opacity,b.map&&(E.map.value=b.map,i(b.map,E.mapTransform))}function f(E,b){E.dashSize.value=b.dashSize,E.totalSize.value=b.dashSize+b.gapSize,E.scale.value=b.scale}function h(E,b,R,C){E.diffuse.value.copy(b.color),E.opacity.value=b.opacity,E.size.value=b.size*R,E.scale.value=C*.5,b.map&&(E.map.value=b.map,i(b.map,E.uvTransform)),b.alphaMap&&(E.alphaMap.value=b.alphaMap,i(b.alphaMap,E.alphaMapTransform)),b.alphaTest>0&&(E.alphaTest.value=b.alphaTest)}function p(E,b){E.diffuse.value.copy(b.color),E.opacity.value=b.opacity,E.rotation.value=b.rotation,b.map&&(E.map.value=b.map,i(b.map,E.mapTransform)),b.alphaMap&&(E.alphaMap.value=b.alphaMap,i(b.alphaMap,E.alphaMapTransform)),b.alphaTest>0&&(E.alphaTest.value=b.alphaTest)}function x(E,b){E.specular.value.copy(b.specular),E.shininess.value=Math.max(b.shininess,1e-4)}function g(E,b){b.gradientMap&&(E.gradientMap.value=b.gradientMap)}function v(E,b){E.metalness.value=b.metalness,b.metalnessMap&&(E.metalnessMap.value=b.metalnessMap,i(b.metalnessMap,E.metalnessMapTransform)),E.roughness.value=b.roughness,b.roughnessMap&&(E.roughnessMap.value=b.roughnessMap,i(b.roughnessMap,E.roughnessMapTransform)),b.envMap&&(E.envMapIntensity.value=b.envMapIntensity)}function y(E,b,R){E.ior.value=b.ior,b.sheen>0&&(E.sheenColor.value.copy(b.sheenColor).multiplyScalar(b.sheen),E.sheenRoughness.value=b.sheenRoughness,b.sheenColorMap&&(E.sheenColorMap.value=b.sheenColorMap,i(b.sheenColorMap,E.sheenColorMapTransform)),b.sheenRoughnessMap&&(E.sheenRoughnessMap.value=b.sheenRoughnessMap,i(b.sheenRoughnessMap,E.sheenRoughnessMapTransform))),b.clearcoat>0&&(E.clearcoat.value=b.clearcoat,E.clearcoatRoughness.value=b.clearcoatRoughness,b.clearcoatMap&&(E.clearcoatMap.value=b.clearcoatMap,i(b.clearcoatMap,E.clearcoatMapTransform)),b.clearcoatRoughnessMap&&(E.clearcoatRoughnessMap.value=b.clearcoatRoughnessMap,i(b.clearcoatRoughnessMap,E.clearcoatRoughnessMapTransform)),b.clearcoatNormalMap&&(E.clearcoatNormalMap.value=b.clearcoatNormalMap,i(b.clearcoatNormalMap,E.clearcoatNormalMapTransform),E.clearcoatNormalScale.value.copy(b.clearcoatNormalScale),b.side===ni&&E.clearcoatNormalScale.value.negate())),b.dispersion>0&&(E.dispersion.value=b.dispersion),b.iridescence>0&&(E.iridescence.value=b.iridescence,E.iridescenceIOR.value=b.iridescenceIOR,E.iridescenceThicknessMinimum.value=b.iridescenceThicknessRange[0],E.iridescenceThicknessMaximum.value=b.iridescenceThicknessRange[1],b.iridescenceMap&&(E.iridescenceMap.value=b.iridescenceMap,i(b.iridescenceMap,E.iridescenceMapTransform)),b.iridescenceThicknessMap&&(E.iridescenceThicknessMap.value=b.iridescenceThicknessMap,i(b.iridescenceThicknessMap,E.iridescenceThicknessMapTransform))),b.transmission>0&&(E.transmission.value=b.transmission,E.transmissionSamplerMap.value=R.texture,E.transmissionSamplerSize.value.set(R.width,R.height),b.transmissionMap&&(E.transmissionMap.value=b.transmissionMap,i(b.transmissionMap,E.transmissionMapTransform)),E.thickness.value=b.thickness,b.thicknessMap&&(E.thicknessMap.value=b.thicknessMap,i(b.thicknessMap,E.thicknessMapTransform)),E.attenuationDistance.value=b.attenuationDistance,E.attenuationColor.value.copy(b.attenuationColor)),b.anisotropy>0&&(E.anisotropyVector.value.set(b.anisotropy*Math.cos(b.anisotropyRotation),b.anisotropy*Math.sin(b.anisotropyRotation)),b.anisotropyMap&&(E.anisotropyMap.value=b.anisotropyMap,i(b.anisotropyMap,E.anisotropyMapTransform))),E.specularIntensity.value=b.specularIntensity,E.specularColor.value.copy(b.specularColor),b.specularColorMap&&(E.specularColorMap.value=b.specularColorMap,i(b.specularColorMap,E.specularColorMapTransform)),b.specularIntensityMap&&(E.specularIntensityMap.value=b.specularIntensityMap,i(b.specularIntensityMap,E.specularIntensityMapTransform))}function M(E,b){b.matcap&&(E.matcap.value=b.matcap)}function T(E,b){const R=e.get(b).light;E.referencePosition.value.setFromMatrixPosition(R.matrixWorld),E.nearDistance.value=R.shadow.camera.near,E.farDistance.value=R.shadow.camera.far}return{refreshFogUniforms:r,refreshMaterialUniforms:o}}function jI(a,e,i,r){let o={},c={},u=[];const f=a.getParameter(a.MAX_UNIFORM_BUFFER_BINDINGS);function h(R,C){const I=C.program;r.uniformBlockBinding(R,I)}function p(R,C){let I=o[R.id];I===void 0&&(M(R),I=x(R),o[R.id]=I,R.addEventListener("dispose",E));const U=C.program;r.updateUBOMapping(R,U);const B=e.render.frame;c[R.id]!==B&&(v(R),c[R.id]=B)}function x(R){const C=g();R.__bindingPointIndex=C;const I=a.createBuffer(),U=R.__size,B=R.usage;return a.bindBuffer(a.UNIFORM_BUFFER,I),a.bufferData(a.UNIFORM_BUFFER,U,B),a.bindBuffer(a.UNIFORM_BUFFER,null),a.bindBufferBase(a.UNIFORM_BUFFER,C,I),I}function g(){for(let R=0;R<f;R++)if(u.indexOf(R)===-1)return u.push(R),R;return Vt("WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function v(R){const C=o[R.id],I=R.uniforms,U=R.__cache;a.bindBuffer(a.UNIFORM_BUFFER,C);for(let B=0,D=I.length;B<D;B++){const A=Array.isArray(I[B])?I[B]:[I[B]];for(let L=0,X=A.length;L<X;L++){const k=A[L];if(y(k,B,L,U)===!0){const G=k.__offset,Y=Array.isArray(k.value)?k.value:[k.value];let ee=0;for(let Z=0;Z<Y.length;Z++){const _=Y[Z],F=T(_);typeof _=="number"||typeof _=="boolean"?(k.__data[0]=_,a.bufferSubData(a.UNIFORM_BUFFER,G+ee,k.__data)):_.isMatrix3?(k.__data[0]=_.elements[0],k.__data[1]=_.elements[1],k.__data[2]=_.elements[2],k.__data[3]=0,k.__data[4]=_.elements[3],k.__data[5]=_.elements[4],k.__data[6]=_.elements[5],k.__data[7]=0,k.__data[8]=_.elements[6],k.__data[9]=_.elements[7],k.__data[10]=_.elements[8],k.__data[11]=0):(_.toArray(k.__data,ee),ee+=F.storage/Float32Array.BYTES_PER_ELEMENT)}a.bufferSubData(a.UNIFORM_BUFFER,G,k.__data)}}}a.bindBuffer(a.UNIFORM_BUFFER,null)}function y(R,C,I,U){const B=R.value,D=C+"_"+I;if(U[D]===void 0)return typeof B=="number"||typeof B=="boolean"?U[D]=B:U[D]=B.clone(),!0;{const A=U[D];if(typeof B=="number"||typeof B=="boolean"){if(A!==B)return U[D]=B,!0}else if(A.equals(B)===!1)return A.copy(B),!0}return!1}function M(R){const C=R.uniforms;let I=0;const U=16;for(let D=0,A=C.length;D<A;D++){const L=Array.isArray(C[D])?C[D]:[C[D]];for(let X=0,k=L.length;X<k;X++){const G=L[X],Y=Array.isArray(G.value)?G.value:[G.value];for(let ee=0,Z=Y.length;ee<Z;ee++){const _=Y[ee],F=T(_),se=I%U,fe=se%F.boundary,ae=se+fe;I+=fe,ae!==0&&U-ae<F.storage&&(I+=U-ae),G.__data=new Float32Array(F.storage/Float32Array.BYTES_PER_ELEMENT),G.__offset=I,I+=F.storage}}}const B=I%U;return B>0&&(I+=U-B),R.__size=I,R.__cache={},this}function T(R){const C={boundary:0,storage:0};return typeof R=="number"||typeof R=="boolean"?(C.boundary=4,C.storage=4):R.isVector2?(C.boundary=8,C.storage=8):R.isVector3||R.isColor?(C.boundary=16,C.storage=12):R.isVector4?(C.boundary=16,C.storage=16):R.isMatrix3?(C.boundary=48,C.storage=48):R.isMatrix4?(C.boundary=64,C.storage=64):R.isTexture?bt("WebGLRenderer: Texture samplers can not be part of an uniforms group."):bt("WebGLRenderer: Unsupported uniform value type.",R),C}function E(R){const C=R.target;C.removeEventListener("dispose",E);const I=u.indexOf(C.__bindingPointIndex);u.splice(I,1),a.deleteBuffer(o[C.id]),delete o[C.id],delete c[C.id]}function b(){for(const R in o)a.deleteBuffer(o[R]);u=[],o={},c={}}return{bind:h,update:p,dispose:b}}const YI=new Uint16Array([12469,15057,12620,14925,13266,14620,13807,14376,14323,13990,14545,13625,14713,13328,14840,12882,14931,12528,14996,12233,15039,11829,15066,11525,15080,11295,15085,10976,15082,10705,15073,10495,13880,14564,13898,14542,13977,14430,14158,14124,14393,13732,14556,13410,14702,12996,14814,12596,14891,12291,14937,11834,14957,11489,14958,11194,14943,10803,14921,10506,14893,10278,14858,9960,14484,14039,14487,14025,14499,13941,14524,13740,14574,13468,14654,13106,14743,12678,14818,12344,14867,11893,14889,11509,14893,11180,14881,10751,14852,10428,14812,10128,14765,9754,14712,9466,14764,13480,14764,13475,14766,13440,14766,13347,14769,13070,14786,12713,14816,12387,14844,11957,14860,11549,14868,11215,14855,10751,14825,10403,14782,10044,14729,9651,14666,9352,14599,9029,14967,12835,14966,12831,14963,12804,14954,12723,14936,12564,14917,12347,14900,11958,14886,11569,14878,11247,14859,10765,14828,10401,14784,10011,14727,9600,14660,9289,14586,8893,14508,8533,15111,12234,15110,12234,15104,12216,15092,12156,15067,12010,15028,11776,14981,11500,14942,11205,14902,10752,14861,10393,14812,9991,14752,9570,14682,9252,14603,8808,14519,8445,14431,8145,15209,11449,15208,11451,15202,11451,15190,11438,15163,11384,15117,11274,15055,10979,14994,10648,14932,10343,14871,9936,14803,9532,14729,9218,14645,8742,14556,8381,14461,8020,14365,7603,15273,10603,15272,10607,15267,10619,15256,10631,15231,10614,15182,10535,15118,10389,15042,10167,14963,9787,14883,9447,14800,9115,14710,8665,14615,8318,14514,7911,14411,7507,14279,7198,15314,9675,15313,9683,15309,9712,15298,9759,15277,9797,15229,9773,15166,9668,15084,9487,14995,9274,14898,8910,14800,8539,14697,8234,14590,7790,14479,7409,14367,7067,14178,6621,15337,8619,15337,8631,15333,8677,15325,8769,15305,8871,15264,8940,15202,8909,15119,8775,15022,8565,14916,8328,14804,8009,14688,7614,14569,7287,14448,6888,14321,6483,14088,6171,15350,7402,15350,7419,15347,7480,15340,7613,15322,7804,15287,7973,15229,8057,15148,8012,15046,7846,14933,7611,14810,7357,14682,7069,14552,6656,14421,6316,14251,5948,14007,5528,15356,5942,15356,5977,15353,6119,15348,6294,15332,6551,15302,6824,15249,7044,15171,7122,15070,7050,14949,6861,14818,6611,14679,6349,14538,6067,14398,5651,14189,5311,13935,4958,15359,4123,15359,4153,15356,4296,15353,4646,15338,5160,15311,5508,15263,5829,15188,6042,15088,6094,14966,6001,14826,5796,14678,5543,14527,5287,14377,4985,14133,4586,13869,4257,15360,1563,15360,1642,15358,2076,15354,2636,15341,3350,15317,4019,15273,4429,15203,4732,15105,4911,14981,4932,14836,4818,14679,4621,14517,4386,14359,4156,14083,3795,13808,3437,15360,122,15360,137,15358,285,15355,636,15344,1274,15322,2177,15281,2765,15215,3223,15120,3451,14995,3569,14846,3567,14681,3466,14511,3305,14344,3121,14037,2800,13753,2467,15360,0,15360,1,15359,21,15355,89,15346,253,15325,479,15287,796,15225,1148,15133,1492,15008,1749,14856,1882,14685,1886,14506,1783,14324,1608,13996,1398,13702,1183]);let Ji=null;function XI(){return Ji===null&&(Ji=new VS(YI,16,16,Ro,_a),Ji.name="DFG_LUT",Ji.minFilter=Bn,Ji.magFilter=Bn,Ji.wrapS=Oa,Ji.wrapT=Oa,Ji.generateMipmaps=!1,Ji.needsUpdate=!0),Ji}class ZI{constructor(e={}){const{canvas:i=dT(),context:r=null,depth:o=!0,stencil:c=!1,alpha:u=!1,antialias:f=!1,premultipliedAlpha:h=!0,preserveDrawingBuffer:p=!1,powerPreference:x="default",failIfMajorPerformanceCaveat:g=!1,reversedDepthBuffer:v=!1,outputBufferType:y=Ri}=e;this.isWebGLRenderer=!0;let M;if(r!==null){if(typeof WebGLRenderingContext<"u"&&r instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");M=r.getContextAttributes().alpha}else M=u;const T=y,E=new Set([Bm,Om,Pm]),b=new Set([Ri,ra,tc,nc,Nm,Lm]),R=new Uint32Array(4),C=new Int32Array(4);let I=null,U=null;const B=[],D=[];let A=null;this.domElement=i,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=na,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const L=this;let X=!1;this._outputColorSpace=Ti;let k=0,G=0,Y=null,ee=-1,Z=null;const _=new hn,F=new hn;let se=null;const fe=new qt(0);let ae=0,H=i.width,Q=i.height,Se=1,ye=null,Ce=null;const $=new hn(0,0,H,Q),me=new hn(0,0,H,Q);let Me=!1;const Te=new GS;let Ze=!1,tt=!1;const yt=new Sn,xt=new he,pt=new hn,ft={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let je=!1;function Ne(){return Y===null?Se:1}let V=r;function gt(O,q){return i.getContext(O,q)}try{const O={alpha:!0,depth:o,stencil:c,antialias:f,premultipliedAlpha:h,preserveDrawingBuffer:p,powerPreference:x,failIfMajorPerformanceCaveat:g};if("setAttribute"in i&&i.setAttribute("data-engine",`three.js r${Im}`),i.addEventListener("webglcontextlost",et,!1),i.addEventListener("webglcontextrestored",$e,!1),i.addEventListener("webglcontextcreationerror",vt,!1),V===null){const q="webgl2";if(V=gt(q,O),V===null)throw gt(q)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(O){throw Vt("WebGLRenderer: "+O.message),O}let ct,pe,Ie,z,N,W,xe,Ae,ve,Ge,Be,Je,dt,Pe,Le,Ye,He,We,lt,J,ze,Ue,Qe;function Oe(){ct=new ZC(V),ct.init(),ze=new kI(V,ct),pe=new _C(V,ct,e,ze),Ie=new BI(V,ct),pe.reversedDepthBuffer&&v&&Ie.buffers.depth.setReversed(!0),z=new qC(V),N=new SI,W=new UI(V,ct,Ie,N,pe,ze,z),xe=new XC(L),Ae=new t2(V),Ue=new kC(V,Ae),ve=new WC(V,Ae,z,Ue),Ge=new JC(V,ve,Ae,Ue,z),We=new KC(V,pe,W),Le=new HC(N),Be=new bI(L,xe,ct,pe,Ue,Le),Je=new GI(L,N),dt=new MI,Pe=new II(ct),He=new UC(L,xe,Ie,Ge,M,h),Ye=new OI(L,Ge,pe),Qe=new jI(V,z,pe,Ie),lt=new zC(V,ct,z),J=new QC(V,ct,z),z.programs=Be.programs,L.capabilities=pe,L.extensions=ct,L.properties=N,L.renderLists=dt,L.shadowMap=Ye,L.state=Ie,L.info=z}Oe(),T!==Ri&&(A=new e3(T,i.width,i.height,o,c));const be=new FI(L,V);this.xr=be,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){const O=ct.get("WEBGL_lose_context");O&&O.loseContext()},this.forceContextRestore=function(){const O=ct.get("WEBGL_lose_context");O&&O.restoreContext()},this.getPixelRatio=function(){return Se},this.setPixelRatio=function(O){O!==void 0&&(Se=O,this.setSize(H,Q,!1))},this.getSize=function(O){return O.set(H,Q)},this.setSize=function(O,q,de=!0){if(be.isPresenting){bt("WebGLRenderer: Can't change size while VR device is presenting.");return}H=O,Q=q,i.width=Math.floor(O*Se),i.height=Math.floor(q*Se),de===!0&&(i.style.width=O+"px",i.style.height=q+"px"),A!==null&&A.setSize(i.width,i.height),this.setViewport(0,0,O,q)},this.getDrawingBufferSize=function(O){return O.set(H*Se,Q*Se).floor()},this.setDrawingBufferSize=function(O,q,de){H=O,Q=q,Se=de,i.width=Math.floor(O*de),i.height=Math.floor(q*de),this.setViewport(0,0,O,q)},this.setEffects=function(O){if(T===Ri){console.error("THREE.WebGLRenderer: setEffects() requires outputBufferType set to HalfFloatType or FloatType.");return}if(O){for(let q=0;q<O.length;q++)if(O[q].isOutputPass===!0){console.warn("THREE.WebGLRenderer: OutputPass is not needed in setEffects(). Tone mapping and color space conversion are applied automatically.");break}}A.setEffects(O||[])},this.getCurrentViewport=function(O){return O.copy(_)},this.getViewport=function(O){return O.copy($)},this.setViewport=function(O,q,de,oe){O.isVector4?$.set(O.x,O.y,O.z,O.w):$.set(O,q,de,oe),Ie.viewport(_.copy($).multiplyScalar(Se).round())},this.getScissor=function(O){return O.copy(me)},this.setScissor=function(O,q,de,oe){O.isVector4?me.set(O.x,O.y,O.z,O.w):me.set(O,q,de,oe),Ie.scissor(F.copy(me).multiplyScalar(Se).round())},this.getScissorTest=function(){return Me},this.setScissorTest=function(O){Ie.setScissorTest(Me=O)},this.setOpaqueSort=function(O){ye=O},this.setTransparentSort=function(O){Ce=O},this.getClearColor=function(O){return O.copy(He.getClearColor())},this.setClearColor=function(){He.setClearColor(...arguments)},this.getClearAlpha=function(){return He.getClearAlpha()},this.setClearAlpha=function(){He.setClearAlpha(...arguments)},this.clear=function(O=!0,q=!0,de=!0){let oe=0;if(O){let re=!1;if(Y!==null){const _e=Y.texture.format;re=E.has(_e)}if(re){const _e=Y.texture.type,Ke=b.has(_e),Fe=He.getClearColor(),nt=He.getClearAlpha(),ie=Fe.r,we=Fe.g,Ve=Fe.b;Ke?(R[0]=ie,R[1]=we,R[2]=Ve,R[3]=nt,V.clearBufferuiv(V.COLOR,0,R)):(C[0]=ie,C[1]=we,C[2]=Ve,C[3]=nt,V.clearBufferiv(V.COLOR,0,C))}else oe|=V.COLOR_BUFFER_BIT}q&&(oe|=V.DEPTH_BUFFER_BIT),de&&(oe|=V.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),oe!==0&&V.clear(oe)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){i.removeEventListener("webglcontextlost",et,!1),i.removeEventListener("webglcontextrestored",$e,!1),i.removeEventListener("webglcontextcreationerror",vt,!1),He.dispose(),dt.dispose(),Pe.dispose(),N.dispose(),xe.dispose(),Ge.dispose(),Ue.dispose(),Qe.dispose(),Be.dispose(),be.dispose(),be.removeEventListener("sessionstart",Ga),be.removeEventListener("sessionend",pi),Fn.stop()};function et(O){O.preventDefault(),vy("WebGLRenderer: Context Lost."),X=!0}function $e(){vy("WebGLRenderer: Context Restored."),X=!1;const O=z.autoReset,q=Ye.enabled,de=Ye.autoUpdate,oe=Ye.needsUpdate,re=Ye.type;Oe(),z.autoReset=O,Ye.enabled=q,Ye.autoUpdate=de,Ye.needsUpdate=oe,Ye.type=re}function vt(O){Vt("WebGLRenderer: A WebGL context could not be created. Reason: ",O.statusMessage)}function Dt(O){const q=O.target;q.removeEventListener("dispose",Dt),$t(q)}function $t(O){Zn(O),N.remove(O)}function Zn(O){const q=N.get(O).programs;q!==void 0&&(q.forEach(function(de){Be.releaseProgram(de)}),O.isShaderMaterial&&Be.releaseShaderCache(O))}this.renderBufferDirect=function(O,q,de,oe,re,_e){q===null&&(q=ft);const Ke=re.isMesh&&re.matrixWorld.determinant()<0,Fe=ja(O,q,de,oe,re);Ie.setMaterial(oe,Ke);let nt=de.index,ie=1;if(oe.wireframe===!0){if(nt=ve.getWireframeAttribute(de),nt===void 0)return;ie=2}const we=de.drawRange,Ve=de.attributes.position;let ke=we.start*ie,st=(we.start+we.count)*ie;_e!==null&&(ke=Math.max(ke,_e.start*ie),st=Math.min(st,(_e.start+_e.count)*ie)),nt!==null?(ke=Math.max(ke,0),st=Math.min(st,nt.count)):Ve!=null&&(ke=Math.max(ke,0),st=Math.min(st,Ve.count));const Mt=st-ke;if(Mt<0||Mt===1/0)return;Ue.setup(re,oe,Fe,de,nt);let At,St=lt;if(nt!==null&&(At=Ae.get(nt),St=J,St.setIndex(At)),re.isMesh)oe.wireframe===!0?(Ie.setLineWidth(oe.wireframeLinewidth*Ne()),St.setMode(V.LINES)):St.setMode(V.TRIANGLES);else if(re.isLine){let Kt=oe.linewidth;Kt===void 0&&(Kt=1),Ie.setLineWidth(Kt*Ne()),re.isLineSegments?St.setMode(V.LINES):re.isLineLoop?St.setMode(V.LINE_LOOP):St.setMode(V.LINE_STRIP)}else re.isPoints?St.setMode(V.POINTS):re.isSprite&&St.setMode(V.TRIANGLES);if(re.isBatchedMesh)if(re._multiDrawInstances!==null)df("WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),St.renderMultiDrawInstances(re._multiDrawStarts,re._multiDrawCounts,re._multiDrawCount,re._multiDrawInstances);else if(ct.get("WEBGL_multi_draw"))St.renderMultiDraw(re._multiDrawStarts,re._multiDrawCounts,re._multiDrawCount);else{const Kt=re._multiDrawStarts,qe=re._multiDrawCounts,sn=re._multiDrawCount,ut=nt?Ae.get(nt).bytesPerElement:1,on=N.get(oe).currentProgram.getUniforms();for(let Vn=0;Vn<sn;Vn++)on.setValue(V,"_gl_DrawID",Vn),St.render(Kt[Vn]/ut,qe[Vn])}else if(re.isInstancedMesh)St.renderInstances(ke,Mt,re.count);else if(de.isInstancedBufferGeometry){const Kt=de._maxInstanceCount!==void 0?de._maxInstanceCount:1/0,qe=Math.min(de.instanceCount,Kt);St.renderInstances(ke,Mt,qe)}else St.render(ke,Mt)};function Yi(O,q,de){O.transparent===!0&&O.side===Pa&&O.forceSinglePass===!1?(O.side=ni,O.needsUpdate=!0,Li(O,q,de),O.side=wr,O.needsUpdate=!0,Li(O,q,de),O.side=Pa):Li(O,q,de)}this.compile=function(O,q,de=null){de===null&&(de=O),U=Pe.get(de),U.init(q),D.push(U),de.traverseVisible(function(re){re.isLight&&re.layers.test(q.layers)&&(U.pushLight(re),re.castShadow&&U.pushShadow(re))}),O!==de&&O.traverseVisible(function(re){re.isLight&&re.layers.test(q.layers)&&(U.pushLight(re),re.castShadow&&U.pushShadow(re))}),U.setupLights();const oe=new Set;return O.traverse(function(re){if(!(re.isMesh||re.isPoints||re.isLine||re.isSprite))return;const _e=re.material;if(_e)if(Array.isArray(_e))for(let Ke=0;Ke<_e.length;Ke++){const Fe=_e[Ke];Yi(Fe,de,re),oe.add(Fe)}else Yi(_e,de,re),oe.add(_e)}),U=D.pop(),oe},this.compileAsync=function(O,q,de=null){const oe=this.compile(O,q,de);return new Promise(re=>{function _e(){if(oe.forEach(function(Ke){N.get(Ke).currentProgram.isReady()&&oe.delete(Ke)}),oe.size===0){re(O);return}setTimeout(_e,10)}ct.get("KHR_parallel_shader_compile")!==null?_e():setTimeout(_e,10)})};let Di=null;function Dr(O){Di&&Di(O)}function Ga(){Fn.stop()}function pi(){Fn.start()}const Fn=new WS;Fn.setAnimationLoop(Dr),typeof self<"u"&&Fn.setContext(self),this.setAnimationLoop=function(O){Di=O,be.setAnimationLoop(O),O===null?Fn.stop():Fn.start()},be.addEventListener("sessionstart",Ga),be.addEventListener("sessionend",pi),this.render=function(O,q){if(q!==void 0&&q.isCamera!==!0){Vt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(X===!0)return;const de=be.enabled===!0&&be.isPresenting===!0,oe=A!==null&&(Y===null||de)&&A.begin(L,Y);if(O.matrixWorldAutoUpdate===!0&&O.updateMatrixWorld(),q.parent===null&&q.matrixWorldAutoUpdate===!0&&q.updateMatrixWorld(),be.enabled===!0&&be.isPresenting===!0&&(A===null||A.isCompositing()===!1)&&(be.cameraAutoUpdate===!0&&be.updateCamera(q),q=be.getCamera()),O.isScene===!0&&O.onBeforeRender(L,O,q,Y),U=Pe.get(O,D.length),U.init(q),D.push(U),yt.multiplyMatrices(q.projectionMatrix,q.matrixWorldInverse),Te.setFromProjectionMatrix(yt,ta,q.reversedDepth),tt=this.localClippingEnabled,Ze=Le.init(this.clippingPlanes,tt),I=dt.get(O,B.length),I.init(),B.push(I),be.enabled===!0&&be.isPresenting===!0){const Ke=L.xr.getDepthSensingMesh();Ke!==null&&mi(Ke,q,-1/0,L.sortObjects)}mi(O,q,0,L.sortObjects),I.finish(),L.sortObjects===!0&&I.sort(ye,Ce),je=be.enabled===!1||be.isPresenting===!1||be.hasDepthSensing()===!1,je&&He.addToRenderList(I,O),this.info.render.frame++,Ze===!0&&Le.beginShadows();const re=U.state.shadowsArray;if(Ye.render(re,O,q),Ze===!0&&Le.endShadows(),this.info.autoReset===!0&&this.info.reset(),(oe&&A.hasRenderPass())===!1){const Ke=I.opaque,Fe=I.transmissive;if(U.setupLights(),q.isArrayCamera){const nt=q.cameras;if(Fe.length>0)for(let ie=0,we=nt.length;ie<we;ie++){const Ve=nt[ie];an(Ke,Fe,O,Ve)}je&&He.render(O);for(let ie=0,we=nt.length;ie<we;ie++){const Ve=nt[ie];In(I,O,Ve,Ve.viewport)}}else Fe.length>0&&an(Ke,Fe,O,q),je&&He.render(O),In(I,O,q)}Y!==null&&G===0&&(W.updateMultisampleRenderTarget(Y),W.updateRenderTargetMipmap(Y)),oe&&A.end(L),O.isScene===!0&&O.onAfterRender(L,O,q),Ue.resetDefaultState(),ee=-1,Z=null,D.pop(),D.length>0?(U=D[D.length-1],Ze===!0&&Le.setGlobalState(L.clippingPlanes,U.state.camera)):U=null,B.pop(),B.length>0?I=B[B.length-1]:I=null};function mi(O,q,de,oe){if(O.visible===!1)return;if(O.layers.test(q.layers)){if(O.isGroup)de=O.renderOrder;else if(O.isLOD)O.autoUpdate===!0&&O.update(q);else if(O.isLight)U.pushLight(O),O.castShadow&&U.pushShadow(O);else if(O.isSprite){if(!O.frustumCulled||Te.intersectsSprite(O)){oe&&pt.setFromMatrixPosition(O.matrixWorld).applyMatrix4(yt);const Ke=Ge.update(O),Fe=O.material;Fe.visible&&I.push(O,Ke,Fe,de,pt.z,null)}}else if((O.isMesh||O.isLine||O.isPoints)&&(!O.frustumCulled||Te.intersectsObject(O))){const Ke=Ge.update(O),Fe=O.material;if(oe&&(O.boundingSphere!==void 0?(O.boundingSphere===null&&O.computeBoundingSphere(),pt.copy(O.boundingSphere.center)):(Ke.boundingSphere===null&&Ke.computeBoundingSphere(),pt.copy(Ke.boundingSphere.center)),pt.applyMatrix4(O.matrixWorld).applyMatrix4(yt)),Array.isArray(Fe)){const nt=Ke.groups;for(let ie=0,we=nt.length;ie<we;ie++){const Ve=nt[ie],ke=Fe[Ve.materialIndex];ke&&ke.visible&&I.push(O,Ke,ke,de,pt.z,Ve)}}else Fe.visible&&I.push(O,Ke,Fe,de,pt.z,null)}}const _e=O.children;for(let Ke=0,Fe=_e.length;Ke<Fe;Ke++)mi(_e[Ke],q,de,oe)}function In(O,q,de,oe){const{opaque:re,transmissive:_e,transparent:Ke}=O;U.setupLightsView(de),Ze===!0&&Le.setGlobalState(L.clippingPlanes,de),oe&&Ie.viewport(_.copy(oe)),re.length>0&&un(re,q,de),_e.length>0&&un(_e,q,de),Ke.length>0&&un(Ke,q,de),Ie.buffers.depth.setTest(!0),Ie.buffers.depth.setMask(!0),Ie.buffers.color.setMask(!0),Ie.setPolygonOffset(!1)}function an(O,q,de,oe){if((de.isScene===!0?de.overrideMaterial:null)!==null)return;if(U.state.transmissionRenderTarget[oe.id]===void 0){const ke=ct.has("EXT_color_buffer_half_float")||ct.has("EXT_color_buffer_float");U.state.transmissionRenderTarget[oe.id]=new ia(1,1,{generateMipmaps:!0,type:ke?_a:Ri,minFilter:os,samples:Math.max(4,pe.samples),stencilBuffer:c,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:zt.workingColorSpace})}const _e=U.state.transmissionRenderTarget[oe.id],Ke=oe.viewport||_;_e.setSize(Ke.z*L.transmissionResolutionScale,Ke.w*L.transmissionResolutionScale);const Fe=L.getRenderTarget(),nt=L.getActiveCubeFace(),ie=L.getActiveMipmapLevel();L.setRenderTarget(_e),L.getClearColor(fe),ae=L.getClearAlpha(),ae<1&&L.setClearColor(16777215,.5),L.clear(),je&&He.render(de);const we=L.toneMapping;L.toneMapping=na;const Ve=oe.viewport;if(oe.viewport!==void 0&&(oe.viewport=void 0),U.setupLightsView(oe),Ze===!0&&Le.setGlobalState(L.clippingPlanes,oe),un(O,de,oe),W.updateMultisampleRenderTarget(_e),W.updateRenderTargetMipmap(_e),ct.has("WEBGL_multisampled_render_to_texture")===!1){let ke=!1;for(let st=0,Mt=q.length;st<Mt;st++){const At=q[st],{object:St,geometry:Kt,material:qe,group:sn}=At;if(qe.side===Pa&&St.layers.test(oe.layers)){const ut=qe.side;qe.side=ni,qe.needsUpdate=!0,Ni(St,de,oe,Kt,qe,sn),qe.side=ut,qe.needsUpdate=!0,ke=!0}}ke===!0&&(W.updateMultisampleRenderTarget(_e),W.updateRenderTargetMipmap(_e))}L.setRenderTarget(Fe,nt,ie),L.setClearColor(fe,ae),Ve!==void 0&&(oe.viewport=Ve),L.toneMapping=we}function un(O,q,de){const oe=q.isScene===!0?q.overrideMaterial:null;for(let re=0,_e=O.length;re<_e;re++){const Ke=O[re],{object:Fe,geometry:nt,group:ie}=Ke;let we=Ke.material;we.allowOverride===!0&&oe!==null&&(we=oe),Fe.layers.test(de.layers)&&Ni(Fe,q,de,nt,we,ie)}}function Ni(O,q,de,oe,re,_e){O.onBeforeRender(L,q,de,oe,re,_e),O.modelViewMatrix.multiplyMatrices(de.matrixWorldInverse,O.matrixWorld),O.normalMatrix.getNormalMatrix(O.modelViewMatrix),re.onBeforeRender(L,q,de,oe,O,_e),re.transparent===!0&&re.side===Pa&&re.forceSinglePass===!1?(re.side=ni,re.needsUpdate=!0,L.renderBufferDirect(de,q,oe,re,O,_e),re.side=wr,re.needsUpdate=!0,L.renderBufferDirect(de,q,oe,re,O,_e),re.side=Pa):L.renderBufferDirect(de,q,oe,re,O,_e),O.onAfterRender(L,q,de,oe,re,_e)}function Li(O,q,de){q.isScene!==!0&&(q=ft);const oe=N.get(O),re=U.state.lights,_e=U.state.shadowsArray,Ke=re.state.version,Fe=Be.getParameters(O,re.state,_e,q,de),nt=Be.getProgramCacheKey(Fe);let ie=oe.programs;oe.environment=O.isMeshStandardMaterial||O.isMeshLambertMaterial||O.isMeshPhongMaterial?q.environment:null,oe.fog=q.fog;const we=O.isMeshStandardMaterial||O.isMeshLambertMaterial&&!O.envMap||O.isMeshPhongMaterial&&!O.envMap;oe.envMap=xe.get(O.envMap||oe.environment,we),oe.envMapRotation=oe.environment!==null&&O.envMap===null?q.environmentRotation:O.envMapRotation,ie===void 0&&(O.addEventListener("dispose",Dt),ie=new Map,oe.programs=ie);let Ve=ie.get(nt);if(Ve!==void 0){if(oe.currentProgram===Ve&&oe.lightsStateVersion===Ke)return Uo(O,Fe),Ve}else Fe.uniforms=Be.getUniforms(O),O.onBeforeCompile(Fe,L),Ve=Be.acquireProgram(Fe,nt),ie.set(nt,Ve),oe.uniforms=Fe.uniforms;const ke=oe.uniforms;return(!O.isShaderMaterial&&!O.isRawShaderMaterial||O.clipping===!0)&&(ke.clippingPlanes=Le.uniform),Uo(O,Fe),oe.needsLights=Ya(O),oe.lightsStateVersion=Ke,oe.needsLights&&(ke.ambientLightColor.value=re.state.ambient,ke.lightProbe.value=re.state.probe,ke.directionalLights.value=re.state.directional,ke.directionalLightShadows.value=re.state.directionalShadow,ke.spotLights.value=re.state.spot,ke.spotLightShadows.value=re.state.spotShadow,ke.rectAreaLights.value=re.state.rectArea,ke.ltc_1.value=re.state.rectAreaLTC1,ke.ltc_2.value=re.state.rectAreaLTC2,ke.pointLights.value=re.state.point,ke.pointLightShadows.value=re.state.pointShadow,ke.hemisphereLights.value=re.state.hemi,ke.directionalShadowMatrix.value=re.state.directionalShadowMatrix,ke.spotLightMatrix.value=re.state.spotLightMatrix,ke.spotLightMap.value=re.state.spotLightMap,ke.pointShadowMatrix.value=re.state.pointShadowMatrix),oe.currentProgram=Ve,oe.uniformsList=null,Ve}function Bo(O){if(O.uniformsList===null){const q=O.currentProgram.getUniforms();O.uniformsList=nf.seqWithValue(q.seq,O.uniforms)}return O.uniformsList}function Uo(O,q){const de=N.get(O);de.outputColorSpace=q.outputColorSpace,de.batching=q.batching,de.batchingColor=q.batchingColor,de.instancing=q.instancing,de.instancingColor=q.instancingColor,de.instancingMorph=q.instancingMorph,de.skinning=q.skinning,de.morphTargets=q.morphTargets,de.morphNormals=q.morphNormals,de.morphColors=q.morphColors,de.morphTargetsCount=q.morphTargetsCount,de.numClippingPlanes=q.numClippingPlanes,de.numIntersection=q.numClipIntersection,de.vertexAlphas=q.vertexAlphas,de.vertexTangents=q.vertexTangents,de.toneMapping=q.toneMapping}function ja(O,q,de,oe,re){q.isScene!==!0&&(q=ft),W.resetTextureUnits();const _e=q.fog,Ke=oe.isMeshStandardMaterial||oe.isMeshLambertMaterial||oe.isMeshPhongMaterial?q.environment:null,Fe=Y===null?L.outputColorSpace:Y.isXRRenderTarget===!0?Y.texture.colorSpace:Co,nt=oe.isMeshStandardMaterial||oe.isMeshLambertMaterial&&!oe.envMap||oe.isMeshPhongMaterial&&!oe.envMap,ie=xe.get(oe.envMap||Ke,nt),we=oe.vertexColors===!0&&!!de.attributes.color&&de.attributes.color.itemSize===4,Ve=!!de.attributes.tangent&&(!!oe.normalMap||oe.anisotropy>0),ke=!!de.morphAttributes.position,st=!!de.morphAttributes.normal,Mt=!!de.morphAttributes.color;let At=na;oe.toneMapped&&(Y===null||Y.isXRRenderTarget===!0)&&(At=L.toneMapping);const St=de.morphAttributes.position||de.morphAttributes.normal||de.morphAttributes.color,Kt=St!==void 0?St.length:0,qe=N.get(oe),sn=U.state.lights;if(Ze===!0&&(tt===!0||O!==Z)){const mn=O===Z&&oe.id===ee;Le.setState(oe,O,mn)}let ut=!1;oe.version===qe.__version?(qe.needsLights&&qe.lightsStateVersion!==sn.state.version||qe.outputColorSpace!==Fe||re.isBatchedMesh&&qe.batching===!1||!re.isBatchedMesh&&qe.batching===!0||re.isBatchedMesh&&qe.batchingColor===!0&&re.colorTexture===null||re.isBatchedMesh&&qe.batchingColor===!1&&re.colorTexture!==null||re.isInstancedMesh&&qe.instancing===!1||!re.isInstancedMesh&&qe.instancing===!0||re.isSkinnedMesh&&qe.skinning===!1||!re.isSkinnedMesh&&qe.skinning===!0||re.isInstancedMesh&&qe.instancingColor===!0&&re.instanceColor===null||re.isInstancedMesh&&qe.instancingColor===!1&&re.instanceColor!==null||re.isInstancedMesh&&qe.instancingMorph===!0&&re.morphTexture===null||re.isInstancedMesh&&qe.instancingMorph===!1&&re.morphTexture!==null||qe.envMap!==ie||oe.fog===!0&&qe.fog!==_e||qe.numClippingPlanes!==void 0&&(qe.numClippingPlanes!==Le.numPlanes||qe.numIntersection!==Le.numIntersection)||qe.vertexAlphas!==we||qe.vertexTangents!==Ve||qe.morphTargets!==ke||qe.morphNormals!==st||qe.morphColors!==Mt||qe.toneMapping!==At||qe.morphTargetsCount!==Kt)&&(ut=!0):(ut=!0,qe.__version=oe.version);let on=qe.currentProgram;ut===!0&&(on=Li(oe,q,re));let Vn=!1,Wn=!1,Gn=!1;const _t=on.getUniforms(),pn=qe.uniforms;if(Ie.useProgram(on.program)&&(Vn=!0,Wn=!0,Gn=!0),oe.id!==ee&&(ee=oe.id,Wn=!0),Vn||Z!==O){Ie.buffers.depth.getReversed()&&O.reversedDepth!==!0&&(O._reversedDepth=!0,O.updateProjectionMatrix()),_t.setValue(V,"projectionMatrix",O.projectionMatrix),_t.setValue(V,"viewMatrix",O.matrixWorldInverse);const Pi=_t.map.cameraPosition;Pi!==void 0&&Pi.setValue(V,xt.setFromMatrixPosition(O.matrixWorld)),pe.logarithmicDepthBuffer&&_t.setValue(V,"logDepthBufFC",2/(Math.log(O.far+1)/Math.LN2)),(oe.isMeshPhongMaterial||oe.isMeshToonMaterial||oe.isMeshLambertMaterial||oe.isMeshBasicMaterial||oe.isMeshStandardMaterial||oe.isShaderMaterial)&&_t.setValue(V,"isOrthographic",O.isOrthographicCamera===!0),Z!==O&&(Z=O,Wn=!0,Gn=!0)}if(qe.needsLights&&(sn.state.directionalShadowMap.length>0&&_t.setValue(V,"directionalShadowMap",sn.state.directionalShadowMap,W),sn.state.spotShadowMap.length>0&&_t.setValue(V,"spotShadowMap",sn.state.spotShadowMap,W),sn.state.pointShadowMap.length>0&&_t.setValue(V,"pointShadowMap",sn.state.pointShadowMap,W)),re.isSkinnedMesh){_t.setOptional(V,re,"bindMatrix"),_t.setOptional(V,re,"bindMatrixInverse");const mn=re.skeleton;mn&&(mn.boneTexture===null&&mn.computeBoneTexture(),_t.setValue(V,"boneTexture",mn.boneTexture,W))}re.isBatchedMesh&&(_t.setOptional(V,re,"batchingTexture"),_t.setValue(V,"batchingTexture",re._matricesTexture,W),_t.setOptional(V,re,"batchingIdTexture"),_t.setValue(V,"batchingIdTexture",re._indirectTexture,W),_t.setOptional(V,re,"batchingColorTexture"),re._colorsTexture!==null&&_t.setValue(V,"batchingColorTexture",re._colorsTexture,W));const jn=de.morphAttributes;if((jn.position!==void 0||jn.normal!==void 0||jn.color!==void 0)&&We.update(re,de,on),(Wn||qe.receiveShadow!==re.receiveShadow)&&(qe.receiveShadow=re.receiveShadow,_t.setValue(V,"receiveShadow",re.receiveShadow)),(oe.isMeshStandardMaterial||oe.isMeshLambertMaterial||oe.isMeshPhongMaterial)&&oe.envMap===null&&q.environment!==null&&(pn.envMapIntensity.value=q.environmentIntensity),pn.dfgLUT!==void 0&&(pn.dfgLUT.value=XI()),Wn&&(_t.setValue(V,"toneMappingExposure",L.toneMappingExposure),qe.needsLights&&ii(pn,Gn),_e&&oe.fog===!0&&Je.refreshFogUniforms(pn,_e),Je.refreshMaterialUniforms(pn,oe,Se,Q,U.state.transmissionRenderTarget[O.id]),nf.upload(V,Bo(qe),pn,W)),oe.isShaderMaterial&&oe.uniformsNeedUpdate===!0&&(nf.upload(V,Bo(qe),pn,W),oe.uniformsNeedUpdate=!1),oe.isSpriteMaterial&&_t.setValue(V,"center",re.center),_t.setValue(V,"modelViewMatrix",re.modelViewMatrix),_t.setValue(V,"normalMatrix",re.normalMatrix),_t.setValue(V,"modelMatrix",re.matrixWorld),oe.isShaderMaterial||oe.isRawShaderMaterial){const mn=oe.uniformsGroups;for(let Pi=0,la=mn.length;Pi<la;Pi++){const bs=mn[Pi];Qe.update(bs,on),Qe.bind(bs,on)}}return on}function ii(O,q){O.ambientLightColor.needsUpdate=q,O.lightProbe.needsUpdate=q,O.directionalLights.needsUpdate=q,O.directionalLightShadows.needsUpdate=q,O.pointLights.needsUpdate=q,O.pointLightShadows.needsUpdate=q,O.spotLights.needsUpdate=q,O.spotLightShadows.needsUpdate=q,O.rectAreaLights.needsUpdate=q,O.hemisphereLights.needsUpdate=q}function Ya(O){return O.isMeshLambertMaterial||O.isMeshToonMaterial||O.isMeshPhongMaterial||O.isMeshStandardMaterial||O.isShadowMaterial||O.isShaderMaterial&&O.lights===!0}this.getActiveCubeFace=function(){return k},this.getActiveMipmapLevel=function(){return G},this.getRenderTarget=function(){return Y},this.setRenderTargetTextures=function(O,q,de){const oe=N.get(O);oe.__autoAllocateDepthBuffer=O.resolveDepthBuffer===!1,oe.__autoAllocateDepthBuffer===!1&&(oe.__useRenderToTexture=!1),N.get(O.texture).__webglTexture=q,N.get(O.depthTexture).__webglTexture=oe.__autoAllocateDepthBuffer?void 0:de,oe.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(O,q){const de=N.get(O);de.__webglFramebuffer=q,de.__useDefaultFramebuffer=q===void 0};const Xi=V.createFramebuffer();this.setRenderTarget=function(O,q=0,de=0){Y=O,k=q,G=de;let oe=null,re=!1,_e=!1;if(O){const Fe=N.get(O);if(Fe.__useDefaultFramebuffer!==void 0){Ie.bindFramebuffer(V.FRAMEBUFFER,Fe.__webglFramebuffer),_.copy(O.viewport),F.copy(O.scissor),se=O.scissorTest,Ie.viewport(_),Ie.scissor(F),Ie.setScissorTest(se),ee=-1;return}else if(Fe.__webglFramebuffer===void 0)W.setupRenderTarget(O);else if(Fe.__hasExternalTextures)W.rebindTextures(O,N.get(O.texture).__webglTexture,N.get(O.depthTexture).__webglTexture);else if(O.depthBuffer){const we=O.depthTexture;if(Fe.__boundDepthTexture!==we){if(we!==null&&N.has(we)&&(O.width!==we.image.width||O.height!==we.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");W.setupDepthRenderbuffer(O)}}const nt=O.texture;(nt.isData3DTexture||nt.isDataArrayTexture||nt.isCompressedArrayTexture)&&(_e=!0);const ie=N.get(O).__webglFramebuffer;O.isWebGLCubeRenderTarget?(Array.isArray(ie[q])?oe=ie[q][de]:oe=ie[q],re=!0):O.samples>0&&W.useMultisampledRTT(O)===!1?oe=N.get(O).__webglMultisampledFramebuffer:Array.isArray(ie)?oe=ie[de]:oe=ie,_.copy(O.viewport),F.copy(O.scissor),se=O.scissorTest}else _.copy($).multiplyScalar(Se).floor(),F.copy(me).multiplyScalar(Se).floor(),se=Me;if(de!==0&&(oe=Xi),Ie.bindFramebuffer(V.FRAMEBUFFER,oe)&&Ie.drawBuffers(O,oe),Ie.viewport(_),Ie.scissor(F),Ie.setScissorTest(se),re){const Fe=N.get(O.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+q,Fe.__webglTexture,de)}else if(_e){const Fe=q;for(let nt=0;nt<O.textures.length;nt++){const ie=N.get(O.textures[nt]);V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0+nt,ie.__webglTexture,de,Fe)}}else if(O!==null&&de!==0){const Fe=N.get(O.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,Fe.__webglTexture,de)}ee=-1},this.readRenderTargetPixels=function(O,q,de,oe,re,_e,Ke,Fe=0){if(!(O&&O.isWebGLRenderTarget)){Vt("WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let nt=N.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&Ke!==void 0&&(nt=nt[Ke]),nt){Ie.bindFramebuffer(V.FRAMEBUFFER,nt);try{const ie=O.textures[Fe],we=ie.format,Ve=ie.type;if(O.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+Fe),!pe.textureFormatReadable(we)){Vt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!pe.textureTypeReadable(Ve)){Vt("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}q>=0&&q<=O.width-oe&&de>=0&&de<=O.height-re&&V.readPixels(q,de,oe,re,ze.convert(we),ze.convert(Ve),_e)}finally{const ie=Y!==null?N.get(Y).__webglFramebuffer:null;Ie.bindFramebuffer(V.FRAMEBUFFER,ie)}}},this.readRenderTargetPixelsAsync=async function(O,q,de,oe,re,_e,Ke,Fe=0){if(!(O&&O.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let nt=N.get(O).__webglFramebuffer;if(O.isWebGLCubeRenderTarget&&Ke!==void 0&&(nt=nt[Ke]),nt)if(q>=0&&q<=O.width-oe&&de>=0&&de<=O.height-re){Ie.bindFramebuffer(V.FRAMEBUFFER,nt);const ie=O.textures[Fe],we=ie.format,Ve=ie.type;if(O.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+Fe),!pe.textureFormatReadable(we))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!pe.textureTypeReadable(Ve))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const ke=V.createBuffer();V.bindBuffer(V.PIXEL_PACK_BUFFER,ke),V.bufferData(V.PIXEL_PACK_BUFFER,_e.byteLength,V.STREAM_READ),V.readPixels(q,de,oe,re,ze.convert(we),ze.convert(Ve),0);const st=Y!==null?N.get(Y).__webglFramebuffer:null;Ie.bindFramebuffer(V.FRAMEBUFFER,st);const Mt=V.fenceSync(V.SYNC_GPU_COMMANDS_COMPLETE,0);return V.flush(),await hT(V,Mt,4),V.bindBuffer(V.PIXEL_PACK_BUFFER,ke),V.getBufferSubData(V.PIXEL_PACK_BUFFER,0,_e),V.deleteBuffer(ke),V.deleteSync(Mt),_e}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(O,q=null,de=0){const oe=Math.pow(2,-de),re=Math.floor(O.image.width*oe),_e=Math.floor(O.image.height*oe),Ke=q!==null?q.x:0,Fe=q!==null?q.y:0;W.setTexture2D(O,0),V.copyTexSubImage2D(V.TEXTURE_2D,de,0,0,Ke,Fe,re,_e),Ie.unbindTexture()};const gi=V.createFramebuffer(),oa=V.createFramebuffer();this.copyTextureToTexture=function(O,q,de=null,oe=null,re=0,_e=0){let Ke,Fe,nt,ie,we,Ve,ke,st,Mt;const At=O.isCompressedTexture?O.mipmaps[_e]:O.image;if(de!==null)Ke=de.max.x-de.min.x,Fe=de.max.y-de.min.y,nt=de.isBox3?de.max.z-de.min.z:1,ie=de.min.x,we=de.min.y,Ve=de.isBox3?de.min.z:0;else{const pn=Math.pow(2,-re);Ke=Math.floor(At.width*pn),Fe=Math.floor(At.height*pn),O.isDataArrayTexture?nt=At.depth:O.isData3DTexture?nt=Math.floor(At.depth*pn):nt=1,ie=0,we=0,Ve=0}oe!==null?(ke=oe.x,st=oe.y,Mt=oe.z):(ke=0,st=0,Mt=0);const St=ze.convert(q.format),Kt=ze.convert(q.type);let qe;q.isData3DTexture?(W.setTexture3D(q,0),qe=V.TEXTURE_3D):q.isDataArrayTexture||q.isCompressedArrayTexture?(W.setTexture2DArray(q,0),qe=V.TEXTURE_2D_ARRAY):(W.setTexture2D(q,0),qe=V.TEXTURE_2D),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,q.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,q.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,q.unpackAlignment);const sn=V.getParameter(V.UNPACK_ROW_LENGTH),ut=V.getParameter(V.UNPACK_IMAGE_HEIGHT),on=V.getParameter(V.UNPACK_SKIP_PIXELS),Vn=V.getParameter(V.UNPACK_SKIP_ROWS),Wn=V.getParameter(V.UNPACK_SKIP_IMAGES);V.pixelStorei(V.UNPACK_ROW_LENGTH,At.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,At.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,ie),V.pixelStorei(V.UNPACK_SKIP_ROWS,we),V.pixelStorei(V.UNPACK_SKIP_IMAGES,Ve);const Gn=O.isDataArrayTexture||O.isData3DTexture,_t=q.isDataArrayTexture||q.isData3DTexture;if(O.isDepthTexture){const pn=N.get(O),jn=N.get(q),mn=N.get(pn.__renderTarget),Pi=N.get(jn.__renderTarget);Ie.bindFramebuffer(V.READ_FRAMEBUFFER,mn.__webglFramebuffer),Ie.bindFramebuffer(V.DRAW_FRAMEBUFFER,Pi.__webglFramebuffer);for(let la=0;la<nt;la++)Gn&&(V.framebufferTextureLayer(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,N.get(O).__webglTexture,re,Ve+la),V.framebufferTextureLayer(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,N.get(q).__webglTexture,_e,Mt+la)),V.blitFramebuffer(ie,we,Ke,Fe,ke,st,Ke,Fe,V.DEPTH_BUFFER_BIT,V.NEAREST);Ie.bindFramebuffer(V.READ_FRAMEBUFFER,null),Ie.bindFramebuffer(V.DRAW_FRAMEBUFFER,null)}else if(re!==0||O.isRenderTargetTexture||N.has(O)){const pn=N.get(O),jn=N.get(q);Ie.bindFramebuffer(V.READ_FRAMEBUFFER,gi),Ie.bindFramebuffer(V.DRAW_FRAMEBUFFER,oa);for(let mn=0;mn<nt;mn++)Gn?V.framebufferTextureLayer(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,pn.__webglTexture,re,Ve+mn):V.framebufferTexture2D(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,pn.__webglTexture,re),_t?V.framebufferTextureLayer(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,jn.__webglTexture,_e,Mt+mn):V.framebufferTexture2D(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,jn.__webglTexture,_e),re!==0?V.blitFramebuffer(ie,we,Ke,Fe,ke,st,Ke,Fe,V.COLOR_BUFFER_BIT,V.NEAREST):_t?V.copyTexSubImage3D(qe,_e,ke,st,Mt+mn,ie,we,Ke,Fe):V.copyTexSubImage2D(qe,_e,ke,st,ie,we,Ke,Fe);Ie.bindFramebuffer(V.READ_FRAMEBUFFER,null),Ie.bindFramebuffer(V.DRAW_FRAMEBUFFER,null)}else _t?O.isDataTexture||O.isData3DTexture?V.texSubImage3D(qe,_e,ke,st,Mt,Ke,Fe,nt,St,Kt,At.data):q.isCompressedArrayTexture?V.compressedTexSubImage3D(qe,_e,ke,st,Mt,Ke,Fe,nt,St,At.data):V.texSubImage3D(qe,_e,ke,st,Mt,Ke,Fe,nt,St,Kt,At):O.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,_e,ke,st,Ke,Fe,St,Kt,At.data):O.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,_e,ke,st,At.width,At.height,St,At.data):V.texSubImage2D(V.TEXTURE_2D,_e,ke,st,Ke,Fe,St,Kt,At);V.pixelStorei(V.UNPACK_ROW_LENGTH,sn),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,ut),V.pixelStorei(V.UNPACK_SKIP_PIXELS,on),V.pixelStorei(V.UNPACK_SKIP_ROWS,Vn),V.pixelStorei(V.UNPACK_SKIP_IMAGES,Wn),_e===0&&q.generateMipmaps&&V.generateMipmap(qe),Ie.unbindTexture()},this.initRenderTarget=function(O){N.get(O).__webglFramebuffer===void 0&&W.setupRenderTarget(O)},this.initTexture=function(O){O.isCubeTexture?W.setTextureCube(O,0):O.isData3DTexture?W.setTexture3D(O,0):O.isDataArrayTexture||O.isCompressedArrayTexture?W.setTexture2DArray(O,0):W.setTexture2D(O,0),Ie.unbindTexture()},this.resetState=function(){k=0,G=0,Y=null,Ie.reset(),Ue.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return ta}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const i=this.getContext();i.drawingBufferColorSpace=zt._getDrawingBufferColorSpace(e),i.unpackColorSpace=zt._getUnpackColorSpace()}}const WI=` 4058varying vec2 vUv; 4059void main() { 4060 vUv = uv; 4061 gl_Position = vec4(position.xy, 0.0, 1.0); 4062} 4063`,QI=` 4064precision mediump float; 4065varying vec2 vUv; 4066 4067uniform sampler2D uTexA; // current (fading out) 4068uniform sampler2D uTexB; // incoming (fading in) 4069uniform float uProgress; // 0 = full A, 1 = full B 4070uniform float uTime; 4071uniform vec2 uCenter; // pulse origin (normalised UV, Y-flipped) 4072uniform vec2 uMouse; // mouse position (normalised UV, Y-flipped) 4073uniform float uMouseStr; // 0â1, decays after mouse movement 4074uniform vec2 uResolution; // viewport size in pixels 4075uniform vec2 uTexASize; // texA natural size in pixels 4076uniform vec2 uTexBSize; // texB natural size in pixels 4077 4078// object-fit: cover â returns UV that fills the viewport without distortion 4079vec2 coverUV(vec2 uv, vec2 texSize, vec2 vpSize) { 4080 float texAspect = texSize.x / texSize.y; 4081 float vpAspect = vpSize.x / vpSize.y; 4082 vec2 scale = vpAspect > texAspect 4083 ? vec2(1.0, (texAspect / vpAspect))
4084 : vec2((vpAspect / texAspect), 1.0); 4085 return (uv - 0.5) * scale + 0.5; 4086} 4087 4088void main() { 4089 vec2 toCenter = vUv - uCenter; 4090 float dist = length(toCenter); 4091 float angle = atan(toCenter.y, toCenter.x); 4092 4093 // ââ Pulse transition ââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4094 float peak = sin(uProgress * 3.14159265); 4095 4096 // Radial ripple centred on the wave front 4097 float waveFront = uProgress * 1.5; 4098 float rippleZone = exp(-pow((dist - waveFront) / 0.15, 2.0)) * peak; 4099 4100 // UV warp (water-lens) in the ripple zone 4101 vec2 radial = normalize(toCenter + vec2(0.0001)); 4102 vec2 uv = vUv + radial * rippleZone * 0.045; 4103 4104 // Wobbly edge on the expanding circle 4105 float wobble = sin(angle * 6.0 + uTime * 4.0) * 0.04 * peak 4106 + sin(angle * 11.0 - uTime * 2.5) * 0.02 * peak; 4107 float radius = uProgress * 1.44; 4108 float softEdge = 0.06 + peak * 0.05; 4109 float mask = 1.0 - smoothstep(radius - softEdge + wobble, 4110 radius + softEdge + wobble, dist); 4111 4112 // ââ Mouse ripple ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 4113 float mDist = distance(vUv, uMouse); 4114 float mRipple = sin(mDist * 22.0 - uTime * 5.0) 4115 * exp(-mDist * 9.0) 4116 * uMouseStr; 4117 vec2 mDir = normalize(vUv - uMouse + vec2(0.0001)); 4118 uv += mDir * mRipple * 0.008; 4119 4120 // ââ Output (aspect-corrected sampling) ââââââââââââââââââââââââââââââââââââ 4121 vec4 colorA = texture2D(uTexA, coverUV(uv, uTexASize, uResolution)); 4122 vec4 colorB = texture2D(uTexB, coverUV(uv, uTexBSize, uResolution)); 4123 4124 float ring = rippleZone * 0.18; // faint bright ring at wave tip 4125 gl_FragColor = mix(colorA, colorB, mask) + vec4(ring, ring, ring, 0.0); 4126} 4127`;function qI(){const a=new VS(new Uint8Array([6,6,16,255]),1,1,Ii);return a.needsUpdate=!0,a}function Vm({activeSrc:a,viewportWidth:e,viewportHeight:i}){const r=ne.useRef(null),o=ne.useRef({viewportWidth:e,viewportHeight:i});o.current={viewportWidth:e,viewportHeight:i};const c=ne.useRef(null);ne.useEffect(()=>{const f=r.current;if(!f)return;const h=new ZI({antialias:!1});h.setPixelRatio(Math.min(window.devicePixelRatio,1.5)),h.setSize(f.clientWidth||window.innerWidth,f.clientHeight||window.innerHeight),f.appendChild(h.domElement);const p=qI(),x=1.6,g=new ji({vertexShader:WI,fragmentShader:QI,uniforms:{uTexA:{value:p},uTexB:{value:p},uProgress:{value:1},uTime:{value:0},uCenter:{value:new kt(.5,.5)},uMouse:{value:new kt(-1,-1)},uMouseStr:{value:0},uResolution:{value:new kt(f.clientWidth||window.innerWidth,f.clientHeight||window.innerHeight)},uTexASize:{value:new kt(1,1)},uTexBSize:{value:new kt(1,1)}}}),v=new IT,y=new Fm(-1,1,1,-1,0,1),M=new lc(2,2);v.add(new sa(M,g));const T=new $T;let E=0;const b=c.current={renderer:h,material:g,clock:T,raf:0,darkTex:p,texA:p,texB:p,texASize:new kt(1,1),transitionStart:-x,duration:x,busy:!1,currentSrc:null,pendingSrc:null,mouseStr:0,loader:new qT};function R(){b.raf=requestAnimationFrame(R);const I=T.getElapsedTime(),U=I-E;if(E=I,g.uniforms.uTime.value=I,b.mouseStr=Math.max(0,b.mouseStr-U*1.2),g.uniforms.uMouseStr.value=b.mouseStr,b.busy){const B=Math.min((I-b.transitionStart)/b.duration,1);if(g.uniforms.uProgress.value=B,B>=1&&(b.texA!==b.darkTex&&b.texA.dispose(),b.texA=b.texB,b.texASize=g.uniforms.uTexBSize.value.clone(),g.uniforms.uTexASize.value.copy(b.texASize),b.busy=!1,b.pendingSrc)){const D=b.pendingSrc;b.pendingSrc=null,u(D)}}h.render(v,y)}R();const C=new ResizeObserver(()=>{f&&(h.setSize(f.clientWidth,f.clientHeight),g.uniforms.uResolution.value.set(f.clientWidth,f.clientHeight))});return C.observe(f),()=>{cancelAnimationFrame(b.raf),C.disconnect(),g.dispose(),M.dispose(),p.dispose(),h.dispose(),f.contains(h.domElement)&&f.removeChild(h.domElement),c.current=null}},[]);function u(f){const h=c.current;if(!h)return;const p=h.currentSrc===null;h.loader.load(f,x=>{const g=c.current;if(!g){x.dispose();return}if(x.minFilter=Bn,x.generateMipmaps=!1,p){g.texA!==g.darkTex&&g.texA.dispose(),g.texA=x,g.texB=x,g.texASize.set(x.image.width,x.image.height),g.material.uniforms.uTexA.value=x,g.material.uniforms.uTexB.value=x,g.material.uniforms.uTexASize.value.copy(g.texASize),g.material.uniforms.uTexBSize.value.set(x.image.width,x.image.height),g.material.uniforms.uProgress.value=1,g.currentSrc=f,g.busy=!1;return}g.texB=x,g.material.uniforms.uTexA.value=g.texA,g.material.uniforms.uTexB.value=x,g.material.uniforms.uTexASize.value.copy(g.texASize),g.material.uniforms.uTexBSize.value.set(x.image.width,x.image.height),g.material.uniforms.uCenter.value.set(.5,.5),g.material.uniforms.uProgress.value=0,g.transitionStart=g.clock.getElapsedTime(),g.currentSrc=f,g.busy=!0}
4127)}return ne.useEffect(()=>{const f=a,h=c.current;!f||!h||f===h.currentSrc||(h.busy?h.pendingSrc=f:u(f))},[a]),S.jsxs("div",{className:"pointer-events-none absolute inset-0 z-0 overflow-hidden",children:[S.jsx("div",{ref:r,className:"absolute inset-0",style:{filter:"blur(16px)",transform:"scale(1.12)",isolation:"isolate"}}),S.jsx("div",{className:"pointer-events-none absolute inset-0 bg-black/30"}),S.jsx("div",{className:"pointer-events-none absolute inset-0 opacity-[0.35]",style:{background:"radial-gradient(70% 70% at 50% 55%, rgba(0,0,0,0) 0%, rgba(0,0,0,0) 70%, rgba(0,0,0,0.7) 100%)"}})]})}const KI=98,ql=KI/2,eE=5,Ci=ql+eE,Vi=360,JI=14,mp=200,$I=2*Math.PI*Ci,tE=70,hf=tE/2,eD=-12,is=hf+eE,Mo=200,tD=40,Gm="#f507ed",jl=192,Bl=192,nD=jl/2,gp=360,iD=120,aD=16,cs=45,as=cs/2,Ao=3,nE=6,Yl=180,La=cs+2*Ao,Xl=La/2,Zl=cs+nE+Yl+2*Ao;function jm({year:a,label:e,accentColor:i,showFull:r,className:o="",width:c=Vi}){return S.jsxs("div",{className:`flex flex-col gap-0.5 ${o}`,style:{width:c},children:[S.jsx("span",{className:"font-display font-medium text-lg text-white",children:a}),S.jsx("span",{className:"font-display font-bold uppercase leading-[1.1] text-[28px] transition-colors duration-300",style:{color:r?i:"white"},children:e})]})}function rD(a,e,i){if(a.length===0)return"";const r=a.map(({cx:f,cy:h})=>{const p=i-h,x=Math.sqrt(Math.max(0,e*e-p*p)),g=h<i;return{leftX:f-x,rightX:f+x,rightAngle:Math.atan2(p,x),leftAngle:Math.atan2(p,-x),sweep:g?1:0}}),o=f=>f.toFixed(2),c=[`M ${o(r[0].leftX)} ${o(i)}`],u=e*.6;for(let f=0;f<r.length;f++){const h=r[f];if(c.push(`A ${e} ${e} 0 1 ${h.sweep} ${o(h.rightX)} ${o(i)}`),f===r.length-1)break;const p=r[f+1],x=h.sweep===1?1:-1,g=p.sweep===1?1:-1,v=x*-Math.sin(h.rightAngle),y=x*Math.cos(h.rightAngle),M=g*-Math.sin(p.leftAngle),T=g*Math.cos(p.leftAngle),E=h.rightX+v*u,b=i+y*u,R=p.leftX-M*u,C=i-T*u;c.push(`C ${o(E)} ${o(b)} ${o(R)} ${o(C)} ${o(p.leftX)} ${o(i)}`)}return c.join(" ")}function iE(a,e,i){const r=tE+eD,o=(i-1)*r,c=hf-8;return Array.from({length:i},(u,f)=>({cx:a-o/2+f*r,cy:e+(f%2===0?-c:c)}))}function sD(a,e,i,r=$I){const o=a?r:.75*r,c=a?0:.25*r;return{fill:"none",stroke:e,strokeWidth:i,strokeLinecap:"round",strokeDasharray:`${o} ${c}`,strokeDashoffset:o,style:{transition:"stroke-dasharray 0.4s ease, stroke-dashoffset 0.4s ease"}}}function oD({cx:a,cy:e,isActive:i,accentColor:r,nodeType:o,onActivate:c}){return S.jsxs("g",{onClick:c,className:"cursor-pointer","data-node-type":o,children:[S.jsx("circle",{cx:a,cy:e,r:22,fill:"transparent"}),S.jsx("circle",{cx:a,cy:e,r:i?10:6,fill:i?r:"var(--color-surface-dark,#060610)",stroke:r,strokeWidth:2.5,style:{transition:"r .25s, fill .25s"}})]})}function aE({computedNode:a,media:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c,nodeType:u}){const{hovered:f,hoverProps:h}=Cr(),{canvasX:p,canvasY:x,definition:g}=a,v=i||f,y=e?.src,M=v?Ci:ql,E=x-Ci-13-Mo,b=p-Vi/2,R=`single-img-clip-${a.nodeId}`,C=!!g.isLogo||!!e?.isLogo;return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:S.jsx("clipPath",{id:R,children:S.jsx("circle",{cx:p,cy:x,r:M,style:{transition:"r 0.4s ease-out"}})})}),S.jsxs("g",{onClick:c,className:"cursor-pointer","data-node-type":u,...h,children:[S.jsx("foreignObject",{x:b,y:E,width:Vi,height:Mo,onClick:c,...h,children:S.jsx("div",{className:"flex flex-col justify-end",style:{width:Vi,height:Mo},children:S.jsx(jm,{year:g.year,label:g.label,accentColor:r,showFull:v,className:"text-center",width:Vi})})}),S.jsx("circle",{cx:p,cy:x,r:M,fill:y?"#ffffff":Gm,style:{transition:"r 0.4s ease-out"}}),y&&e&&(()=>{const I=C?M*Tr:M;return S.jsx("image",{href:y,x:p-I,y:x-I,width:I*2,height:I*2,clipPath:`url(#${R})`,preserveAspectRatio:C?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"})})(),S.jsx("circle",{cx:p,cy:x,r:Ci,fill:"none",stroke:r,strokeWidth:o})]})]})}function lD({computedNode:a,isActive:e,accentColor:i,lineThickness:r,onActivate:o}){return S.jsx(aE,{computedNode:a,media:Gi(a.definition),isActive:e,accentColor:i,lineThickness:r,onActivate:o,nodeType:"milestone"})}function cD({computedNode:a,isActive:e,accentColor:i,lineThickness:r,onActivate:o}){const{hovered:c,hoverProps:u}=Cr(),{canvasX:f,canvasY:h,definition:p}=a,x=e||c,g=Gi(p),v=g?.src,y=f-ql-JI-Vi,M=h-mp/2,T=`start-img-clip-${a.nodeId}`;return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:S.jsx("clipPath",{id:T,children:S.jsx("circle",{cx:f,cy:h,r:x?Ci:ql,style:{transition:"r 0.4s ease-out"}})})}),S.jsxs("g",{onClick:o,className:"cursor-pointer","data-node-type":"start",...u,children:[S.jsx("circle",{cx:f,cy:h,r:x?Ci:ql,fill:v?"#ffffff"
4127:Gm,style:{transition:"r 0.4s ease-out"}}),v&&g&&(()=>{const E=!!p.isLogo||!!g.isLogo,b=E?Ci*Tr:Ci;return S.jsx("image",{href:v,x:f-b,y:h-b,width:b*2,height:b*2,clipPath:`url(#${T})`,preserveAspectRatio:E?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"})})(),S.jsx("circle",{cx:f,cy:h,r:Ci,...sD(x,i,r)}),S.jsx("foreignObject",{x:y,y:M,width:Vi,height:mp,onClick:o,...u,children:S.jsx("div",{className:"flex items-center",style:{height:mp},children:S.jsx(jm,{year:p.year,label:p.label,accentColor:i,showFull:x,className:"text-right"})})})]})]})}function uD({computedNode:a,isActive:e,accentColor:i,lineThickness:r,onActivate:o}){const{hovered:c,hoverProps:u}=Cr(),{canvasX:f,canvasY:h,definition:p}=a,x=e||c,g=Gi(p),v=g?.src;if(!v)return S.jsx(oD,{cx:f,cy:h,isActive:e,accentColor:i,nodeType:"project",onActivate:o});const y=f-as-Ao,M=h-La/2,T=f+as+nE,E=`proj-clip-${a.nodeId}`,b=`proj-pill-clip-${a.nodeId}`;return S.jsxs(S.Fragment,{children:[S.jsxs("defs",{children:[S.jsx("clipPath",{id:E,children:S.jsx("circle",{cx:f,cy:h,r:as})}),S.jsx("clipPath",{id:b,children:S.jsx("rect",{x:y,y:M,width:Zl,height:La,rx:Xl})})]}),S.jsxs("g",{onClick:o,className:"cursor-pointer","data-node-type":"project",transform:`rotate(-35, ${f}, ${h})`,...u,children:[S.jsx("rect",{x:y,y:M,width:x?Zl:La,height:La,fill:i,clipPath:`url(#${b})`,rx:Xl,style:x?{opacity:1,transition:"opacity 0.1s ease, width 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0.16s"}:{opacity:0,transition:"width 0.3s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.1s ease 0.3s"}}),S.jsx("rect",{x:y,y:M,width:Zl,height:La,rx:Xl,fill:"none",stroke:i,strokeWidth:r}),S.jsx("rect",{x:y,y:M,width:Zl,height:La,rx:Xl,fill:"transparent"}),S.jsx("circle",{cx:f,cy:h,r:as,fill:"#ffffff"}),(()=>{const R=!!p.isLogo||!!g?.isLogo,C=R?as*Tr:as;return S.jsx("image",{href:v,x:f-C,y:h-C,width:C*2,height:C*2,clipPath:`url(#${E})`,preserveAspectRatio:R?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"})})(),S.jsx("foreignObject",{x:T,y:M+Ao,width:Yl,height:cs,className:"pointer-events-none",children:S.jsxs("div",{className:"flex flex-col justify-center min-w-0 overflow-hidden pr-3 text-white",style:{width:Yl,height:cs},children:[S.jsx("span",{className:"block font-display font-medium text-[14px] whitespace-nowrap overflow-hidden text-ellipsis leading-[1.2]",children:p.year}),S.jsx("span",{className:"block font-display font-bold text-[14px] uppercase whitespace-nowrap overflow-hidden text-ellipsis leading-[1.2]",children:p.label})]})}),S.jsx("foreignObject",{x:T,y:M+Ao,width:Yl,height:cs,className:"pointer-events-none",children:S.jsxs("div",{className:"flex flex-col justify-center min-w-0 overflow-hidden pr-3 text-black",style:{width:Yl,height:cs,clipPath:x?"inset(0 0% 0 0)":"inset(0 100% 0 0)",transition:x?"clip-path 0.3s cubic-bezier(0.4, 0, 0.2, 1) 0.16s":"clip-path 0.3s cubic-bezier(0.4, 0, 0.2, 1)"},children:[S.jsx("span",{className:"block font-display font-medium text-[14px] whitespace-nowrap overflow-hidden text-ellipsis leading-[1.2]",children:p.year}),S.jsx("span",{className:"block font-display font-bold text-[14px] uppercase whitespace-nowrap overflow-hidden text-ellipsis leading-[1.2]",children:p.label})]})})]})]})}function fD({computedNode:a,computedNodes:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c}){const{hovered:u,hoverProps:f}=Cr(),{canvasX:h,canvasY:p,definition:x}=a,g=i||u,v=x,y=v.mergeImages??[];if(y.length===1)return S.jsx(aE,{computedNode:a,media:y[0],isActive:i,accentColor:r,lineThickness:o,onActivate:c,nodeType:"merge"});const M=v.fromBranches.map(D=>{const A=e.filter(Y=>"branch"in Y.definition&&Y.definition.branch===D&&Y.definition.year<=x.year),L=A.find(Y=>Y.definition.type==="start"),X=[...A].sort((Y,ee)=>ee.definition.year-Y.definition.year).find(Y=>Cn(Y.definition)),k=L?Gi(L.definition):void 0,G=X?Gi(X.definition):void 0;return k??G??null}),T=y.length>=2?y.length:Math.max(2,v.fromBranches.length),E=iE(h,p,T),b=y.length>=2?y:[...M].reverse(),R=is,C=2*Math.PI*R,I=rD(E,R,p),U=p-is-tD-Mo,B=h-Vi/2;return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:E.map((D,A)=>S.jsx("clipPath",{id:`merge-clip-${A}-${a.nodeId}`,children:S.jsx("circle",{cx:D.cx,cy:D.cy,r:g?is:hf,style:{transition:"r 0.4s ease-out"}})},A))}),S.jsxs("g",{onClick:c,className:"cursor-pointer","data-node-type":"merge",...f,children:[S.jsx("foreignObject",{x:B,y:U,width:Vi,height:Mo,onClick:c,...f,children:S.jsx("div",{className:"flex flex-col justify-end",style:{width:Vi,height:Mo},children:S.jsx(jm,{year:x.year,label:x.label,accentColor:r,showFull:g,className:"text-center",width:Vi})})}),E.map((D,A)=>
4127S.jsx("circle",{cx:D.cx,cy:D.cy,r:g?is:hf,fill:b[A]?"#ffffff":Gm,style:{transition:"r 0.4s ease-out"}},`bg-${A}`)),E.map((D,A)=>{const L=b[A];if(!L)return null;const X=!!L.isLogo,k=X?is*Tr:is;return S.jsx("image",{href:L.src,x:D.cx-k,y:D.cy-k,width:k*2,height:k*2,clipPath:`url(#merge-clip-${A}-${a.nodeId})`,preserveAspectRatio:X?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"},`img-${A}`)}),S.jsx("path",{d:I,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round"}),E.map((D,A)=>{const L=p-D.cy,X=Math.sqrt(Math.max(0,R*R-L*L)),k=D.cy<p,G=ae=>(ae%(2*Math.PI)+2*Math.PI)%(2*Math.PI),Y=G(Math.atan2(L,X)),ee=G(Math.atan2(L,-X)),Z=k?Y:ee,_=k?ee:Y,F=(_-Z+2*Math.PI)%(2*Math.PI)/(2*Math.PI)*C,se=-(Z/(2*Math.PI))*C,fe=-(_/(2*Math.PI))*C;return S.jsx("circle",{cx:D.cx,cy:D.cy,r:R,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"butt",strokeDasharray:g?`${F} ${C-F}`:`0 ${C}`,strokeDashoffset:g?se:fe,style:{transition:"stroke-dasharray 0.4s ease, stroke-dashoffset 0.4s ease"}},`arc-${A}`)})]})]})}function dD({computedNode:a,isActive:e,accentColor:i,onActivate:r}){const{hovered:o,hoverProps:c}=Cr(),{canvasX:u,canvasY:f,definition:h}=a,p=e||o,x=u-gp/2,g=f+Bl/2+aD;return S.jsxs("g",{onClick:r,className:"cursor-pointer","data-node-type":"founding",...c,children:[S.jsx("rect",{x:u-jl/2,y:f-Bl/2,width:jl,height:Bl,fill:"transparent"}),S.jsx("image",{href:gs,x:u-jl/2,y:f-Bl/2,width:jl,height:Bl,preserveAspectRatio:"xMidYMid meet",className:"pointer-events-none"}),S.jsx("foreignObject",{x,y:g,width:gp,height:iD,onClick:r,...c,children:S.jsxs("div",{className:"flex flex-col items-center gap-0.5",style:{width:gp},children:[S.jsx("span",{className:"font-display font-medium text-lg text-white",children:h.year}),S.jsx("span",{className:"font-display font-bold uppercase leading-[1.1] text-[28px] text-center transition-colors duration-300",style:{color:p?i:"white"},children:h.label})]})})]})}function hD(a,e){const{canvasX:i,canvasY:r,definition:o}=a;if(o.type==="founding"){const c=nD+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(o.type==="merge"){const c=o.mergeImages??[];if(c.length===1){const h=Ci+e/2;return[{type:"circle",cx:i,cy:r,r:h}]}const u=is+e/2,f=c.length>=2?c.length:Math.max(2,o.fromBranches.length);return iE(i,r,f).map(h=>({type:"circle",cx:h.cx,cy:h.cy,r:u}))}if(o.type==="milestone"){const c=Ci+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(o.type==="project"&&Cn(o)){const c=e/2;return[{type:"rect",x:i-as-Ao-c,y:r-La/2-c,width:Zl+e,height:La+e,rx:Xl+c,transform:`rotate(-35, ${i}, ${r})`}]}if(o.type==="start"||Cn(o)){const c=Ci+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}return[]}function pD(a){switch(a.computedNode.definition.type){case"start":return S.jsx(cD,{...a});case"merge":return S.jsx(fD,{...a});case"project":return S.jsx(uD,{...a});case"founding":return S.jsx(dD,{...a});case"milestone":return S.jsx(lD,{...a})}}const mD=-44,gD=-26,vD=30,xD=48;function yD({computedNode:a,centerY:e,isActive:i,accentColor:r}){if(Cn(a.definition)||a.definition.type==="merge"||a.definition.type==="start"||a.definition.type==="milestone")return null;const o=a.canvasY<=e,c=a.canvasY+(o?mD:vD),u=a.canvasY+(o?gD:xD);return S.jsxs("g",{opacity:i?1:.35,className:"transition-opacity duration-300 pointer-events-none",children:[S.jsx("text",{x:a.canvasX,y:c,textAnchor:"middle",fill:r,fontSize:11,fontWeight:700,fontFamily:"'Source Sans Pro', sans-serif",letterSpacing:"0.13em",children:a.definition.year}),S.jsx("text",{x:a.canvasX,y:u,textAnchor:"middle",fill:"white",fontSize:13,fontWeight:600,fontFamily:"'Source Sans Pro', sans-serif",letterSpacing:"0.05em",children:a.definition.label})]})}const bD=550,rb=380,SD="translateX(calc(-100% - 100vw))";function ED({node:a,onClose:e,topOffset:i=84}){const r=Rr(),[o,c]=ne.useState(a),[u,f]=ne.useState(!1);ne.useEffect(()=>{if(a){c(a);const T=requestAnimationFrame(()=>{requestAnimationFrame(()=>f(!0))});return()=>cancelAnimationFrame(T)}f(!1);const M=setTimeout(()=>c(null),rb+150);return()=>clearTimeout(M)},[a]);function h(M){M.target===M.currentTarget&&M.propertyName==="transform"&&(u||c(null))}if(ne.useEffect(()=>{if(!a)return;function M(T){T.key==="Escape"&&e()}return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[a,e]),!o)return null;const p=o.detail,x=p?.image?.[0]??o.cardImage?.[0],g=x?.properties?.description||x?.properties?.title||x?.properties?.alternative||"",v=p?.headline??o.title??"",y=o.year>0?String(o.year):p?.eyebrow;return S.jsx("div",{className:"pointer-events-none absolute left-0 right-0 z-[48] flex items-center",style:{to
4127p:i,bottom:"80px"},onClick:M=>M.stopPropagation(),children:S.jsx("div",{className:"container-content relative",style:{height:"min(838px, 100%)"},children:S.jsxs("div",{className:"pointer-events-auto absolute inset-0 grid grid-cols-2 overflow-hidden bg-white",style:{transform:u?"translateX(0)":SD,transition:`transform ${u?bD:rb}ms cubic-bezier(0.4, 0, 0.2, 1)`},onTransitionEnd:h,children:[S.jsxs("div",{className:"flex flex-col justify-start gap-6 overflow-y-auto overscroll-contain pl-16 pr-8 pt-[86px] pb-16",children:[S.jsxs("div",{className:"flex flex-col gap-2",children:[y&&S.jsxs("div",{className:"flex w-fit flex-col gap-3 pb-4",children:[S.jsx("span",{className:"block h-0.5 w-[80%] bg-accent"}),S.jsx("span",{className:"font-display text-[14px] font-bold uppercase leading-[1.2] tracking-[0.04em] text-[#1c1b1b]",children:y})]}),v&&S.jsx("h2",{className:"m-0 font-display text-[48px] font-normal leading-[1.4] text-accent",style:{hyphens:"manual"},children:nn(v)})]}),p?.body&&S.jsx("div",{className:"info-pane-rte m-0 font-display text-[24px] font-normal leading-[1.48] text-[#1c1b1b] [&_a]:underline [&_a:hover]:opacity-80 [&_p]:m-0 [&_p+p]:mt-4",style:{hyphens:"manual"},dangerouslySetInnerHTML:{__html:p.body}}),p?.action?.href&&S.jsxs("a",{href:p.action.href,target:p.action.target??void 0,rel:p.action.target==="_blank"?"noopener noreferrer":void 0,className:`inline-flex w-fit cursor-pointer items-center gap-2 bg-transparent px-6 py-3 font-display text-[16px] font-bold uppercase tracking-[-0.25px] text-[#1c1b1b] transition-colors ${r?"":"hover:bg-[#1c1b1b] hover:text-white"}`,style:{border:"2px solid #1c1b1b"},children:[S.jsx("span",{children:p.action.linkText??p.action.title??TYPO3.lang["20years.label.view.story"]}),S.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M5 12h14M13 6l6 6-6 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"})})]})]}),S.jsxs("div",{className:"relative overflow-hidden",children:[x&&S.jsx("img",{src:x.publicUrl,alt:x.properties?.alternative??"",className:"absolute inset-0 h-full w-full object-cover"}),g&&S.jsx("div",{className:"absolute bottom-0 left-0 right-0 flex items-end bg-black/20 px-3 py-2 backdrop-blur-sm",children:S.jsx("p",{className:"font-display text-[14px] font-normal leading-[1.48] text-white",children:g})})]}),S.jsx("button",{type:"button",onClick:e,"aria-label":TYPO3.lang["20years.aria.close"],className:`absolute flex h-11 w-11 cursor-pointer items-center justify-center bg-accent transition-colors ${r?"":"hover:bg-accent-hover"}`,style:{top:16,right:16},children:S.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M6 6l12 12M18 6L6 18",stroke:"#1c1b1b",strokeWidth:"2",strokeLinecap:"square"})})})]})})})}const rE=31,yf=58,MD=yf,Wu=9,Ba=58,sE=3,us=3,AD=Ba-2*(sE+us),sb=Ba/2,ob=Ba+8,wD=8,TD=8,RD=yf-12,CD=3,ID=8,Ul="250ms cubic-bezier(0.32, 0, 0.15, 1)";function DD(a,e){const i=[];for(let r=0;r<a.length-1;r++){const o=a[r]+e,c=a[r+1]-e;c>o&&i.push({left:o,width:c-o})}return i}function cc(a){const e=a.trim().match(/^#?([0-9a-f]{6}|[0-9a-f]{3})$/i);if(!e)return"#1c1b1b";let i=e[1];i.length===3&&(i=i.split("").map(f=>f+f).join(""));const[r,o,c]=[0,2,4].map(f=>{const h=Number.parseInt(i.slice(f,f+2),16)/255;return h<=.04045?h/12.92:((h+.055)/1.055)**2.4});return .2126*r+.7152*o+.0722*c>.179?"#1c1b1b":"#ffffff"}function ND({storyline:a,yearToCanvasX:e,state:i,onHoverChange:r,onActivate:o,onNodeClick:c,onLastNodeXChange:u,paneActive:f=!0}){const{title:h,color:p,nodes:x}=a;if(x.length===0)return null;const g=[...x].sort((ye,Ce)=>ye.year-Ce.year),v=g.slice(1),y=ne.useRef(null),[M,T]=ne.useState(0),E=ne.useRef([]);E.current.length=g.length;const b=ne.useCallback(ye=>Ce=>{E.current[ye]=Ce},[]),[R,C]=ne.useState(null),I=[];for(let ye=0;ye<g.length;ye++){const Ce=e(g[ye].year);I.push(ye===0?Ce:Math.max(Ce,I[ye-1]+ob))}const U=R&&R.length===g.length?R:I,B=U.slice(1),D=U[0],A=U[U.length-1];ne.useEffect(()=>{u?.(a.id,A)},[u,a.id,A]),ne.useEffect(()=>{const ye=[...a.nodes].sort((me,Me)=>
4127me.year-Me.year);function Ce(){const me=ye.map(Te=>e(Te.year)),Me=[];for(let Te=0;Te<me.length;Te++){if(Te===0){Me.push(me[0]);continue}const Ze=Me[Te-1],yt=E.current[Te-1]?.offsetWidth??Ba,ft=Ze-Ba/2+yt+wD+Ba/2,je=Ze+ob;Me.push(Math.max(me[Te],ft,je))}C(Te=>Te&&Te.length===Me.length&&Te.every((Ze,tt)=>Ze===Me[tt])?Te:Me)}Ce();const $=new ResizeObserver(Ce);for(const me of E.current)me&&$.observe(me);return()=>$.disconnect()},[a.nodes,e]);const L=i==="active",X=L||i==="focused",k=L?ID:i==="focused"?CD:0,G=L?yf:rE,Y=D-Ba/2-TD,ee=ne.useRef(null),[Z,_]=ne.useState(null);ne.useEffect(()=>{if(!L||!ee.current)return;const ye=ee.current,Ce=()=>{let me=0;for(const Me of Array.from(ye.children)){if(Me===y.current)continue;const Te=Me,Ze=Te.offsetLeft+Te.offsetWidth;Ze>me&&(me=Ze)}_(me),T(y.current?.offsetWidth??0)};Ce();const $=new ResizeObserver(Ce);for(const me of Array.from(ye.children))$.observe(me);return()=>$.disconnect()},[L,a.nodes,D,A]);const F=G+k*2,se=(L&&M>0?Y-M:D)-k,ae=(L&&Z!==null?Z+k:A+F/2)-se;function H(ye){ye.stopPropagation(),L||o()}const Q=Xm(a),Se=a.detail?.image?.[0];return S.jsxs("div",{className:"relative",style:{height:MD},children:[S.jsx("div",{className:`${f?"pointer-events-auto":"pointer-events-none"} absolute rounded-full`,style:{left:se,width:ae,top:"50%",height:G+k*2,transform:"translateY(-50%)",background:X?"rgba(255,255,255,0.10)":"transparent",border:`1px solid ${X?"rgba(255,255,255,0.30)":"transparent"}`,cursor:L?"default":"pointer",transition:`left ${Ul}, width ${Ul}, height ${Ul}, background-color ${Ul}, border-color ${Ul}`},onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),onClick:H}),S.jsx("div",{className:"pointer-events-none absolute inset-0",style:{opacity:L?0:1,transition:`opacity 200ms ${L?"ease-out":"ease-in 100ms"}`},children:S.jsx(LD,{restNodes:v,restXs:B,firstX:D,lastX:A,title:h,color:p})}),S.jsx("div",{ref:ee,className:"pointer-events-none absolute inset-0",style:{opacity:L?1:0,transition:`opacity 200ms ${L?"ease-in 100ms":"ease-out"}`},children:S.jsx(PD,{nodes:g,nodeXs:U,titleRight:Y,title:h,color:p,branchImage:Se,branchHasDetail:Q,onNodeClick:c,onBranchClick:()=>c(Zm(a)),interactive:L&&f,titlePillRef:y,setNodePillRef:b})})]})}function LD({restNodes:a,restXs:e,firstX:i,lastX:r,title:o,color:c}){return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:"absolute",style:{left:i,width:r-i+Wu/2,top:"50%",height:1,background:c,transform:"translateY(-50%)"}}),a.map((u,f)=>{const h=e[f];return S.jsx("span",{className:"absolute rounded-full",style:{left:h-Wu/2,top:"50%",width:Wu,height:Wu,background:c,transform:"translateY(-50%)"}},u.id)}),S.jsx("div",{className:"absolute flex items-center justify-center rounded-full px-4",style:{left:i,top:"50%",height:rE,background:c,color:cc(c),whiteSpace:"nowrap",transform:"translateY(-50%)"},children:S.jsx("span",{className:"font-display text-[14px] font-bold leading-[1.48]",children:o})})]})}function PD({nodes:a,nodeXs:e,titleRight:i,title:r,color:o,branchImage:c,branchHasDetail:u,onNodeClick:f,onBranchClick:h,interactive:p,titlePillRef:x,setNodePillRef:g}){const{hovered:v,pillProps:y}=oE(p,u,h),M=DD(e,sb),T=e[0]-sb;return S.jsxs(S.Fragment,{children:[T>i&&S.jsx("div",{className:"absolute rounded-full",style:{left:i,width:T-i,top:"50%",height:3,background:o,transform:"translateY(-50%)"}}),M.map((E,b)=>S.jsx("div",{className:"absolute rounded-full",style:{left:E.left,width:E.width,top:"50%",height:3,background:o,transform:"translateY(-50%)"}},b)),S.jsxs("div",{ref:x,className:"absolute flex items-center gap-2 rounded-full",style:{left:i,top:0,height:yf,paddingTop:us,paddingBottom:us,paddingLeft:21,paddingRight:u?us:21,background:"rgba(0,0,0,0.30)",border:`3px solid ${o}`,color:"#ffffff",whiteSpace:"nowrap",transform:"translateX(-100%)",...y.style},onClick:y.onClick,onMouseEnter:y.onMouseEnter,onMouseLeave:y.onMouseLeave,children:[S.jsx("span",{className:"font-display text-[18px] font-bold leading-[1.48]",children:r}),u&&S.jsx(lE,{image:c,size:RD,color:o,showBadge:!0,interactive:p,hovered:v,entryAnimation:!0})]}),a.map((E,b)=>S.jsx(OD,{node:E,x:e[b],color:o,interactive:p,onClick:()=>f(E),pillRef:g(b)},E.id))]})}function Ym(a){const e=a.detail;return!!((e?.headline??a.title)||e&&(e.eyebrow||e.body||e.action?.href||(e.image?.length??0)>0))}function Xm(a){const e=a.detail;return!!(e&&(e.eyebrow||e.headline||e.body||e.action?.href||(e.image?.length??0)>0))}
4127function Zm(a){return{id:a.id,year:0,title:a.title,detail:a.detail}}function oE(a,e,i){const{hovered:r,hoverProps:o}=Cr(),c=a&&e;return{hovered:r,pillProps:{onClick:u=>{c&&(u.stopPropagation(),i())},...c?o:{},style:{cursor:c?"pointer":"default",pointerEvents:a?"auto":"none"}}}}function lE({image:a,size:e,color:i,showBadge:r,interactive:o,hovered:c,entryAnimation:u,badgeCircleColor:f,badgePlusColor:h}){return S.jsxs("div",{className:"relative shrink-0 flex justify-center items-center",style:{width:e,height:e,...u&&{transform:o?"scale(1)":"scale(0)",transition:`transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1) ${o?"120ms":"0ms"}`}},children:[S.jsx("div",{className:"h-full w-full overflow-hidden rounded-full",style:{background:i},children:a&&S.jsx("img",{src:a.publicUrl,alt:a.properties?.alternative??"",className:"h-full w-full object-cover"})}),r&&S.jsx(BD,{visible:o,hovered:c,color:i,circleColor:f,plusColor:h})]})}function OD({node:a,x:e,color:i,interactive:r,onClick:o,pillRef:c}){const u=Ym(a),{hovered:f,pillProps:h}=oE(r,u,o);return S.jsxs("div",{ref:c,className:"absolute flex items-center rounded-full",style:{left:e-Ba/2,top:0,height:Ba,background:i,border:`${sE}px solid ${i}`,paddingTop:us,paddingBottom:us,paddingLeft:21,paddingRight:us,gap:13,whiteSpace:"nowrap",...h.style},onClick:h.onClick,onMouseEnter:h.onMouseEnter,onMouseLeave:h.onMouseLeave,children:[S.jsxs("div",{className:"flex flex-col items-start",style:{color:cc(i)},children:[S.jsx("span",{className:"font-display text-[14px] font-normal leading-[1.48]",children:a.year}),a.title&&S.jsx("span",{className:"font-display text-[14px] font-bold uppercase leading-[1.48]",children:a.title})]}),S.jsx(lE,{image:a.cardImage?.[0],size:AD,color:i,showBadge:u,interactive:r,hovered:f})]})}function BD({visible:a,hovered:e,color:i,circleColor:r,plusColor:o}){return S.jsx("div",{className:"pointer-events-none absolute flex items-center justify-center",style:{width:24,height:24,transform:`scale(${e?1.1:1})`,transformOrigin:"center center",opacity:a?1:0,transition:"transform 150ms ease, opacity 180ms ease",lineHeight:0},"aria-hidden":"true",children:S.jsx(UD,{circleColor:r??i,plusColor:o??cc(i)})})}function UD({circleColor:a,plusColor:e}){return S.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:[S.jsx("circle",{cx:"12",cy:"12",r:"12",fill:a}),S.jsx("path",{d:"M12 7v10M7 12h10",stroke:e,strokeWidth:"2",strokeLinecap:"round"})]})}const lb=320,cb=36;function cE({content:a,onClose:e,accentColor:i="var(--color-accent, #FFB81C)"}){const[r,o]=ne.useState(!1),[c,u]=ne.useState(null),f=a?.id??null;if(ne.useEffect(()=>{if(a){u(a);const M=requestAnimationFrame(()=>{requestAnimationFrame(()=>o(!0))});return()=>cancelAnimationFrame(M)}o(!1);const y=setTimeout(()=>u(null),lb+50);return()=>clearTimeout(y)},[f]),ne.useEffect(()=>{if(!a)return;function y(M){M.key==="Escape"&&e()}return window.addEventListener("keydown",y),()=>window.removeEventListener("keydown",y)},[a,e]),!c)return null;const{eyebrow:h,headline:p,bodyHtml:x,image:g,link:v}=c;return S.jsxs("div",{className:"pointer-events-auto fixed bottom-0 left-0 right-0 z-[60] bg-white",style:{top:"var(--height-header, 0px)",transform:r?"translateY(0)":"translateY(100%)",transition:`transform ${lb}ms cubic-bezier(0.4, 0, 0.2, 1)`},onClick:y=>y.stopPropagation(),children:[S.jsx("button",{type:"button",className:"absolute right-5 top-5 z-10 flex cursor-pointer items-center justify-center rounded-full transition-opacity hover:opacity-80",style:{width:cb,height:cb,background:i},onClick:e,"aria-label":TYPO3.lang["20years.aria.close"],children:S.jsxs("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:[S.jsx("line",{x1:2,y1:2,x2:12,y2:12,stroke:"#1c1b1b",strokeWidth:2.5,strokeLinecap:"round"}),S.jsx("line",{x1:12,y1:2,x2:2,y2:12,stroke:"#1c1b1b",strokeWidth:2.5,strokeLinecap:"round"})]})}),S.jsxs("div",{className:"h-full overflow-y-auto overscroll-contain px-7 [&::-webkit-scrollbar]:hidden",style:{paddingTop:"72px",paddingBottom:"calc(env(safe-area-inset-bottom, 0px) + 48px)",scrollbarWidth:"none"},children:[S.jsxs("div",{className:"flex flex-col gap-2",children:[h&&S.jsxs("div",{className:"flex w-fit flex-col gap-1",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:i}}),S.jsx("span",{className:"font-display text-[13px] font-bold uppercase leading-[1.2] tracking-[0.12em] text-[#1c1b1b]",children:h})]}),p&&S.jsx("h2",{className:"m-0 font-display text-[28px] font-bold leading-[1.2] text-[#1c1b1b] sm:text-[38px]",style:{hyphens:"manual"},children:nn(p)})]}),S.jsxs("div",{className:"mt-6 flex flex-col gap-5",children:[g?.src&&S.jsx(gS,{src:g.src,alt:g.alt,caption:g.caption}),x&&S.jsx("div",{className:"info-pane-rte m-0 font-display text-[16px] font-normal leading-[1.5] text-[#1c1b1b] sm:text-[18px] [&_a]:underline [&_a:hover]:opacity-80 [&_p]:m-0 [&_p+p]:mt-3",style:{hyphens:"manual"},dangerouslySetInnerHTML:{__html:x}}),v&&S.jsxs("a",{href:v.href,target:v.target,rel:v.target==="_blank"?"noopener noreferrer":void 0,className:"inline-flex h-11 w-fit cursor-pointer items-center gap-2 px-6 font-display text-[16px] font-bold text-[#1c1b1b] transition-opacity hover:opacity-90",style:{background:i},children:[S.jsx("span",{children:v.label}),S.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M5 12h14M13 6l6 6-6 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"})})]})]})]})]})}function uE({node:a,onClose:e,accentColor:i}){let r=null;if(a){const o=a.detail,c=o?.image?.[0]??a.cardImage?.[0];r={id:a.id,eyebrow:a.year>0?String(a.year):o?.eyebrow,headline:o?.headline??a.title,bodyHtml:o?.body,image:c?.publicUrl?{src:c.publicUrl,alt:c.properties?.alternative??void 0,caption:c.properties?.description||c.properties?.title||c.properties?.alternative||void 0}:void 0,link:o?.action?.href?{href:o.action.href,label:o.action.linkText??o.action.title??TYPO3.lang["20years.label.view.story"],target:o.action.target??void 0}:void 0}}return S.jsx(cE,{content:r,onClose:e,accentColor:i})}const ub=1024;function kD({visible:a,storylines:e,horizontalShift:i,totalCanvasWidth:r,yearToCanvasX:o,inHeroZone:c=!1,onContentMaxXChange:u,verticalShift:f=0,onContentHeightChange:h,detailTopOffset:p}){const[x,g]=ne.useState(null),v=ne.useRef(new Map),y=ne.useCallback((R,C)=>{v.current.get(R)!==C&&(v.current.set(R,C),u?.(Math.max(...v.current.values())
4127))},[u]),[M,T]=ne.useState(()=>typeof window<"u"&&window.innerWidth>=ub),E=ne.useRef(null);ne.useEffect(()=>{const R=E.current;if(!R||!h)return;const C=()=>h(R.offsetHeight);C();const I=new ResizeObserver(C);return I.observe(R),()=>I.disconnect()},[h]),ne.useEffect(()=>{function R(){T(window.innerWidth>=ub)}return window.addEventListener("resize",R,{passive:!0}),()=>window.removeEventListener("resize",R)},[]),ne.useEffect(()=>{a||g(null)},[a]),ne.useEffect(()=>{c&&g(null)},[c]);const b=e.filter(R=>R.nodes.length>0);return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:"absolute inset-0 z-20 transition-opacity duration-300",style:{opacity:a?1:0,pointerEvents:a?"auto":"none"},onClick:()=>{x!==null&&g(null)},children:S.jsx("div",{className:"absolute inset-0 overflow-hidden",children:S.jsx("div",{className:"absolute inset-y-0 left-0",style:{willChange:"transform",transform:`translateX(${-i}px)`},children:S.jsx("div",{className:"flex h-full flex-col justify-center",style:{width:r},children:S.jsx("div",{ref:E,className:"relative flex shrink-0 flex-col gap-[26px]",style:{paddingTop:"calc(var(--height-header, 0px) + 120px)",paddingBottom:"120px",transform:`translateY(${f}px)`},children:b.map(R=>S.jsx("div",{children:S.jsx(ND,{storyline:R,yearToCanvasX:o,state:"active",paneActive:a,onHoverChange:()=>{},onActivate:()=>{},onNodeClick:g,onLastNodeXChange:y})},R.id))})})})})}),M&&S.jsx(ED,{node:x,onClose:()=>g(null),topOffset:p}),!M&&S.jsx(uE,{node:x,onClose:()=>g(null)})]})}const fb=32,zD=vs+24,db=48,_D=28,HD="left 350ms cubic-bezier(0.4, 0, 0.2, 1)";function hb({visibleHeight:a,contentHeight:e,scrollOffset:i,left:r,onScroll:o}){const c=Rr(),u=ne.useRef(null),f=ne.useRef(null),[h,p]=ne.useState(!1),x=Math.max(0,e-a),g=Math.max(0,a-fb-zD);if(x<=0||g<db*2)return null;const v=Math.max(db,g*(a/e)),y=g-v,M=y>0?i/x*y:0,T=C=>Math.max(0,Math.min(x,C)),E=C=>{const I=u.current;if(!I||y<=0)return;C.preventDefault();const U=I.getBoundingClientRect(),B=I.offsetHeight>0?U.height/I.offsetHeight:1,D=(C.clientY-U.top)/B;let A=i;(D<M||D>M+v)&&(A=T((D-v/2)/y*x),o(A)),f.current={pointerId:C.pointerId,startClientY:C.clientY,startOffset:A,scale:B},p(!0),I.setPointerCapture(C.pointerId)},b=C=>{const I=f.current;if(!I||I.pointerId!==C.pointerId||y<=0)return;const U=(C.clientY-I.startClientY)/I.scale;o(T(I.startOffset+U/y*x))},R=C=>{f.current?.pointerId===C.pointerId&&(f.current=null,p(!1))};return S.jsxs("div",{ref:u,role:"scrollbar","aria-orientation":"vertical","aria-label":TYPO3.lang["20years.aria.timeline.vertical"],"aria-controls":"genealogy-canvas","aria-valuemin":0,"aria-valuemax":Math.round(x),"aria-valuenow":Math.round(i),tabIndex:-1,className:Hn("group absolute z-[47] cursor-pointer",h?"opacity-100":c?"opacity-70":"opacity-70 hover:opacity-100"),style:{left:r,top:fb,height:g,width:_D,touchAction:"none",transition:`${HD}, opacity 200ms ease`},onPointerDown:E,onPointerMove:b,onPointerUp:R,onPointerCancel:R,children:[S.jsx("div",{className:"absolute inset-y-0 w-[2px]",style:{left:"calc(50% - 1px)",background:"rgba(255, 255, 255, 0.18)",maskImage:"linear-gradient(to bottom, transparent, black 28px, black calc(100% - 28px), transparent)"},"aria-hidden":"true"}),S.jsx("div",{className:Hn("absolute rounded-full",h?"bg-white":c?"bg-white/65":"bg-white/65 group-hover:bg-white/90"),style:{left:h?"calc(50% - 4px)":"calc(50% - 3px)",width:h?8:6,top:M,height:v,boxShadow:"0 0 8px rgba(0, 0, 0, 0.45)",transition:"background-color 150ms ease, width 150ms ease, left 150ms ease"},"aria-hidden":"true"})]})}function Wm({active:a,onChange:e,labels:i={history:TYPO3.lang["20years.label.history"],stories:TYPO3.lang["20years.label.stories"]},top:r="calc(var(--height-header, 0px) + 24px)",centerX:o}){const c=ne.useRef(null),u=ne.useRef(null),f=ne.useRef(null),[h,p]=ne.useState({left:0,width:0});return ne.useLayoutEffect(()=>{function x(){const v=c.current,y=a==="history"?u.current:f.current;if(!v||!y)return;const M=v.getBoundingClientRect(),T=y.getBoundingClientRect(),E=v.offsetWidth>0?M.width/v.offsetWidth:1;p({left:(T.left-M.left)/E,width:T.width/E})}x();const g=new ResizeObserver(x);return u.current&&g.observe(u.current),f.current&&g.observe(f.current),()=>g.disconnect()},[a]),S.jsx("div",{className:"pointer-events-none fixed z-50",style:{to
4127p:r,left:o!==void 0?o:"50%",transform:"translateX(-50%)",transition:"left 350ms cubic-bezier(0.4, 0, 0.2, 1)"},children:S.jsxs("div",{ref:c,className:"pointer-events-auto relative flex h-11 items-center overflow-hidden",style:{borderRadius:"999px",border:"1px solid rgba(255, 255, 255, 0.30)",background:"rgba(255, 255, 255, 0.10)"},children:[S.jsx("span",{"aria-hidden":"true",className:"pointer-events-none absolute top-0 h-full rounded-full bg-accent",style:{left:h.left,width:h.width,transition:"left 280ms cubic-bezier(0.32, 0, 0.15, 1), width 280ms cubic-bezier(0.32, 0, 0.15, 1)"}}),S.jsx(Sm,{ref:u,label:i.history,isActive:a==="history",onClick:()=>e("history")}),S.jsx(Sm,{ref:f,label:i.stories,isActive:a==="stories",onClick:()=>e("stories")})]})})}const Sm=ne.forwardRef(({label:a,isActive:e,onClick:i},r)=>{const o=Rr();return S.jsx("button",{ref:r,type:"button",onClick:i,className:"group relative z-10 flex h-11 cursor-pointer items-center justify-center bg-transparent px-6 font-display text-[16px] font-bold leading-none transition-colors duration-150",style:{color:e?"#1c1b1b":"rgba(255, 255, 255, 0.75)"},onMouseEnter:o?void 0:c=>{e||(c.currentTarget.style.color="#ffffff")},onMouseLeave:o?void 0:c=>{e||(c.currentTarget.style.color="rgba(255, 255, 255, 0.75)")},children:a})});Sm.displayName="PillButton";const FD=120,fE=60,dE=40,vp=110,pb=18,Kl=120,Do=44,Qm=40,fs=52,Oo=48,hE=-8,qm=4,Km=100,VD=5,GD=Km/2,jD=Oo/2+qm,YD=Qm/2+4,mb=fs/2+4,XD=Oo/2-6,pE=2,ZD=Math.sqrt(jD**2-XD**2);function WD(a){const e=Math.max(2,a),r=Oo/2*2+hE,o=(e-1)*r/2+pE;return Math.floor(o+ZD)}function xo(a){if(a.type==="project")return Cn(a)?YD:pb;if(a.type==="start"||a.type==="milestone")return mb;if(a.type==="founding")return GD;if(a.type==="merge"){const e=a.mergeImages??[];if(e.length===1)return mb;const i=e.length>=2?e.length:a.fromBranches.length;return WD(i)}return pb}function QD(a,e,i){const r=a.map(x=>x.position),o=fE+Do,c=e-dE,u=c-o,f=(o+c)/2,h=Math.max(Math.max(...r),-Math.min(...r),0);if(h===0)return new Map(a.map(x=>[x.id,f]));const p=Math.min(i,u/2/h);return new Map(a.map(x=>[x.id,f+x.position*p]))}function qD(a,e,i,r){const{timeline:o,branches:c,nodes:u}=a,f=[],h=o.curveRadius*.6,p=new Map;{const x=new Map;for(const g of c){const v=i.get(g.id);if(v===void 0)continue;const y=r.filter(D=>D.definition.branch===g.id).sort((D,A)=>D.canvasY-A.canvasY);if(y.length===0)continue;const M=u.find(D=>(D.type==="merge"||D.type==="founding")&&D.fromBranches.includes(g.id)&&D.branch!==g.id);if(!M)continue;const T=r.find(D=>D.definition===M);if(!T)continue;const E=i.get(M.branch)??v;if(Math.abs(v-E)<=1)continue;const b=T.canvasY-Kl,R=y.at(-1),C=R.canvasY+xo(R.definition),I=b-C;if(I<=0)continue;const U=Math.min(h,Math.max(16,I/2)),B=x.get(M);B?B.push(U):x.set(M,[U])}for(const[g,v]of x)p.set(g,Math.min(...v))}for(const x of c){const g=i.get(x.id);if(g===void 0)continue;const v=r.filter(B=>B.definition.branch===x.id).sort((B,D)=>B.canvasY-D.canvasY);if(v.length===0)continue;const y=u.find(B=>(B.type==="merge"||B.type==="founding")&&B.fromBranches.includes(x.id)&&B.branch!==x.id),M=y?r.find(B=>B.definition===y):null,T=y?.type==="merge"||y?.type==="founding"?i.get(y.branch)??g:g,E=Math.abs(g-T)>1,b=M?M.canvasY-Kl:y?e(y.year):e(a.timeline.endYear)+200,R=[],C=v[0];if(C.definition.type==="merge"||C.definition.type==="founding"){const B=C.canvasY-Kl,D=C.canvasY-xo(C.definition);D>B&&R.push(`M ${g} ${B} L ${g} ${D}`)}for(let B=0;B<v.length-1;B++){const D=v[B],A=v[B+1],L=D.canvasY+xo(D.definition),X=A.canvasY-xo(A.definition);X>L&&R.push(`M ${g} ${L} L ${g} ${X}`)}const I=v.at(-1),U=I.canvasY+xo(I.definition);if(E&&U<b){const B=b-U,D=(y?p.get(y):void 0)??Math.min(h,Math.max(16,B/2)),A=Math.max(U,b-D*2);A>U&&R.push(`M ${g} ${U} L ${g} ${A}`);const L=(b-A)/2;R.push(`M ${g} ${A}`,`C ${g} ${A+L},`,`${T} ${b-L},`,`${T} ${b}`)}else E?R.push(`M ${g} ${U}`,`C ${g} ${U+24},`,`${T} ${b-24},`,`${T} ${b}`):!E&&U<b&&R.push(`M ${g} ${U} L ${g} ${b}`);R.length>0&&f.push({branchId:x.id,pathData:R.join(" "),strokeWidth:o.lineThickness,strokeColor:o.color})}return f}function KD(a,e){const{timeline:i,branches:r,nodes:o}=a,c=Math.max(100,i.pixelsPerYear*.6),u=new Map(o.filter(I=>I.type==="merge"||I.type==="founding").map(I=>[I.year,Kl/2])),f=100,h=[...new Set(o.map(I=>I.year))].sort((I,U)=>I-U);for(const I of o){if(I.type!=="merge"&&I.type!=="founding")continue;const U=h.indexOf(I.year);if(U<=0)continue;const B=h[U-1],D=o.filter(X=>X.year===B&&I.fromBranches.includes(X.branch));if(D.length===0)continue;const L=Math.max(...D.map(X=>xo(X)))+Kl+f-c;u.set(I.year,Math.max(u.get(I.year)??0,L))}const p=new Map;for(const I of o){const U=`${I.year}:${I.branch}`;p.set(U,(p.get(U)??0)+1)}const x=[...new Set(o.map(I=>I.year))].sort((I,U)=>I-U);for(let I=0;I<x.length-1;I++){const U=x[I];let B=0;for(const[D,A]of p)D.startsWith(`${U}:`)&&(B=Math.max(B,A-1));if(B>0){const D=x[I+1];u.set(D,(u.get(D)??0)+B*vp)}}const g=Am(i.startYear,i.endYear,o.map(I=>I.year),c,FD,u),v=g(i.endYear)+1200,y=QD(r,e,i.gapBetweenBranches*.6),M=fE+Do,T=e-dE,E=(M+T)/2,b=o.map((I,U)=>({nodeId:`node-${U}`,definition:I,canvasX:y.get(I.branch)??E,canvasY:g(I.year)})),R=new Map;for(let I=0;I<b.length;I++){const U=b[I].definition.branch;R.has(U)||R.set(U,[]),R.get(U).push(I)}for(const I of R.values()){I.sort((U,B)=>b[U].canvasY-b[B].canvasY);for(let U=1;U<I.length;U++){const B=b[I[U-1]],D=b[I[U]];D.canvasY-B.canvasY<vp&&(D.canvasY=B.canvasY+vp)}}const C=qD(a,g,y,b);return{computedNodes:b,computedBranchPaths:C,totalCanvasHeight:v,centerX:E,yearToCanvasY:g,branchXMap:y}}function JD(a,e,i){const r=i*.25,o=i*.65,c=i*.4,u=a.filter(f=>{const h=f.canvasY-e;return h>=r&&h<=o});return u.length>0?u.reduce((f,h)=>{const p=Math.abs(f.canvasY-e-c);return Math.abs(h.canvasY-e-c)<p?h:f}).nodeId:null}const $D=10,mE="#f507ed";function Jm({cx:a,cy:e,accentColor:i}){return S.jsxs("g",{className:"pointer-events-none",children:[S.jsx("circle",{cx:a,cy:e,r:$D,fill:i}),S.jsx("line",{x1:a-4,y1:e,x2:a+4,y2:e,stroke:"white",strokeWidth:2,strokeLinecap:"round"}),S.jsx("line",{x1:a,y1:e-4,x2:a,y2:e+4,stroke:"white",strokeWidth:2,strokeLinecap:"round"})]})}
4127function eN({cx:a,cy:e,isActive:i,accentColor:r,hasDetails:o,onActivate:c}){const u=VD;return S.jsxs("g",{onClick:c,className:"cursor-pointer",children:[S.jsx("circle",{cx:a,cy:e,r:18,fill:"transparent"}),S.jsx("circle",{cx:a,cy:e,r:i?u+3:u,fill:i?r:"var(--color-surface-dark,#060610)",stroke:r,strokeWidth:2,style:{transition:"r .25s, fill .25s"}}),o&&S.jsx(Jm,{cx:a+u+4,cy:e-u-4,accentColor:r})]})}function bf({computedNode:a,isActive:e,accentColor:i,lineThickness:r,onActivate:o,imgSize:c,usePlaceholder:u=!1,mediaOverride:f}){const[h,p]=ne.useState(!1),{canvasX:x,canvasY:g,definition:v}=a,y=e||h,M=f!==void 0?f:Gi(v),T=M?.src;if(!T&&!u)return S.jsx(eN,{cx:x,cy:g,isActive:e,accentColor:i,hasDetails:!!v.details,onActivate:o});const E=c/2,b=E+4,R=2*Math.PI*b,C=`m-round-clip-${a.nodeId}`;return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:S.jsx("clipPath",{id:C,children:S.jsx("circle",{cx:x,cy:g,r:y?b:E,style:{transition:"r 0.3s ease-out"}})})}),S.jsxs("g",{onClick:o,className:"cursor-pointer",onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),children:[S.jsx("circle",{cx:x,cy:g,r:y?b:E,fill:T?"#ffffff":mE,style:{transition:"r 0.3s ease-out"}}),T&&M&&(()=>{const I=!!v.isLogo||!!M.isLogo,U=I?b*Tr:b;return S.jsx("image",{href:T,x:x-U,y:g-U,width:U*2,height:U*2,clipPath:`url(#${C})`,preserveAspectRatio:I?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"})})(),S.jsx("circle",{cx:x,cy:g,r:b,fill:"none",stroke:i,strokeWidth:r,strokeLinecap:"round",strokeDasharray:y?`${R} 0`:`${R*.75} ${R*.25}`,strokeDashoffset:y?0:R*.75,style:{transition:"stroke-dasharray 0.3s ease, stroke-dashoffset 0.3s ease"}}),v.details&&S.jsx(Jm,{cx:x+b*.7,cy:g-b*.7,accentColor:i})]})]})}function tN(a){return S.jsx(bf,{...a,imgSize:fs,usePlaceholder:!0})}function nN(a){return S.jsx(bf,{...a,imgSize:Qm})}function iN(a){return S.jsx(bf,{...a,imgSize:fs,usePlaceholder:!0})}function gE(a,e,i){const r=Oo/2,o=hE,c=r*2+o,u=(i-1)*c,f=r-6;return Array.from({length:i},(h,p)=>{const x=p%2!==0,g=p===i-1;return{cx:a-u/2+p*c+(g?pE:0),cy:e+(x?f:-f)}})}function aN(a,e,i){if(a.length===0)return"";const r=a.map(({cx:f,cy:h})=>{const p=i-h,x=Math.sqrt(Math.max(0,e*e-p*p)),g=h<i;return{leftX:f-x,rightX:f+x,rightAngle:Math.atan2(p,x),leftAngle:Math.atan2(p,-x),sweep:g?1:0}}),o=f=>f.toFixed(2),c=[`M ${o(r[0].leftX)} ${o(i)}`],u=e*.6;for(let f=0;f<r.length;f++){const h=r[f];if(c.push(`A ${e} ${e} 0 1 ${h.sweep} ${o(h.rightX)} ${o(i)}`),f===r.length-1)break;const p=r[f+1],x=h.sweep===1?1:-1,g=p.sweep===1?1:-1,v=x*-Math.sin(h.rightAngle),y=x*Math.cos(h.rightAngle),M=g*-Math.sin(p.leftAngle),T=g*Math.cos(p.leftAngle),E=h.rightX+v*u,b=i+y*u,R=p.leftX-M*u,C=i-T*u;c.push(`C ${o(E)} ${o(b)} ${o(R)} ${o(C)} ${o(p.leftX)} ${o(i)}`)}return c.join(" ")}function rN({computedNode:a,computedNodes:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c}){const[u,f]=ne.useState(!1),{canvasX:h,canvasY:p,definition:x}=a,g=i||u,v=x;if((v.mergeImages?.length??0)===1)return S.jsx(bf,{computedNode:a,computedNodes:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c,imgSize:fs,usePlaceholder:!0,mediaOverride:v.mergeImages[0]});const y=Oo/2,T=y+qm,E=2*Math.PI*T,b=v.fromBranches.map(L=>{const X=e.filter(Z=>"branch"in Z.definition&&Z.definition.branch===L&&Z.definition.year<=x.year),k=X.find(Z=>Z.definition.type==="start"),G=[...X].sort((Z,_)=>_.definition.year-Z.definition.year).find(Z=>Cn(Z.definition)),Y=k?Gi(k.definition):void 0,ee=G?Gi(G.definition):void 0;return Y??ee??null}),R=v.mergeImages??[],C=R.length>=2?R.length:Math.max(2,v.fromBranches.length),I=gE(h,p,C),U=R.length>=2?R:[...b].reverse(),B=aN(I,T,p),D={onMouseEnter:()=>f(!0),onMouseLeave:()=>f(!1)},A=I.map(L=>({cx:h-(L.cy-p),cy:p+(L.cx-h)}));return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:A.map((L,X)=>S.jsx("clipPath",{id:`m-merge-clip-${X}-${a.nodeId}`,children:S.jsx("circle",{cx:L.cx,cy:L.cy,r:g?T:y,style:{transition:"r 0.4s ease-out"}})},X))}),S.jsxs("g",{onClick:c,className:"cursor-pointer",...D,children:[A.map((L,X)=>S.jsx("circle",{cx:L.cx,cy:L.cy,r:g?T:y,fill:U[X]?"#ffffff":mE,style:{transition:"r 0.4s ease-out"}},`bg-${X}`)),A.map((L,X)=>{const k=U[X];if(!k)return null;const G=!!k.isLogo,Y=G?T*Tr:T;return S.jsx("image",{href:k.src,x:L.cx-Y,y:L.cy-Y,width:Y*2,height:Y*2,clipPath:`url(#m-merge-clip-${X}-${a.nodeId})`,preserveAspectRatio:G?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"},`img-${X}`)})]}),S.jsxs("g",{transform:`rotate(90, ${h}, ${p})`,onClick:c,className:"cursor-pointer",...D,children:[S.jsx("path",{d:B,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round"}),I.map((L,X)=>{const k=p-L.cy,G=Math.sqrt(Math.max(0,T*T-k*k)),Y=L.cy<p,ee=Q=>(Q%(2*Math.PI)+2*Math.PI)%(2*Math.PI),Z=ee(Math.atan2(k,G)),_=ee(Math.atan2(k,-G)),F=Y?Z:_,se=Y?_:Z,fe=(se-F+2*Math.PI)%(2*Math.PI)/(2*Math.PI)*E,ae=-(F/(2*Math.PI))*E,H=-(se/(2*Math.PI))*E;return S.jsx("circle",{cx:L.cx,cy:L.cy,r:T,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"butt",strokeDasharray:g?`${fe} ${E-fe}`:`0 ${E}`,strokeDashoffset:g?ae:H,style:{transition:"stroke-dasharray 0.4s ease, stroke-dashoffset 0.4s ease"}},`arc-${X}`)})]}),x.details&&(()=>{const L=I[0],X=h-(L.cy-p),k=p+(L.cx-h);return S.jsx(Jm,{cx:X+T*.7,cy:k-T*.7,accentColor:r})})()]})}function sN({computedNode:a,onActivate:e}){const{canvasX:i,canvasY:r}=a,o=Km;return S.jsxs("g",{onClick:e,className:"cursor-pointer",children:[S.jsx("rect",{x:i-o/2,y:r-o/2,width:o,height:o,fill:"transparent"}),S.jsx("image",{href:gs,x:i-o/2,y:r-o/2,width:o,height:o,preserveAspectRatio:"xMidYMid meet",className:"pointer-events-none"})]})}function oN(a,e){const{canvasX:i,canvasY:r,definition:o}=a;if(o.type==="founding")return[{type:"circle",cx:i,cy:r,r:Km/2+e/2}];if(o.type==="milestone"){const c=fs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(o.type==="merge"){const c=o.mergeImages??[];if(c.length===1){const p=fs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:p}]}const f=Oo/2+qm+e/2,h=c.length>=2?c.length:Math.max(2,o.fromBranches.length);return gE(i,r,h).map(p=>({type:"circle",cx:i-(p.cy-r),cy:r+(p.cx-i),r:f}))}if(o.type==="start"){const c=fs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(Cn(o)){const c=Qm/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}return[]}function lN(a){switch(a.computedNode.definition.type){case"start":return S.jsx(tN,{...a});case"merge":return S.jsx(rN,{...a});case"project":return S.jsx(nN,{...a});
4127case"founding":return S.jsx(sN,{...a});case"milestone":return S.jsx(iN,{...a})}}const kl=Do/2,mo=3,Qu=14,cN=6;function vE({computedNodes:a,totalCanvasHeight:e,viewportHeight:i,verticalShift:r,progressCanvasY:o,accentColor:c,onNodeClick:u}){const f=Math.max(e,r+i+1),h=mo+cN,p=new Set,x=[];for(const R of a){const C=R.definition.year;p.has(C)||(p.add(C),x.push({year:C,canvasY:R.canvasY,nodeId:R.nodeId}))}const g=x.map(R=>R.canvasY),v=[],y=[...g].sort((R,C)=>R-C);let M=0;for(const R of y){const C=R-h;C>M&&v.push({top:M,bottom:C}),M=R+h}M<f&&v.push({top:M,bottom:f});const T=o-2,E=v.map(R=>({top:R.top,bottom:Math.min(R.bottom,T)})).filter(R=>R.bottom>R.top),b=v.map(R=>({top:Math.max(R.top,o),bottom:R.bottom})).filter(R=>R.bottom>R.top);return S.jsx("div",{className:"absolute top-0 overflow-hidden",style:{left:0,width:Do+40,height:"100%"},children:S.jsxs("div",{className:"absolute left-0 top-0",style:{width:Do+40,height:f,transform:`translateY(${-r}px)`},children:[S.jsxs("div",{"aria-hidden":"true",children:[E.map((R,C)=>S.jsx("div",{className:"absolute w-px",style:{left:kl,top:R.top,height:R.bottom-R.top,background:c}},`active-${C}`)),b.map((R,C)=>S.jsx("div",{className:"absolute w-px bg-white/50",style:{left:kl,top:R.top,height:R.bottom-R.top}},`inactive-${C}`))]}),x.map(({year:R,canvasY:C,nodeId:I})=>{const U=C<=o,B=()=>u(I);return S.jsxs("div",{children:[S.jsx("div",{className:"absolute cursor-pointer",style:{left:kl-Qu,top:C-Qu,width:Qu*2+40,height:Qu*2},onClick:B}),S.jsx("div",{className:"absolute rounded-full pointer-events-none",style:{left:kl-mo,top:C-mo,width:mo*2,height:mo*2,background:U?c:"rgba(255,255,255,0.5)"}}),S.jsx("span",{className:"absolute cursor-pointer whitespace-nowrap text-[11px] font-light tracking-wide text-white pointer-events-none",style:{left:kl+mo+8,top:C,transform:"translateY(-50%)",fontFamily:"'Source Sans Pro', sans-serif",lineHeight:1},children:R})]},`year-${R}`)})]})})}const zl=160;function uN({canvasY:a,accentColor:e,content:i,cards:r=[],logoCenterX:o,containerWidth:c}){const u=!!(i?.header||i?.subheader||i?.bodytext),f=r.length>0;if(!u&&!f)return null;const h=o??(c?c/2:void 0),p=h!==void 0?c!==void 0?Math.max(8,Math.min(h-zl/2,c-zl-8)):h-zl/2:void 0;return S.jsxs("div",{className:"absolute left-0 right-0",style:{to
4127p:a},children:[S.jsx("div",{className:`mb-10 flex ${p===void 0?"justify-center":""}`,children:S.jsx("img",{src:gs,alt:"Implenia",style:{width:zl,height:zl,objectFit:"contain",marginLeft:p}})}),u&&S.jsxs("div",{className:"mx-auto mb-10 flex max-w-[320px] flex-col gap-4 px-5 text-left",children:[(i.subheader||i.header)&&S.jsxs("div",{className:"flex flex-col gap-2",children:[i.subheader&&S.jsxs("div",{className:"flex w-fit flex-col gap-2.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[14px] font-bold uppercase leading-[1.48] tracking-[2px]",style:{color:e,fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.subheader)})]}),i.header&&S.jsx("h2",{className:"m-0 text-[28px] font-bold uppercase leading-[1.1] text-white",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.header)})]}),i.bodytext&&S.jsx("p",{className:"m-0 text-base leading-relaxed text-white/90",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.bodytext)})]}),f&&S.jsx("div",{className:"flex flex-col gap-3 px-4",children:r.map(x=>S.jsx(fN,{card:x,accentColor:e},x.id))})]})}function fN({card:a,accentColor:e}){const i=a.link,r=i?.href,o=i?.linkText??TYPO3.lang["20years.label.link.readmore"];return S.jsxs("div",{className:"flex flex-col gap-3 bg-white px-4 py-5",children:[(a.subheader||a.header)&&S.jsxs("div",{className:"flex flex-col gap-2",children:[a.subheader&&S.jsxs("div",{className:"flex w-fit flex-col gap-2.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[13px] font-bold uppercase leading-[1.48] tracking-[2px] text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.subheader)})]}),a.header&&S.jsx("h3",{className:"m-0 text-[22px] font-bold leading-[1.3] text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.header)})]}),a.bodytext&&S.jsx("p",{className:"m-0 text-sm leading-relaxed text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.bodytext)}),r&&S.jsxs("a",{href:r,target:i?.target??void 0,rel:i?.target==="_blank"?"noopener noreferrer":void 0,className:"inline-flex w-fit items-center gap-2 px-5 py-2 text-sm font-bold text-[#1c1b1b] transition-opacity hover:opacity-80",style:{background:e,fontFamily:"'Source Sans Pro', sans-serif"},children:[o,S.jsx(Mm,{className:"h-4 w-4 shrink-0"})]})]})}const ds=52,es=ds/2,dN=ds+16,hN=ds+24,Wl=10,gb=Do+36,vb=20,pN=96,xE=ds+Wl*2,mN=xE+12;function gN(a,e){if(a<=0)return{laneXs:[],contentWidth:e};if(a===1)return{laneXs:[e/2],contentWidth:e};const i=Math.max(0,e-gb-vb),r=Math.min(pN,Math.max(mN,i/(a-1))),o=(a-1)*r,c=(e-o)/2,u=Math.max(gb,c),f=Array.from({length:a},(p,x)=>u+x*r),h=Math.max(e,u+o+xE/2+vb);return{laneXs:f,contentWidth:h}}const vN=16;function xN({storyline:a,laneX:e,yearToCanvasY:i,onNodeClick:r}){const{title:o,color:c,nodes:u}=a,f=ne.useRef(null),[h,p]=ne.useState(0);if(ne.useLayoutEffect(()=>{f.current&&p(f.current.offsetWidth)},[o]),u.length===0)return null;const x=[...u].sort((k,G)=>k.year-G.year),g=[];for(let k=0;k<x.length;k++){const G=i(x[k].year);g.push(k===0?G:Math.max(G,g[k-1]+dN))}const v=Xm(a),y=a.detail?.image?.[0],M=v?g[0]-hN:null,T=M!==null?[M,...g]:g,E=T[0],b=T[T.length-1],R=E-es-Wl,C=h>0?h+vN*2:0,I=R-C,B=b+es+Wl-I,D=e-es-Wl,A=ds+Wl*2,L=R-C/2;function X(k,G,Y,ee,Z){return S.jsxs("div",{className:"absolute rounded-full overflow-hidden",style:{left:e-es,top:G-es,width:ds,height:ds,background:c,cursor:ee?"pointer":"default"},onClick:_=>{_.stopPropagation(),ee&&Z()},children:[Y?S.jsx("img",{src:Y.publicUrl,alt:Y.properties?.alternative??"",className:"h-full w-full object-cover"}):S.jsx("div",{className:"h-full w-full bg-black/30"}),ee&&S.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:S.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[S.jsx("circle",{cx:"12",cy:"12",r:"12",fill:c}),S.jsx("path",{d:"M12 7v10M7 12h10",stroke:cc(c),strokeWidth:"2",strokeLinecap:"round"})]})})]},k)}return S.jsxs(S.Fragment,{children:[S.jsx("span",{ref:f,className:"absolute pointer-events-none whitespace-nowrap font-display text-[16px] font-bold leading-[1.15]",style:{left:e,top:L,color:c,transform:"translate(-50%, -50%) rotate(-90deg)",transformOrigin:"center"},children:o}),S.jsx("div",{className:"absolute rounded-full pointer-events-none",style:{left:D,top:I,width:A,height:B,background:"rgba(255,255,255,0.10)",border:"1px solid rgba(255,255,255,0.30)"}}),T.slice(0,-1).map((k,G)=>{const Y=k+es,ee=T[G+1]-es;return ee<=Y?null:S.jsx("div",{className:"absolute pointer-events-none",style:{left:e-1,top:Y,width:2,height:ee-Y,background:c}},`seg-${G}`)}),M!==null&&X("branch",M,y,!0,()=>r(Zm(a))),x.map((k,G)=>X(k.id,g[G],k.cardImage?.[0],Ym(k),()=>r(k)))]})}function yN({visible:a,storylines:e,verticalShift:i,totalCanvasHeight:r,viewportWidth:o,yearToCanvasY:c}){const[u,f]=ne.useState(null);ne.useEffect(()=>{a||f(null)},[a]);const h=e.filter(x=>x.nodes.length>0),p=gN(h.length,o);return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:"absolute inset-0 z-20 transition-opacity duration-300",style:{opacity:a?1:0,pointerEvents:a?"auto":"none"},onClick:()=>{u!==null&&f(null)},children:S.jsx("div",{className:"absolute inset-0 overflow-y-hidden overflow-x-auto [&::-webkit-scrollbar]:hidden",style:{scrollbarWidth:"none"},children:S.jsx("div",{className:"relative h-full",style:{width:p.contentWidth},children:S.jsx("div",{className:"absolute left-0 right-0 top-0",style:{willChange:"transform",transform:`translateY(${-i}px)`,maskImage:"linear-gradient(to bottom, transparent 0%, black 120px)"},children:S.jsx("div",{className:"relative w-full",style:{height:r},children:h.map((x,g)=>S.jsx(xN,{storyline:x,laneX:p.laneXs[g],yearToCanvasY:c,onNodeClick:f},x.id))})})})})}),S.jsx(uE,{node:u,onClose:()=>f(null)})]})}const xb=60;function bN(a,e,i,r,o){const c=i.nodes.filter(g=>g.type==="merge"||g.type==="founding"),u=[],f=new Set;u.push({branchId:a,fromY:0,toY:o,fadeStart:!1,fadeEnd:!1}),f.add(a);let h=[a];for(;h.length>0;){const g=[];for(const v of h)for(const y of c)y.fromBranches.includes(v)&&!f.has(y.branch)&&(f.add(y.branch),u.push({branchId:y.branch,fromY:r(y.year),toY:o,fadeStart:!0,fadeEnd:!1}),g.push(y.branch));h=g}const p=e?.year??i.timeline.endYear,x=c.filter(g=>g.branch===a&&g.year<=p);for(const g of x)for(const v of g.fromBranches)f.has(v)||(f.add(v),u.push({branchId:v,fromY:0,toY:r(g.year),fadeStart:!1,fadeEnd:!0}));return u}function SN(a,e){const i=[];if(a.fadeStart){const r=Math.max(0,a.fromY-xb);r>0&&i.push({offset:0,opacity:0}
4127),i.push({offset:r/e,opacity:0}),i.push({offset:a.fromY/e,opacity:1})}else i.push({offset:0,opacity:1});if(a.fadeEnd){i.push({offset:a.toY/e,opacity:1});const r=Math.min(e,a.toY+xb);i.push({offset:r/e,opacity:0}),r<e&&i.push({offset:1,opacity:0})}else i.push({offset:1,opacity:1});return i}function EN({data:a,endScreenContent:e,endScreenCards:i,storylines:r=[],heroContent:o}){const c=ne.useRef(null),u=ne.useRef(null),[f,h]=ne.useState(()=>window.innerHeight),[p,x]=ne.useState(()=>window.innerWidth),[g,v]=ne.useState(0),[y,M]=ne.useState(null),[T,E]=ne.useState(0),[b,R]=ne.useState("history"),[C,I]=ne.useState(null);ne.useEffect(()=>{function Ne(){h(window.innerHeight),x(window.innerWidth)}return window.addEventListener("resize",Ne,{passive:!0}),()=>window.removeEventListener("resize",Ne)},[]);const U=KD(a,p),{computedNodes:B,computedBranchPaths:D,totalCanvasHeight:A,yearToCanvasY:L}=U,X=a.timeline.color,k=a.timeline.lineThickness,G=a.timeline.startScrollPadding??f*.5,Y=a.timeline.endScrollPadding??0,Z=Math.max(...B.map(Ne=>Ne.canvasY))+200,_=new Set(a.nodes.filter(Ne=>Ne.type==="merge"||Ne.type==="founding").flatMap(Ne=>Ne.fromBranches.filter(V=>V!==Ne.branch))),F=a.branches.find(Ne=>!_.has(Ne.id)),se=(F?U.branchXMap.get(F.id):void 0)??p/2,fe=r.length>0?Math.max(...r.flatMap(Ne=>Ne.nodes.map(V=>V.year))):a.timeline.endYear,ae=L(fe),H=b==="stories"?Math.max(0,ae-f*.4):Math.max(0,A-f*.5),Q=H*a.timeline.scrollFactor,Se=f+G+Q+Y;ne.useEffect(()=>{function Ne(){const V=c.current;if(!V)return;const gt=Math.max(0,-V.getBoundingClientRect().top);if(Q<=0)return;const ct=gt-G,pe=Math.max(0,Math.min(1,ct/Q));v(pe);const Ie=pe*H,z=JD(B,Ie,f);if(u.current!==null){const{nodeId:W,targetShift:xe}=u.current,Ae=B.find(Je=>Je.nodeId===W),ve=Math.abs(Ie-xe)<20,Ge=Ae?Ae.canvasY-Ie:-1,Be=Ge>=f*.25&&Ge<=f*.65;ve&&Be&&(u.current=null)}else{const W=Z-Ie<f*.8;M(ct>0&&!W?z:null)}let N;if(gt<=0)N=0;else if(gt<=G)N=gt/G*(f/2);else if(ct<=Q)N=pe*H+f/2;else{const W=Y>0?Math.min(1,(ct-Q)/Y):1,xe=H+f/2,Ae=Math.max(A,H+f);N=xe+W*(Ae-xe)}E(N)}return Ne(),window.addEventListener("scroll",Ne,{passive:!0}),()=>window.removeEventListener("scroll",Ne)},[B,Y,Z,H,G,Q,A,f]);const ye=g*H,Ce=ne.useRef(null),$=ne.useCallback(Ne=>{if(Ne===b)return;const V=c.current;if(I(null),Ce.current=null,V&&Q>0){const ct=Math.max(0,-V.getBoundingClientRect().top)-G;if(ct>0){const pe=Math.min(1,ct/Q);Ce.current=pe*H}}R(Ne)},[b,H,G,Q]);ne.useLayoutEffect(()=>{const Ne=Ce.current;if(Ce.current=null,Ne===null||!c.current)return;const V=Math.min(Ne,H),gt=H>0?V/H:0,ct=c.current.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:ct+G+gt*Q})},[b,H,G,Q]);const me=B.find(Ne=>Ne.nodeId===y)??null,Me=B.find(Ne=>Ne.nodeId===C)??null,Te=Me?.definition,Ze=Me&&Te?.details?{id:Me.nodeId,eyebrow:String(Te.year??""),headline:Te.details.headline??Te.label,bodyHtml:Te.details.bodyText,image:Te.details.media?.src?{src:Te.details.media.src,alt:Te.details.media.alt}:void 0,link:Te.details.action?{href:Te.details.action.href,label:Te.details.action.label,target:Te.details.action.target}:void 0}:null,tt=ne.useMemo(()=>[...a.eras??[]].sort((Ne,V)=>V.year-Ne.year),[a.eras]),yt=o?.media?.[0]?.publicUrl,xt=(()=>{const Ne=ye+f*.5,V=tt.length>0?tt.find(gt=>L(gt.year)<=Ne):void 0;return V?V.media?.src??null:yt||(tt.length>0?tt[tt.length-1].media?.src??null:null)})(),pt=me?.definition.branch??null,ft=pt?bN(pt,me?.definition??null,a,L,A):[],je=ne.useCallback(Ne=>{const V=B.find(z=>z.nodeId===Ne);if(!V||!c.current||(M(Ne),H<=0))return;const gt=Math.max(0,Math.min(H,V.canvasY-f*.4));u.current={nodeId:Ne,targetShift:gt};const ct=gt/H,pe=G+ct*Q,Ie=c.current.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:Ie+pe,behavior:"smooth"})},[B,H,G,Q,f]);return S.jsx("div",{ref:c,className:"relative z-[5]",style:{height:Se},children:S.jsxs("div",{className:"sticky top-0 overflow-hidden bg-[var(--color-surface-dark,#060610)]",style:{height:f},children:[S.jsx(Vm,{activeSrc:xt,viewportWidth:p,viewportHeight:f}),S.jsx("div",{className:"absolute inset-0 z-10",style:{filter:b==="stories"?"blur(7.5px)":void 0,transition:"filter 300ms ease",pointerEvents:b==="stories"?"none":void 0},children:S.jsx("div",{className:"absolute inset-0",style:{maskImage:"linear-gradient(to bottom, transparent 0%, black 120px)"},children:S.jsx("div",{className:"absolute inset-0",style:{willChange:"transform",transform:`translateY(${-ye}px)`},children:S.jsxs("div",{className:"relative w-full",style:{height:A},children:[S.jsxs("svg",{width:p,height:A,className:"pointer-events-none absolute inset-0 overflow-visible","aria-hidden":"true",children:[S.jsxs("defs",{children:[S.jsxs("mask",{id:"m-branch-mask",children:[S.jsx("rect",{x:-500,y:-500,width:p+1e3,height:A+1e3,fill:"white"}),B.flatMap(Ne=>oN(Ne,k)).map((Ne,V)=>Ne.type==="circle"?S.jsx("circle",{cx:Ne.cx,cy:Ne.cy,r:Ne.r,fill:"black"},V):S.jsx("rect",{x:Ne.x,y:Ne.y,width:Ne.width,height:Ne.height,rx:Ne.rx,transform:Ne.transform,fill:"black"},V))]}),ft.map((Ne,V)=>{if(!Ne.fadeStart&&!Ne.fadeEnd)return null;const gt=SN(Ne,A);return S.jsx("linearGradient",{id:`m-hl-grad-${V}`,x1:0,y1:0,x2:0,y2:A,gradientUnits:"userSpaceOnUse",children:gt.map((ct,pe)=>S.jsx("stop",{offset:ct.offset,stopColor:"white",stopOpacity:ct.opacity},pe))},`m-hl-grad-${V}`)}),S.jsxs("mask",{id:"m-hl-region-mask",children:[S.jsx("rect",{x:-500,y:-500,width:p+1e3,height:A+1e3,fill:"black"}),ft.map((Ne,V)=>{const gt=D.find(pe=>pe.branchId===Ne.branchId);if(!gt)return null;const ct=Ne.fadeStart||Ne.fadeEnd;return S.jsx("path",{d:gt.pathData,fill:"none",stroke:ct?`url(#m-hl-grad-${V})`:"white",strokeWidth:gt.strokeWidth+2,strokeLinecap:"round",strokeLinejoin:"round"},`m-hlm-${Ne.branchId}`)})]})]}),S.jsx("g",{mask:"url(#m-branch-mask)",className:"pointer-events-none",opacity:ft.length>0?.35:1,style:{transition:"opacity 300ms ease"},children:D.map(Ne=>S.jsx("path",{d:Ne.pathData,fill:"none",stroke:Ne.strokeColor,strokeWidth:Ne.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},Ne.branchId))}),ft.length>0&&S.jsx("g",{mask:"url(#m-branch-mask)",className:"pointer-events-none",children:S.jsx("g",{mask:"url(#m-hl-region-mask)",children:D.map(Ne=>S.jsx("path",{d:Ne.pathData,fill:"none",stroke:Ne.strokeColor,strokeWidth:Ne.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},`m-hl-${Ne.branchId}`))})})]}),S.jsx("svg",{width:p,height:A,className:"pointer-events-none absolute inset-0 overflow-visible",children:B.map(Ne=>S.jsx("g",{className:"pointer-events-auto",children:S.jsx(lN,{computedNode:Ne,computedNodes:B,isActive:y===Ne.nodeId,accentColor:X,lineThickness:k,onActivate:()=>Ne.definition.details?I(Ne.nodeId):je(Ne.nodeId)})},Ne.nodeId))}),S.jsx(uN,{canvasY:Z,accentColor:X,content:e,cards:i,logoCenterX:se,containerWidth:p})]})})})}
4127),S.jsx(vE,{computedNodes:B,totalCanvasHeight:A,viewportHeight:f,verticalShift:ye,progressCanvasY:T,accentColor:X,onNodeClick:je}),S.jsx(yN,{visible:b==="stories",storylines:r,verticalShift:ye,totalCanvasHeight:A,viewportWidth:p,yearToCanvasY:L}),S.jsx(Wm,{active:b,onChange:$}),S.jsx(cE,{content:Ze,onClose:()=>I(null),accentColor:X})]})})}const yb=60,MN="var(--spacing) * 2",AN=8,xp=350,yp=160,bb=176,Sb=40;function yE({content:a,accentColor:e,maxHeight:i,onClose:r}){const[o,c]=ne.useState(null),[u,f]=ne.useState(!1),[h,p]=ne.useState(!1),x=ne.useRef(null),g=ne.useRef(null),v=ne.useRef(a);v.current=a;const y=a?.id??null;if(ne.useEffect(()=>{const L=g.current;if(g.current=y,y!==L)return x.current&&clearTimeout(x.current),L===null&&y!==null?(c(v.current),f(!0),x.current=setTimeout(()=>p(!0),xp)):L!==null&&y===null?(p(!1),x.current=setTimeout(()=>{f(!1),x.current=setTimeout(()=>c(null),xp)},yp)):(p(!1),x.current=setTimeout(()=>{c(v.current),p(!0)},yp)),()=>{x.current&&clearTimeout(x.current)}},[y]),!o&&!u)return null;const{eyebrow:M,headline:T,bodyHtml:E,image:b,link:R}=o??{},C=Math.max(12,Math.min(48,Math.round(i*.12))),I=Math.max(16,Math.min(56,Math.round(i*.14))),U=Math.max(16,Math.min(48,I)),B=r?yb+AN:C,D=r?`calc(${yb}px + ${MN})`:`${C}px`,A=Math.max(0,i-B-C);return S.jsxs("div",{className:"absolute z-[55] overflow-hidden bg-white",style:{left:bb,right:bb,bottom:Sb,maxHeight:i,transform:u?"translateY(0)":`translateY(calc(100% + ${Sb+8}px))`,transition:`transform ${xp}ms cubic-bezier(0.4, 0, 0.2, 1)`,pointerEvents:h?"auto":"none"},onClick:L=>L.stopPropagation(),children:[r&&S.jsx("button",{type:"button",onClick:r,"aria-label":TYPO3.lang["20years.aria.close"],className:"absolute z-10 flex h-11 w-11 cursor-pointer items-center justify-center transition-opacity active:opacity-80",style:{top:16,right:16,background:e},children:S.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M6 6l12 12M18 6L6 18",stroke:"#1c1b1b",strokeWidth:"2",strokeLinecap:"square"})})}),S.jsxs("div",{className:"flex items-start",style:{gap:U,padding:`${D} ${I}px ${C}px`,opacity:h?1:0,transition:`opacity ${yp}ms ease`},children:[b?.src&&S.jsxs("figure",{className:"m-0 flex max-w-[30%] shrink-0 flex-col gap-2",children:[S.jsx("img",{src:b.src,alt:b.alt??"",className:"max-w-full object-contain object-left-top",style:{maxHeight:A-(b.caption?40:0)}}),b.caption&&S.jsx("figcaption",{className:"font-display text-[13px] leading-[1.4] text-[#1c1b1b]/70",children:b.caption})]}),S.jsxs("div",{className:"flex min-w-0 max-w-[860px] flex-1 flex-col gap-5 overflow-y-auto [&::-webkit-scrollbar]:hidden",style:{maxHeight:A,scrollbarWidth:"none"},children:[S.jsxs("div",{className:"flex flex-col gap-3",children:[M&&S.jsxs("div",{className:"flex w-fit flex-col gap-1.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"font-display text-[15px] font-bold uppercase leading-[1.2] tracking-[0.12em] text-[#1c1b1b]",children:M})]}),T&&S.jsx("h2",{className:"m-0 font-display text-[34px] font-bold leading-[1.15] text-[#1c1b1b]",style:{hyphens:"manual"},children:nn(T)})]}),E&&S.jsx("div",{className:"info-pane-rte m-0 font-display text-[18px] font-normal leading-[1.55] text-[#1c1b1b] [&_a]:underline [&_p]:m-0 [&_p+p]:mt-3",style:{hyphens:"manual"},dangerouslySetInnerHTML:{__html:E}}),R&&S.jsxs("a",{href:R.href,target:R.target,rel:R.target==="_blank"?"noopener noreferrer":void 0,className:"inline-flex h-12 w-fit shrink-0 cursor-pointer items-center gap-2 px-6 font-display text-[16px] font-bold text-[#1c1b1b] transition-opacity active:opacity-90",style:{background:e},children:[S.jsx("span",{children:R.label}),S.jsx("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M5 12h14M13 6l6 6-6 6",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"square"})})]})]})]})]})}const bp=110,Eb=18,bE=44,af=1.25,wN=120,TN=200,Mb=180,RN=128,CN=.64,IN=1.2,SE=160,DN=120,NN=200,LN=300,$m=40,hs=52,ys=48,EE=-8,eg=4,Sf=100,PN=5,ON=Sf/2,ME=ys/2+eg,AE=$m/2+4,pf=hs/2+4,BN=ys/2-6,wE=2,UN=Math.sqrt(ME**2-BN**2);function kN(a){const e=Math.max(2,a),r=ys/2*2+EE,o=(e-1)*r/2+wE;return Math.floor(o+UN)}function yo(a){if(a.type==="project")return Cn(a)?AE:Eb;if(a.type==="start"||a.type==="milestone")return pf;if(a.type==="founding")return ON;if(a.type==="merge"){const e=a.mergeImages??[];if(e.length===1)return pf;const i=e.length>=2?e.length:a.fromBranches.length;return kN(i)}return Eb}function zN(a){return a.type==="founding"?Sf/2:a.type==="start"||a.type==="milestone"?pf:a.type==="merge"?a.mergeImages?.length===1?pf:ys/2-6+ME:Cn(a)?AE:18}function TE(){return{left:wN+bE,right:TN}}function _N(a,e){const i=a.map(g=>g.position),{left:r,right:o}=TE(),c=r,u=e-o,f=u-c,h=(c+u)/2,p=Math.max(Math.max(...i),-Math.min(...i),0);if(p===0)return{branchXMap:new Map(a.map(g=>[g.id,h])),laneGap:Mb};const x=Math.min(Mb,f/2/p);return{branchXMap:new Map(a.map(g=>[g.id,h+g.position*x])),laneGap:x}}function HN(a,e,i,r){const{timeline:o,branches:c,nodes:u}=a,f=[],h=SE,p=o.curveRadius*IN,x=new Map;{const g=new Map;for(const v of c){const y=i.get(v.id);if(y===void 0)continue;const M=r.filter(A=>A.definition.branch===v.id).sort((A,L)=>A.canvasY-L.canvasY);if(M.length===0)continue;const T=u.find(A=>(A.type==="merge"||A.type==="founding")&&A.fromBranches.includes(v.id)&&A.branch!==v.id);if(!T)continue;const E=r.find(A=>A.definition===T);if(!E)continue;const b=i.get(T.branch)??y;
4127if(Math.abs(y-b)<=1)continue;const R=E.canvasY-h,C=M.at(-1),I=C.canvasY+yo(C.definition),U=R-I;if(U<=0)continue;const B=Math.min(p,Math.max(16,U/2)),D=g.get(T);D?D.push(B):g.set(T,[B])}for(const[v,y]of g)x.set(v,Math.min(...y))}for(const g of c){const v=i.get(g.id);if(v===void 0)continue;const y=r.filter(D=>D.definition.branch===g.id).sort((D,A)=>D.canvasY-A.canvasY);if(y.length===0)continue;const M=u.find(D=>(D.type==="merge"||D.type==="founding")&&D.fromBranches.includes(g.id)&&D.branch!==g.id),T=M?r.find(D=>D.definition===M):null,E=M?.type==="merge"||M?.type==="founding"?i.get(M.branch)??v:v,b=Math.abs(v-E)>1,R=T?T.canvasY-h:M?e(M.year):e(a.timeline.endYear)+200,C=[],I=y[0];if(I.definition.type==="merge"||I.definition.type==="founding"){const D=I.canvasY-h,A=I.canvasY-yo(I.definition);A>D&&C.push(`M ${v} ${D} L ${v} ${A}`)}for(let D=0;D<y.length-1;D++){const A=y[D],L=y[D+1],X=A.canvasY+yo(A.definition),k=L.canvasY-yo(L.definition);k>X&&C.push(`M ${v} ${X} L ${v} ${k}`)}const U=y.at(-1),B=U.canvasY+yo(U.definition);if(b&&B<R){const D=R-B,A=(M?x.get(M):void 0)??Math.min(p,Math.max(16,D/2)),L=Math.max(B,R-A*2);L>B&&C.push(`M ${v} ${B} L ${v} ${L}`);const X=(R-L)/2;C.push(`M ${v} ${L}`,`C ${v} ${L+X},`,`${E} ${R-X},`,`${E} ${R}`)}else b?C.push(`M ${v} ${B}`,`C ${v} ${B+24},`,`${E} ${R-24},`,`${E} ${R}`):!b&&B<R&&C.push(`M ${v} ${B} L ${v} ${R}`);C.length>0&&f.push({branchId:g.id,pathData:C.join(" "),strokeWidth:o.lineThickness,strokeColor:o.color})}return f}function FN(a,e){const{timeline:i,branches:r,nodes:o}=a,c=Math.max(RN,i.pixelsPerYear*CN),u=SE,f=new Map(o.filter(D=>D.type==="merge"||D.type==="founding").map(D=>[D.year,u/2])),h=DN,p=[...new Set(o.map(D=>D.year))].sort((D,A)=>D-A);for(const D of o){if(D.type!=="merge"&&D.type!=="founding")continue;const A=p.indexOf(D.year);if(A<=0)continue;const L=p[A-1],X=o.filter(Y=>Y.year===L&&D.fromBranches.includes(Y.branch));if(X.length===0)continue;const G=Math.max(...X.map(Y=>yo(Y)))+u+h-c;f.set(D.year,Math.max(f.get(D.year)??0,G))}for(const[D,A]of f)f.set(D,Math.min(A,NN));const x=new Map;for(const D of o){const A=`${D.year}:${D.branch}`;x.set(A,(x.get(A)??0)+1)}const g=[...new Set(o.map(D=>D.year))].sort((D,A)=>D-A);for(let D=0;D<g.length-1;D++){const A=g[D];let L=0;for(const[X,k]of x)X.startsWith(`${A}:`)&&(L=Math.max(L,k-1));if(L>0){const X=g[D+1];f.set(X,(f.get(X)??0)+L*bp)}}const v=Am(i.startYear,i.endYear,o.map(D=>D.year),c,LN,f),y=v(i.endYear)+1200,{branchXMap:M,laneGap:T}=_N(r,e),{left:E,right:b}=TE(),R=e-b,C=(E+R)/2,I=o.map((D,A)=>({nodeId:`node-${A}
4127`,definition:D,canvasX:M.get(D.branch)??C,canvasY:v(D.year)})),U=new Map;for(let D=0;D<I.length;D++){const A=I[D].definition.branch;U.has(A)||U.set(A,[]),U.get(A).push(D)}for(const D of U.values()){D.sort((A,L)=>I[A].canvasY-I[L].canvasY);for(let A=1;A<D.length;A++){const L=I[D[A-1]],X=I[D[A]];X.canvasY-L.canvasY<bp&&(X.canvasY=L.canvasY+bp)}}const B=HN(a,v,M,I);return{computedNodes:I,computedBranchPaths:B,totalCanvasHeight:y,centerX:C,yearToCanvasY:v,branchXMap:M,laneGap:T}}function VN(a,e,i){const r=i*.25,o=i*.65,c=i*.4,u=a.filter(f=>{const h=f.canvasY-e;return h>=r&&h<=o});return u.length>0?u.reduce((f,h)=>{const p=Math.abs(f.canvasY-e-c);return Math.abs(h.canvasY-e-c)<p?h:f}).nodeId:null}const RE="#f507ed";function GN({cx:a,cy:e,isActive:i,accentColor:r,onActivate:o}){const c=PN;return S.jsxs("g",{onClick:o,className:"cursor-pointer",children:[S.jsx("circle",{cx:a,cy:e,r:18,fill:"transparent"}),S.jsx("circle",{cx:a,cy:e,r:i?c+3:c,fill:i?r:"var(--color-surface-dark,#060610)",stroke:r,strokeWidth:2,style:{transition:"r .25s, fill .25s"}})]})}function Ef({computedNode:a,isActive:e,accentColor:i,lineThickness:r,onActivate:o,imgSize:c,usePlaceholder:u=!1,mediaOverride:f}){const{hovered:h,hoverProps:p}=Cr(),{canvasX:x,canvasY:g,definition:v}=a,y=e||h,M=f!==void 0?f:Gi(v),T=M?.src;if(!T&&!u)return S.jsx(GN,{cx:x,cy:g,isActive:e,accentColor:i,onActivate:o});const E=c/2,b=E+4,R=2*Math.PI*b,C=`m-round-clip-${a.nodeId}`;return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:S.jsx("clipPath",{id:C,children:S.jsx("circle",{cx:x,cy:g,r:y?b:E,style:{transition:"r 0.3s ease-out"}})})}),S.jsxs("g",{onClick:o,className:"cursor-pointer",...p,children:[S.jsx("circle",{cx:x,cy:g,r:y?b:E,fill:T?"#ffffff":RE,style:{transition:"r 0.3s ease-out"}}),T&&M&&(()=>{const I=!!v.isLogo||!!M.isLogo,U=I?b*Tr:b;return S.jsx("image",{href:T,x:x-U,y:g-U,width:U*2,height:U*2,clipPath:`url(#${C})`,preserveAspectRatio:I?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"})})(),S.jsx("circle",{cx:x,cy:g,r:b,fill:"none",stroke:i,strokeWidth:r,strokeLinecap:"round",strokeDasharray:y?`${R} 0`:`${R*.75} ${R*.25}`,strokeDashoffset:y?0:R*.75,style:{transition:"stroke-dasharray 0.3s ease, stroke-dashoffset 0.3s ease"}})]})]})}function jN(a){return S.jsx(Ef,{...a,imgSize:hs,usePlaceholder:!0})}function YN(a){return S.jsx(Ef,{...a,imgSize:$m})}function XN(a){return S.jsx(Ef,{...a,imgSize:hs,usePlaceholder:!0})}function CE(a,e,i){const r=ys/2,o=EE,c=r*2+o,u=(i-1)*c,f=r-6;return Array.from({length:i},(h,p)=>{const x=p%2!==0,g=p===i-1;return{cx:a-u/2+p*c+(g?wE:0),cy:e+(x?f:-f)}})}function ZN(a,e,i){if(a.length===0)return"";const r=a.map(({cx:f,cy:h})=>{const p=i-h,x=Math.sqrt(Math.max(0,e*e-p*p)),g=h<i;return{leftX:f-x,rightX:f+x,rightAngle:Math.atan2(p,x),leftAngle:Math.atan2(p,-x),sweep:g?1:0}}),o=f=>f.toFixed(2),c=[`M ${o(r[0].leftX)} ${o(i)}`],u=e*.6;for(let f=0;f<r.length;f++){const h=r[f];if(c.push(`A ${e} ${e} 0 1 ${h.sweep} ${o(h.rightX)} ${o(i)}`),f===r.length-1)break;const p=r[f+1],x=h.sweep===1?1:-1,g=p.sweep===1?1:-1,v=x*-Math.sin(h.rightAngle),y=x*Math.cos(h.rightAngle),M=g*-Math.sin(p.leftAngle),T=g*Math.cos(p.leftAngle),E=h.rightX+v*u,b=i+y*u,R=p.leftX-M*u,C=i-T*u;c.push(`C ${o(E)} ${o(b)} ${o(R)} ${o(C)} ${o(p.leftX)} ${o(i)}`)}return c.join(" ")}function WN({computedNode:a,computedNodes:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c}){const{hovered:u,hoverProps:f}=Cr(),{canvasX:h,canvasY:p,definition:x}=a,g=i||u,v=x;if((v.mergeImages?.length??0)===1)return S.jsx(Ef,{computedNode:a,computedNodes:e,isActive:i,accentColor:r,lineThickness:o,onActivate:c,imgSize:hs,usePlaceholder:!0,mediaOverride:v.mergeImages[0]});const y=ys/2,T=y+eg,E=2*Math.PI*T,b=v.fromBranches.map(A=>{const L=e.filter(ee=>"branch"in ee.definition&&ee.definition.branch===A&&ee.definition.year<=x.year),X=L.find(ee=>ee.definition.type==="start"),k=[...L].sort((ee,Z)=>Z.definition.year-ee.definition.year).find(ee=>Cn(ee.definition)),G=X?Gi(X.definition):void 0,Y=k?Gi(k.definition):void 0;return G??Y??null}),R=v.mergeImages??[],C=R.length>=2?R.length:Math.max(2,v.fromBranches.length),I=CE(h,p,C),U=R.length>=2?R:[...b].reverse(),B=ZN(I,T,p),D=I.map(A=>({cx:h-(A.cy-p),cy:p+(A.cx-h)}));return S.jsxs(S.Fragment,{children:[S.jsx("defs",{children:D.map((A,L)=>S.jsx("clipPath",{id:`m-merge-clip-${L}-${a.nodeId}`,children:S.jsx("circle",{cx:A.cx,cy:A.cy,r:g?T:y,style:{transition:"r 0.4s ease-out"}})},L))}),S.jsxs("g",{onClick:c,className:"cursor-pointer",...f,children:[D.map((A,L)=>
4127S.jsx("circle",{cx:A.cx,cy:A.cy,r:g?T:y,fill:U[L]?"#ffffff":RE,style:{transition:"r 0.4s ease-out"}},`bg-${L}`)),D.map((A,L)=>{const X=U[L];if(!X)return null;const k=!!X.isLogo,G=k?T*Tr:T;return S.jsx("image",{href:X.src,x:A.cx-G,y:A.cy-G,width:G*2,height:G*2,clipPath:`url(#m-merge-clip-${L}-${a.nodeId})`,preserveAspectRatio:k?"xMidYMid meet":"xMidYMid slice",className:"pointer-events-none"},`img-${L}`)})]}),S.jsxs("g",{transform:`rotate(90, ${h}, ${p})`,onClick:c,className:"cursor-pointer",...f,children:[S.jsx("path",{d:B,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round"}),I.map((A,L)=>{const X=p-A.cy,k=Math.sqrt(Math.max(0,T*T-X*X)),G=A.cy<p,Y=H=>(H%(2*Math.PI)+2*Math.PI)%(2*Math.PI),ee=Y(Math.atan2(X,k)),Z=Y(Math.atan2(X,-k)),_=G?ee:Z,F=G?Z:ee,se=(F-_+2*Math.PI)%(2*Math.PI)/(2*Math.PI)*E,fe=-(_/(2*Math.PI))*E,ae=-(F/(2*Math.PI))*E;return S.jsx("circle",{cx:A.cx,cy:A.cy,r:T,fill:"none",stroke:r,strokeWidth:o,strokeLinecap:"butt",strokeDasharray:g?`${se} ${E-se}`:`0 ${E}`,strokeDashoffset:g?fe:ae,style:{transition:"stroke-dasharray 0.4s ease, stroke-dashoffset 0.4s ease"}},`arc-${L}`)})]})]})}function QN({computedNode:a,onActivate:e}){const{canvasX:i,canvasY:r}=a,o=Sf;return S.jsxs("g",{onClick:e,className:"cursor-pointer",children:[S.jsx("rect",{x:i-o/2,y:r-o/2,width:o,height:o,fill:"transparent"}),S.jsx("image",{href:gs,x:i-o/2,y:r-o/2,width:o,height:o,preserveAspectRatio:"xMidYMid meet",className:"pointer-events-none"})]})}function qN(a,e){const{canvasX:i,canvasY:r,definition:o}=a;if(o.type==="founding")return[{type:"circle",cx:i,cy:r,r:Sf/2+e/2}];if(o.type==="milestone"){const c=hs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(o.type==="merge"){const c=o.mergeImages??[];if(c.length===1){const p=hs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:p}]}const f=ys/2+eg+e/2,h=c.length>=2?c.length:Math.max(2,o.fromBranches.length);return CE(i,r,h).map(p=>({type:"circle",cx:i-(p.cy-r),cy:r+(p.cx-i),r:f}))}if(o.type==="start"){const c=hs/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}if(Cn(o)){const c=$m/2+4+e/2;return[{type:"circle",cx:i,cy:r,r:c}]}return[]}function KN(a){switch(a.computedNode.definition.type){case"start":return S.jsx(jN,{...a});case"merge":return S.jsx(WN,{...a});case"project":return S.jsx(YN,{...a});case"founding":return S.jsx(QN,{...a});case"milestone":return S.jsx(XN,{...a})}}const _l=160;function JN({canvasY:a,accentColor:e,content:i,cards:r=[],logoCenterX:o,containerWidth:c}){const u=!!(i?.header||i?.subheader||i?.bodytext),f=r.length>0;if(!u&&!f)return null;const h=o??(c?c/2:void 0),p=h!==void 0?c!==void 0?Math.max(8,Math.min(h-_l/2,c-_l-8)):h-_l/2:void 0;return S.jsxs("div",{className:"absolute left-0 right-0",style:{to
4127p:a},children:[S.jsx("div",{className:`mb-10 flex ${p===void 0?"justify-center":""}`,children:S.jsx("img",{src:gs,alt:"Implenia",style:{width:_l,height:_l,objectFit:"contain",marginLeft:p}})}),u&&S.jsxs("div",{className:"mx-auto mb-10 flex max-w-[560px] flex-col gap-4 px-5 text-left",children:[(i.subheader||i.header)&&S.jsxs("div",{className:"flex flex-col gap-2",children:[i.subheader&&S.jsxs("div",{className:"flex w-fit flex-col gap-2.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[14px] font-bold uppercase leading-[1.48] tracking-[2px]",style:{color:e,fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.subheader)})]}),i.header&&S.jsx("h2",{className:"m-0 text-[28px] font-bold uppercase leading-[1.1] text-white",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.header)})]}),i.bodytext&&S.jsx("p",{className:"m-0 text-base leading-relaxed text-white/90",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(i.bodytext)})]}),f&&S.jsx("div",{className:"mx-auto flex w-full flex-row flex-wrap justify-center gap-6 px-4",children:r.map(x=>S.jsx($N,{card:x,accentColor:e},x.id))})]})}function $N({card:a,accentColor:e}){const i=a.link,r=i?.href,o=i?.linkText??TYPO3.lang["20years.label.link.readmore"];return S.jsxs("div",{className:"flex w-[300px] shrink-0 flex-col gap-5 bg-white px-8 py-10",children:[(a.subheader||a.header)&&S.jsxs("div",{className:"flex flex-col gap-2",children:[a.subheader&&S.jsxs("div",{className:"flex w-fit flex-col gap-2.5",children:[S.jsx("span",{className:"block h-0.5 w-[80%]",style:{background:e}}),S.jsx("span",{className:"text-[13px] font-bold uppercase leading-[1.48] tracking-[2px] text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.subheader)})]}),a.header&&S.jsx("h3",{className:"m-0 text-[22px] font-bold leading-[1.3] text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.header)})]}),a.bodytext&&S.jsx("p",{className:"m-0 text-sm leading-relaxed text-[#1c1b1b]",style:{fontFamily:"'Source Sans Pro', sans-serif",hyphens:"manual"},children:nn(a.bodytext)}),r&&S.jsxs("a",{href:r,target:i?.target??void 0,rel:i?.target==="_blank"?"noopener noreferrer":void 0,className:"inline-flex w-fit items-center gap-2 px-5 py-2 text-sm font-bold text-[#1c1b1b] transition-opacity active:opacity-80",style:{background:e,fontFamily:"'Source Sans Pro', sans-serif"},children:[o,S.jsx(Mm,{className:"h-4 w-4 shrink-0"})]})]})}function eL(a){const e=a.detail,i=e?.image?.[0]??a.cardImage?.[0];return{id:a.id,eyebrow:a.year>0?String(a.year):e?.eyebrow,headline:e?.headline??a.title,bodyHtml:e?.body,image:i?.publicUrl?{src:i.publicUrl,alt:i.properties?.alternative??void 0,caption:i.properties?.description||i.properties?.title||i.properties?.alternative||void 0}:void 0,link:e?.action?.href?{href:e.action.href,label:e.action.linkText??e.action.title??TYPO3.lang["20years.label.view.story"],target:e.action.target??void 0}:void 0}}const ps=52,ts=ps/2,tL=ps+16,nL=ps+24,Ql=10,Ab=bE+36,wb=20,iL=96,IE=ps+Ql*2,aL=IE+12;function rL(a,e){if(a<=0)return{laneXs:[],contentWidth:e};if(a===1)return{laneXs:[e/2],contentWidth:e};const i=Math.max(0,e-Ab-wb),r=Math.min(iL,Math.max(aL,i/(a-1))),o=(a-1)*r,c=(e-o)/2,u=Math.max(Ab,c),f=Array.from({length:a},(p,x)=>u+x*r),h=Math.max(e,u+o+IE/2+wb);return{laneXs:f,contentWidth:h}}const sL=16;function oL({storyline:a,laneX:e,yearToCanvasY:i,onNodeClick:r}){const{title:o,color:c,nodes:u}=a,f=ne.useRef(null),[h,p]=ne.useState(0);if(ne.useLayoutEffect(()=>{f.current&&p(f.current.offsetWidth)},[o]),u.length===0)return null;const x=[...u].sort((k,G)=>k.year-G.year),g=[];for(let k=0;k<x.length;k++){const G=i(x[k].year);g.push(k===0?G:Math.max(G,g[k-1]+tL))}const v=Xm(a),y=a.detail?.image?.[0],M=v?g[0]-nL:null,T=M!==null?[M,...g]:g,E=T[0],b=T[T.length-1],R=E-ts-Ql,C=h>0?h+sL*2:0,I=R-C,B=b+ts+Ql-I,D=e-ts-Ql,A=ps+Ql*2,L=R-C/2;function X(k,G,Y,ee,Z){return S.jsxs("div",{className:"absolute rounded-full overflow-hidden",style:{left:e-ts,top:G-ts,width:ps,height:ps,background:c,cursor:ee?"pointer":"default"},onClick:_=>{_.stopPropagation(),ee&&Z()},children:[Y?S.jsx("img",{src:Y.publicUrl,alt:Y.properties?.alternative??"",className:"h-full w-full object-cover"}):S.jsx("div",{className:"h-full w-full bg-black/30"}),ee&&S.jsx("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:S.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[S.jsx("circle",{cx:"12",cy:"12",r:"12",fill:c}),S.jsx("path",{d:"M12 7v10M7 12h10",stroke:cc(c),strokeWidth:"2",strokeLinecap:"round"})]})})]},k)}return S.jsxs(S.Fragment,{children:[S.jsx("span",{ref:f,className:"absolute pointer-events-none whitespace-nowrap font-display text-[16px] font-bold leading-[1.15]",style:{left:e,top:L,color:c,transform:"translate(-50%, -50%) rotate(-90deg)",transformOrigin:"center"},children:o}),S.jsx("div",{className:"absolute rounded-full pointer-events-none",style:{left:D,top:I,width:A,height:B,background:"rgba(255,255,255,0.10)",border:"1px solid rgba(255,255,255,0.30)"}}),T.slice(0,-1).map((k,G)=>{const Y=k+ts,ee=T[G+1]-ts;return ee<=Y?null:S.jsx("div",{className:"absolute pointer-events-none",style:{left:e-1,top:Y,width:2,height:ee-Y,background:c}},`seg-${G}`)}),M!==null&&X("branch",M,y,!0,()=>r(Zm(a))),x.map((k,G)=>X(k.id,g[G],k.cardImage?.[0],Ym(k),()=>r(k)))]})}function lL({visible:a,storylines:e,verticalShift:i,totalCanvasHeight:r,viewportWidth:o,yearToCanvasY:c,accentColor:u="var(--color-accent, #FFB81C)",sheetHeight:f=480}){const[h,p]=ne.useState(null);ne.useEffect(()=>{a||p(null)},[a]);const x=e.filter(v=>v.nodes.length>0),g=rL(x.length,o);return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:"absolute inset-0 z-20 transition-opacity duration-300",style:{opacity:a?1:0,pointerEvents:a?"auto":"none"},onClick:()=>{h!==null&&p(null)},children:S.jsx("div",{className:"absolute inset-0 overflow-y-hidden overflow-x-auto [&::-webkit-scrollbar]:hidden",style:{scrollbarWidth:"none"},children:S.jsx("div",{className:"relative h-full",style:{width:g.contentWidth},children:S.jsx("div",{className:"absolute left-0 right-0 top-0",style:{willChange:"transform",transform:`translateY(${-i}px)`,maskImage:"linear-gradient(to bottom, transparent 0%, black 120px)"},children:S.jsx("div",{className:"relative w-full",style:{height:r},children:x.map((v,y)=>S.jsx(oL,{storyline:v,laneX:g.laneXs[y],yearToCanvasY:c,onNodeClick:p},v.id))})})})})}),S.jsx(yE,{content:h?eL(h):null,accentColor:u,maxHeight:f,onClose:()=>p(null)})]})}const cL=16,Tb=150;function uL({computedNode:a,isActive:e,accentColor:i,side:r,maxWidth:o,onActivate:c}){const{canvasX:u,canvasY:f,definition:h}=a;if(!h.label&&!h.year)return null;const p=zN(h)+cL,x=r==="right"?u+p:u-p-o;return S.jsx("foreignObject",{x,y:f-Tb/2,width:o,height:Tb,children:S.jsxs("button",{type:"button",onClick:c,className:`flex h-full cursor-pointer flex-col justify-center gap-0.5 bg-transparent ${r==="right"?"items-start text-left":"items-end text-right"}`,style:{width:o},children:[S.jsx("span",{className:"font-display font-medium text-lg text-white",children:h.year}),S.jsx("span",{className:"font-display font-bold uppercase leading-[1.1] text-[20px] transition-colors duration-300",style:{color:e?i:"white",hyphens:"manual",overflowWrap:"break-word",maxWidth:"100%"},children:h.label})]})})}const fL=.24,DE=72,dL=44,Sp=DE+dL+12,hL=80,pL=24,mL=40,Rb=60;function gL(a,e,i,r,o){const c=i.nodes.filter(g=>g.type==="merge"||g.type==="founding"),u=[],f=new Set;u.push({branchId:a,fromY:0,toY:o,fadeStart:!1,fadeEnd:!1}),f.add(a);let h=[a];for(;h.length>0;){const g=[];for(const v of h)for(const y of c)y.fromBranches.includes(v)&&!f.has(y.branch)&&(f.add(y.branch),u.push({branchId:y.branch,fromY:r(y.year),toY:o,fadeStart:!0,fadeEnd:!1}),g.push(y.branch));h=g}const p=e?.year??i.timeline.endYear,x=c.filter(g=>g.branch===a&&g.year<=p);for(const g of x)for(const v of g.fromBranches)f.has(v)||(f.add(v),u.push({branchId:v,fromY:0,toY:r(g.year),fadeStart:!1,fadeEnd:!0}));return u}function vL(a,e){const i=[];if(a.fadeStart){const r=Math.max(0,a.fromY-Rb);r>0&&i.push({offset:0,opacity:0}
4127),i.push({offset:r/e,opacity:0}),i.push({offset:a.fromY/e,opacity:1})}else i.push({offset:0,opacity:1});if(a.fadeEnd){i.push({offset:a.toY/e,opacity:1});const r=Math.min(e,a.toY+Rb);i.push({offset:r/e,opacity:0}),r<e&&i.push({offset:1,opacity:0})}else i.push({offset:1,opacity:1});return i}function xL({data:a,endScreenContent:e,endScreenCards:i,storylines:r=[],heroContent:o}){const c=ne.useRef(null),u=ne.useRef(null),[f,h]=ne.useState(()=>window.innerHeight/af),[p,x]=ne.useState(()=>window.innerWidth/af),[g,v]=ne.useState(0),[y,M]=ne.useState(null),[T,E]=ne.useState(null),[b,R]=ne.useState(0),[C,I]=ne.useState("history"),U=af;ne.useEffect(()=>{function pe(){h(window.innerHeight/U),x(window.innerWidth/U)}return pe(),window.addEventListener("resize",pe,{passive:!0}),()=>window.removeEventListener("resize",pe)},[U]);const B=FN(a,p),{computedNodes:D,computedBranchPaths:A,totalCanvasHeight:L,yearToCanvasY:X}=B,k=260,G=pe=>pe+62+k>p-32?"left":"right",Y=a.timeline.color,ee=a.timeline.lineThickness,Z=a.timeline.startScrollPadding??f*.5,_=a.timeline.endScrollPadding??0,se=Math.max(...D.map(pe=>pe.canvasY))+200,fe=new Set(a.nodes.filter(pe=>pe.type==="merge"||pe.type==="founding").flatMap(pe=>pe.fromBranches.filter(Ie=>Ie!==pe.branch))),ae=a.branches.find(pe=>!fe.has(pe.id)),H=(ae?B.branchXMap.get(ae.id):void 0)??p/2,Q=r.length>0?Math.max(...r.flatMap(pe=>pe.nodes.map(Ie=>Ie.year))):a.timeline.endYear,Se=X(Q),ye=C==="stories"?Math.max(0,Se-f*.4):Math.max(0,L-f*.5),Ce=ye*a.timeline.scrollFactor,$=f+Z+Ce+_;ne.useEffect(()=>{function pe(){const Ie=c.current;if(!Ie)return;const z=Math.max(0,-Ie.getBoundingClientRect().top)/U;if(Ce<=0)return;const N=z-Z,W=Math.max(0,Math.min(1,N/Ce));v(W);const xe=W*ye,Ae=VN(D,xe,f);if(u.current!==null){const{nodeId:Ge,targetShift:Be}=u.current,Je=D.find(Ye=>
4127Ye.nodeId===Ge),dt=Math.abs(xe-Be)<20,Pe=Je?Je.canvasY-xe:-1,Le=Pe>=f*.25&&Pe<=f*.65;dt&&Le&&(u.current=null)}else{const Ge=se-xe<f*.8;N<=0||Ge?(M(null),E(null)):Ae!==null&&M(Ae)}let ve;if(z<=0)ve=0;else if(z<=Z)ve=z/Z*(f/2);else if(N<=Ce)ve=W*ye+f/2;else{const Ge=_>0?Math.min(1,(N-Ce)/_):1,Be=ye+f/2,Je=Math.max(L,ye+f);ve=Be+Ge*(Je-Be)}R(ve)}return pe(),window.addEventListener("scroll",pe,{passive:!0}),()=>window.removeEventListener("scroll",pe)},[D,_,se,ye,Z,Ce,L,f,U]);const me=g*ye,Me=ne.useRef(null),Te=ne.useCallback(pe=>{if(pe===C)return;const Ie=c.current;if(Me.current=null,Ie&&Ce>0){const N=Math.max(0,-Ie.getBoundingClientRect().top)/U-Z;if(N>0){const W=Math.min(1,N/Ce);Me.current=W*ye}}E(null),I(pe)},[C,ye,Z,Ce,U]);ne.useLayoutEffect(()=>{const pe=Me.current;if(Me.current=null,pe===null||!c.current)return;const Ie=Math.min(pe,ye),z=ye>0?Ie/ye:0,N=c.current.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:N+(Z+z*Ce)*U})},[C,ye,Z,Ce,U]);const Ze=D.find(pe=>pe.nodeId===y)??null,tt=pe=>{const Ie=pe?.definition;return!pe||!Ie?.details?null:{id:pe.nodeId,eyebrow:String(Ie.year??""),headline:Ie.details.headline??Ie.label,bodyHtml:Ie.details.bodyText,image:Ie.details.media?.src?{src:Ie.details.media.src,alt:Ie.details.media.alt}:void 0,link:Ie.details.action?{href:Ie.details.action.href,label:Ie.details.action.label,target:Ie.details.action.target}:void 0}},yt=D.find(pe=>pe.nodeId===T)??null,xt=C==="history"?tt(yt):null,pt=Math.round(Math.min(f*fL,f-Sp-pL-mL)),ft=ne.useMemo(()=>[...a.eras??[]].sort((pe,Ie)=>Ie.year-pe.year),[a.eras]),je=o?.media?.[0]?.publicUrl,Ne=(()=>{const pe=me+f*.5,Ie=ft.length>0?ft.find(z=>X(z.year)<=pe):void 0;return Ie?Ie.media?.src??null:je||(ft.length>0?ft[ft.length-1].media?.src??null:null)})(),V=Ze?.definition.branch??null,gt=V?gL(V,Ze?.definition??null,a,X,L):[],ct=ne.useCallback(pe=>{const Ie=D.find(Ae=>Ae.nodeId===pe);if(!Ie||!c.current||(M(pe),E(pe),ye<=0))return;const z=Math.max(0,Math.min(ye,Ie.canvasY-f*.4));u.current={nodeId:pe,targetShift:z};const N=z/ye,W=Z+N*Ce,xe=c.current.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:xe+W*U,behavior:"smooth"})},[D,ye,Z,Ce,f,U]);return S.jsx("div",{ref:c,className:"relative z-[5]",style:{height:$},children:S.jsxs("div",{className:"sticky top-0 overflow-hidden bg-[var(--color-surface-dark,#060610)]",style:{height:f},children:[S.jsx(Vm,{activeSrc:Ne,viewportWidth:p,viewportHeight:f}),S.jsx("div",{className:"absolute inset-0 z-10",style:{filter:C==="stories"?"blur(7.5px)":void 0,transition:"filter 300ms ease",pointerEvents:C==="stories"?"none":void 0},children:S.jsx("div",{className:"absolute inset-0",style:{maskImage:`linear-gradient(to bottom, transparent 0px, transparent ${Sp}px, black ${Sp+hL}px)`},children:S.jsx("div",{className:"absolute inset-0",style:{willChange:"transform",transform:`translateY(${-me}px)`},children:S.jsxs("div",{className:"relative w-full",style:{height:L},children:[S.jsxs("svg",{width:p,height:L,className:"pointer-events-none absolute inset-0 overflow-visible","aria-hidden":"true",children:[S.jsxs("defs",{children:[S.jsxs("mask",{id:"m-branch-mask",children:[S.jsx("rect",{x:-500,y:-500,width:p+1e3,height:L+1e3,fill:"white"}),D.flatMap(pe=>qN(pe,ee)).map((pe,Ie)=>pe.type==="circle"?S.jsx("circle",{cx:pe.cx,cy:pe.cy,r:pe.r,fill:"black"},Ie):S.jsx("rect",{x:pe.x,y:pe.y,width:pe.width,height:pe.height,rx:pe.rx,transform:pe.transform,fill:"black"},Ie))]}),gt.map((pe,Ie)=>{if(!pe.fadeStart&&!pe.fadeEnd)return null;const z=vL(pe,L);return S.jsx("linearGradient",{id:`m-hl-grad-${Ie}`,x1:0,y1:0,x2:0,y2:L,gradientUnits:"userSpaceOnUse",children:z.map((N,W)=>S.jsx("stop",{offset:N.offset,stopColor:"white",stopOpacity:N.opacity},W))},`m-hl-grad-${Ie}`)}),S.jsxs("mask",{id:"m-hl-region-mask",children:[S.jsx("rect",{x:-500,y:-500,width:p+1e3,height:L+1e3,fill:"black"}),gt.map((pe,Ie)=>{const z=A.find(W=>W.branchId===pe.branchId);if(!z)return null;const N=pe.fadeStart||pe.fadeEnd;return S.jsx("path",{d:z.pathData,fill:"none",stroke:N?`url(#m-hl-grad-${Ie})`:"white",strokeWidth:z.strokeWidth+2,strokeLinecap:"round",strokeLinejoin:"round"},`m-hlm-${pe.branchId}`)})]})]}),S.jsx("g",{mask:"url(#m-branch-mask)",className:"pointer-events-none",opacity:gt.length>0?.35:1,style:{transition:"opacity 300ms ease"},children:A.map(pe=>S.jsx("path",{d:pe.pathData,fill:"none",stroke:pe.strokeColor,strokeWidth:pe.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},pe.branchId))}),gt.length>0&&S.jsx("g",{mask:"url(#m-branch-mask)",className:"pointer-events-none",children:S.jsx("g",{mask:"url(#m-hl-region-mask)",children:A.map(pe=>S.jsx("path",{d:pe.pathData,fill:"none",stroke:pe.strokeColor,strokeWidth:pe.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},`m-hl-${pe.branchId}`))})})]}),S.jsx("svg",{width:p,height:L,className:"pointer-events-none absolute inset-0 overflow-visible",children:D.map(pe=>{const Ie=()=>ct(pe.nodeId);return S.jsxs("g",{className:"pointer-events-auto",children:[S.jsx(uL,{computedNode:pe,isActive:y===pe.nodeId,accentColor:Y,side:G(pe.canvasX),maxWidth:k,onActivate:Ie}),S.jsx(KN,{computedNode:pe,computedNodes:D,isActive:y===pe.nodeId,accentColor:Y,lineThickness:ee,onActivate:Ie})]},pe.nodeId)})}),S.jsx(JN,{canvasY:se,accentColor:Y,content:e,cards:i,logoCenterX:H,c
4127ontainerWidth:p})]})})})}),S.jsx(vE,{computedNodes:D,totalCanvasHeight:L,viewportHeight:f,verticalShift:me,progressCanvasY:b,accentColor:Y,onNodeClick:ct}),S.jsx(lL,{visible:C==="stories",storylines:r,verticalShift:me,totalCanvasHeight:L,viewportWidth:p,yearToCanvasY:X,accentColor:Y,sheetHeight:pt}),S.jsx(Wm,{active:C,onChange:Te,top:`${DE}px`}),S.jsx(xS,{}),S.jsx(yE,{content:xt,accentColor:Y,maxHeight:pt,onClose:()=>E(null)})]})})}const Cb=768,yL=120,Ib=80;function Db(a,e,i,r,o,c){const u=i.nodes.filter(v=>v.type==="merge"||v.type==="founding"),f=[],h=new Set;f.push({branchId:a,fromX:0,toX:o,fadeStart:!1,fadeEnd:!1}),h.add(a);let p=[a];for(;p.length>0;){const v=[];for(const y of p)for(const M of u)M.fromBranches.includes(y)&&!h.has(M.branch)&&(h.add(M.branch),f.push({branchId:M.branch,fromX:lf(M,i.nodes,r),toX:o,fadeStart:!0,fadeEnd:!1}),v.push(M.branch));p=v}const x=e?.year??i.timeline.endYear,g=u.filter(v=>v.branch!==a?!1:c?c.boundaryX===null?!1:r(v.year)<=c.boundaryX:v.year<=x);for(const v of g)for(const y of v.fromBranches)h.has(y)||(h.add(y),f.push({branchId:y,fromX:0,toX:r(v.year),fadeStart:!1,fadeEnd:!0}));return f}function bL(a,e){const i=[];if(a.fadeStart){const r=Math.max(0,a.fromX-Ib);r>0&&i.push({offset:0,opacity:0}),i.push({offset:r/e,opacity:0}),i.push({offset:a.fromX/e,opacity:1})}else i.push({offset:0,opacity:1});if(a.fadeEnd){i.push({offset:a.toX/e,opacity:1});const r=Math.min(e,a.toX+Ib);i.push({offset:r/e,opacity:0}),r<e&&i.push({offset:1,opacity:0})}else i.push({offset:1,opacity:1});return i}function SL({data:a,endScreenContent:e,endScreenCards:i,storylines:r=[],heroContent:o,kiosk:c}){const[u,f]=ne.useState(()=>window.innerWidth<Cb);return ne.useEffect(()=>{function h(){f(window.innerWidth<Cb)}return window.addEventListener("resize",h,{passive:!0}),()=>window.removeEventListener("resize",h)},[]),c==="vertical"?S.jsx(wp.Provider,{value:!0,children:S.jsx(xL,{data:a,endScreenContent:e,endScreenCards:i,storylines:r,heroContent:o})}):c==="horizontal"?S.jsx(wp.Provider,{value:!0,children:S.jsx(Nb,{data:a,endScreenContent:e,endScreenCards:i,storylines:r,heroContent:o,kiosk:!0})}):u?S.jsx(EN,{data:a,endScreenContent:e,endScreenCards:i,storylines:r,heroContent:o}):S.jsx(Nb,{data:a,endScreenContent:e,endScreenCards:i,storylines:r,heroContent:o})}function Nb({data:a,endScreenContent:e,endScreenCards:i,storylines:r=[],heroContent:o,kiosk:c=!1}){const u=ne.useRef(null),f=ne.useRef(null),h=c?Wb:1,[p,x]=ne.useState(()=>window.innerHeight/h),[g,v]=ne.useState(()=>window.innerWidth/h),[y,M]=ne.useState(0),[T,E]=ne.useState(null),[b,R]=ne.useState(null),[C,I]=ne.useState(null),[U,B]=ne.useState(null),[D,A]=ne.useState(null),[L,X]=ne.useState(null),[k,G]=ne.useState(null),[Y,ee]=ne.useState(null),[Z,_]=ne.useState(null),[F,se]=ne.useState(null),fe=ne.useRef(null),ae=ne.useCallback((ie,we)=>{fe.current!==null&&cancelAnimationFrame(fe.current);const Ve=performance.now(),ke=450;se({from:ie,to:we,eased:0});const st=Mt=>{const At=Math.max(0,Math.min(1,(Mt-Ve)/ke)),St=1-(1-At)**3;At<1?(se({from:ie,to:we,eased:St}),fe.current=requestAnimationFrame(st)):(se(null),fe.current=null)};fe.current=requestAnimationFrame(st)},[]),H=ne.useCallback(()=>{fe.current!==null&&cancelAnimationFrame(fe.current),fe.current=null,se(null)},[]);ne.useEffect(()=>()=>{fe.current!==null&&cancelAnimationFrame(fe.current)},[]);const[Q,Se]=ne.useState(null),[ye,Ce]=ne.useState(0),[$,me]=ne.useState("history"),Me=ne.useRef($);Me.current=$,ne.useEffect(()=>{function ie(){x(window.innerHeight/h),v(window.innerWidth/h)}return window.addEventListener("resize",ie,{passive:!0}),()=>window.removeEventListener("resize",ie)},[h]);const[Te,Ze]=ne.useState(()=>typeof document>"u"?0:document.querySelector("header")?.offsetHeight??0);ne.useLayoutEffect(()=>{const ie=typeof document<"u"?document.querySelector("header"):null;if(!ie)return;function we(){Ze(ie.offsetHeight)}we();const Ve=new ResizeObserver(we);return Ve.observe(ie),()=>Ve.disconnect()},[]);const tt=720,yt=Math.max(0,p-Te),xt=c?72:24,pt=xt+44+16,ft=Math.max(tt,yw(a.branches,a.nodes,a.timeline.gapBetweenBranches,yt,pt)),je=g,Ne=Math.max(0,ft-yt),V=o?Math.round(je*.6):0,gt=o?V+Math.round(je*.05):void 0,ct=Tw(a,ft,je,gt,pt,Qb),{computedNodes:pe,computedBranchPaths:Ie,totalCanvasWidth:z,centerY:N,yearToCanvasX:W,branchCanvasYMap:xe}=ct,Ae=[...xe.values()],ve=Ae.length>0?(Math.min(...Ae)+Math.max(...Ae))/2:N,Ge=Math.max(0,Math.min(Ne,ve-yt/2)),Be=Math.max(0,Math.min(Ne,T??Ge)),Je=Math.max(0,(Y??0)-yt),dt=Math.max(0,Math.min(Je,Z??Je/2)),Pe=new Set(a.nodes.filter(ie=>ie.type==="merge"||ie.type==="founding").flatMap(ie=>ie.fromBranches.filter(we=>we!==ie.branch))),Le=a.branches.find(ie=>!Pe.has(ie.id)),Ye=Le?xe.get(Le.id)??N:N,He=a.timeline.color,We=a.timeline.lineThickness,lt=a.timeline.startScrollPadding??p,J=$==="stories"?0:a.timeline.endScrollPadding??p,ze=W(a.timeline.endYear),Ue=ze+Ub,Qe=tw(i?.length??0),Oe=Math.max(0,Ue+Qe-je/2),be=r.length>0?Math.max(...r.flatMap(ie=>ie.nodes.map(we=>we.year))):a.timeline.endYear,et=Math.max(0,(k??W(be))-g/2),$e=$==="stories"?et:Oe,vt=$e*a.timeline.scrollFactor,Dt=yt+lt+vt+J;ne.useEffect(()=>{function ie(){const we=u.current;if(!we)return;const Ve=Math.max(0,-we.getBoundingClientRect().top)/h;if(vt<=0)return;const ke=Ve-lt,st=Math.max(0,Math.min(1,ke/vt));M(st);const Mt=ke-vt,At=st*$e,St=V>0&&At<Math.max(0,V-je/2),Kt=Rw(pe,At,je);if(Me.current!=="stories")if(f.current!==null){const{nodeId:sn,targetShift:ut}=f.current,on=pe.find(_t=>_t.nodeId===sn),Vn=Math.abs(At-ut)<20,Wn=on?on.canvasX-At:-1,Gn=Wn>=je*.25&&Wn<=je*.75;Vn&&Gn&&(f.current=null)}else St?(R(null),I(null)):ke>0&&Kt!==null&&R(Kt);let qe;if(Ve<=0)qe=0;else if(Ve<=lt)qe=Ve/lt*(je/2);else if(ke<=vt)qe=st*$e+je/2;else{const sn=J>0?Math.min(1,Mt/J):1,ut=$e+je/2,on=Math.max(z,$e+je);qe=ut+sn*(on-ut)}Ce(qe)}return ie(),window.addEventListener("scroll",ie,{passive:!0}),()=>window.removeEventListener("scroll",ie)},[pe,J,ze,V,je,$e,lt,vt,z,p,g,h]);const $t=F?F.from+(F.to-F.from)*F.eased:y*$e,Zn=Math.max(0,Ue+$A-je/2),Yi=Math.max(0,Ue-je),Di=Zn>Yi?Math.max(0,Math.min(1,($t-Yi)/(Zn-Yi))):$t>=Yi?1:0,Dr=Di>=1,Ga=pe.find(ie=>ie.nodeId===b)??null,pi=$==="stories",Fn=pi?null:Ga,mi=pi?null:U,In=pi?null:pe.find(ie=>ie.nodeId===D)??null,an=pi?null:pe.find(ie=>ie.nodeId===L)??null,un=pi?null:pe.find(ie=>ie.nodeId===C)??null,Ni=c?un:Fn,Li=In?.definition.details?In:an?.definition.details?an:Ni;ne.useEffect(()=>{X(null)},[b,$]);const ja=!(!!mi&&!In&&!an)&&Di<.85&&Li?.definition.details?Li:null,ii=ne.useMemo(()=>[...a.eras??[]].sort((ie,we)=>we.year-ie.year),[a.eras]),Ya=o?.media?.[0]?.publicUrl,Xi=(()=>{const ie=$t+je/2,we=ii.length>0?ii.find(Ve=>W(Ve.year)<=ie):void 0;return we?we.media?.src??null:Ya||(ii.length>0?ii[ii.length-1].media?.src??null:null)})(),gi=Fn?.definition.branch??null,oa=gi?Db(gi,Fn?.definition??null,a,W,z):[],O=mi&&mi!==gi?Db(mi,In?.definition??null,a,W,z,In?void 0:{boundaryX:Q}):[],q=[...oa,...O],de=ie=>q.some(we=>we.branchId===ie.definition.branch&&ie.canvasX>=we.fromX&&ie.canvasX<=we.toX),oe=ne.useCallback(ie=>{const we=pe.find(At=>
4127At.nodeId===ie);if(!we||!u.current||(R(ie),I(ie),$e<=0))return;const Ve=Math.max(0,Math.min($e,we.canvasX-je/2));f.current={nodeId:ie,targetShift:Ve};const ke=Ve/$e,st=lt+ke*vt,Mt=u.current.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:Mt+st*h,behavior:"smooth"})},[pe,$e,lt,vt,je,h]),re=ne.useCallback(ie=>{const we=pe.find(Ve=>Ve.definition.branch===ie);we&&oe(we.nodeId)},[pe,oe]),_e=ne.useCallback(ie=>{const we=u.current;if(!we||vt<=0||$e<=0)return;const ke=Math.max(0,-we.getBoundingClientRect().top)/h-lt,Mt=Math.max(0,Math.min(1,ke/vt))*$e,St=Math.max(0,Math.min($e,Mt+ie*je*.6))/$e,Kt=we.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:Kt+(lt+St*vt)*h,behavior:"smooth"})},[$e,lt,vt,je,h]);ne.useEffect(()=>{function ie(we){const Ve=we.key==="ArrowLeft"||we.key==="ArrowRight",ke=we.key==="ArrowUp"||we.key==="ArrowDown";if(!Ve&&!ke||we.defaultPrevented||we.altKey||we.ctrlKey||we.metaKey||we.shiftKey)return;const st=Me.current==="stories",Mt=st?Je:Ne;if(ke&&Mt<=0)return;const At=document.activeElement;if(At&&(At.tagName==="INPUT"||At.tagName==="TEXTAREA"||At.isContentEditable))return;const St=u.current;if(!St)return;const Kt=St.getBoundingClientRect();if(!(Kt.top>Te+1||Kt.bottom<window.innerHeight))if(we.preventDefault(),Ve)_e(we.key==="ArrowRight"?1:-1);else{const qe=(we.key==="ArrowDown"?1:-1)*yL,sn=(ut,on)=>Math.max(0,Math.min(Mt,(ut??on)+qe));st?_(ut=>sn(ut,Mt/2)):E(ut=>sn(ut,Ge))}}return window.addEventListener("keydown",ie),()=>window.removeEventListener("keydown",ie)},[_e,Te,Ne,Ge,Je]);const Ke=ne.useCallback(ie=>{const we=ie.currentTarget.ownerSVGElement;return we?(ie.clientX-we.getBoundingClientRect().left)/h:null},[h]),Fe=ne.useRef(null),nt=ne.useCallback(ie=>{if(ie===Me.current)return;const we=u.current;if(Fe.current=null,we&&vt>0){const ke=Math.max(0,-we.getBoundingClientRect().top)/h-lt;if(ke>0){const Mt=Math.min(1,ke/vt)*$e;Fe.current=Mt,ae(Mt,Mt)}}I(null),me(ie)},[$e,lt,vt,ae,h]);return ne.useLayoutEffect(()=>{const ie=Fe.current;if(Fe.current=null,ie===null||!u.current)return;const we=Math.min(ie,$e),Ve=$e>0?we/$e:0,ke=u.current.getBoundingClientRect().top+window.scrollY,st=ke+Dt*h-window.innerHeight,Mt=Math.min(ke+(lt+Ve*vt)*h,st);window.scrollTo({top:Mt});const At=vt>0?Math.max(0,Math.min(1,((Mt-ke)/h-lt)/vt)):0;M(At);const St=At*$e;Math.abs(ie-St)>1?ae(ie,St):H()},[$,$e,lt,vt,Dt,ae,H,h]),S.jsx("div",{ref:u,className:"relative z-[5]",style:{height:Dt},children:S.jsxs("div",{className:"sticky overflow-hidden bg-[var(--color-surface-dark,#060610)]",style:{height:yt,top:Te},children:[S.jsx(Vm,{activeSrc:Xi,viewportWidth:g,viewportHeight:yt}),S.jsx("div",{className:"absolute inset-0 z-10",style:{filter:$==="stories"?"blur(7.5px)":void 0,transition:"filter 300ms ease",pointerEvents:$==="stories"?"none":void 0},children:S.jsx("div",{id:"genealogy-canvas",className:"absolute left-0 top-0",style:{width:je,height:ft,transform:`translateY(${-Be}px)`},children:S.jsx("div",{className:"absolute inset-0",style:{maskImage:"linear-gradient(to right, transparent 0%, black 300px)"},children:S.jsx("div",{className:"absolute inset-0",style:{willChange:"transform",transform:`translateX(${-$t}px)`},children:S.jsxs("div",{className:"relative h-full",style:{width:z},children:[S.jsx(Yx,{canvasX:Ue,flowerY:Ye,accentColor:He,flowerProgress:Di,cardsVisible:Dr,content:e,cards:i,renderPart:"flower"}),S.jsxs("svg",{width:z,height:ft,className:"pointer-events-none absolute inset-0 overflow-visible","aria-hidden":"true",children:[S.jsxs("defs",{children:[S.jsxs("mask",{id:"branch-line-mask",children:[S.jsx("rect",{x:-1e3,y:-1e3,width:z+2e3,height:ft+2e3,fill:"white"}),pe.flatMap(ie=>hD(ie,We)).map((ie,we)=>ie.type==="circle"?S.jsx("circle",{cx:ie.cx,cy:ie.cy,r:ie.r,fill:"black"},we):S.jsx("rect",{x:ie.x,y:ie.y,width:ie.width,height:ie.height,rx:ie.rx,transform:ie.transform,fill:"black"},we))]}),q.map((ie,we)=>{if(!ie.fadeStart&&!ie.fadeEnd)return null;const Ve=bL(ie,z);return S.jsx("linearGradient",{id:`hl-grad-${we}`,x1:0,y1:0,x2:z,y2:0,gradientUnits:"userSpaceOnUse",children:Ve.map((ke,st)=>S.jsx("stop",{offset:ke.offset,stopColor:"white",stopOpacity:ke.opacity},st))},`hl-grad-${we}`)}),S.jsxs("mask",{id:"hl-region-mask",children:[S.jsx("rect",{x:-1e3,y:-1e3,width:z+2e3,height:ft+2e3,fill:"black"}),q.map((ie,we)=>{const Ve=Ie.find(st=>st.branchId===ie.branchId);if(!Ve)return null;
4127const ke=ie.fadeStart||ie.fadeEnd;return S.jsx("path",{d:Ve.pathData,fill:"none",stroke:ke?`url(#hl-grad-${we})`:"white",strokeWidth:Ve.strokeWidth+2,strokeLinecap:"round",strokeLinejoin:"round"},`hlm-${we}`)})]})]}),S.jsx("g",{mask:"url(#branch-line-mask)",className:"pointer-events-none",opacity:q.length>0?.35:1,style:{transition:"opacity 300ms ease"},children:Ie.map(ie=>S.jsx("path",{d:ie.pathData,fill:"none",stroke:ie.strokeColor,strokeWidth:ie.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},ie.branchId))}),q.length>0&&S.jsx("g",{mask:"url(#branch-line-mask)",className:"pointer-events-none",children:S.jsx("g",{mask:"url(#hl-region-mask)",children:Ie.map(ie=>S.jsx("path",{d:ie.pathData,fill:"none",stroke:ie.strokeColor,strokeWidth:ie.strokeWidth,strokeLinecap:"round",strokeLinejoin:"round"},`hl-${ie.branchId}`))})}),S.jsx("g",{className:"pointer-events-auto",children:Ie.map(ie=>S.jsx("path",{d:ie.pathData,fill:"none",stroke:"transparent",strokeWidth:Math.max(30,ie.strokeWidth+24),strokeLinecap:"round",strokeLinejoin:"round",className:"cursor-pointer",onMouseEnter:c?void 0:we=>{B(ie.branchId),Se(Ke(we))},onMouseMove:c?void 0:we=>Se(Ke(we)),onMouseLeave:c?void 0:()=>{B(null),Se(null)},onClick:()=>re(ie.branchId)},`hit-${ie.branchId}`))})]}),S.jsx("svg",{width:z,height:ft,className:"pointer-events-none absolute inset-0 overflow-visible",children:pe.map(ie=>{const we=mi?D===ie.nodeId:Fn?.nodeId===ie.nodeId,Ve=q.length>0&&!de(ie);return S.jsxs("g",{className:"pointer-events-auto",style:{opacity:Ve?.35:1,transition:"opacity 300ms ease"},onMouseEnter:c?void 0:()=>{B(ie.definition.branch),A(ie.nodeId),ie.definition.details&&X(ie.nodeId)},onMouseLeave:c?void 0:()=>{B(null),A(null)},children:[S.jsx(yD,{computedNode:ie,centerY:N,isActive:we,accentColor:He}),S.jsx(pD,{computedNode:ie,computedNodes:pe,isActive:we,accentColor:He,lineThickness:We,onActivate:()=>oe(ie.nodeId)})]},ie.nodeId)})})]})})})})}),S.jsx(I1,{activeComputedNode:$==="stories"?null:ja,accentColor:He,viewportHeight:yt,onClose:c?()=>I(null):void 0,minTop:c?pt:void 0}),S.jsx(kD,{visible:$==="stories",storylines:r,horizontalShift:$t,totalCanvasWidth:z,yearToCanvasX:W,inHeroZone:V>0&&$t<V,onContentMaxXChange:G,verticalShift:Je/2-dt,onContentHeightChange:ee,detailTopOffset:pt}),o&&S.jsx("div",{className:"pointer-events-none absolute inset-0 z-[35] overflow-hidden",children:S.jsx("div",{className:"absolute left-0 top-0",style:{width:je,height:ft,transform:`translateY(${-Be}px)`},children:S.jsx("div",{className:"absolute inset-0",style:{willChange:"transform",transform:`translateX(${-$t}px)`},children:S.jsx("div",{className:"relative h-full",style:{width:z},children:S.jsx(E1,{canvasX:0,width:V,content:o,onCtaClick:()=>{const ie=pe.reduce((we,Ve)=>!we||Ve.canvasX<we.canvasX?Ve:we,null);ie&&oe(ie.nodeId)}})})})})}),S.jsx("div",{className:"pointer-events-none absolute inset-0 z-40",children:S.jsx(Iw,{computedNodes:pe,totalCanvasWidth:z,viewportWidth:g,horizontalShift:$t,progressCanvasX:ye,accentColor:He,yearToCanvasX:W,onNodeClick:oe})}),S.jsx("div",{className:"pointer-events-none absolute inset-0 z-[45] overflow-hidden",inert:$==="stories",style:{maskImage:"linear-gradient(to right, transparent 0%, black 300px)",filter:$==="stories"?"blur(7.5px)":void 0,transition:"filter 300ms ease"},children:S.jsx("div",{className:"absolute left-0 top-0",style:{width:je,height:ft,transform:`translateY(${-Be}px)`},children:S.jsx("div",{className:"absolute inset-0",style:{willChange:"transform",transform:`translateX(${-$t}px)`},children:S.jsx("div",{className:"relative h-full",style:{width:z},children:S.jsx(Yx,{canvasX:Ue,flowerY:Ye,accentColor:He,flowerProgress:Di,cardsVisible:Dr,content:e,cards:i,renderPart:"content"})})})})}),S.jsx(b1,{visible:y<1,onClick:()=>_e(1)}),c&&S.jsx(xS,{orientation:"horizontal",bottom:vs+24}),$==="stories"?Je>0&&S.jsx(hb,{visibleHeight:yt,contentHeight:Y??yt,scrollOffset:dt,left:10,onScroll:_}):Ne>0&&S.jsx(hb,{visibleHeight:yt,contentHeight:ft,scrollOffset:Be,left:ja&&p<750?qu+20:10,onScroll:E}),S.jsx(Wm,{active:$,onChange:nt,top:c?`${xt}px`:void 0,centerX:p<750&&$==="history"&&ja?qu+(g-qu)/2:void 0})]})})}const Ep=/placeholder_grey/i;function go(a,e){const i=TYPO3.lang[a];return e===void 0?i:i.replace("%s",e)}function Hl(a,e){return{uid:a.uid,label:a.label||String(a.year),type:a.type,reason:e}}function EL(a,e,i){return a.some(r=>r.branch===e&&r.year<=i&&!!Cn(r))}function ML(a){if(!a.details)return a;const{media:e,...i}=a.details;return{...a,details:i}}function AL(a){const e=[],i=new WeakSet,r=a.nodes.map(y=>{const M=Ep.test(y.details?.media?.src??""),T=Ep.test(y.preview?.src??""),E=Ep.test(y.circleFallback?.src??"");if(!M&&!T&&!E)return y;e.push(Hl(y,go("20years.warning.placeholder_image")));let b=y;return M&&(b=ML(b)),T&&(b={...b,preview:void 0}
4127),E&&(b={...b,circleFallback:void 0}),i.add(b),b}),o=new Map;for(const y of r){const M=o.get(y.branch);(M===void 0||y.year<M)&&o.set(y.branch,y.year)}const c=r.filter(y=>{if(y.type!=="start")return!0;const M=o.get(y.branch),T=M===void 0||y.year<=M;return T||e.push(Hl(y,go("20years.warning.node_not_first"))),T});for(const y of c)(y.type==="start"||y.type==="milestone")&&!Cn(y)&&!i.has(y)&&e.push(Hl(y,go("20years.warning.node_without_image"))),y.type==="merge"&&(y.mergeImages?.length??0)===0&&y.fromBranches.some(M=>!EL(c,M,y.year))&&e.push(Hl(y,go("20years.warning.lane_without_image")));const u=c.filter(y=>y.type==="merge"||y.type==="founding"),f=y=>c.some(M=>M.type==="start"&&M.branch===y),h=y=>u.some(M=>M.branch===y&&!M.fromBranches.includes(y)),p=y=>u.some(M=>M.fromBranches.includes(y)&&M.branch!==y),x=y=>{const M=c.filter(T=>T.branch===y);return M.length>0?M.reduce((T,E)=>E.year<T.year?E:T):void 0},g=(y,M)=>{const T=x(y);return T?Hl(T,M):{label:y,type:"start",reason:M}},v=[];for(const y of a.branches)c.some(T=>T.branch===y.id)&&(!f(y.id)&&!h(y.id)&&e.push(g(y.id,go("20years.warning.lane_without_start",y.id))),p(y.id)||v.push(y.id));if(v.length>1)for(const y of v.slice(1))e.push(g(y,go("20years.warning.lane_without_merge",y)));return{data:{...a,nodes:c},warnings:e}}function wL({warnings:a}){const[e,i]=ne.useState(!1);return a.length===0||e?null:S.jsxs("div",{role:"alertdialog","aria-label":TYPO3.lang["20years.aria.configuration.warning"],className:"fixed left-4 z-[60] w-[min(92vw,420px)] overflow-hidden rounded-lg border border-amber-300 bg-amber-50 shadow-2xl",style:{fontFamily:"'Source Sans Pro', sans-serif",top:"calc(var(--height-header, 0px) + 1rem)"},children:[S.jsxs("div",{className:"flex items-center gap-3 border-amber-200 border-b bg-amber-100 px-4 py-3",children:[S.jsx("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",className:"shrink-0 text-amber-700",children:S.jsx("path",{d:"M12 9v4m0 4h.01M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),S.jsx("p",{className:"m-0 flex-1 font-bold text-[15px] text-amber-900",children:a.length===1?`1 ${TYPO3.lang["20years.configuration.warning.singular"]}`:`${a.length} ${TYPO3.lang["20years.configuration.warning.plural"]}`}),S.jsx("button",{type:"button",onClick:()=>i(!0),"aria-label":TYPO3.lang["20years.aria.close.warning"],className:"-mr-1 shrink-0 rounded p-1 text-amber-700 transition-colors hover:bg-amber-200 hover:text-amber-900",children:S.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:S.jsx("path",{d:"M6 6l12 12M18 6 6 18",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"})})})]}),S.jsx("ul",{className:"m-0 max-h-[40vh] list-none overflow-y-auto px-4 py-2",children:a.map((r,o)=>S.jsxs("li",{className:"py-2 [&:not(:last-child)]:border-amber-100 [&:not(:last-child)]:border-b",children:[S.jsxs("p",{className:"m-0 text-[13px] text-amber-900 leading-snug",children:[r.uid!==void 0&&S.jsxs("span",{className:"text-amber-500",children:["[uid:",r.uid,"] "]}),S.jsx("span",{className:"font-semibold",children:r.label}),S.jsxs("span",{className:"text-amber-600",children:[" â ",r.type]})]}),S.jsx("p",{className:"m-0 mt-0.5 text-[12px] text-amber-700 leading-snug",children:r.reason})]},o))})]})}const TL=200,RL=1.5,CL=3,IL="#FFB81C",DL=200,NL=2e3,vo={pixelsPerYear:TL,scrollFactor:RL,lineThickness:CL,color:IL,curveRadius:DL,rightPadding:NL};function Fl(a,e){if(a===void 0||a==="")return e;const i=Number(a);return Number.isFinite(i)?i:e}function LL(a){const e=a.flexform??{},i={startYear:Fl(e.startYear,1860),endYear:Fl(e.endYear,2026),gapBetweenBranches:Fl(e.gapBetweenBranches,93),pixelsPerYear:vo.pixelsPerYear,scrollFactor:vo.scrollFactor,lineThickness:vo.lineThickness,color:vo.color,curveRadius:vo.curveRadius,rightPadding:vo.rightPadding},r=Object.values(e.branch??{}).map((u,f)=>{const{id:h,position:p}=u.entry??{};return h?{id:h,position:Fl(p,f)}:null}).filter(u=>u!==null),o=(a.nodes??[]).map(u=>{const f=u.content,h=f?.flexform;if(!h?.node_type||!h.branch)return null;const p=h.node_type,x=Fl(h.year,2e3),g=f?.header??"",v=h.branch,y=f?.media?.[0],M=f?.previewMedia?.[0],T=f?.circleMedia?.[0],E=!!f?.isLogo,b=f?.link?.href,R=b?{href:b,label:f?.link?.linkText??f?.link?.title??TYPO3.lang["20years.label.link.readmore"],target:f?.link?.target??void 0}:void 0,C=f?.header||f?.bodytext||y||R?{headline:f?.header??g,bodyText:f?.bodytext??"",...y?{media:{src:y.publicUrl,alt:y.properties?.alternative,width:y.properties?.dimensions?.width,height:y.properties?.dimensions?.height,isLogo:E}}:{},...R?{action:R}:{}}:void 0,I=M?{src:M.publicUrl,alt:M.properties?.alternative,width:M.properties?.dimensions?.width,height:M.properties?.dimensions?.height,isLogo:E}:void 0,U=T?{src:T.publicUrl,alt:T.properties?.alternative,width:T.properties?.dimensions?.width,height:T.properties?.dimensions?.height,isLogo:E}:void 0,B={uid:u.id,year:x,label:g,branch:v,details:C,preview:I,circleFallback:U,isLogo:E};if(p==="merge"||p==="founding"){const D=(h.from_branches??"").split(",").map(L=>
4127L.trim()).filter(Boolean),A=(f?.mergeImages??[]).map(L=>({src:L.publicUrl,alt:L.properties?.alternative,width:L.properties?.dimensions?.width,height:L.properties?.dimensions?.height}));return{type:p,...B,fromBranches:D,...A.length>0?{mergeImages:A}:{}}}return{type:p,...B}}).filter(u=>u!==null),c=(a.eras??[]).flatMap(u=>{const f=u.image?.[0];if(!u.year||!f)return[];const h=f.properties?.alternative;return[{year:u.year,media:{src:f.publicUrl,...h?{alt:h}:{}}}]});return{timeline:i,branches:r,nodes:o,eras:c}}function PL({elements:a,storylines:e=[],heroElement:i,kiosk:r}){const o=a[0]?.content;if(!o)return null;const{data:c,warnings:u}=AL(LL(o)),f=o.flexform??{},h={header:f.end_header,subheader:f.end_subheader,bodytext:f.end_bodytext},p=(o.endScreenItems??[]).map(v=>({...v.content,id:v.id})).filter(v=>!!v),x=i?.content,g=o.showConfigWarnings!==!1;return S.jsxs(S.Fragment,{children:[g&&S.jsx(wL,{warnings:u}),S.jsx(SL,{data:c,endScreenContent:h,endScreenCards:p,storylines:e,heroContent:x,kiosk:r})]})}function OL({className:a,children:e}){return S.jsx("div",{className:Hn("container-content",a),children:e})}const BL=[{delay:"arrow-delay-1",opacity:"arrow-opacity-faint"},{delay:"arrow-delay-2",opacity:"arrow-opacity-medium"},{delay:"arrow-delay-3",opacity:"arrow-opacity-strong"}];function UL({fixed:a}){function e(){const i=document.querySelector("header")?.getBoundingClientRect().height??0,r=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--size-logo-sticky"))||i,c=document.getElementById("imp20years-root")?.shadowRoot?.querySelectorAll("section"),u=c?Array.from(c).find(h=>h.getBoundingClientRect().top>i+10):null;if(!u){window.scrollBy({top:window.innerHeight-r,behavior:"smooth"});return}const f=window.scrollY+u.getBoundingClientRect().top;window.scrollTo({top:f-r,behavior:"smooth"})}return S.jsxs("button",{type:"button",onClick:e,"aria-label":TYPO3.lang["20years.aria.scroll.down"],className:Hn(a?"fixed":"absolute","bottom-[28px] left-1/2 z-50 -translate-x-1/2","pointer-events-auto flex cursor-pointer flex-col items-center gap-1.5"),children:[S.jsx("div",{className:"flex h-10 w-[26px] justify-center rounded-[13px] border-2 border-solid border-white/70 pt-1.5",children:S.jsx("div",{className:"h-2 w-1 rounded-sm bg-white animate-hero-wheel"})}),S.jsx("div",{className:"flex flex-col items-center gap-0.5",children:BL.map(({delay:i,opacity:r})=>S.jsx("span",{className:Hn("block h-2.5 w-2.5 rotate-45","border-solid border-b-2 border-r-2 border-white/90","animate-hero-arrow",i,r)},i))})]})}function kL({media:a}){return S.jsxs(S.Fragment,{children:[S.jsx("img",{src:a.publicUrl,alt:a.properties.alternative??"",width:a.properties.dimensions.width,height:a.properties.dimensions.height,className:"absolute inset-0 size-full object-cover transition-none"}),S.jsx("div",{className:"absolute inset-0 bg-black/40"})]})}function zL({element:a}){const e=a.content??{},i=e.media?.[0],r=ne.useRef(null),[o,c]=ne.useState(!0);return ne.useEffect(()=>{const u=r.current;if(!u)return;const f=new IntersectionObserver(([h])=>c(h.isIntersecting),{threshold:.1});return f.observe(u),()=>f.disconnect()},[]),S.jsxs("section",{ref:r,"data-ce-type":a.type,"data-ce-uid":a.id,className:"sticky top-0 z-[1] -mt-[var(--height-header,0px)] h-hero overflow-hidden bg-surface-dark flex items-center justify-center",children:[i&&S.jsx(kL,{media:i}),S.jsx(OL,{className:"relative z-10",children:S.jsx("div",{className:"flex flex-col items-start gap-y-5",children:S.jsxs("div",{children:[e.header&&S.jsx(pS,{children:e.header}),e.subheader&&S.jsx(mS,{children:e.subheader})]})})}),o&&S.jsx("div",{className:"pointer-events-none absolute inset-0",children:S.jsx(UL,{fixed:!0})})]})}function _L({element:a}){const e=a.content??{},i=e.flexform?.alignment??"left",r=e.headerLayout||2,o=r===100?null:`h${Math.min(r,6)}`;return S.jsxs("section",{"data-ce-type":a.type,"data-ce-uid":a.id,className:`py-8 px-4 text-${i}`,children:[o&&e.header&&S.jsx(o,{className:"mb-4 text-2xl font-bold",style:{hyphens:"manual"},children:nn(e.header)}),e.subheader&&S.jsx("p",{className:"mb-4 text-lg text-muted-foreground",style:{hyphens:"manual"},children:nn(e.subheader)}),e.bodytext&&S.jsx("div",{className:"prose max-w-none",style:{hyphens:"manual"},dangerouslySetInnerHTML:{__html:e.bodytext}})]})}
4127function Lb({element:a}){switch(a.type){case"imp20years_hero":return S.jsx(zL,{element:a});case"imp20years_text":return S.jsx(_L,{element:a});default:return null}}const HL=3e3,Pb=220;function FL({progress:a,onDone:e}){const[i,r]=ne.useState("visible"),o=ne.useRef(Date.now()),c=ne.useRef(e);if(c.current=e,ne.useEffect(()=>{if(a<1||i!=="visible")return;const f=Date.now()-o.current,h=Math.max(0,HL-f),p=setTimeout(()=>r("fading"),h);return()=>clearTimeout(p)},[a,i]),ne.useEffect(()=>{if(i!=="fading")return;const f=setTimeout(()=>{r("done"),c.current()},600);return()=>clearTimeout(f)},[i]),i==="done")return null;const u=Math.round(a*100);return S.jsxs("div",{className:Hn("fixed inset-0 z-[9999] flex flex-col items-center justify-center bg-[#007881]",i==="fading"&&"opacity-0"),style:{transition:"opacity 0.6s ease-out"},children:[S.jsx("img",{src:gs,width:Pb,alt:"","aria-hidden":"true",style:{objectFit:"contain"}}),S.jsxs("div",{className:"mt-8 flex flex-col items-center gap-2.5",children:[S.jsx("div",{className:"h-px overflow-hidden",style:{width:Pb,background:"rgba(255,255,255,0.25)"},children:S.jsx("div",{className:"h-full bg-white",style:{width:`${u}%`,transition:"width 0.15s linear"}})}),S.jsxs("span",{className:"font-display text-[14px] font-bold uppercase tracking-[0.1em] text-white/40",children:[u,"%"]})]})]})}function VL(){const[a]=ne.useState(()=>{const T=document.getElementById("imp20years-root")?.dataset.mode;return T==="vertical"||T==="horizontal"?T:void 0}),[e,i]=ne.useState(null),[r,o]=ne.useState(null),[c,u]=ne.useState(0),[f,h]=ne.useState(!0),p=ne.useRef(Date.now()),x=ne.useRef(!1);ne.useEffect(()=>{const E=document.getElementById("imp20years-root")?.dataset.apiUrl;if(!E){o("Missing data-api-url attribute on #imp20years-root"),x.current=!0;return}fetch(E).then(b=>{if(!b.ok)throw new Error(`HTTP ${b.status}: ${b.statusText}`);return b.json()}).then(b=>{i(Ap(b)),x.current=!0}).catch(b=>{o(b.message),x.current=!0})},[]),ne.useEffect(()=>{let R=null,C=0;const I=()=>{const U=Date.now(),B=U-p.current;let D;if(!x.current)D=Math.min(.9,B/3e3*.9);else{if(R===null){const L=Math.min(.9,B/3e3*.9),X=Math.max(0,3e3-B),k=Math.max(400,X);R={startTime:U,startValue:L,duration:k}}const A=Math.min(1,(U-R.startTime)/R.duration);D=R.startValue+(1-R.startValue)*A}u(D),D<1&&(C=requestAnimationFrame(I))};return C=requestAnimationFrame(I),()=>cancelAnimationFrame(C)},[]);const g=e?.hero.filter(T=>T.type!=="imp20years_genealogy")??[],v=e?.hero.filter(T=>T.type==="imp20years_genealogy")??[],y=g.find(T=>T.type==="imp20years_hero"),M=g.filter(T=>T.type!=="imp20years_hero");return S.jsxs(S.Fragment,{children:[f&&S.jsx(FL,{progress:c,onDone:()=>h(!1)}),r&&!f&&S.jsx("div",{className:"flex min-h-screen items-center justify-center",children:S.jsxs("p",{className:"text-destructive",children:["Error: ",r]})}),e&&S.jsxs("div",{className:"h-full",children:[M.map(T=>S.jsx(Lb,{element:T},T.id)),S.jsx("section",{"data-ce-type":"imp20years_genealogy",children:S.jsx(PL,{elements:v,storylines:e.storylines??[],heroElement:y,kiosk:a})}),e.contentElements.filter(T=>T.type!=="imp20years_story").map(T=>S.jsx(Lb,{element:T},T.id))]})]})}const GL='@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}
4127}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-amber-50:oklch(98.7% .022 95.277);--color-amber-100:oklch(96.2% .059 95.617);--color-amber-200:oklch(92.4% .12 95.746);--color-amber-300:oklch(87.9% .169 91.605);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-amber-900:oklch(41.4% .112 45.904);--color-gray-300:oklch(87.2% .01 258.338);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-lg:.5rem;--drop-shadow-2xl:0 25px 25px #00000026;--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--blur-sm:8px;--blur-lg:16px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Source Sans Pro", sans-serif;--color-accent:#ffb81c;--color-accent-hover:#e6a418;--color-surface-dark:#060610;--color-off-white:#f8f8f9}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}
4127::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.static\\!{position:static!important}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-5{top:calc(var(--spacing) * 5)}.top-6{top:calc(var(--spacing) * 6)}.top-8{top:calc(var(--spacing) * 8)}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-5{right:calc(var(--spacing) * 5)}.right-6{right:calc(var(--spacing) * 6)}.right-8{right:calc(var(--spacing) * 8)}.right-10{right:calc(var(--spacing) * 10)}.bottom-0{bottom:calc(var(--spacing) * 0)}.bottom-1{bottom:calc(var(--spacing) * 1)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-\\[28px\\]{bottom:28px}.left-0{left:calc(var(--spacing) * 0)}.left-1{left:calc(var(--spacing) * 1)}.left-1\\/2{left:50%}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.left-12{left:calc(var(--spacing) * 12)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\\[1\\]{z-index:1}.z-\\[5\\]{z-index:5}.z-\\[35\\]{z-index:35}.z-\\[37\\]{z-index:37}.z-\\[41\\]{z-index:41}.z-\\[45\\]{z-index:45}.z-\\[46\\]{z-index:46}.z-\\[47\\]{z-index:47}.z-\\[48\\]{z-index:48}.z-\\[55\\]{z-index:55}.z-\\[60\\]{z-index:60}.z-\\[9999\\]{z-index:9999}.order-1{order:1}.order-2{order:2}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.mx-auto{margin-inline:auto}.-mt-1{margin-top:calc(var(--spacing) * -1)}.-mt-\\[var\\(--height-header\\,0px\\)\\]{margin-top:calc(var(--height-header,0px) * -1)}.mt-0{margin-top:calc(var(--spacing) * 0)}
4127.mt-0\\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.container-content{width:min(1348px,100vw - 80px);margin-left:auto;margin-right:auto}.container-textmedia{width:min(1500px,100vw - 80px);margin-left:auto;margin-right:auto}.-mr-1{margin-right:calc(var(--spacing) * -1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-9{margin-bottom:calc(var(--spacing) * 9)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-\\[clamp\\(80px\\,12vw\\,160px\\)\\]{margin-bottom:clamp(80px,12vw,160px)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\\.5{margin-left:calc(var(--spacing) * 1.5)}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.aspect-\\[16\\/10\\]{aspect-ratio:16/10}.aspect-video{aspect-ratio:var(--aspect-video)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-full{width:100%;height:100%}.h-hero{height:70dvh}@media(min-width:768px){.h-hero{height:100dvh}}.h-0{height:calc(var(--spacing) * 0)}.h-0\\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-2{height:calc(var(--spacing) * 2)}.h-2\\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-\\[3px\\]{height:3px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-\\[40vh\\]{max-height:40vh}.max-h-\\[600px\\]{max-height:600px}.max-h-\\[min\\(320px\\,40vh\\)\\]{max-height:min(320px,40vh)}.max-h-full{max-height:100%}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-screen{min-height:100vh}.w-1{width:calc(var(--spacing) * 1)}.w-2{width:calc(var(--spacing) * 2)}.w-2\\.5{width:calc(var(--spacing) * 2.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-16{width:calc(var(--spacing) * 16)}.w-48{width:calc(var(--spacing) * 48)}.w-\\[2px\\]{width:2px}.w-\\[26px\\]{width:26px}.w-\\[46\\%\\]{width:46%}.w-\\[80\\%\\]{width:80%}.w-\\[300px\\]{width:300px}.w-\\[clamp\\(96px\\,9vw\\,160px\\)\\]{width:clamp(96px,9vw,160px)}.w-\\[min\\(92vw\\,420px\\)\\]{width:min(92vw,420px)}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-0{max-width:calc(var(--spacing) * 0)}.max-w-\\[30\\%\\]{max-width:30%}.max-w-\\[320px\\]{max-width:320px}.max-w-\\[460px\\]{max-width:460px}.max-w-\\[560px\\]{max-width:560px}.max-w-\\[860px\\]{max-width:860px}.max-w-full{max-width:100%}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-full{min-width:100%}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.-translate-x-1{--tw-translate-x:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-1{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.btn-icon-down{transition:translate .15s ease-out}.group:hover .btn-icon-down{translate:0 5px}.btn-icon-right{transition:translate .15s ease-out}.group:hover .btn-icon-right{translate:5px}.\\[translate\\:4px\\]{translate:4px}.translate-none{translate:none}.scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-150{--tw-scale-x:150%;--tw-scale-y:150%;--tw-scale-z:150%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.-rotate-45{rotate:-45deg}.rotate-45{rotate:45deg}.rotate-\\[-45deg\\]{rotate:-45deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-hero-arrow-right{transition:opacity .2s;animation:1.8s ease-in-out infinite hero-arrow-right}.group:hover .animate-hero-arrow-right{opacity:1;animation:none}.animate-hero-arrow{animation:1.6s ease-in-out infinite hero-arrow}.animate-hero-wheel{animation:1.6s ease-in-out infinite hero-wheel}.animate-ping{animation:var(--animate-ping)}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}
4127.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-12{gap:calc(var(--spacing) * 12)}.gap-\\[26px\\]{gap:26px}.gap-\\[clamp\\(32px\\,4vw\\,64px\\)\\]{gap:clamp(32px,4vw,64px)}.gap-\\[clamp\\(48px\\,6vw\\,96px\\)\\]{gap:clamp(48px,6vw,96px)}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-5{row-gap:calc(var(--spacing) * 5)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-\\[13px\\]{border-radius:13px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-bs{border-block-start-style:var(--tw-border-style);border-block-start-width:1px}.border-be{border-block-end-style:var(--tw-border-style);border-block-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-2{border-right-style:var(--tw-border-style);border-right-width:2px}.border-r-4{border-right-style:var(--tw-border-style);border-right-width:4px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-4{border-bottom-style:var(--tw-border-style);border-bottom-width:4px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-none{--tw-border-style:none;border-style:none}.border-solid{--tw-border-style:solid;border-style:solid}.border-accent{border-color:var(--color-accent)}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-300{border-color:var(--color-amber-300)}.border-white{border-color:var(--color-white)}.border-white\\/70{border-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.border-white\\/70{border-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.border-white\\/90{border-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.border-white\\/90{border-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.bg-\\[\\#007881\\]{background-color:#007881}.bg-\\[\\#f6f6f6\\]{background-color:#f6f6f6}.bg-\\[var\\(--color-surface-dark\\,\\#060610\\)\\]{background-color:var(--color-surface-dark,#060610)}.bg-accent{background-color:var(--color-accent)}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-100{background-color:var(--color-amber-100)}.bg-black{background-color:var(--color-black)}.bg-black\\/20{background-color:#0003}@supports (color:color-mix(in lab,red,red)){.bg-black\\/20{background-color:color-mix(in oklab,var(--color-black) 20%,transparent)}}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black) 3
41270%,transparent)}}.bg-black\\/40{background-color:#0006}@supports (color:color-mix(in lab,red,red)){.bg-black\\/40{background-color:color-mix(in oklab,var(--color-black) 40%,transparent)}}.bg-gray-300{background-color:var(--color-gray-300)}.bg-surface-dark{background-color:var(--color-surface-dark)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white) 5%,transparent)}}.bg-white\\/50{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.bg-white\\/50{background-color:color-mix(in oklab,var(--color-white) 50%,transparent)}}.bg-white\\/65{background-color:#ffffffa6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/65{background-color:color-mix(in oklab,var(--color-white) 65%,transparent)}}.bg-repeat{background-repeat:repeat}.mask-no-clip{-webkit-mask-clip:no-clip;mask-clip:no-clip}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-left-top{object-position:left top}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-5{padding:calc(var(--spacing) * 5)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.p-12{padding:calc(var(--spacing) * 12)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-7{padding-inline:calc(var(--spacing) * 7)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.px-14{padding-inline:calc(var(--spacing) * 14)}.px-\\[8vw\\]{padding-inline:8vw}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\\.5{padding-block:calc(var(--spacing) * 3.5)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\\[clamp\\(80px\\,10vw\\,140px\\)\\]{padding-block:clamp(80px,10vw,140px)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-1\\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-\\[86px\\]{padding-top:86px}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pr-14{padding-right:calc(var(--spacing) * 14)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-12{padding-left:calc(var(--spacing) * 12)}.pl-14{padding-left:calc(var(--spacing) * 14)}.pl-16{padding-left:calc(var(--spacing) * 16)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-display{font-family:var(--font-display)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[11px\\]{font-size:11px}.text-\\[12px\\]{font-size:12px}.text-\\[13px\\]{font-size:13px}.text-\\[14px\\]{font-size:14px}.text-\\[15px\\]{font-size:15px}.text-\\[16px\\]{font-size:16px}.text-\\[18px\\]{font-size:18px}.text-\\[20px\\]{font-size:20px}.text-\\[22px\\]{font-size:22px}.text-\\[24px\\]{font-size:24px}.text-\\[28px\\]{font-size:28px}.text-\\[32px\\]{font-size:32px}.text-\\[34px\\]{font-size:34px}.text-\\[48px\\]{font-size:48px}.text-\\[clamp\\(14px\\,1\\.1vw\\,18px\\)\\]{font-size:clamp(14px,1.1vw,18px)}.text-\\[clamp\\(16px\\,1\\.4vw\\,20px\\)\\]{font-size:clamp(16px,1.4vw,20px)}.text-\\[clamp\\(22px\\,2\\.8vw\\,40px\\)\\]{font-size:clamp(22px,2.8vw,40px)}.text-\\[clamp\\(28px\\,3\\.5vw\\,64px\\)\\]{font-size:clamp(28px,3.5vw,64px)}.text-\\[clamp\\(28px\\,4vw\\,64px\\)\\]{font-size:clamp(28px,4vw,64px)}.text-\\[clamp\\(28px\\,6\\.5vw\\,120px\\)\\]{font-size:clamp(28px,6.5vw,120px)}.text-\\[clamp\\(32px\\,9\\.5vw\\,56px\\)\\]{font-size:clamp(32px,9.5vw,56px)}.text-\\[clamp\\(36px\\,3\\.8vw\\,68px\\)\\]{font-size:clamp(36px,3.8vw,68px)}.leading-\\[1\\.1\\]{--tw-leading:1.1;line-height:1.1}.leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.leading-\\[1\\.3\\]{--tw-leading:1.3;line-height:1.3}.leading-\\[1\\.4\\]{--tw-leading:1.4;line-height:1.4}.leading-\\[1\\.5\\]{--tw-leading:1.5;line-height:1.5}.leading-\\[1\\.7\\]{--tw-leading:1.7;line-height:1.7}.leading-\\[1\\.15\\]{--tw-leading:1.15;line-height:1.15}
4127.leading-\\[1\\.48\\]{--tw-leading:1.48;line-height:1.48}.leading-\\[1\\.55\\]{--tw-leading:1.55;line-height:1.55}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\\[-0\\.02em\\]{--tw-tracking:-.02em;letter-spacing:-.02em}.tracking-\\[-0\\.25px\\]{--tw-tracking:-.25px;letter-spacing:-.25px}.tracking-\\[-2px\\]{--tw-tracking:-2px;letter-spacing:-2px}.tracking-\\[0\\.1em\\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\\[0\\.04em\\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\\[0\\.12em\\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\\[0\\.15em\\]{--tw-tracking:.15em;letter-spacing:.15em}.tracking-\\[0\\.16em\\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-\\[2px\\]{--tw-tracking:2px;letter-spacing:2px}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-wrap{text-wrap:wrap}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-stroke-accent{-webkit-text-stroke:2px #ffb81c;color:#0000}.text-\\[\\#1C1B1B\\],.text-\\[\\#1c1b1b\\]{color:#1c1b1b}.text-\\[\\#1c1b1b\\]\\/70{color:#1c1b1bb3}.text-\\[\\#111\\],.text-\\[\\#111111\\]{color:#111}.text-accent{color:var(--color-accent)}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-900{color:var(--color-amber-900)}.text-black{color:var(--color-black)}.text-off-white{color:var(--color-off-white)}.text-white{color:var(--color-white)}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab,red,red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white) 40%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}
4127.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-70{opacity:.7}.opacity-100{opacity:1}.opacity-\\[0\\.35\\]{opacity:.35}
4127.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
4127dow)}.ring-accent{--tw-ring-color:var(--color-accent)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.contrast-50{--tw-contrast:contrast(50%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-lg{--tw-backdrop-blur:blur(var(--blur-lg));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-linear{--tw-ease:linear;transition-timing-function:linear}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.select-none{-webkit-user-select:none;user-select:none}.\\[uid\\:\\"\\,r\\.uid\\,\\"\\]{uid:",r.uid,"}.\\[uid\\:\\%d\\]{uid:%d}.arrow-delay-1{animation-delay:0s}.arrow-delay-2{animation-delay:.15s}.arrow-delay-3{animation-delay:.3s}.arrow-opacity-faint{--arrow-opacity:.3}.arrow-opacity-medium{--arrow-opacity:.6}.arrow-opacity-strong{--arrow-opacity:.9}.arrow-phase-1{animation-delay:-1.8s}.arrow-phase-2{animation-delay:-1.5s}.arrow-phase-3{animation-delay:-1.2s}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.ring-inset{--tw-ring-inset:inset}@media(hover:hover){.group-hover\\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.group-hover\\:bg-white\\/90:is(:where(.group):hover *){background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.group-hover\\:bg-white\\/90:is(:where(.group):hover *){background-color:color-mix(in oklab,var(--color-white) 90%,transparent)}}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:\\[translate\\:4px\\]:hover{translate:4px}.hover\\:border-accent-hover:hover{border-color:var(--color-accent-hover)}.hover\\:bg-\\[\\#1c1b1b\\]:hover{background-color:#1c1b1b}.hover\\:bg-accent-hover:hover{background-color:var(--color-accent-hover)}.hover\\:bg-amber-200:hover{background-color:var(--color-amber-200)}.hover\\:text-amber-900:hover{color:var(--color-amber-900)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:opacity-80:hover{opacity:.8}.hover\\:opacity-90:hover{opacity:.9}.hover\\:opacity-100:hover{opacity:1}}.active\\:bg-\\[rgba\\(28\\,27\\,27\\,0\\.95\\)\\]:active{background-color:#1c1b1bf2}.active\\:opacity-80:active{opacity:.8}.active\\:opacity-90:active{opacity:.9}@media(min-width:40rem){.sm\\:inline{display:inline}.sm\\:w-auto{width:auto}.sm\\:justify-start{justify-content:flex-start}.sm\\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\\:text-\\[18px\\]{font-size:18px}.sm\\:text-\\[38px\\]{font-size:38px}}@media(min-width:48rem){.md\\:order-1{order:1}.md\\:order-2{order:2}.md\\:order-3{order:3}.md\\:min-h-\\[calc\\(100dvh-var\\(--height-header\\,0px\\)\\)\\]{min-height:calc(100dvh - var(--height-header,0px))}.md\\:\\[grid-template-columns\\:1fr_clamp\\(260px\\,28vw\\,480px\\)_1fr\\]{grid-template-columns:1fr clamp(260px,28vw,480px) 1fr}.md\\:\\[grid-template-columns\\:45fr_55fr\\]{grid-template-columns:45fr 55fr}.md\\:\\[grid-template-columns\\:55fr_45fr\\]{grid-template-columns:55fr 45fr}.md\\:text-\\[clamp\\(28px\\,6\\.5vw\\,120px\\)\\]{font-size:clamp(28px,6.5vw,120px)}.md\\:text-\\[clamp\\(56px\\,8vw\\,120px\\)\\]{font-size:clamp(56px,8vw,120px)}}.\\[\\&_a\\]\\:underline a{text-decoration-line:underline}.\\[\\&_a\\:hover\\]\\:opacity-80 a:hover{opacity:.8}.\\[\\&_p\\]\\:m-0 p{margin:calc(var(--spacing) * 0)}.\\[\\&_p\\+p\\]\\:mt-3 p+p{margin-top:calc(var(--spacing) * 3)}.\\[\\&_p\\+p\\]\\:mt-4 p+p{margin-top:calc(var(--spacing) * 4)}.\\[\\&\\:\\:-webkit-scrollbar\\]\\:hidden::-webkit-scrollbar{display:none}.\\[\\&\\:not\\(\\:last-child\\)\\]\\:border-b:not(:last-child){border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\\[\\&\\:not\\(\\:last-child\\)\\]\\:border-amber-100:not(:last-child){border-color:var(--color-amber-100)}}@keyframes hero-wheel{0%{opacity:1;transform:translateY(0)}60%{opacity:0;transform:translateY(10px)}61%{opacity:0;transform:translateY(0)}to{opacity:1;transform:translateY(0)}}@keyframes hero-arrow{0%,60%{opacity:var(--arrow-opacity,.9);transform:translateY(0)}80%{opacity:0;transform:translateY(5px)}to{opacity:var(--arrow-opacity,.9);transform:translateY(0)}}@keyframes hero-arrow-right{0%{opacity:.15}30%{opacity:1}60%,to{opacity:.15}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}
4127}',bo=document.getElementById("imp20years-root"),Mp=document.querySelector("header");if(Mp&&bo){const a=()=>{const e=`${Mp.offsetHeight}px`;document.documentElement.style.setProperty("--height-header",e),bo.style.setProperty("--height-header",e)};a(),new ResizeObserver(a).observe(Mp)}if(bo){const a=bo.attachShadow({mode:"open"}),e=new CSSStyleSheet;e.replaceSync(GL),a.adoptedStyleSheets=[e];const i=document.createElement("div");i.className="w-full",bo.dataset.mode==="vertical"?i.style.zoom=String(af):bo.dataset.mode==="horizontal"&&(i.style.zoom=String(Wb)),a.appendChild(i),GA.createRoot(i).render(S.jsx(ne.StrictMode,{children:S.jsx(VL,{})}))}
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.