@needle-tools/engine 4.7.2-next.d24ebbc → 4.7.3-next.24c33e7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/gltf-progressive-BCZdu3Gc.min.js +8 -0
  3. package/dist/gltf-progressive-C6QbvrB4.umd.cjs +8 -0
  4. package/dist/{gltf-progressive-CNdBjvz6.js → gltf-progressive-CCddD-3B.js} +413 -399
  5. package/dist/{needle-engine.bundle-CGXifNgp.min.js → needle-engine.bundle-BWEF8NxU.min.js} +101 -101
  6. package/dist/{needle-engine.bundle-Dcn5L5IY.umd.cjs → needle-engine.bundle-d3zmAOp8.umd.cjs} +69 -69
  7. package/dist/{needle-engine.bundle-CHfSBXXT.js → needle-engine.bundle-wtPHWC_F.js} +1960 -1887
  8. package/dist/needle-engine.d.ts +21 -0
  9. package/dist/needle-engine.js +3 -3
  10. package/dist/needle-engine.min.js +1 -1
  11. package/dist/needle-engine.umd.cjs +1 -1
  12. package/dist/{postprocessing-xYQWCHFu.min.js → postprocessing-BzY0H7ry.min.js} +9 -9
  13. package/dist/{postprocessing-CjW23fio.umd.cjs → postprocessing-Dw2OCMp4.umd.cjs} +9 -9
  14. package/dist/{postprocessing-DYLNOL3W.js → postprocessing-vKBVFpSz.js} +10 -10
  15. package/dist/{three-examples-DaDLBuy6.min.js → three-examples-BMOhDaYR.min.js} +17 -17
  16. package/dist/{three-examples-X3OadjXB.umd.cjs → three-examples-DUcCNw9s.umd.cjs} +17 -17
  17. package/dist/{three-examples-B50TT3Iu.js → three-examples-tvuhV8Ne.js} +688 -688
  18. package/lib/engine/engine_create_objects.js +24 -1
  19. package/lib/engine/engine_create_objects.js.map +1 -1
  20. package/lib/engine/engine_input.js +3 -0
  21. package/lib/engine/engine_input.js.map +1 -1
  22. package/lib/engine/engine_physics.d.ts +13 -1
  23. package/lib/engine/engine_physics.js +15 -7
  24. package/lib/engine/engine_physics.js.map +1 -1
  25. package/lib/engine/webcomponents/needle-engine.js +14 -11
  26. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  27. package/lib/engine-components/OrbitControls.d.ts +57 -0
  28. package/lib/engine-components/OrbitControls.js +68 -9
  29. package/lib/engine-components/OrbitControls.js.map +1 -1
  30. package/lib/engine-components/Skybox.d.ts +1 -0
  31. package/lib/engine-components/Skybox.js +14 -18
  32. package/lib/engine-components/Skybox.js.map +1 -1
  33. package/lib/engine-components/ui/EventSystem.js +9 -10
  34. package/lib/engine-components/ui/EventSystem.js.map +1 -1
  35. package/package.json +3 -3
  36. package/plugins/common/logger.js +34 -16
  37. package/plugins/vite/logger.client.js +55 -22
  38. package/src/engine/engine_create_objects.ts +24 -1
  39. package/src/engine/engine_input.ts +8 -1
  40. package/src/engine/engine_physics.ts +26 -8
  41. package/src/engine/webcomponents/needle-engine.ts +15 -13
  42. package/src/engine-components/OrbitControls.ts +94 -14
  43. package/src/engine-components/Skybox.ts +15 -21
  44. package/src/engine-components/ui/EventSystem.ts +8 -9
  45. package/dist/gltf-progressive-C_oN6wCA.umd.cjs +0 -8
  46. package/dist/gltf-progressive-MgWOszRl.min.js +0 -8
@@ -1,9 +1,9 @@
1
- "use strict";var jt=Object.defineProperty;var Jt=(e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xe=(e,t,r)=>Jt(e,typeof t!="symbol"?t+"":t,r);const i=require("./three-B_hneGZr.umd.cjs"),qt=require("./three-examples-X3OadjXB.umd.cjs");/**
2
- * postprocessing v6.37.6 build Fri Jul 04 2025
1
+ "use strict";var jt=Object.defineProperty;var Jt=(e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xe=(e,t,r)=>Jt(e,typeof t!="symbol"?t+"":t,r);const i=require("./three-B_hneGZr.umd.cjs"),qt=require("./three-examples-DUcCNw9s.umd.cjs");/**
2
+ * postprocessing v6.37.7 build Mon Aug 04 2025
3
3
  * https://github.com/pmndrs/postprocessing
4
4
  * Copyright 2015-2025 Raoul van Rüschen
5
5
  * @license Zlib
6
- */var _t="6.37.6",$t=class{dispose(){}},Be=1/1e3,ei=1e3,ut=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*Be}get fixedDelta(){return this._fixedDelta*Be}set fixedDelta(e){this._fixedDelta=e*ei}get elapsed(){return this._elapsed*Be}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},ti=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),r=new i.BufferGeometry;return r.setAttribute("position",new i.BufferAttribute(e,3)),r.setAttribute("uv",new i.BufferAttribute(t,2)),r})(),U=class Fe{static get fullscreenGeometry(){return ti}constructor(t="Pass",r=new i.Scene,a=new i.Camera){this.name=t,this.renderer=null,this.scene=r,this.camera=a,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const r=this.fullscreenMaterial;r!==null&&(r.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let r=this.screen;r!==null?r.material=t:(r=new i.Mesh(Fe.fullscreenGeometry,t),r.frustumCulled=!1,this.scene===null&&(this.scene=new i.Scene),this.scene.add(r),this.screen=r)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,r=i.BasicDepthPacking){}render(t,r,a,s,o){throw new Error("Render method not implemented!")}setSize(t,r){}initialize(t,r,a){}dispose(){for(const t of Object.keys(this)){const r=this[t];(r instanceof i.WebGLRenderTarget||r instanceof i.Material||r instanceof i.Texture||r instanceof Fe)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},ct=class extends U{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,r,a,s){const o=e.state.buffers.stencil;o.setLocked(!1),o.setTest(!1)}},ii=`#include <common>
6
+ */var _t="6.37.7",$t=class{dispose(){}},Be=1/1e3,ei=1e3,ut=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*Be}get fixedDelta(){return this._fixedDelta*Be}set fixedDelta(e){this._fixedDelta=e*ei}get elapsed(){return this._elapsed*Be}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},ti=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),r=new i.BufferGeometry;return r.setAttribute("position",new i.BufferAttribute(e,3)),r.setAttribute("uv",new i.BufferAttribute(t,2)),r})(),U=class Fe{static get fullscreenGeometry(){return ti}constructor(t="Pass",r=new i.Scene,a=new i.Camera){this.name=t,this.renderer=null,this.scene=r,this.camera=a,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const r=this.fullscreenMaterial;r!==null&&(r.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let r=this.screen;r!==null?r.material=t:(r=new i.Mesh(Fe.fullscreenGeometry,t),r.frustumCulled=!1,this.scene===null&&(this.scene=new i.Scene),this.scene.add(r),this.screen=r)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,r=i.BasicDepthPacking){}render(t,r,a,s,o){throw new Error("Render method not implemented!")}setSize(t,r){}initialize(t,r,a){}dispose(){for(const t of Object.keys(this)){const r=this[t];(r instanceof i.WebGLRenderTarget||r instanceof i.Material||r instanceof i.Texture||r instanceof Fe)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},ct=class extends U{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,r,a,s){const o=e.state.buffers.stencil;o.setLocked(!1),o.setTest(!1)}},ii=`#include <common>
7
7
  #include <dithering_pars_fragment>
8
8
  #ifdef FRAMEBUFFER_PRECISION_HIGH
9
9
  uniform mediump sampler2D inputBuffer;
@@ -45,16 +45,16 @@ uniform vec2 range;
45
45
  #elif defined(THRESHOLD)
46
46
  uniform float threshold;uniform float smoothing;
47
47
  #endif
48
- varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);
48
+ varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0;
49
49
  #ifdef RANGE
50
- float low=step(range.x,l);float high=step(l,range.y);l*=low*high;
50
+ float low=step(range.x,l);float high=step(l,range.y);mask=low*high;
51
51
  #elif defined(THRESHOLD)
52
- l=smoothstep(threshold,threshold+smoothing,l)*l;
52
+ mask=smoothstep(threshold,threshold+smoothing,l);
53
53
  #endif
54
54
  #ifdef COLOR
55
- gl_FragColor=vec4(texel.rgb*clamp(l,0.0,1.0),l);
55
+ gl_FragColor=texel*mask;
56
56
  #else
57
- gl_FragColor=vec4(l);
57
+ gl_FragColor=vec4(l*mask);
58
58
  #endif
59
59
  }`,gt=class extends i.ShaderMaterial{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:i.REVISION.replace(/\D+/g,"")},uniforms:{inputBuffer:new i.Uniform$1(null),threshold:new i.Uniform$1(0),smoothing:new i.Uniform$1(1),range:new i.Uniform$1(null)},blending:i.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Ki,vertexShader:X}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return this.luminanceRange!==null}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){e!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},Qe=class extends U{constructor({renderTarget:e,luminanceRange:t,colorOutput:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("LuminancePass"),this.fullscreenMaterial=new gt(r,t),this.needsSwap=!1,this.renderTarget=e,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const u=this.resolution=new A(this,n,l,a);u.addEventListener("change",c=>this.setSize(u.baseWidth,u.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,r,a,s){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}initialize(e,t,r){r!==void 0&&r!==i.UnsignedByteType&&(this.renderTarget.texture.type=r,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},Xi=`#ifdef FRAMEBUFFER_PRECISION_HIGH
60
60
  uniform mediump sampler2D inputBuffer;
@@ -872,7 +872,7 @@ uniform vec2 kernel[STEPS];varying vec2 vOffset;varying vec2 vUv;void main(){vec
872
872
  `+a),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace===i.SRGBColorSpace&&(a+=`color0 = sRGBToLinear(color0);
873
873
  `),e.uvTransformation?(s=`vec2 transformedUv = vUv;
874
874
  `+s,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(E.FRAGMENT_HEAD,r),e.shaderParts.set(E.FRAGMENT_MAIN_IMAGE,a),e.shaderParts.set(E.FRAGMENT_MAIN_UV,s);for(const[n,l]of e.shaderParts)l!==null&&e.shaderParts.set(n,l.trim().replace(/^#/,`
875
- #`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=i.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,a,s){for(const o of this.effects)o.update(e,t,a);if(!this.skipRendering||this.renderToScreen){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,o.time+=a*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const a of this.effects)a.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==i.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},es=class extends U{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:a=A.AUTO_SIZE,resolutionY:s=A.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Gt({kernelSize:e}),this.copyMaterial=new ve,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const o=this.resolution=new A(this,a,s,r);o.addEventListener("change",n=>this.setSize(o.baseWidth,o.baseHeight)),this.iterations=t}render(e,t,r,a,s){const o=this.scene,n=this.camera,l=this.renderTargetA,u=this.renderTargetB,c=this.blurMaterial;this.fullscreenMaterial=c;let f=t;for(let h=0,d=Math.max(this.iterations,1);h<d;++h)c.direction.set(1,0),c.inputBuffer=f.texture,e.setRenderTarget(l),e.render(o,n),c.direction.set(0,1),c.inputBuffer=l.texture,e.setRenderTarget(u),e.render(o,n),h===0&&d>1&&(f=u);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(o,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const a=r.width,s=r.height;this.renderTargetA.setSize(a,s),this.renderTargetB.setSize(a,s),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==i.UnsignedByteType?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===i.SRGBColorSpace&&(this.renderTargetA.texture.colorSpace=i.SRGBColorSpace,this.renderTargetB.texture.colorSpace=i.SRGBColorSpace))}},ts=class extends U{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,a,s){this.f()}},is=class extends U{constructor(e,t,{renderTarget:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new ge(e,t,new i.MeshNormalMaterial);const u=this.renderPass;u.ignoreBackground=!0,u.skipShadowMapUpdate=!0;const c=u.getClearPass();c.overrideClearColor=new i.Color(7829503),c.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const f=this.resolution=new A(this,n,l,a);f.addEventListener("change",h=>this.setSize(f.baseWidth,f.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,a,s){const o=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,o,o)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},rt=[new Float32Array(3),new Float32Array(3)],B=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],ie=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function xe(e,t,r,a){const s=r[0]-t[0],o=r[1]-t[1],n=r[2]-t[2],l=e[0]-t[0],u=e[1]-t[1],c=e[2]-t[2],f=o*c-n*u,h=n*l-s*c,d=s*u-o*l,p=Math.sqrt(f*f+h*h+d*d),m=p*.5,g=f/p,T=h/p,w=d/p,D=-(e[0]*g+e[1]*T+e[2]*w),x=a[0]*g+a[1]*T+a[2]*w;return Math.abs(x+D)*m/3}function he(e,t,r,a,s,o){const n=(r+a*t+s*t*t)*4;o[0]=e[n+0],o[1]=e[n+1],o[2]=e[n+2]}function rs(e,t,r,a,s,o){const n=r*(t-1),l=a*(t-1),u=s*(t-1),c=Math.floor(n),f=Math.floor(l),h=Math.floor(u),d=Math.ceil(n),p=Math.ceil(l),m=Math.ceil(u),g=n-c,T=l-f,w=u-h;if(c===n&&f===l&&h===u)he(e,t,n,l,u,o);else{let D;g>=T&&T>=w?D=ie[0]:g>=w&&w>=T?D=ie[1]:w>=g&&g>=T?D=ie[2]:T>=g&&g>=w?D=ie[3]:T>=w&&w>=g?D=ie[4]:w>=T&&T>=g&&(D=ie[5]);const[x,b,G,k]=D,Q=rt[0];Q[0]=g,Q[1]=T,Q[2]=w;const M=rt[1],ee=d-c,te=p-f,V=m-h;M[0]=ee*x[0]+c,M[1]=te*x[1]+f,M[2]=V*x[2]+h,he(e,t,M[0],M[1],M[2],B[0]),M[0]=ee*b[0]+c,M[1]=te*b[1]+f,M[2]=V*b[2]+h,he(e,t,M[0],M[1],M[2],B[1]),M[0]=ee*G[0]+c,M[1]=te*G[1]+f,M[2]=V*G[2]+h,he(e,t,M[0],M[1],M[2],B[2]),M[0]=ee*k[0]+c,M[1]=te*k[1]+f,M[2]=V*k[2]+h,he(e,t,M[0],M[1],M[2],B[3]);const Z=xe(b,G,k,Q)*6,R=xe(x,G,k,Q)*6,me=xe(x,b,k,Q)*6,ye=xe(x,b,G,Q)*6;B[0][0]*=Z,B[0][1]*=Z,B[0][2]*=Z,B[1][0]*=R,B[1][1]*=R,B[1][2]*=R,B[2][0]*=me,B[2][1]*=me,B[2][2]*=me,B[3][0]*=ye,B[3][1]*=ye,B[3][2]*=ye,o[0]=B[0][0]+B[1][0]+B[2][0]+B[3][0],o[1]=B[0][1]+B[1][1]+B[2][1]+B[3][1],o[2]=B[0][2]+B[1][2]+B[2][2]+B[3][2]}}var as=class{static expand(e,t){const r=Math.cbrt(e.length/4),a=new Float32Array(3),s=new e.constructor(t**3*4),o=e instanceof Uint8Array?255:1,n=t**2,l=1/(t-1);for(let u=0;u<t;++u)for(let c=0;c<t;++c)for(let f=0;f<t;++f){const h=f*l,d=c*l,p=u*l,m=Math.round(f+c*t+u*n)*4;rs(e,r,h,d,p,a),s[m+0]=a[0],s[m+1]=a[1],s[m+2]=a[2],s[m+3]=o}return s}},ce=[new Float32Array(2),new Float32Array(2)],re=16,Re=20,ae=30,ss=32,Ie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),at=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],ns=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],zt=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function De(e,t,r){return e+(t-e)*r}function os(e){return Math.min(Math.max(e,0),1)}function st(e){const t=ce[0],r=ce[1],a=Math.sqrt(t[0]*2)*.5,s=Math.sqrt(t[1]*2)*.5,o=Math.sqrt(r[0]*2)*.5,n=Math.sqrt(r[1]*2)*.5,l=os(e/ss);t[0]=De(a,t[0],l),t[1]=De(s,t[1],l),r[0]=De(o,r[0],l),r[1]=De(n,r[1],l)}function I(e,t,r,a,s,o){const n=r-e,l=a-t,u=s,c=s+1,f=t+l*(u-e)/n,h=t+l*(c-e)/n;if(u>=e&&u<r||c>e&&c<=r)if(Math.sign(f)===Math.sign(h)||Math.abs(f)<1e-4||Math.abs(h)<1e-4){const d=(f+h)/2;d<0?(o[0]=Math.abs(d),o[1]=0):(o[0]=0,o[1]=Math.abs(d))}else{const d=-t*n/l+e,p=Math.trunc(d),m=d>e?f*(d-p)/2:0,g=d<r?h*(1-(d-p))/2:0;(Math.abs(m)>Math.abs(g)?m:-g)<0?(o[0]=Math.abs(m),o[1]=Math.abs(g)):(o[0]=Math.abs(g),o[1]=Math.abs(m))}else o[0]=0,o[1]=0;return o}function ls(e,t,r,a,s){const o=ce[0],n=ce[1],l=.5+a,u=.5+a-1,c=t+r+1;switch(e){case 0:{s[0]=0,s[1]=0;break}case 1:{t<=r?I(0,u,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 2:{t>=r?I(c/2,0,c,u,t,s):(s[0]=0,s[1]=0);break}case 3:{I(0,u,c/2,0,t,o),I(c/2,0,c,u,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 4:{t<=r?I(0,l,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 5:{s[0]=0,s[1]=0;break}case 6:{Math.abs(a)>0?(I(0,l,c,u,t,o),I(0,l,c/2,0,t,n),I(c/2,0,c,u,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,l,c,u,t,s);break}case 7:{I(0,l,c,u,t,s);break}case 8:{t>=r?I(c/2,0,c,l,t,s):(s[0]=0,s[1]=0);break}case 9:{Math.abs(a)>0?(I(0,u,c,l,t,o),I(0,u,c/2,0,t,n),I(c/2,0,c,l,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,u,c,l,t,s);break}case 10:{s[0]=0,s[1]=0;break}case 11:{I(0,u,c,l,t,s);break}case 12:{I(0,l,c/2,0,t,o),I(c/2,0,c,l,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 13:{I(0,u,c,l,t,s);break}case 14:{I(0,l,c,u,t,s);break}case 15:{s[0]=0,s[1]=0;break}}return s}function us(e,t,r,a,s,o){let n=e===r&&t===a;if(!n){const l=(e+r)/2,u=(t+a)/2,c=a-t,f=e-r;n=c*(s-l)+f*(o-u)>0}return n}function nt(e,t,r,a,s,o){let n=0;for(let l=0;l<ae;++l)for(let u=0;u<ae;++u){const c=u/(ae-1),f=l/(ae-1);us(e,t,r,a,s+c,o+f)&&++n}return n/(ae*ae)}function y(e,t,r,a,s,o,n,l){const u=zt[e],c=u[0],f=u[1];return c>0&&(t+=n[0],r+=n[1]),f>0&&(a+=n[0],s+=n[1]),l[0]=1-nt(t,r,a,s,1+o,0+o),l[1]=nt(t,r,a,s,1+o,1+o),l}function cs(e,t,r,a,s){const o=ce[0],n=ce[1],l=t+r+1;switch(e){case 0:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 1:{y(e,1,0,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 2:{y(e,0,0,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 3:{y(e,1,0,1+l,0+l,t,a,s);break}case 4:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 5:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 6:{y(e,1,1,1+l,0+l,t,a,s);break}case 7:{y(e,1,1,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 8:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 9:{y(e,1,0,1+l,1+l,t,a,s),y(e,1,0,1+l,1+l,t,a,s);break}case 10:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 11:{y(e,1,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 12:{y(e,1,1,1+l,1+l,t,a,s);break}case 13:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 14:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 15:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}}return s}function ot(e,t,r){const a=new Float32Array(2);for(let s=0,o=e.length;s<o;++s){const n=e[s],l=n.data,u=n.width;for(let c=0;c<u;++c)for(let f=0;f<u;++f){r?ls(s,f,c,t,a):cs(s,f,c,t,a);const h=(c*u+f)*2;l[h]=a[0]*255,l[h+1]=a[1]*255}}}function lt(e,t,r,a,s,o,n){const l=n.data,u=n.width;for(let c=0,f=r.length;c<f;++c){const h=a[c],d=r[c],p=d.data,m=d.width;for(let g=0;g<s;++g)for(let T=0;T<s;++T){const w=h[0]*s+e+T,x=((h[1]*s+t+g)*u+w)*4,b=o?(g*g*m+T*T)*2:(g*m+T)*2;l[x]=p[b],l[x+1]=p[b+1],l[x+2]=0,l[x+3]=255}}}var fs=class{static generate(){const e=10*re,t=Ie.length*5*re,r=new Uint8ClampedArray(e*t*4),a=new K(e,t,r),s=Math.pow(re-1,2)+1,o=Re,n=[],l=[];for(let u=3,c=r.length;u<c;u+=4)r[u]=255;for(let u=0;u<16;++u)n.push(new K(s,s,new Uint8ClampedArray(s*s*2),2)),l.push(new K(o,o,new Uint8ClampedArray(o*o*2),2));for(let u=0,c=Ie.length;u<c;++u)ot(n,Ie[u],!0),lt(0,5*re*u,n,ns,re,!0,a);for(let u=0,c=at.length;u<c;++u)ot(l,at[u],!1),lt(5*re,4*Re*u,l,zt,Re,!1,a);return a}},hs=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(64*16*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
875
+ #`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=i.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,a,s){for(const o of this.effects)o.update(e,t,a);if(!this.skipRendering||this.renderToScreen){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,o.time+=a*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const a of this.effects)a.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==i.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},es=class extends U{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:a=A.AUTO_SIZE,resolutionY:s=A.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Gt({kernelSize:e}),this.copyMaterial=new ve,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const o=this.resolution=new A(this,a,s,r);o.addEventListener("change",n=>this.setSize(o.baseWidth,o.baseHeight)),this.iterations=t}render(e,t,r,a,s){const o=this.scene,n=this.camera,l=this.renderTargetA,u=this.renderTargetB,c=this.blurMaterial;this.fullscreenMaterial=c;let f=t;for(let h=0,d=Math.max(this.iterations,1);h<d;++h)c.direction.set(1,0),c.inputBuffer=f.texture,e.setRenderTarget(l),e.render(o,n),c.direction.set(0,1),c.inputBuffer=l.texture,e.setRenderTarget(u),e.render(o,n),h===0&&d>1&&(f=u);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(o,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const a=r.width,s=r.height;this.renderTargetA.setSize(a,s),this.renderTargetB.setSize(a,s),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==i.UnsignedByteType?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===i.SRGBColorSpace&&(this.renderTargetA.texture.colorSpace=i.SRGBColorSpace,this.renderTargetB.texture.colorSpace=i.SRGBColorSpace))}},ts=class extends U{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,a,s){this.f()}},is=class extends U{constructor(e,t,{renderTarget:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new ge(e,t,new i.MeshNormalMaterial);const u=this.renderPass;u.ignoreBackground=!0,u.skipShadowMapUpdate=!0;const c=u.getClearPass();c.overrideClearColor=new i.Color(7829503),c.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const f=this.resolution=new A(this,n,l,a);f.addEventListener("change",h=>this.setSize(f.baseWidth,f.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,a,s){const o=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,o,o)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},rt=[new Float32Array(3),new Float32Array(3)],B=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],ie=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function xe(e,t,r,a){const s=r[0]-t[0],o=r[1]-t[1],n=r[2]-t[2],l=e[0]-t[0],u=e[1]-t[1],c=e[2]-t[2],f=o*c-n*u,h=n*l-s*c,d=s*u-o*l,p=Math.sqrt(f*f+h*h+d*d),m=p*.5,g=f/p,T=h/p,w=d/p,D=-(e[0]*g+e[1]*T+e[2]*w),x=a[0]*g+a[1]*T+a[2]*w;return Math.abs(x+D)*m/3}function he(e,t,r,a,s,o){const n=(r+a*t+s*t*t)*4;o[0]=e[n+0],o[1]=e[n+1],o[2]=e[n+2]}function rs(e,t,r,a,s,o){const n=r*(t-1),l=a*(t-1),u=s*(t-1),c=Math.floor(n),f=Math.floor(l),h=Math.floor(u),d=Math.ceil(n),p=Math.ceil(l),m=Math.ceil(u),g=n-c,T=l-f,w=u-h;if(c===n&&f===l&&h===u)he(e,t,n,l,u,o);else{let D;g>=T&&T>=w?D=ie[0]:g>=w&&w>=T?D=ie[1]:w>=g&&g>=T?D=ie[2]:T>=g&&g>=w?D=ie[3]:T>=w&&w>=g?D=ie[4]:w>=T&&T>=g&&(D=ie[5]);const[x,b,G,k]=D,Q=rt[0];Q[0]=g,Q[1]=T,Q[2]=w;const M=rt[1],ee=d-c,te=p-f,V=m-h;M[0]=ee*x[0]+c,M[1]=te*x[1]+f,M[2]=V*x[2]+h,he(e,t,M[0],M[1],M[2],B[0]),M[0]=ee*b[0]+c,M[1]=te*b[1]+f,M[2]=V*b[2]+h,he(e,t,M[0],M[1],M[2],B[1]),M[0]=ee*G[0]+c,M[1]=te*G[1]+f,M[2]=V*G[2]+h,he(e,t,M[0],M[1],M[2],B[2]),M[0]=ee*k[0]+c,M[1]=te*k[1]+f,M[2]=V*k[2]+h,he(e,t,M[0],M[1],M[2],B[3]);const Z=xe(b,G,k,Q)*6,R=xe(x,G,k,Q)*6,me=xe(x,b,k,Q)*6,ye=xe(x,b,G,Q)*6;B[0][0]*=Z,B[0][1]*=Z,B[0][2]*=Z,B[1][0]*=R,B[1][1]*=R,B[1][2]*=R,B[2][0]*=me,B[2][1]*=me,B[2][2]*=me,B[3][0]*=ye,B[3][1]*=ye,B[3][2]*=ye,o[0]=B[0][0]+B[1][0]+B[2][0]+B[3][0],o[1]=B[0][1]+B[1][1]+B[2][1]+B[3][1],o[2]=B[0][2]+B[1][2]+B[2][2]+B[3][2]}}var as=class{static expand(e,t){const r=Math.cbrt(e.length/4),a=new Float32Array(3),s=new e.constructor(t**3*4),o=e instanceof Uint8Array?255:1,n=t**2,l=1/(t-1);for(let u=0;u<t;++u)for(let c=0;c<t;++c)for(let f=0;f<t;++f){const h=f*l,d=c*l,p=u*l,m=Math.round(f+c*t+u*n)*4;rs(e,r,h,d,p,a),s[m+0]=a[0],s[m+1]=a[1],s[m+2]=a[2],s[m+3]=o}return s}},ce=[new Float32Array(2),new Float32Array(2)],re=16,Re=20,ae=30,ss=32,Ie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),at=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],ns=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],zt=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function De(e,t,r){return e+(t-e)*r}function os(e){return Math.min(Math.max(e,0),1)}function st(e){const t=ce[0],r=ce[1],a=Math.sqrt(t[0]*2)*.5,s=Math.sqrt(t[1]*2)*.5,o=Math.sqrt(r[0]*2)*.5,n=Math.sqrt(r[1]*2)*.5,l=os(e/ss);t[0]=De(a,t[0],l),t[1]=De(s,t[1],l),r[0]=De(o,r[0],l),r[1]=De(n,r[1],l)}function I(e,t,r,a,s,o){const n=r-e,l=a-t,u=s,c=s+1,f=t+l*(u-e)/n,h=t+l*(c-e)/n;if(u>=e&&u<r||c>e&&c<=r)if(Math.sign(f)===Math.sign(h)||Math.abs(f)<1e-4||Math.abs(h)<1e-4){const d=(f+h)/2;d<0?(o[0]=Math.abs(d),o[1]=0):(o[0]=0,o[1]=Math.abs(d))}else{const d=-t*n/l+e,p=Math.trunc(d),m=d>e?f*(d-p)/2:0,g=d<r?h*(1-(d-p))/2:0;(Math.abs(m)>Math.abs(g)?m:-g)<0?(o[0]=Math.abs(m),o[1]=Math.abs(g)):(o[0]=Math.abs(g),o[1]=Math.abs(m))}else o[0]=0,o[1]=0;return o}function ls(e,t,r,a,s){const o=ce[0],n=ce[1],l=.5+a,u=.5+a-1,c=t+r+1;switch(e){case 0:{s[0]=0,s[1]=0;break}case 1:{t<=r?I(0,u,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 2:{t>=r?I(c/2,0,c,u,t,s):(s[0]=0,s[1]=0);break}case 3:{I(0,u,c/2,0,t,o),I(c/2,0,c,u,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 4:{t<=r?I(0,l,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 5:{s[0]=0,s[1]=0;break}case 6:{Math.abs(a)>0?(I(0,l,c,u,t,o),I(0,l,c/2,0,t,n),I(c/2,0,c,u,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,l,c,u,t,s);break}case 7:{I(0,l,c,u,t,s);break}case 8:{t>=r?I(c/2,0,c,l,t,s):(s[0]=0,s[1]=0);break}case 9:{Math.abs(a)>0?(I(0,u,c,l,t,o),I(0,u,c/2,0,t,n),I(c/2,0,c,l,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,u,c,l,t,s);break}case 10:{s[0]=0,s[1]=0;break}case 11:{I(0,u,c,l,t,s);break}case 12:{I(0,l,c/2,0,t,o),I(c/2,0,c,l,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 13:{I(0,u,c,l,t,s);break}case 14:{I(0,l,c,u,t,s);break}case 15:{s[0]=0,s[1]=0;break}}return s}function us(e,t,r,a,s,o){let n=e===r&&t===a;if(!n){const l=(e+r)/2,u=(t+a)/2,c=a-t,f=e-r;n=c*(s-l)+f*(o-u)>0}return n}function nt(e,t,r,a,s,o){let n=0;for(let l=0;l<ae;++l)for(let u=0;u<ae;++u){const c=u/(ae-1),f=l/(ae-1);us(e,t,r,a,s+c,o+f)&&++n}return n/(ae*ae)}function y(e,t,r,a,s,o,n,l){const u=zt[e],c=u[0],f=u[1];return c>0&&(t+=n[0],r+=n[1]),f>0&&(a+=n[0],s+=n[1]),l[0]=1-nt(t,r,a,s,1+o,0+o),l[1]=nt(t,r,a,s,1+o,1+o),l}function cs(e,t,r,a,s){const o=ce[0],n=ce[1],l=t+r+1;switch(e){case 0:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 1:{y(e,1,0,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 2:{y(e,0,0,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 3:{y(e,1,0,1+l,0+l,t,a,s);break}case 4:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 5:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 6:{y(e,1,1,1+l,0+l,t,a,s);break}case 7:{y(e,1,1,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 8:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 9:{y(e,1,0,1+l,1+l,t,a,s),y(e,1,0,1+l,1+l,t,a,s);break}case 10:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 11:{y(e,1,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 12:{y(e,1,1,1+l,1+l,t,a,s);break}case 13:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 14:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 15:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}}return s}function ot(e,t,r){const a=new Float32Array(2);for(let s=0,o=e.length;s<o;++s){const n=e[s],l=n.data,u=n.width;for(let c=0;c<u;++c)for(let f=0;f<u;++f){r?ls(s,f,c,t,a):cs(s,f,c,t,a);const h=(c*u+f)*2;l[h]=a[0]*255,l[h+1]=a[1]*255}}}function lt(e,t,r,a,s,o,n){const l=n.data,u=n.width;for(let c=0,f=r.length;c<f;++c){const h=a[c],d=r[c],p=d.data,m=d.width;for(let g=0;g<s;++g)for(let T=0;T<s;++T){const w=h[0]*s+e+T,x=((h[1]*s+t+g)*u+w)*4,b=o?(g*g*m+T*T)*2:(g*m+T)*2;l[x]=p[b],l[x+1]=p[b+1],l[x+2]=0,l[x+3]=255}}}var fs=class{static generate(){const e=10*re,t=Ie.length*5*re,r=new Uint8ClampedArray(e*t*4),a=new K(e,t,r),s=Math.pow(re-1,2)+1,o=Re,n=[],l=[];for(let u=3,c=r.length;u<c;u+=4)r[u]=255;for(let u=0;u<16;++u)n.push(new K(s,s,new Uint8ClampedArray(s*s*2),2)),l.push(new K(o,o,new Uint8ClampedArray(o*o*2),2));for(let u=0,c=Ie.length;u<c;++u)ot(n,Ie[u],!0),lt(0,5*re*u,n,ns,re,!0,a);for(let u=0,c=at.length;u<c;++u)ot(l,at[u],!1),lt(5*re,4*Re*u,l,zt,Re,!1,a);return a}},hs=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(1024*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
876
876
  `;function ds(e=!0){const t=URL.createObjectURL(new Blob([hs],{type:"text/javascript"})),r=new Worker(t);return URL.revokeObjectURL(t),new Promise((a,s)=>{r.addEventListener("error",o=>s(o.error)),r.addEventListener("message",o=>{const n=K.from(o.data.searchImageData),l=K.from(o.data.areaImageData),u=[n.toCanvas().toDataURL("image/png",1),l.toCanvas().toDataURL("image/png",1)];e&&(localStorage.setItem("smaa-search",u[0]),localStorage.setItem("smaa-area",u[1])),a(u)}),r.postMessage(null)})}var ps=class{constructor(){this.disableCache=!1}setCacheEnabled(e){this.disableCache=!e}generate(){const e=!this.disableCache&&window.localStorage!==void 0,t=e?[localStorage.getItem("smaa-search"),localStorage.getItem("smaa-area")]:[null,null];return(t[0]!==null&&t[1]!==null?Promise.resolve(t):ds(e)).then(a=>new Promise((s,o)=>{const n=new Image,l=new Image,u=new i.LoadingManager;u.onLoad=()=>s([n,l]),u.onError=o,n.addEventListener("error",c=>u.itemError("smaa-search")),l.addEventListener("error",c=>u.itemError("smaa-area")),n.addEventListener("load",()=>u.itemEnd("smaa-search")),l.addEventListener("load",()=>u.itemEnd("smaa-area")),u.itemStart("smaa-search"),u.itemStart("smaa-area"),n.src=a[0],l.src=a[1]}))}},Te=new Map([[F(0,0,0,0),new Float32Array([0,0,0,0])],[F(0,0,0,1),new Float32Array([0,0,0,1])],[F(0,0,1,0),new Float32Array([0,0,1,0])],[F(0,0,1,1),new Float32Array([0,0,1,1])],[F(0,1,0,0),new Float32Array([0,1,0,0])],[F(0,1,0,1),new Float32Array([0,1,0,1])],[F(0,1,1,0),new Float32Array([0,1,1,0])],[F(0,1,1,1),new Float32Array([0,1,1,1])],[F(1,0,0,0),new Float32Array([1,0,0,0])],[F(1,0,0,1),new Float32Array([1,0,0,1])],[F(1,0,1,0),new Float32Array([1,0,1,0])],[F(1,0,1,1),new Float32Array([1,0,1,1])],[F(1,1,0,0),new Float32Array([1,1,0,0])],[F(1,1,0,1),new Float32Array([1,1,0,1])],[F(1,1,1,0),new Float32Array([1,1,1,0])],[F(1,1,1,1),new Float32Array([1,1,1,1])]]);function be(e,t,r){return e+(t-e)*r}function F(e,t,r,a){const s=be(e,t,.75),o=be(r,a,1-.25);return be(s,o,1-.125)}function vs(e,t){let r=0;return t[3]===1&&(r+=1),r===1&&t[2]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r}function gs(e,t){let r=0;return t[3]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r===1&&t[2]===1&&e[0]!==1&&e[2]!==1&&(r+=1),r}var ms=class{static generate(){const o=new Uint8ClampedArray(2178),n=new Uint8ClampedArray(1024*4);for(let l=0;l<33;++l)for(let u=0;u<66;++u){const c=.03125*u,f=.03125*l;if(Te.has(c)&&Te.has(f)){const h=Te.get(c),d=Te.get(f),p=l*66+u;o[p]=127*vs(h,d),o[p+33]=127*gs(h,d)}}for(let l=0,u=17;u<33;++u)for(let c=0;c<64;++c,l+=4)n[l]=o[u*66+c],n[l+3]=255;return new K(64,16,n)}};const As=Object.freeze(Object.defineProperty({__proto__:null,ASCIIEffect:Qi,ASCIITexture:vt,AdaptiveLuminanceMaterial:Ft,AdaptiveLuminancePass:Lt,BlendFunction:v,BlendMode:pt,BloomEffect:Dt,BlurPass:_,BokehEffect:$i,BokehMaterial:de,BoxBlurMaterial:Ot,BoxBlurPass:Ka,BrightnessContrastEffect:tr,ChromaticAberrationEffect:lr,CircleOfConfusionMaterial:Tt,ClearMaskPass:ct,ClearPass:$,ColorAverageEffect:rr,ColorChannel:j,ColorDepthEffect:sr,ColorEdgesMaterial:Ne,ConvolutionMaterial:Ee,CopyMaterial:ve,CopyPass:Se,DepthComparisonMaterial:Bt,DepthCopyMaterial:Nt,DepthCopyMode:le,DepthCopyPass:ze,DepthDownsamplingMaterial:Pt,DepthDownsamplingPass:Rt,DepthEffect:cr,DepthMaskMaterial:We,DepthOfFieldEffect:vr,DepthPass:Ke,DepthPickingPass:qa,DepthSavePass:ze,DepthTestStrategy:ue,Disposable:$t,DotScreenEffect:mr,DownsamplingMaterial:mt,EdgeDetectionMaterial:Ne,EdgeDetectionMode:Ye,Effect:C,EffectAttribute:P,EffectComposer:ri,EffectMaterial:Ht,EffectPass:$a,EffectShaderData:ht,EffectShaderSection:E,FXAAEffect:Dr,GammaCorrectionEffect:wr,GaussKernel:dt,GaussianBlurMaterial:Gt,GaussianBlurPass:es,GlitchEffect:Cr,GlitchMode:se,GodRaysEffect:Ur,GodRaysMaterial:St,GridEffect:Rr,HueSaturationEffect:br,ImmutableTimer:ai,Initializable:si,KawaseBlurMaterial:Ee,KawaseBlurPass:_,KernelSize:z,LUT1DEffect:Nr,LUT3DEffect:$e,LUT3dlLoader:La,LUTCubeLoader:Oa,LUTEffect:$e,LUTOperation:Et,LambdaPass:ts,LensDistortionEffect:Lr,LookupTexture:pe,LookupTexture3D:pe,LuminanceMaterial:gt,LuminancePass:Qe,MaskFunction:Ve,MaskMaterial:wt,MaskPass:ft,MipmapBlurPass:xt,NoiseEffect:Qr,NoiseTexture:Ce,NormalPass:is,OutlineEdgesMaterial:Oe,OutlineEffect:jr,OutlineMaterial:Oe,OverrideMaterialManager:Le,Pass:U,PixelationEffect:qr,PredicationMode:yt,RawImageData:K,RealisticBokehEffect:$r,RenderPass:ge,Resizable:ni,Resizer:A,Resolution:A,SMAAAreaImageData:fs,SMAAEffect:va,SMAAImageGenerator:ps,SMAAImageLoader:Na,SMAAPreset:ne,SMAASearchImageData:ms,SMAAWeightsMaterial:Mt,SSAOEffect:Ta,SSAOMaterial:Ut,SavePass:Se,ScanlineEffect:ta,Section:E,Selection:ke,SelectiveBloomEffect:na,SepiaEffect:la,ShaderPass:N,ShockWaveEffect:sa,TetrahedralUpscaler:as,TextureEffect:Ea,TiltShiftBlurMaterial:It,TiltShiftBlurPass:bt,TiltShiftEffect:Ua,Timer:ut,ToneMappingEffect:Ia,ToneMappingMode:O,UpsamplingMaterial:At,VignetteEffect:Fa,VignetteTechnique:oe,WebGLExtension:zr,version:_t},Symbol.toStringTag,{value:"Module"}));class xs extends i.BufferGeometry{constructor(){super();Xe(this,"boundingSphere",new i.Sphere);this.setAttribute("position",new i.BufferAttribute(new Float32Array([-1,-1,3,-1,-1,3]),2)),this.setAttribute("uv",new i.BufferAttribute(new Float32Array([0,0,2,0,0,2]),2))}computeBoundingSphere(){}}const Ds=new xs,Ts=new i.OrthographicCamera;class H{constructor(t){this._mesh=new i.Mesh(Ds,t),this._mesh.frustumCulled=!1}render(t){t.render(this._mesh,Ts)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}dispose(){this._mesh.material.dispose(),this._mesh.geometry.dispose()}}const kt={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},sceneNormal:{value:null},projMat:{value:new i.Matrix4},viewMat:{value:new i.Matrix4},projViewMat:{value:new i.Matrix4},projectionMatrixInv:{value:new i.Matrix4},viewMatrixInv:{value:new i.Matrix4},cameraPos:{value:new i.Vector3},resolution:{value:new i.Vector2},biasAdjustment:{value:new i.Vector2},time:{value:0},samples:{value:[]},bluenoise:{value:null},distanceFalloff:{value:1},radius:{value:5},near:{value:.1},far:{value:1e3},ortho:{value:!1},screenSpaceRadius:{value:!1},frame:{value:0}},depthWrite:!1,depthTest:!1,vertexShader:`
877
877
  varying vec2 vUv;
878
878
  void main() {
@@ -2,14 +2,14 @@ var ki = Object.defineProperty;
2
2
  var Qi = (e, t, i) => t in e ? ki(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i;
3
3
  var It = (e, t, i) => Qi(e, typeof t != "symbol" ? t + "" : t, i);
4
4
  import { Uniform$1 as c, Vector4 as Be, Color as N, Vector2 as p, CanvasTexture as Vi, RepeatWrapping as se, ShaderMaterial as w, NoBlending as G, WebGLRenderTarget as T, NearestFilter as P, EventDispatcher as Tt, SRGBColorSpace as y, UnsignedByteType as Y, PerspectiveCamera as Ie, BasicDepthPacking as W, REVISION as Re, LinearFilter as R, RGBADepthPacking as ae, FloatType as J, LessDepth as Rt, MeshDepthMaterial as Wi, LinearSRGBColorSpace as je, NoColorSpace as tt, DepthTexture as ye, DepthStencilFormat as Zt, UnsignedInt248Type as jt, UnsignedIntType as Le, RGBAFormat as z, Scene as dt, Matrix4 as O, Vector3 as L, HalfFloatType as $, Data3DTexture as Xe, Loader as St, LoadingManager as Ne, FileLoader as Jt, ClampToEdgeWrapping as st, DataTexture as it, RedFormat as rt, MeshNormalMaterial as Yi, BackSide as ke, DoubleSide as Qe, FrontSide as Ki, Camera as Xi, Mesh as qt, Texture as Je, EqualDepth as vt, NotEqualDepth as _t, LinearMipmapLinearFilter as Zi, GreaterDepth as ji, GreaterEqualDepth as Ji, LessEqualDepth as qi, AlwaysDepth as _i, NeverDepth as $i, Material as $t, BufferGeometry as ei, BufferAttribute as qe, RGFormat as er, DepthFormat as bt, OrthographicCamera as tr, Sphere as ir } from "./three-DrqIzZTH.js";
5
- import { Pass as rr } from "./three-examples-B50TT3Iu.js";
5
+ import { Pass as rr } from "./three-examples-tvuhV8Ne.js";
6
6
  /**
7
- * postprocessing v6.37.6 build Fri Jul 04 2025
7
+ * postprocessing v6.37.7 build Mon Aug 04 2025
8
8
  * https://github.com/pmndrs/postprocessing
9
9
  * Copyright 2015-2025 Raoul van Rüschen
10
10
  * @license Zlib
11
11
  */
12
- var ar = "6.37.6", sr = class {
12
+ var ar = "6.37.7", sr = class {
13
13
  /**
14
14
  * Frees internal resources.
15
15
  */
@@ -2422,16 +2422,16 @@ uniform vec2 range;
2422
2422
  #elif defined(THRESHOLD)
2423
2423
  uniform float threshold;uniform float smoothing;
2424
2424
  #endif
2425
- varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);
2425
+ varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0;
2426
2426
  #ifdef RANGE
2427
- float low=step(range.x,l);float high=step(l,range.y);l*=low*high;
2427
+ float low=step(range.x,l);float high=step(l,range.y);mask=low*high;
2428
2428
  #elif defined(THRESHOLD)
2429
- l=smoothstep(threshold,threshold+smoothing,l)*l;
2429
+ mask=smoothstep(threshold,threshold+smoothing,l);
2430
2430
  #endif
2431
2431
  #ifdef COLOR
2432
- gl_FragColor=vec4(texel.rgb*clamp(l,0.0,1.0),l);
2432
+ gl_FragColor=texel*mask;
2433
2433
  #else
2434
- gl_FragColor=vec4(l);
2434
+ gl_FragColor=vec4(l*mask);
2435
2435
  #endif
2436
2436
  }`, li = class extends w {
2437
2437
  /**
@@ -6115,7 +6115,7 @@ var ue = class mi {
6115
6115
  *
6116
6116
  * @param {Number} [width=0] - The width of the image.
6117
6117
  * @param {Number} [height=0] - The height of the image.
6118
- * @param {Uint8ClampedArray} [data=null] - The image data.
6118
+ * @param {Uint8ClampedArray<ArrayBuffer>} [data=null] - The image data.
6119
6119
  */
6120
6120
  constructor(t = 0, i = 0, r = null) {
6121
6121
  this.width = t, this.height = i, this.data = r;
@@ -12904,7 +12904,7 @@ var An = class {
12904
12904
  );
12905
12905
  return r;
12906
12906
  }
12907
- }, xn = `"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(64*16*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
12907
+ }, xn = `"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(1024*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
12908
12908
  `;
12909
12909
  function Dn(e = !0) {
12910
12910
  const t = URL.createObjectURL(new Blob([xn], {