1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4787],{4787:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var r=n(36352);n(22800);var a=n(74106),o=n(26137),i=n(47121),s=n(15432);function l(){(0,s.ro)();let e=document.getElementById("canvas-wrapper"),t=document.querySelector(".ml-hero");e&&t&&(t.appendChild(e),e.style.cssText="position: relative;top: auto;left: auto;width: 100%;height: 85vw;max-height: 420px;min-height: 280px;margin: 2rem auto 0;opacity: 1;z-index: auto;pointer-events: none;overflow: hidden;transition: none;"),r.UI.position.set(0,7.5,38),r.jH.set(0,6.8,0),r.UI.lookAt(r.jH);let n=(0,o.Ym)();function l(){r.UI.lookAt(r.jH),r.Uk.render(r.JH,r.UI),r.k1.render(r.JH,r.UI)}return(0,a.s)(),requestAnimationFrame(()=>requestAnimationFrame(()=>{(0,r.ji)(),l(),(0,i.s)()})),(0,o.cm)({fallback:n,onProgress:e=>(0,s.DW)(e)}).then(t=>{var n;let a=null==t?void 0:t.lid;a&&(null==(n=a.userData)?void 0:n.quatOpen)&&(a.quaternion.copy(a.userData.quatOpen),a.updateMatrixWorld(!0)),e&&(e.style.opacity="1"),(0,r.ji)(),l(),(0,i.s)(),(0,i.A)(),(0,s.yr)()})}},15432:(e,t,n)=>{n.d(t,{DW:()=>s,ro:()=>i,yr:()=>l});let r=null,a=null,o=null;function i(){!function(){if(r)return;let e=document.createElement("style");e.textContent="\n#mb-loader {\n position: fixed;\n inset: 0;\n background: #0f0f0f;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 1.2rem;\n z-index: 9999;\n font-family: 'Instrument Sans', system-ui, sans-serif;\n color: #a0a0a0;\n transition: opacity 0.6s ease;\n}\n#mb-loader.hidden {\n opacity: 0;\n pointer-events: none;\n}\n#mb-loader .mb-bar-track {\n width: min(280px, 60vw);\n height: 2px;\n background: rgba(255,255,255,0.08);\n border-radius: 2px;\n overflow: hidden;\n}\n#mb-loader .mb-bar-fill {\n height: 100%;\n width: 0%;\n background: #13E47F;\n box-shadow: 0 0 12px rgba(19,228,127,0.6);\n transition: width 0.18s ease-out;\n}\n#mb-loader .mb-label {\n font-size: 0.8rem;\n letter-spacing: 0.18em;\n text-transform: uppercase;\n color: #13E47F;\n font-weight: 500;\n}\n#mb-loader .mb-pct {\n font-size: 0.75rem;\n letter-spacing: 0.05em;\n color: #555;\n font-variant-numeric: tabular-nums;\n}\n",document.head.appendChild(e),(r=document.createElement("div")).id="mb-loader",r.innerHTML='\n <div class="mb-label">Loading FreeDOM</div>\n <div class="mb-bar-track"><div class="mb-bar-fill"></div></div>\n <div class="mb-pct">0%</div>\n ',document.body.appendChild(r),a=r.querySelector(".mb-bar-fill"),o=r.querySelector(".mb-pct")}()}function s(e){if(!a)return;let t=100*Math.max(0,Math.min(1,e));a.style.width="".concat(t.toFixed(1),"%"),o.textContent="".concat(Math.round(t),"%")}function l(){r&&(s(1),r.classList.add("hidden"),setTimeout(()=>{r&&r.remove(),r=a=o=null},700))}},74106:(e,t,n)=>{n.d(t,{s:()=>d});var r=n(87548),a=n(85339);class o extends a.BRH{constructor(e){super(e),this.type=a.ix0}parse(e){let t,n,r,o=function(e,t){switch(e){case 1:throw Error("THREE.HDRLoader: Read Error: "+(t||""));case 2:throw Error("THREE.HDRLoader: Write Error: "+(t||""));case 3:throw Error("THREE.HDRLoader: Bad File Format: "+(t||""));default:throw Error("THREE.HDRLoader: Memory Error: "+(t||""))}},i=function(e,t,n){t=t||1024;let r=e.pos,a=-1,o=0,i="",s=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));for(;0>(a=s.indexOf("\n"))&&o<t&&r<e.byteLength;)i+=s,o+=s.length,r+=128,s+=String.fromCharCode.apply(null,new Uint16Array(e.subarray(r,r+128)));return -1<a&&(!1!==n&&(e.pos+=o+a+1),i+s.slice(0,a))},s=new Uint8Array(e);s.pos=0;let l=function(e){let t,n,r=/^\s*GAMMA\s*=\s*(\d+(\.\d+)?)\s*$/,a=/^\s*EXPOSURE\s*=\s*(\d+(\.\d+)?)\s*$/,s=/^\s*FORMAT=(\S+)\s*$/,l=/^\s*\-Y\s+(\d+)\s+\+X\s+(\d+)\s*$/,d={valid:0,string:"",comments:"",programtype:"RGBE",format:"",gamma:1,exposure:1,width:0,height:0};for(!(e.pos>=e.byteLength)&&(t=i(e))||o(1,"no header found"),(n=t.match(/^#\?(\S+)/))||o(3,"bad initial token"),d.valid|=1,d.programtype=n[1],d.string+=t+"\n";!1!==(t=i(e));){if(d.string+=t+"\n","#"===t.charAt(0)){d.comments+=t+"\n";continue}if((n=t.match(r))&&(d.gamma=parseFloat(n[1])),(n=t.match(a))&&(d.exposure=parseFloat(n[1])),(n=t.match(s))&&(d.valid|=2,d.format=n[1]),(n=t.match(l))&&(d.valid|=4,d.height=parseInt(n[1],10),d.width=parseInt(n[2],10)),2&d.valid&&4&d.valid)break}return 2&d.valid||o(3,"missing format specifier"),4&d.valid||o(3,"missing image size specifier"),d}(s),d=l.width,c=l.height,u=function(e,t,n){if(t<8||t>32767||2!==e[0]||2!==e[1]||128&e[2])return new Uint8Array(e);t!==(e[2]<<8|e[3])&&o(3,"wrong scanline width");let r=new Uint8Array(4*t*n);r.length||o(4,"unable to allocate buffer space");let a=0,i=0,s=4*t,l=new Uint8Array(4),d=new Uint8Array(s),c=n;for(;c>0&&i<e.byteLength;){i+4>e.byteLength&&o(1),l[0]=e[i++],l[1]=e[i++],l[2]=e[i++],l[3]=e[i++],(2!=l[0]||2!=l[1]||(l[2]<<8|l[3])!=t)&&o(3,"bad rgbe scanline format");let n=0,u;for(;n<s&&i<e.byteLength;){let t=(u=e[i++])>128;if(t&&(u-=128),(0===u||n+u>s)&&o(3,"bad scanline data"),t){let t=e[i++];for(let e=0;e<u;e++)d[n++]=t}else d.set(e.subarray(i,i+u),n),n+=u,i+=u}for(let e=0;e<t;e++){let n=0;r[a]=d[e+n],n+=t,r[a+1]=d[e+n],n+=t,r[a+2]=d[e+n],n+=t,r[a+3]=d[e+n],a+=4}c--}return r}(s.subarray(s.pos),d,c);switch(this.type){case a.RQf:let m=new Float32Array(4*(r=u.length/4));for(let e=0;e<r;e++)!function(e,t,n,r){let a=Math.pow(2,e[t+3]-128)/255;n[r+0]=e[t+0]*a,n[r+1]=e[t+1]*a,n[r+2]=e[t+2]*a,n[r+3]=1}(u,4*e,m,4*e);t=m,n=a.RQf;break;case a.ix0:let p=new Uint16Array(4*(r=u.length/4));for(let e=0;e<r;e++)!function(e,t,n,r){let o=Math.pow(2,e[t+3]-128)/255;n[r+0]=a.GxU.toHalfFloat(Math.min(e[t+0]*o,65504)),n[r+1]=a.GxU.toHalfFloat(Math.min(e[t+1]*o,65504)),n[r+2]=a.GxU.toHalfFloat(Math.min(e[t+2]*o,65504)),n[r+3]=a.GxU.toHalfFloat(1)}(u,4*e,p,4*e);t=p,n=a.ix0;break;default:throw Error("THREE.HDRLoader: Unsupported type: "+this.type)}return{width:d,height:c,data:t,header:l.string,gamma:l.gamma,exposure:l.exposure,type:n}}setDataType(e){return this.type=e,this}load(e,t,n,r){return super.load(e,function(e,n){switch(e.type){case a.RQf:case a.ix0:e.colorSpace
1=a.Zr2,e.minFilter=a.k6q,e.magFilter=a.k6q,e.generateMipmaps=!1,e.flipY=!0}t&&t(e,n)},n,r)}}var i=n(36352),s=n(10974),l=n(47121);function d(){let e=new r.BdL(i.Uk);e.compileEquirectangularShader(),new o().setPath(s.gc).load(s.Pq,t=>{let n=e.fromEquirectangular(t).texture;t.dispose(),e.dispose(),i.JH.environment=n,(0,l.s)()},void 0,()=>{console.warn("[MacBook] HDRI no encontrado. Usando env map procedural."),i.JH.environment=function(){let e=new r.o6l(256),t=new a.F1T(1,1e3,e),n=new a.Z58;n.add(new a.dth(6320272,2105392,4));let o=new a.ZyN(0xffffff,6);return o.position.set(0,15,15),n.add(o),t.position.set(0,5,0),t.update(i.Uk,n),e.texture}(),e.dispose(),(0,l.s)()})}}}]);
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.