@deck.gl/arcgis 9.4.0-alpha.2 → 9.4.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +661 -1370
- package/dist/index.cjs +9461 -2573
- package/dist/index.cjs.map +3 -4
- package/dist.min.js +4 -4
- package/package.json +5 -5
package/dist.min.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var Ua=Object.create;var qe=Object.defineProperty;var Va=Object.getOwnPropertyDescriptor;var ka=Object.getOwnPropertyNames;var Xa=Object.getPrototypeOf,Wa=Object.prototype.hasOwnProperty;var P=(t,e)=>()=>(t&&(e=t(t=0)),e);var Qe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Re=(t,e)=>{for(var r in e)qe(t,r,{get:e[r],enumerable:!0})},Ze=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of ka(e))!Wa.call(t,i)&&i!==r&&qe(t,i,{get:()=>e[i],enumerable:!(n=Va(e,i))||n.enumerable});return t},Nt=(t,e,r)=>(Ze(t,e,"default"),r&&Ze(r,e,"default")),D=(t,e,r)=>(r=t!=null?Ua(Xa(t)):{},Ze(e||!t||!t.__esModule?qe(r,"default",{value:t,enumerable:!0}):r,t)),Ha=t=>Ze(qe({},"__esModule",{value:!0}),t);var Je=Qe((Nd,Ui)=>{Ui.exports=globalThis.deck});var Wi=Qe((Fd,Xi)=>{Xi.exports=globalThis.luma});var wt,Hi=P(()=>{(function(t){t[t.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",t[t.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",t[t.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ZERO=0]="ZERO",t[t.ONE=1]="ONE",t[t.SRC_COLOR=768]="SRC_COLOR",t[t.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.DST_ALPHA=772]="DST_ALPHA",t[t.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",t[t.DST_COLOR=774]="DST_COLOR",t[t.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",t[t.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",t[t.CONSTANT_COLOR=32769]="CONSTANT_COLOR",t[t.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",t[t.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",t[t.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",t[t.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",t[t.BLEND_EQUATION=32777]="BLEND_EQUATION",t[t.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",t[t.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",t[t.BLEND_DST_RGB=32968]="BLEND_DST_RGB",t[t.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",t[t.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",t[t.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",t[t.BLEND_COLOR=32773]="BLEND_COLOR",t[t.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",t[t.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",t[t.LINE_WIDTH=2849]="LINE_WIDTH",t[t.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",t[t.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",t[t.CULL_FACE_MODE=2885]="CULL_FACE_MODE",t[t.FRONT_FACE=2886]="FRONT_FACE",t[t.DEPTH_RANGE=2928]="DEPTH_RANGE",t[t.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",t[t.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",t[t.DEPTH_FUNC=2932]="DEPTH_FUNC",t[t.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",t[t.STENCIL_FUNC=2962]="STENCIL_FUNC",t[t.STENCIL_FAIL=2964]="STENCIL_FAIL",t[t.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",t[t.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",t[t.STENCIL_REF=2967]="STENCIL_REF",t[t.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",t[t.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",t[t.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",t[t.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",t[t.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",t[t.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",t[t.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",t[t.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",t[t.VIEWPORT=2978]="VIEWPORT",t[t.SCISSOR_BOX=3088]="SCISSOR_BOX",t[t.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",t[t.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",t[t.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",t[t.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",t[t.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",t[t.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",t[t.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",t[t.RED_BITS=3410]="RED_BITS",t[t.GREEN_BITS=3411]="GREEN_BITS",t[t.BLUE_BITS=3412]="BLUE_BITS",t[t.ALPHA_BITS=3413]="ALPHA_BITS",t[t.DEPTH_BITS=3414]="DEPTH_BITS",t[t.STENCIL_BITS=3415]="STENCIL_BITS",t[t.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",t[t.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",t[t.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",t[t.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",t[t.SAMPLES=32937]="SAMPLES",t[t.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",t[t.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",t[t.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",t[t.VENDOR=7936]="VENDOR",t[t.RENDERER=7937]="RENDERER",t[t.VERSION=7938]="VERSION",t[t.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",t[t.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",t[t.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",t[t.STATIC_DRAW=35044]="STATIC_DRAW",t[t.STREAM_DRAW=35040]="STREAM_DRAW",t[t.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",t[t.ARRAY_BUFFER=34962]="ARRAY_BUFFER",t[t.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",t[t.BUFFER_SIZE=34660]="BUFFER_SIZE",t[t.BUFFER_USAGE=34661]="BUFFER_USAGE",t[t.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",t[t.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",t[t.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",t[t.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",t[t.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",t[t.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",t[t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",t[t.CULL_FACE=2884]="CULL_FACE",t[t.FRONT=1028]="FRONT",t[t.BACK=1029]="BACK",t[t.FRONT_AND_BACK=1032]="FRONT_AND_BACK",t[t.BLEND=3042]="BLEND",t[t.DEPTH_TEST=2929]="DEPTH_TEST",t[t.DITHER=3024]="DITHER",t[t.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",t[t.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",t[t.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",t[t.SCISSOR_TEST=3089]="SCISSOR_TEST",t[t.STENCIL_TEST=2960]="STENCIL_TEST",t[t.NO_ERROR=0]="NO_ERROR",t[t.INVALID_ENUM=1280]="INVALID_ENUM",t[t.INVALID_VALUE=1281]="INVALID_VALUE",t[t.INVALID_OPERATION=1282]="INVALID_OPERATION",t[t.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",t[t.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",t[t.CW=2304]="CW",t[t.CCW=2305]="CCW",t[t.DONT_CARE=4352]="DONT_CARE",t[t.FASTEST=4353]="FASTEST",t[t.NICEST=4354]="NICEST",t[t.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",t[t.BYTE=5120]="BYTE",t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.SHORT=5122]="SHORT",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.INT=5124]="INT",t[t.UNSIGNED_INT=5125]="UNSIGNED_INT",t[t.FLOAT=5126]="FLOAT",t[t.DOUBLE=5130]="DOUBLE",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.ALPHA=6406]="ALPHA",t[t.RGB=6407]="RGB",t[t.RGBA=6408]="RGBA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",t[t.VERTEX_SHADER=35633]="VERTEX_SHADER",t[t.COMPILE_STATUS=35713]="COMPILE_STATUS",t[t.DELETE_STATUS=35712]="DELETE_STATUS",t[t.LINK_STATUS=35714]="LINK_STATUS",t[t.VALIDATE_STATUS=35715]="VALIDATE_STATUS",t[t.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",t[t.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",t[t.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",t[t.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",t[t.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",t[t.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",t[t.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",t[t.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",t[t.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",t[t.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",t[t.SHADER_TYPE=35663]="SHADER_TYPE",t[t.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",t[t.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",t[t.NEVER=512]="NEVER",t[t.LESS=513]="LESS",t[t.EQUAL=514]="EQUAL",t[t.LEQUAL=515]="LEQUAL",t[t.GREATER=516]="GREATER",t[t.NOTEQUAL=517]="NOTEQUAL",t[t.GEQUAL=518]="GEQUAL",t[t.ALWAYS=519]="ALWAYS",t[t.KEEP=7680]="KEEP",t[t.REPLACE=7681]="REPLACE",t[t.INCR=7682]="INCR",t[t.DECR=7683]="DECR",t[t.INVERT=5386]="INVERT",t[t.INCR_WRAP=34055]="INCR_WRAP",t[t.DECR_WRAP=34056]="DECR_WRAP",t[t.NEAREST=9728]="NEAREST",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE=5890]="TEXTURE",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",t[t.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",t[t.TEXTURE0=33984]="TEXTURE0",t[t.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",t[t.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",t[t.FLOAT_VEC2=35664]="FLOAT_VEC2",t[t.FLOAT_VEC3=35665]="FLOAT_VEC3",t[t.FLOAT_VEC4=35666]="FLOAT_VEC4",t[t.INT_VEC2=35667]="INT_VEC2",t[t.INT_VEC3=35668]="INT_VEC3",t[t.INT_VEC4=35669]="INT_VEC4",t[t.BOOL=35670]="BOOL",t[t.BOOL_VEC2=35671]="BOOL_VEC2",t[t.BOOL_VEC3=35672]="BOOL_VEC3",t[t.BOOL_VEC4=35673]="BOOL_VEC4",t[t.FLOAT_MAT2=35674]="FLOAT_MAT2",t[t.FLOAT_MAT3=35675]="FLOAT_MAT3",t[t.FLOAT_MAT4=35676]="FLOAT_MAT4",t[t.SAMPLER_2D=35678]="SAMPLER_2D",t[t.SAMPLER_CUBE=35680]="SAMPLER_CUBE",t[t.LOW_FLOAT=36336]="LOW_FLOAT",t[t.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",t[t.HIGH_FLOAT=36338]="HIGH_FLOAT",t[t.LOW_INT=36339]="LOW_INT",t[t.MEDIUM_INT=36340]="MEDIUM_INT",t[t.HIGH_INT=36341]="HIGH_INT",t[t.FRAMEBUFFER=36160]="FRAMEBUFFER",t[t.RENDERBUFFER=36161]="RENDERBUFFER",t[t.RGBA4=32854]="RGBA4",t[t.RGB5_A1=32855]="RGB5_A1",t[t.RGB565=36194]="RGB565",t[t.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",t[t.STENCIL_INDEX=6401]="STENCIL_INDEX",t[t.STENCIL_INDEX8=36168]="STENCIL_INDEX8",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL",t[t.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",t[t.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",t[t.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",t[t.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",t[t.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",t[t.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",t[t.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",t[t.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",t[t.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",t[t.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",t[t.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",t[t.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",t[t.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",t[t.NONE=0]="NONE",t[t.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",t[t.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",t[t.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",t[t.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",t[t.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",t[t.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",t[t.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",t[t.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",t[t.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",t[t.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",t[t.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",t[t.READ_BUFFER=3074]="READ_BUFFER",t[t.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",t[t.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",t[t.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",t[t.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",t[t.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",t[t.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",t[t.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",t[t.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",t[t.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",t[t.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",t[t.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",t[t.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",t[t.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",t[t.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",t[t.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",t[t.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",t[t.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",t[t.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",t[t.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",t[t.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",t[t.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",t[t.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",t[t.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",t[t.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",t[t.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",t[t.RED=6403]="RED",t[t.RGB8=32849]="RGB8",t[t.RGBA8=32856]="RGBA8",t[t.RGB10_A2=32857]="RGB10_A2",t[t.TEXTURE_3D=32879]="TEXTURE_3D",t[t.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",t[t.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",t[t.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",t[t.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",t[t.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",t[t.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",t[t.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",t[t.SRGB=35904]="SRGB",t[t.SRGB8=35905]="SRGB8",t[t.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",t[t.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",t[t.RGBA32F=34836]="RGBA32F",t[t.RGB32F=34837]="RGB32F",t[t.RGBA16F=34842]="RGBA16F",t[t.RGB16F=34843]="RGB16F",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",t[t.R11F_G11F_B10F=35898]="R11F_G11F_B10F",t[t.RGB9_E5=35901]="RGB9_E5",t[t.RGBA32UI=36208]="RGBA32UI",t[t.RGB32UI=36209]="RGB32UI",t[t.RGBA16UI=36214]="RGBA16UI",t[t.RGB16UI=36215]="RGB16UI",t[t.RGBA8UI=36220]="RGBA8UI",t[t.RGB8UI=36221]="RGB8UI",t[t.RGBA32I=36226]="RGBA32I",t[t.RGB32I=36227]="RGB32I",t[t.RGBA16I=36232]="RGBA16I",t[t.RGB16I=36233]="RGB16I",t[t.RGBA8I=36238]="RGBA8I",t[t.RGB8I=36239]="RGB8I",t[t.RED_INTEGER=36244]="RED_INTEGER",t[t.RGB_INTEGER=36248]="RGB_INTEGER",t[t.RGBA_INTEGER=36249]="RGBA_INTEGER",t[t.R8=33321]="R8",t[t.RG8=33323]="RG8",t[t.R16F=33325]="R16F",t[t.R32F=33326]="R32F",t[t.RG16F=33327]="RG16F",t[t.RG32F=33328]="RG32F",t[t.R8I=33329]="R8I",t[t.R8UI=33330]="R8UI",t[t.R16I=33331]="R16I",t[t.R16UI=33332]="R16UI",t[t.R32I=33333]="R32I",t[t.R32UI=33334]="R32UI",t[t.RG8I=33335]="RG8I",t[t.RG8UI=33336]="RG8UI",t[t.RG16I=33337]="RG16I",t[t.RG16UI=33338]="RG16UI",t[t.RG32I=33339]="RG32I",t[t.RG32UI=33340]="RG32UI",t[t.R8_SNORM=36756]="R8_SNORM",t[t.RG8_SNORM=36757]="RG8_SNORM",t[t.RGB8_SNORM=36758]="RGB8_SNORM",t[t.RGBA8_SNORM=36759]="RGBA8_SNORM",t[t.RGB10_A2UI=36975]="RGB10_A2UI",t[t.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",t[t.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",t[t.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",t[t.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",t[t.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",t[t.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",t[t.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",t[t.HALF_FLOAT=5131]="HALF_FLOAT",t[t.RG=33319]="RG",t[t.RG_INTEGER=33320]="RG_INTEGER",t[t.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",t[t.CURRENT_QUERY=34917]="CURRENT_QUERY",t[t.QUERY_RESULT=34918]="QUERY_RESULT",t[t.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",t[t.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",t[t.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",t[t.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",t[t.DRAW_BUFFER0=34853]="DRAW_BUFFER0",t[t.DRAW_BUFFER1=34854]="DRAW_BUFFER1",t[t.DRAW_BUFFER2=34855]="DRAW_BUFFER2",t[t.DRAW_BUFFER3=34856]="DRAW_BUFFER3",t[t.DRAW_BUFFER4=34857]="DRAW_BUFFER4",t[t.DRAW_BUFFER5=34858]="DRAW_BUFFER5",t[t.DRAW_BUFFER6=34859]="DRAW_BUFFER6",t[t.DRAW_BUFFER7=34860]="DRAW_BUFFER7",t[t.DRAW_BUFFER8=34861]="DRAW_BUFFER8",t[t.DRAW_BUFFER9=34862]="DRAW_BUFFER9",t[t.DRAW_BUFFER10=34863]="DRAW_BUFFER10",t[t.DRAW_BUFFER11=34864]="DRAW_BUFFER11",t[t.DRAW_BUFFER12=34865]="DRAW_BUFFER12",t[t.DRAW_BUFFER13=34866]="DRAW_BUFFER13",t[t.DRAW_BUFFER14=34867]="DRAW_BUFFER14",t[t.DRAW_BUFFER15=34868]="DRAW_BUFFER15",t[t.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",t[t.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",t[t.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",t[t.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",t[t.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",t[t.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",t[t.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",t[t.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",t[t.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",t[t.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",t[t.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",t[t.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",t[t.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",t[t.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",t[t.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",t[t.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",t[t.SAMPLER_3D=35679]="SAMPLER_3D",t[t.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",t[t.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",t[t.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",t[t.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",t[t.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",t[t.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",t[t.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",t[t.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",t[t.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",t[t.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",t[t.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",t[t.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",t[t.MAX_SAMPLES=36183]="MAX_SAMPLES",t[t.SAMPLER_BINDING=35097]="SAMPLER_BINDING",t[t.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",t[t.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",t[t.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",t[t.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",t[t.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",t[t.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",t[t.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",t[t.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",t[t.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",t[t.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",t[t.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",t[t.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",t[t.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",t[t.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",t[t.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",t[t.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",t[t.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",t[t.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",t[t.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",t[t.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",t[t.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",t[t.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",t[t.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",t[t.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",t[t.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",t[t.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",t[t.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",t[t.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",t[t.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",t[t.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",t[t.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",t[t.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",t[t.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",t[t.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",t[t.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",t[t.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",t[t.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",t[t.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",t[t.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",t[t.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",t[t.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",t[t.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",t[t.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",t[t.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",t[t.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",t[t.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",t[t.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",t[t.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",t[t.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",t[t.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",t[t.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",t[t.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",t[t.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",t[t.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",t[t.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",t[t.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",t[t.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",t[t.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",t[t.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",t[t.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",t[t.UNIFORM_TYPE=35383]="UNIFORM_TYPE",t[t.UNIFORM_SIZE=35384]="UNIFORM_SIZE",t[t.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",t[t.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",t[t.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",t[t.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",t[t.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",t[t.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",t[t.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",t[t.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",t[t.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",t[t.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",t[t.OBJECT_TYPE=37138]="OBJECT_TYPE",t[t.SYNC_CONDITION=37139]="SYNC_CONDITION",t[t.SYNC_STATUS=37140]="SYNC_STATUS",t[t.SYNC_FLAGS=37141]="SYNC_FLAGS",t[t.SYNC_FENCE=37142]="SYNC_FENCE",t[t.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",t[t.UNSIGNALED=37144]="UNSIGNALED",t[t.SIGNALED=37145]="SIGNALED",t[t.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",t[t.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",t[t.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",t[t.WAIT_FAILED=37149]="WAIT_FAILED",t[t.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",t[t.COLOR=6144]="COLOR",t[t.DEPTH=6145]="DEPTH",t[t.STENCIL=6146]="STENCIL",t[t.MIN=32775]="MIN",t[t.MAX=32776]="MAX",t[t.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",t[t.STREAM_READ=35041]="STREAM_READ",t[t.STREAM_COPY=35042]="STREAM_COPY",t[t.STATIC_READ=35045]="STATIC_READ",t[t.STATIC_COPY=35046]="STATIC_COPY",t[t.DYNAMIC_READ=35049]="DYNAMIC_READ",t[t.DYNAMIC_COPY=35050]="DYNAMIC_COPY",t[t.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",t[t.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",t[t.INVALID_INDEX=4294967295]="INVALID_INDEX",t[t.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",t[t.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",t[t.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",t[t.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",t[t.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",t[t.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",t[t.R16_EXT=33322]="R16_EXT",t[t.RG16_EXT=33324]="RG16_EXT",t[t.RGB16_EXT=32852]="RGB16_EXT",t[t.RGBA16_EXT=32859]="RGBA16_EXT",t[t.R16_SNORM_EXT=36760]="R16_SNORM_EXT",t[t.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",t[t.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",t[t.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",t[t.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",t[t.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",t[t.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",t[t.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",t[t.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",t[t.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",t[t.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",t[t.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",t[t.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",t[t.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",t[t.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",t[t.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",t[t.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",t[t.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",t[t.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",t[t.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",t[t.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",t[t.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",t[t.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",t[t.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",t[t.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",t[t.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",t[t.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",t[t.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",t[t.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",t[t.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",t[t.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",t[t.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",t[t.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",t[t.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",t[t.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",t[t.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",t[t.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",t[t.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",t[t.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",t[t.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",t[t.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",t[t.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",t[t.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",t[t.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",t[t.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",t[t.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",t[t.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",t[t.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",t[t.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",t[t.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",t[t.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",t[t.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",t[t.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",t[t.LINE_WEBGL=6913]="LINE_WEBGL",t[t.FILL_WEBGL=6914]="FILL_WEBGL",t[t.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",t[t.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",t[t.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",t[t.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",t[t.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",t[t.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",t[t.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",t[t.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",t[t.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",t[t.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",t[t.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",t[t.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",t[t.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",t[t.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",t[t.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",t[t.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",t[t.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",t[t.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",t[t.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",t[t.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",t[t.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",t[t.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",t[t.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",t[t.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(wt||(wt={}))});var Li=P(()=>{Hi()});var F=Qe((Vd,zi)=>{zi.exports=globalThis.luma});function Ut(t){let e=t.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return e._polyfilled??=!1,e.extensions||={},t.luma=e,e}var Ge=P(()=>{});function Ki(t){if(t={...za,...t},!t.debugSpectorJS)return null;if(!$&&globalThis.SPECTOR&&!globalThis.luma?.spector){$t.log.probe(La,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:e}=globalThis.SPECTOR;$=new e,globalThis.luma&&(globalThis.luma.spector=$)}if(!$)return null;if(Yi||(Yi=!0,$.spyCanvases(),$?.onCaptureStarted.add(e=>$t.log.info("Spector capture started:",e)()),$?.onCapture.add(e=>{$t.log.info("Spector capture complete:",e)(),$?.getResultUI(),$?.resultView.display(),$?.resultView.addCapture(e)})),t.gl){let e=t.gl,r=Ut(e),n=r.device;$?.startCapture(t.gl,500),r.device=n,new Promise(i=>setTimeout(i,2e3)).then(i=>{$t.log.info("Spector capture stopped after 2 seconds")(),$?.stopCapture()})}return $}var $t,La,$,Yi,za,$i=P(()=>{$t=D(F(),1);Ge();La=1,$=null,Yi=!1,za={debugSpectorJS:$t.log.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0}});var tr,Ya,er,Ka,ji,hn=P(()=>{tr=globalThis,Ya=globalThis.document||{},er=globalThis.process||{},Ka=globalThis.console,ji=globalThis.navigator||{}});function rr(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return Boolean(r&&r.indexOf("Electron")>=0)}var fn=P(()=>{});function Rt(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||rr()}var dn=P(()=>{fn()});function pn(t){return!t&&!Rt()?"Node":rr(t)?"Electron":(t||ji.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var Zi=P(()=>{dn();fn();hn()});var un,be=P(()=>{hn();dn();Zi();un="4.1.1"});function Qi(t){return t.luma=t.luma||{},t.luma}function Ji(t,e={}){return e.debugWebGL||e.traceWebGL?Za(t,e):ja(t)}function ja(t){let e=Qi(t);return e.realContext?e.realContext:t}function Za(t,e){if(!globalThis.WebGLDebugUtils)return Se.log.warn("webgl-debug not loaded")(),t;let r=Qi(t);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...wt,...t});let n=globalThis.WebGLDebugUtils.makeDebugContext(t,qa.bind(null,e),Qa.bind(null,e));for(let o in wt)!(o in n)&&typeof wt[o]=="number"&&(n[o]=wt[o]);class i{}Object.setPrototypeOf(n,Object.getPrototypeOf(t)),Object.setPrototypeOf(i,n);let s=Object.create(i);return r.realContext=t,r.debugContext=s,s.luma=r,s.debug=!0,s}function qi(t,e){e=Array.from(e).map(n=>n===void 0?"undefined":n);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,e);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${t}(${r})`}function qa(t,e,r,n){n=Array.from(n).map(a=>a===void 0?"undefined":a);let i=globalThis.WebGLDebugUtils.glEnumToString(e),s=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),o=`${i} in gl.${r}(${s})`;Se.log.error("%cWebGL","color: white; background: red; padding: 2px 6px; border-radius: 3px;",o)();debugger;throw new Error(o)}function Qa(t,e,r){let n="";t.traceWebGL&&Se.log.level>=1&&(n=qi(e,r),Se.log.info(1,"%cWebGL","color: white; background: blue; padding: 2px 6px; border-radius: 3px;",n)());for(let i of r)if(i===void 0){n=n||qi(e,r);debugger}}var Se,Gi=P(()=>{Se=D(F(),1);Li()});function _n(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function v(t,e,r){return e[t]!==void 0?e[t]:r[t]}var Me,V,ts,j,es,Ae,rs,ns,gn,ut,Tn,is,mn=P(()=>{Me={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},V=(t,e,r)=>e?t.enable(r):t.disable(r),ts=(t,e,r)=>t.hint(r,e),j=(t,e,r)=>t.pixelStorei(r,e),es=(t,e,r)=>{let n=r===36006?36009:36008;return t.bindFramebuffer(n,e)},Ae=(t,e,r)=>{let i={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];t.bindBuffer(i,e)};rs={[3042]:V,[32773]:(t,e)=>t.blendColor(...e),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(t,e)=>t.clearColor(...e),[3107]:(t,e)=>t.colorMask(...e),[2884]:V,[2885]:(t,e)=>t.cullFace(e),[2929]:V,[2931]:(t,e)=>t.clearDepth(e),[2932]:(t,e)=>t.depthFunc(e),[2928]:(t,e)=>t.depthRange(...e),[2930]:(t,e)=>t.depthMask(e),[3024]:V,[35723]:ts,[35725]:(t,e)=>t.useProgram(e),[36007]:(t,e)=>t.bindRenderbuffer(36161,e),[36389]:(t,e)=>t.bindTransformFeedback?.(36386,e),[34229]:(t,e)=>t.bindVertexArray(e),[36006]:es,[36010]:es,[34964]:Ae,[36662]:Ae,[36663]:Ae,[35053]:Ae,[35055]:Ae,[2886]:(t,e)=>t.frontFace(e),[33170]:ts,[2849]:(t,e)=>t.lineWidth(e),[32823]:V,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:V,[32926]:V,[32928]:V,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:V,[3088]:(t,e)=>t.scissor(...e),[2960]:V,[2961]:(t,e)=>t.clearStencil(e),[2968]:(t,e)=>t.stencilMaskSeparate(1028,e),[36005]:(t,e)=>t.stencilMaskSeparate(1029,e),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(t,e)=>t.viewport(...e),[34383]:V,[10754]:V,[12288]:V,[12289]:V,[12290]:V,[12291]:V,[12292]:V,[12293]:V,[12294]:V,[12295]:V,[3333]:j,[3317]:j,[37440]:j,[37441]:j,[37443]:j,[3330]:j,[3332]:j,[3331]:j,[3314]:j,[32878]:j,[3316]:j,[3315]:j,[32877]:j,framebuffer:(t,e)=>{let r=e&&"handle"in e?e.handle:e;return t.bindFramebuffer(36160,r)},blend:(t,e)=>e?t.enable(3042):t.disable(3042),blendColor:(t,e)=>t.blendColor(...e),blendEquation:(t,e)=>{let r=typeof e=="number"?[e,e]:e;t.blendEquationSeparate(...r)},blendFunc:(t,e)=>{let r=e?.length===2?[...e,...e]:e;t.blendFuncSeparate(...r)},clearColor:(t,e)=>t.clearColor(...e),clearDepth:(t,e)=>t.clearDepth(e),clearStencil:(t,e)=>t.clearStencil(e),colorMask:(t,e)=>t.colorMask(...e),cull:(t,e)=>e?t.enable(2884):t.disable(2884),cullFace:(t,e)=>t.cullFace(e),depthTest:(t,e)=>e?t.enable(2929):t.disable(2929),depthFunc:(t,e)=>t.depthFunc(e),depthMask:(t,e)=>t.depthMask(e),depthRange:(t,e)=>t.depthRange(...e),dither:(t,e)=>e?t.enable(3024):t.disable(3024),derivativeHint:(t,e)=>{t.hint(35723,e)},frontFace:(t,e)=>t.frontFace(e),mipmapHint:(t,e)=>t.hint(33170,e),lineWidth:(t,e)=>t.lineWidth(e),polygonOffsetFill:(t,e)=>e?t.enable(32823):t.disable(32823),polygonOffset:(t,e)=>t.polygonOffset(...e),sampleCoverage:(t,e)=>t.sampleCoverage(e[0],e[1]||!1),scissorTest:(t,e)=>e?t.enable(3089):t.disable(3089),scissor:(t,e)=>t.scissor(...e),stencilTest:(t,e)=>e?t.enable(2960):t.disable(2960),stencilMask:(t,e)=>{e=_n(e)?e:[e,e];let[r,n]=e;t.stencilMaskSeparate(1028,r),t.stencilMaskSeparate(1029,n)},stencilFunc:(t,e)=>{e=_n(e)&&e.length===3?[...e,...e]:e;let[r,n,i,s,o,a]=e;t.stencilFuncSeparate(1028,r,n,i),t.stencilFuncSeparate(1029,s,o,a)},stencilOp:(t,e)=>{e=_n(e)&&e.length===3?[...e,...e]:e;let[r,n,i,s,o,a]=e;t.stencilOpSeparate(1028,r,n,i),t.stencilOpSeparate(1029,s,o,a)},viewport:(t,e)=>t.viewport(...e)};ns={blendEquation:(t,e,r)=>t.blendEquationSeparate(v(32777,e,r),v(34877,e,r)),blendFunc:(t,e,r)=>t.blendFuncSeparate(v(32969,e,r),v(32968,e,r),v(32971,e,r),v(32970,e,r)),polygonOffset:(t,e,r)=>t.polygonOffset(v(32824,e,r),v(10752,e,r)),sampleCoverage:(t,e,r)=>t.sampleCoverage(v(32938,e,r),v(32939,e,r)),stencilFuncFront:(t,e,r)=>t.stencilFuncSeparate(1028,v(2962,e,r),v(2967,e,r),v(2963,e,r)),stencilFuncBack:(t,e,r)=>t.stencilFuncSeparate(1029,v(34816,e,r),v(36003,e,r),v(36004,e,r)),stencilOpFront:(t,e,r)=>t.stencilOpSeparate(1028,v(2964,e,r),v(2965,e,r),v(2966,e,r)),stencilOpBack:(t,e,r)=>t.stencilOpSeparate(1029,v(34817,e,r),v(34818,e,r),v(34819,e,r))},gn={enable:(t,e)=>t({[e]:!0}),disable:(t,e)=>t({[e]:!1}),pixelStorei:(t,e,r)=>t({[e]:r}),hint:(t,e,r)=>t({[e]:r}),useProgram:(t,e)=>t({[35725]:e}),bindRenderbuffer:(t,e,r)=>t({[36007]:r}),bindTransformFeedback:(t,e,r)=>t({[36389]:r}),bindVertexArray:(t,e)=>t({[34229]:e}),bindFramebuffer:(t,e,r)=>{switch(e){case 36160:return t({[36006]:r,[36010]:r});case 36009:return t({[36006]:r});case 36008:return t({[36010]:r});default:return null}},bindBuffer:(t,e,r)=>{let n={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[e];return n?t({[n]:r}):{valueChanged:!0}},blendColor:(t,e,r,n,i)=>t({[32773]:new Float32Array([e,r,n,i])}),blendEquation:(t,e)=>t({[32777]:e,[34877]:e}),blendEquationSeparate:(t,e,r)=>t({[32777]:e,[34877]:r}),blendFunc:(t,e,r)=>t({[32969]:e,[32968]:r,[32971]:e,[32970]:r}),blendFuncSeparate:(t,e,r,n,i)=>t({[32969]:e,[32968]:r,[32971]:n,[32970]:i}),clearColor:(t,e,r,n,i)=>t({[3106]:new Float32Array([e,r,n,i])}),clearDepth:(t,e)=>t({[2931]:e}),clearStencil:(t,e)=>t({[2961]:e}),colorMask:(t,e,r,n,i)=>t({[3107]:[e,r,n,i]}),cullFace:(t,e)=>t({[2885]:e}),depthFunc:(t,e)=>t({[2932]:e}),depthRange:(t,e,r)=>t({[2928]:new Float32Array([e,r])}),depthMask:(t,e)=>t({[2930]:e}),frontFace:(t,e)=>t({[2886]:e}),lineWidth:(t,e)=>t({[2849]:e}),polygonOffset:(t,e,r)=>t({[32824]:e,[10752]:r}),sampleCoverage:(t,e,r)=>t({[32938]:e,[32939]:r}),scissor:(t,e,r,n,i)=>t({[3088]:new Int32Array([e,r,n,i])}),stencilMask:(t,e)=>t({[2968]:e,[36005]:e}),stencilMaskSeparate:(t,e,r)=>t({[e===1028?2968:36005]:r}),stencilFunc:(t,e,r,n)=>t({[2962]:e,[2967]:r,[2963]:n,[34816]:e,[36003]:r,[36004]:n}),stencilFuncSeparate:(t,e,r,n,i)=>t({[e===1028?2962:34816]:r,[e===1028?2967:36003]:n,[e===1028?2963:36004]:i}),stencilOp:(t,e,r,n)=>t({[2964]:e,[2965]:r,[2966]:n,[34817]:e,[34818]:r,[34819]:n}),stencilOpSeparate:(t,e,r,n,i)=>t({[e===1028?2964:34817]:r,[e===1028?2965:34818]:n,[e===1028?2966:34819]:i}),viewport:(t,e,r,n,i)=>t({[2978]:[e,r,n,i]})},ut=(t,e)=>t.isEnabled(e),Tn={[3042]:ut,[2884]:ut,[2929]:ut,[3024]:ut,[32823]:ut,[32926]:ut,[32928]:ut,[3089]:ut,[2960]:ut,[35977]:ut},is=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068])});function rt(t,e){if(Ja(e))return;let r={};for(let i in e){let s=Number(i),o=rs[i];o&&(typeof o=="string"?r[o]=!0:o(t,e[i],s))}let n=t.lumaState?.cache;if(n)for(let i in r){let s=ns[i];s(t,e,n)}}function nr(t,e=Me){if(typeof e=="number"){let i=e,s=Tn[i];return s?s(t,i):t.getParameter(i)}let r=Array.isArray(e)?e:Object.keys(e),n={};for(let i of r){let s=Tn[i];n[i]=s?s(t,Number(i)):t.getParameter(Number(i))}return n}function ss(t){rt(t,Me)}function Ja(t){for(let e in t)return!1;return!0}var jt=P(()=>{mn()});function as(t,e){if(t===e)return!0;if(os(t)&&os(e)&&t.length===e.length){for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}return!1}function os(t){return Array.isArray(t)||ArrayBuffer.isView(t)}var cs=P(()=>{});function ls(t,e){let r=t[e].bind(t);t[e]=function(i){if(i===void 0||is.has(i))return r(i);let s=nt.get(t);return i in s.cache||(s.cache[i]=r(i)),s.enable?s.cache[i]:r(i)},Object.defineProperty(t[e],"name",{value:`${e}-from-cache`,configurable:!1})}function Ga(t,e,r){if(!t[e])return;let n=t[e].bind(t);t[e]=function(...s){let o=nt.get(t),{valueChanged:a,oldValue:c}=r(o._updateCache,...s);return a&&n(...s),c},Object.defineProperty(t[e],"name",{value:`${e}-to-cache`,configurable:!1})}function tc(t){let e=t.useProgram.bind(t);t.useProgram=function(n){let i=nt.get(t);i.program!==n&&(e(n),i.program=n)}}var nt,En=P(()=>{jt();cs();mn();nt=class{static get(e){return e.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(e,r){this.gl=e,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){let e=this.stateStack[this.stateStack.length-1];rt(this.gl,e),this.stateStack.pop()}trackState(e,r){if(this.cache=r?.copyState?nr(e):Object.assign({},Me),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,tc(e);for(let n in gn){let i=gn[n];Ga(e,n,i)}ls(e,"getParameter"),ls(e,"isEnabled")}_updateCache(e){let r=!1,n,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in e){let o=e[s],a=this.cache[s];as(o,a)||(r=!0,n=a,i&&!(s in i)&&(i[s]=a),this.cache[s]=o)}return{valueChanged:r,oldValue:n}}}});function hs(t,e,r){let n="",i=c=>{let l=c.statusMessage;l&&(n||=l)};t.addEventListener("webglcontextcreationerror",i,!1);let s=r.failIfMajorPerformanceCaveat!==!0,o={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},a=null;try{a||=t.getContext("webgl2",o),!a&&o.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let c=!1;if(!a&&s&&(o.failIfMajorPerformanceCaveat=!1,a=t.getContext("webgl2",o),c=!0),a||(a=t.getContext("webgl",{}),a&&(a=null,n||="Your browser only supports WebGL1")),!a)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);let l=Ut(a);l.softwareRenderer=c;let{onContextLost:h,onContextRestored:f}=e;return t.addEventListener("webglcontextlost",d=>h(d),!1),t.addEventListener("webglcontextrestored",d=>f(d),!1),a}finally{t.removeEventListener("webglcontextcreationerror",i,!1)}}var fs=P(()=>{Ge()});function it(t,e,r){return r[e]===void 0&&(r[e]=t.getExtension(e)||null),r[e]}var xe=P(()=>{});function ds(t,e){let r=t.getParameter(7936),n=t.getParameter(7937);it(t,"WEBGL_debug_renderer_info",e);let i=e.WEBGL_debug_renderer_info,s=t.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=t.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),a=s||r,c=o||n,l=t.getParameter(7938),h=ps(a,c),f=ec(a,c),d=rc(a,c);return{type:"webgl",gpu:h,gpuType:d,gpuBackend:f,vendor:a,renderer:c,version:l,shadingLanguage:"glsl",shadingLanguageVersion:300}}function ps(t,e){return/NVIDIA/i.exec(t)||/NVIDIA/i.exec(e)?"nvidia":/INTEL/i.exec(t)||/INTEL/i.exec(e)?"intel":/Apple/i.exec(t)||/Apple/i.exec(e)?"apple":/AMD/i.exec(t)||/AMD/i.exec(e)||/ATI/i.exec(t)||/ATI/i.exec(e)?"amd":/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e)?"software":"unknown"}function ec(t,e){return/Metal/i.exec(t)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(t)||/ANGLE/i.exec(e)?"opengl":"unknown"}function rc(t,e){if(/SwiftShader/i.exec(t)||/SwiftShader/i.exec(e))return"cpu";switch(ps(t,e)){case"apple":return nc(t,e)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function nc(t,e){return/Apple (M\d|A\d|GPU)/i.test(`${t} ${e}`)}var us=P(()=>{xe()});function ir(t){switch(t){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(t))}var Rn=P(()=>{});function Ts(t){return t in or}function yn(t,e,r){return ms(t,e,r,new Set)}function ms(t,e,r,n){let i=or[e];if(!i||n.has(e))return!1;n.add(e);let s=(i.features||[]).every(o=>ms(t,o,r,n));return n.delete(e),s?(i.extensions||[]).every(o=>Boolean(it(t,o,r))):!1}function Es(t,e,r){let n=e.create,i=ar[e.format];i?.gl===void 0&&(n=!1),i?.x&&(n=n&&Boolean(it(t,i.x,r))),e.format==="stencil8"&&(n=!1);let s=i?.r===!1?!1:i?.r===void 0||yn(t,i.r,r),o=n&&e.render&&s&&fc(t,e.format,r);return{format:e.format,create:n&&e.create,render:o,filter:n&&e.filter,blend:n&&e.blend,store:n&&e.store}}function fc(t,e,r){let n=ar[e],i=n?.gl;if(i===void 0||n?.x&&!it(t,n.x,r))return!1;let s=t.getParameter(32873),o=t.getParameter(36006),a=t.createTexture(),c=t.createFramebuffer();if(!a||!c)return!1;let l=Number(0),h=Number(t.getError());for(;h!==l;)h=t.getError();let f=!1;try{if(t.bindTexture(3553,a),t.texStorage2D(3553,1,i,1,1),Number(t.getError())!==l)return!1;t.bindFramebuffer(36160,c),t.framebufferTexture2D(36160,36064,3553,a,0),f=Number(t.checkFramebufferStatus(36160))===Number(36053)&&Number(t.getError())===l}finally{t.bindFramebuffer(36160,o),t.deleteFramebuffer(c),t.bindTexture(3553,s),t.deleteTexture(a)}return f}function cr(t){let e=ar[t],r=pc(t),n=xn.textureFormatDecoder.getInfo(t);return n.compressed&&(e.dataFormat=r),{internalFormat:r,format:e?.dataFormat||dc(n.channels,n.integer,n.normalized,r),type:n.dataType?ir(n.dataType):e?.types?.[0]||5121,compressed:n.compressed||!1}}function Rs(t){switch(xn.textureFormatDecoder.getInfo(t).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${t}`)}}function dc(t,e,r,n){if(n===6408||n===6407)return n;switch(t){case"r":return e&&!r?36244:6403;case"rg":return e&&!r?33320:33319;case"rgb":return e&&!r?36248:6407;case"rgba":return e&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function pc(t){let r=ar[t]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${t}`);return r}var xn,ye,Pe,Zt,qt,ic,sc,oc,ac,cc,lc,_s,gs,bn,Sn,An,Mn,sr,hc,or,ar,Qt=P(()=>{xn=D(F(),1);xe();Rn();ye="WEBGL_compressed_texture_s3tc",Pe="WEBGL_compressed_texture_s3tc_srgb",Zt="EXT_texture_compression_rgtc",qt="EXT_texture_compression_bptc",ic="WEBGL_compressed_texture_etc",sc="WEBGL_compressed_texture_astc",oc="WEBGL_compressed_texture_etc1",ac="WEBGL_compressed_texture_pvrtc",cc="WEBGL_compressed_texture_atc",lc="EXT_texture_norm16",_s="EXT_render_snorm",gs="EXT_color_buffer_float",bn="snorm8-renderable-webgl",Sn="norm16-renderable-webgl",An="snorm16-renderable-webgl",Mn="float16-renderable-webgl",sr="float32-renderable-webgl",hc="rgb9e5ufloat-renderable-webgl",or={"float32-renderable-webgl":{extensions:[gs]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[_s]},"norm16-webgl":{extensions:[lc]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[_s]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[ye,Pe,Zt,qt]},"texture-compression-bc5-webgl":{extensions:[Zt]},"texture-compression-bc7-webgl":{extensions:[qt]},"texture-compression-etc2":{extensions:[ic]},"texture-compression-astc":{extensions:[sc]},"texture-compression-etc1-webgl":{extensions:[oc]},"texture-compression-pvrtc-webgl":{extensions:[ac]},"texture-compression-atc-webgl":{extensions:[cc]}};ar={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:bn},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:bn},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:Mn},r16unorm:{gl:33322,rb:!0,r:Sn},r16snorm:{gl:36760,r:An},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:bn},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:Mn},rg16unorm:{gl:33324,r:Sn},rg16snorm:{gl:36761,r:An},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:sr},rgb9e5ufloat:{gl:35901,r:hc},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:sr},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:Mn},rgba16unorm:{gl:32859,rb:!0,r:Sn},rgba16snorm:{gl:36763,r:An},"rgb32float-webgl":{gl:34837,x:gs,r:sr,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:sr},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:ye},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:Pe},"bc1-rgba-unorm":{gl:33777,x:ye},"bc1-rgba-unorm-srgb":{gl:35916,x:Pe},"bc2-rgba-unorm":{gl:33778,x:ye},"bc2-rgba-unorm-srgb":{gl:35918,x:Pe},"bc3-rgba-unorm":{gl:33779,x:ye},"bc3-rgba-unorm-srgb":{gl:35919,x:Pe},"bc4-r-unorm":{gl:36283,x:Zt},"bc4-r-snorm":{gl:36284,x:Zt},"bc5-rg-unorm":{gl:36285,x:Zt},"bc5-rg-snorm":{gl:36286,x:Zt},"bc6h-rgb-ufloat":{gl:36495,x:qt},"bc6h-rgb-float":{gl:36494,x:qt},"bc7-rgba-unorm":{gl:36492,x:qt},"bc7-rgba-unorm-srgb":{gl:36493,x:qt},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var hr,bs,lr,Ss=P(()=>{hr=D(F(),1);xe();Qt();bs={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","html-in-canvas":t=>(0,hr.isHTMLInCanvasSupported)()&&typeof t.texElementImage2D=="function","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},lr=class extends hr.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(e,r,n){super([],n),this.gl=e,this.extensions=r,it(e,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let e=this.getFeatures();for(let r of e)this.has(r)&&(yield r);return[]}has(e){return this.disabledFeatures?.[e]?!1:(this.testedFeatures.has(e)||(this.testedFeatures.add(e),Ts(e)&&yn(this.gl,e,this.extensions)&&this.features.add(e),this.getWebGLFeature(e)&&this.features.add(e)),this.features.has(e))}initializeFeatures(){let e=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of e)this.has(r)}getFeatures(){return[...Object.keys(bs),...Object.keys(or)]}getWebGLFeature(e){let r=bs[e];return typeof r=="string"?Boolean(it(this.gl,r,this.extensions)):typeof r=="function"?r(this.gl):Boolean(r)}}});var As,fr,Ms=P(()=>{As=D(F(),1),fr=class extends As.DeviceLimits{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxBindGroupsPlusVertexBuffers(){return 0}get maxBindingsPerBindGroup(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageBuffersInVertexStage(){return 0}get maxStorageBuffersInFragmentStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxStorageTexturesInVertexStage(){return 0}get maxStorageTexturesInFragmentStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get maxBufferSize(){return Number.MAX_SAFE_INTEGER}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxColorAttachments(){return this.getParameter(36063)}get maxColorAttachmentBytesPerSample(){return 0}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(e){super(),this.gl=e}getParameter(e){return this.limits[e]===void 0&&(this.limits[e]=this.gl.getParameter(e)),this.limits[e]||0}}});function uc(t){return t<34069?t+34069:t}function _c(t){switch(t){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${t}`}}var xs,_t,dr=P(()=>{xs=D(F(),1);Qt();_t=class extends xs.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(e,r){super(e,r);let n=r.handle,i=n===null;this.device=e,this.gl=e.gl,this.handle=n||i?n:this.gl.createFramebuffer(),i||(e._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),r.handle||(this.autoCreateAttachmentTextures(),this.updateAttachments()))}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&!this.props.handle&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let e=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let n=this.colorAttachments[r];if(n){let i=36064+r;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){let r=Rs(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${_c(r)}`)}this.gl.bindFramebuffer(36160,e)}_attachTextureView(e,r){let{gl:n}=this.device,{texture:i}=r,s=r.props.baseMipLevel,o=r.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,e,i.handle,s,o);break;case 34067:let a=uc(o);n.framebufferTexture2D(36160,e,a,i.handle,s);break;case 3553:n.framebufferTexture2D(36160,e,3553,i.handle,s);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}resizeAttachments(e,r){if(this.handle===null){this.width=e,this.height=r;return}super.resizeAttachments(e,r)}}});var ys,pr,Ps=P(()=>{ys=D(F(),1);dr();pr=class extends ys.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(e,r){super(r),this.device=e,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new _t(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var Cs,ur,Is=P(()=>{Cs=D(F(),1),ur=class extends Cs.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(e,r={}){super(r),this.device=e;let n=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${n}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let s=this.canvas.getContext("2d");if(!s)throw new Error(`${n}: Failed to create 2d presentation context`);this.context2d=s,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let e=this.device.getDefaultCanvasContext(),[r,n]=e.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||n===0||e.canvas.width===0||e.canvas.height===0)){if(r!==this.drawingBufferWidth||n!==this.drawingBufferHeight||e.canvas.width!==this.drawingBufferWidth||e.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${n} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(e.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(e){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(e)}}});function Ns(t="id"){Pn[t]=Pn[t]||1;let e=Pn[t]++;return`${t}-${e}`}var Pn,ws=P(()=>{Pn={}});function gc(t){return t&Ot.Buffer.INDEX?34963:t&Ot.Buffer.VERTEX?34962:t&Ot.Buffer.UNIFORM?35345:34962}function Tc(t){return t&Ot.Buffer.INDEX||t&Ot.Buffer.VERTEX?35044:t&Ot.Buffer.UNIFORM?35048:35044}var Ot,st,_r=P(()=>{Ot=D(F(),1),st=class extends Ot.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(e,r={}){super(e,r),this.device=e,this.gl=this.device.gl;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),e._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=gc(this.props.usage),this.glUsage=Tc(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(e,r=0,n=e.byteLength+r){let i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,r,e),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(e,r,n),this.props.handle?this.trackReferencedMemory(n,"Buffer"):this.trackAllocatedMemory(n)}_initWithByteLength(e){let r=e;e===0&&(r=new Float32Array(0));let n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.props.handle?this.trackReferencedMemory(e,"Buffer"):this.trackAllocatedMemory(e),this}write(e,r=0){let n=ArrayBuffer.isView(e)?e:new Uint8Array(e),i=0,s=void 0,o=36663;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?this.gl.bufferSubData(o,r,n,i,s):this.gl.bufferSubData(o,r,n),this.gl.bindBuffer(o,null),this._setDebugData(e,r,e.byteLength)}async mapAndWriteAsync(e,r=0,n=this.byteLength-r){let i=new ArrayBuffer(n);await e(i,"copied"),this.write(i,r)}async readAsync(e=0,r){return this.readSyncWebGL(e,r)}async mapAndReadAsync(e,r=0,n){let i=await this.readAsync(r,n);return await e(i.buffer,"copied")}readSyncWebGL(e=0,r){r=r??this.byteLength-e;let n=new Uint8Array(r),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,n,i,r),this.gl.bindBuffer(36662,null),this._setDebugData(n,e,r),n}}});function Os(t){let e=t.split(/\r?\n/),r=[];for(let n of e){if(n.length<=1)continue;let i=n.trim(),s=n.split(":"),o=s[0]?.trim();if(s.length===2){let[p,_]=s;if(!p||!_){r.push({message:i,type:gr(o||"info"),lineNum:0,linePos:0});continue}r.push({message:_.trim(),type:gr(p),lineNum:0,linePos:0});continue}let[a,c,l,...h]=s;if(!a||!c||!l){r.push({message:s.slice(1).join(":").trim()||i,type:gr(o||"info"),lineNum:0,linePos:0});continue}let f=parseInt(l,10);Number.isNaN(f)&&(f=0);let d=parseInt(c,10);Number.isNaN(d)&&(d=0),r.push({message:h.join(":").trim(),type:gr(a),lineNum:f,linePos:d})}return r}function gr(t){let e=["warning","error","info"],r=t.toLowerCase();return e.includes(r)?r:"info"}var Ds=P(()=>{});function mc(t){return t.split(/\r?\n/).find(e=>e.trim())?.trim()}var Ce,Tr,Fs=P(()=>{Ce=D(F(),1);Ds();Tr=class extends Ce.Shader{device;handle;_compilationInfoLog="";constructor(e,r){super(e,r),this.device=e;let n=this.props.handle;switch(this.props.stage){case"vertex":this.handle=n||this.device.gl.createShader(35633);break;case"fragment":this.handle=n||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}e._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let i=this._compile(this.source);i&&typeof i.catch=="function"&&i.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let e=this._getCompilationInfoLog();return e?Os(e):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(e){e=e.startsWith("#version ")?e:`#version 300 es
|
|
8
|
-
${
|
|
9
|
-
Source: ${o}`:"",l=s.message.trim()||n||"WebGL did not provide a shader compiler log";return`GLSL compilation errors in ${r}:${a}: ${l}${c}`}_getCompilationInfoLog(){let e=this.device.gl.getShaderInfoLog(this.handle)?.trim();return e&&(this._compilationInfoLog=e),this._compilationInfoLog}}});function Us(t,e,r,n){if(Sc(e))return n(t);let i=t;i.pushState();try{return Ec(t,e),rt(i.gl,r),n(t)}finally{i.popState()}}function Ec(t,e){let r=t,{gl:n}=r;if(e.cullMode)switch(e.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(e.frontFace&&n.frontFace(Vt("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&t.features.has("depth-clip-control")&&n.enable(34383),e.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&t.features.has("provoking-vertex-webgl")){let s=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,o=Vt("provokingVertex",e.provokingVertex,{first:36429,last:36430});s?.provokingVertexWEBGL(o)}if((e.polygonMode||e.polygonOffsetLine)&&t.features.has("polygon-mode-webgl")){if(e.polygonMode){let s=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,o=Vt("polygonMode",e.polygonMode,{fill:6914,line:6913});s?.polygonModeWEBGL(1028,o),s?.polygonModeWEBGL(1029,o)}e.polygonOffsetLine&&n.enable(10754)}if(t.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&n.enable(12288),e.clipDistance1&&n.enable(12289),e.clipDistance2&&n.enable(12290),e.clipDistance3&&n.enable(12291),e.clipDistance4&&n.enable(12292),e.clipDistance5&&n.enable(12293),e.clipDistance6&&n.enable(12294),e.clipDistance7&&n.enable(12295)),e.depthWriteEnabled!==void 0&&n.depthMask(bc("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(Er("depthCompare",e.depthCompare))),e.clearDepth!==void 0&&n.clearDepth(e.clearDepth),e.stencilWriteMask){let i=e.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(e.stencilReadMask&&vs.log.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){let i=e.stencilReadMask||4294967295,s=Er("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,s,0,i),n.stencilFuncSeparate(1029,s,0,i)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){let i=Cn("stencilPassOperation",e.stencilPassOperation),s=Cn("stencilFailOperation",e.stencilFailOperation),o=Cn("stencilDepthFailOperation",e.stencilDepthFailOperation);n.stencilOpSeparate(1028,s,o,i),n.stencilOpSeparate(1029,s,o,i)}switch(e.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(e.blendColorOperation||e.blendAlphaOperation){let i=Bs("blendColorOperation",e.blendColorOperation||"add"),s=Bs("blendAlphaOperation",e.blendAlphaOperation||"add");n.blendEquationSeparate(i,s);let o=mr("blendColorSrcFactor",e.blendColorSrcFactor||"one"),a=mr("blendColorDstFactor",e.blendColorDstFactor||"zero"),c=mr("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),l=mr("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");n.blendFuncSeparate(o,a,c,l)}}function Er(t,e){return Vt(t,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Cn(t,e){return Vt(t,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Bs(t,e){return Vt(t,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function mr(t,e,r="color"){return Vt(t,e,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function Rc(t,e){return`Illegal parameter ${e} for ${t}`}function Vt(t,e,r){if(!(e in r))throw new Error(Rc(t,e));return r[e]}function bc(t,e){return e}function Sc(t){let e=!0;for(let r in t){e=!1;break}return e}var vs,In=P(()=>{vs=D(F(),1);jt()});function Rr(t){let e={};return t.addressModeU&&(e[10242]=Nn(t.addressModeU)),t.addressModeV&&(e[10243]=Nn(t.addressModeV)),t.addressModeW&&(e[32882]=Nn(t.addressModeW)),t.magFilter&&(e[10240]=wn(t.magFilter)),(t.minFilter||t.mipmapFilter)&&(e[10241]=Ac(t.minFilter||"linear",t.mipmapFilter)),t.lodMinClamp!==void 0&&(e[33082]=t.lodMinClamp),t.lodMaxClamp!==void 0&&(e[33083]=t.lodMaxClamp),t.type==="comparison-sampler"&&(e[34892]=34894),t.compare&&(e[34893]=Er("compare",t.compare)),t.maxAnisotropy&&(e[34046]=t.maxAnisotropy),e}function Nn(t){switch(t){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function wn(t){switch(t){case"nearest":return 9728;case"linear":return 9729}}function Ac(t,e="none"){if(!e)return wn(t);switch(e){case"none":return wn(t);case"nearest":switch(t){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(t){case"nearest":return 9986;case"linear":return 9987}}}var On=P(()=>{In()});var Vs,br,ks=P(()=>{Vs=D(F(),1);On();br=class extends Vs.Sampler{device;handle;parameters;constructor(e,r){super(e,r),this.device=e,this.parameters=Rr(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(let[r,n]of Object.entries(e)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function ot(t,e,r){if(Mc(e))return r(t);let{nocatch:n=!0}=e,i=nt.get(t);i.push(),rt(t,e);let s;if(n)s=r(t),i.pop();else try{s=r(t)}finally{i.pop()}return s}function Mc(t){for(let e in t)return!1;return!0}var Sr=P(()=>{jt();En()});var Ar,gt,Dn=P(()=>{Ar=D(F(),1),gt=class extends Ar.TextureView{device;gl;handle;texture;constructor(e,r){super(e,{...Ar.Texture.defaultProps,...r}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function Mr(t){return xc[t]}var xc,Fn=P(()=>{xc={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function yc(t,e=0){return e?new t.constructor(t.buffer,t.byteOffset+e,(t.byteLength-e)/t.BYTES_PER_ELEMENT):t}function Pc(t,e){if(e%t.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${e} must align to typed array element size ${t.BYTES_PER_ELEMENT}`);return e/t.BYTES_PER_ELEMENT}function Cc(t){switch(t){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(t)}function Ie(t,e,r){return e==="cube"?34069+r:t}var Dt,Tt,xr=P(()=>{Dt=D(F(),1);Qt();On();Sr();Dn();Fn();Tt=class extends Dt.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(e,r){super(e,r,{byteAlignment:1}),this.device=e,this.gl=this.device.gl;let n=cr(this.props.format);if(this.glTarget=Cc(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.isHandleBorrowed&&this.props.handle===void 0)throw new Error("Borrowed WebGL textures require a texture handle");if(this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),!this.isHandleBorrowed){this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:s,height:o,depth:a,mipLevels:c,glTarget:l,glInternalFormat:h}=this;if(!this.compressed)switch(i){case"2d":case"cube":this.gl.texStorage2D(l,c,h,s,o);break;case"2d-array":case"3d":this.gl.texStorage3D(l,c,h,s,o,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data)}this.ownsHandle?this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"):this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"),this.isHandleBorrowed||this.setSampler(this.props.sampler),this.view=new gt(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.ownsHandle?(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")):this.trackDeallocatedReferencedMemory("Texture"),this.destroyed=!0)}createView(e){return new gt(this.device,{...e,texture:this})}clone(e){if(this.isHandleBorrowed&&e&&(e.width!==this.width||e.height!==this.height))throw new Error(`Cannot resize borrowed read-only ${this}`);return super.clone(e)}setSampler(e={}){this._assertWritable("set sampler parameters on"),super.setSampler(e);let r=Rr(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(e){this._assertWritable("copy external image data into");let r=this._normalizeCopyExternalImageOptions(e);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:s,depth:o,mipLevel:a,x:c,y:l,z:h,width:f,height:d}=r,p=Ie(this.glTarget,this.dimension,h),_=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),ot(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(p,a,c,l,f,d,n,i,s);break;case"2d-array":case"3d":this.gl.texSubImage3D(p,a,c,l,h,f,d,o,n,i,s);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyElementImage(e){this._assertWritable("copy element image data into");let r=this._normalizeCopyElementImageOptions(e),{glFormat:n}=this,{element:i,depth:s,mipLevel:o,sourceX:a,sourceY:c,sourceWidth:l,sourceHeight:h,x:f,y:d,z:p,width:_,height:g}=r,u=Ie(this.glTarget,this.dimension,p),T=r.flipY?{[37440]:!0}:{},b=this.gl;if(s!==1||this.dimension!=="2d"&&this.dimension!=="cube")throw new Error(`${this} copyElementImage only supports 2d and cube textures on WebGL`);if(o!==0||f!==0||d!==0)throw new Error(`${this} copyElementImage only supports full base-level uploads on WebGL`);if(typeof b.texElementImage2D!="function")throw new Error(`${this} copyElementImage is not supported by this WebGL implementation`);return this.gl.bindTexture(this.glTarget,this.handle),ot(this.gl,T,()=>{b.texElementImage2D?.(u,n,i,{sx:a,sy:c,swidth:l??_,sheight:h??g,width:_,height:g})}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(e){super.copyImageData(e)}readBuffer(e={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let n=this._getSupportedColorReadOptions(e),i=e.byteOffset??0,s=this.computeMemoryLayout(n);if(r.byteLength<i+s.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${i+s.byteLength})`);let o=r;this.gl.bindBuffer(35051,o.handle);try{this._readColorTextureLayers(n,s,a=>{this.gl.readPixels(n.x,n.y,n.width,n.height,this.glFormat,this.glType,i+a)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(e={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(e,r={}){this._assertWritable("write buffer data into");let n=this._normalizeTextureWriteOptions(r),{width:i,height:s,depthOrArrayLayers:o,mipLevel:a,byteOffset:c,x:l,y:h,z:f}=n,{glFormat:d,glType:p,compressed:_}=this,g=Ie(this.glTarget,this.dimension,f);if(_)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:u}=this.device.getTextureFormatInfo(this.format),T=u?n.bytesPerRow/u:void 0,b={[3317]:this.byteAlignment,...T!==void 0?{[3314]:T}:{},[32878]:n.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,e.handle),ot(this.gl,b,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,a,l,h,i,s,d,p,c);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,a,l,h,f,i,s,o,d,p,c);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(e,r={}){this._assertWritable("write data into");let n=this._normalizeTextureWriteOptions(r),i=ArrayBuffer.isView(e)?e:new Uint8Array(e),{width:s,height:o,depthOrArrayLayers:a,mipLevel:c,x:l,y:h,z:f,byteOffset:d}=n,{glFormat:p,glType:_,compressed:g}=this,u=Ie(this.glTarget,this.dimension,f),T;if(!g){let{bytesPerPixel:m}=this.device.getTextureFormatInfo(this.format);m&&(T=n.bytesPerRow/m)}let b=this.compressed?{}:{[3317]:this.byteAlignment,...T!==void 0?{[3314]:T}:{},[32878]:n.rowsPerImage},E=Pc(i,d),R=g?yc(i,d):i,S=this._getMipLevelSize(c),M=l===0&&h===0&&f===0&&s===S.width&&o===S.height&&a===S.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),ot(this.gl,b,()=>{switch(this.dimension){case"2d":case"cube":g?M?this.gl.compressedTexImage2D(u,c,p,s,o,0,R):this.gl.compressedTexSubImage2D(u,c,l,h,s,o,p,R):this.gl.texSubImage2D(u,c,l,h,s,o,p,_,i,E);break;case"2d-array":case"3d":g?M?this.gl.compressedTexImage3D(u,c,p,s,o,a,0,R):this.gl.compressedTexSubImage3D(u,c,l,h,f,s,o,a,p,R):this.gl.texSubImage3D(u,c,l,h,f,s,o,a,p,_,i,E);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(e,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(e={}){let r=this._getSupportedColorReadOptions(e),n=this.computeMemoryLayout(r),i=Mr(this.glType),s=(0,Dt.getTypedArrayConstructor)(i),o=new s(n.byteLength/s.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,n,a=>{let c=new s(o.buffer,o.byteOffset+a,n.bytesPerImage/s.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,c)}),o.buffer}_readColorTextureLayers(e,r,n){let i=this._getFramebuffer(),s=r.bytesPerRow/r.bytesPerPixel,o={[3333]:this.byteAlignment,...s!==e.width?{[3330]:s}:{}},a=this.gl.getParameter(3074),c=this.gl.bindFramebuffer(36160,i.handle);try{this.gl.readBuffer(36064),ot(this.gl,o,()=>{for(let l=0;l<e.depthOrArrayLayers;l++)this._attachReadSubresource(i,e.mipLevel,e.z+l),n(l*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,c||null),this.gl.readBuffer(a)}}_attachReadSubresource(e,r,n){let i=`${r}:${n}`;if(this._framebufferAttachmentKey!==i){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,Ie(this.glTarget,this.dimension,n),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,n);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let s=Number(this.gl.checkFramebufferStatus(36160));if(s!==Number(36053))throw new Error(`${e} incomplete for ${this} readback (${s})`)}this._framebufferAttachmentKey=i}}generateMipmapsWebGL(e){if(this._assertWritable("generate mipmaps for"),!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Dt.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!e?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Dt.log.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(e){Dt.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(e)){let i=Number(r),s=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,s);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,s);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,s);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,s);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,s);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,this.handle),e}_unbind(e){let{gl:r}=this;return e!==void 0&&(this._textureUnit=e,r.activeTexture(33984+e)),r.bindTexture(this.glTarget,null),e}_assertWritable(e){if(this.isHandleBorrowed)throw new Error(`Cannot ${e} borrowed read-only ${this}`)}}});function Xs(t,e,r,n){let i=t,s=n;s===!0&&(s=1),s===!1&&(s=0);let o=typeof s=="number"?[s]:s;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof n!="number")throw new Error("samplers must be set to integers");return t.uniform1i(e,n);case 5126:return t.uniform1fv(e,o);case 35664:return t.uniform2fv(e,o);case 35665:return t.uniform3fv(e,o);case 35666:return t.uniform4fv(e,o);case 5124:return t.uniform1iv(e,o);case 35667:return t.uniform2iv(e,o);case 35668:return t.uniform3iv(e,o);case 35669:return t.uniform4iv(e,o);case 35670:return t.uniform1iv(e,o);case 35671:return t.uniform2iv(e,o);case 35672:return t.uniform3iv(e,o);case 35673:return t.uniform4iv(e,o);case 5125:return i.uniform1uiv(e,o,1);case 36294:return i.uniform2uiv(e,o,2);case 36295:return i.uniform3uiv(e,o,3);case 36296:return i.uniform4uiv(e,o,4);case 35674:return t.uniformMatrix2fv(e,!1,o);case 35675:return t.uniformMatrix3fv(e,!1,o);case 35676:return t.uniformMatrix4fv(e,!1,o);case 35685:return i.uniformMatrix2x3fv(e,!1,o);case 35686:return i.uniformMatrix2x4fv(e,!1,o);case 35687:return i.uniformMatrix3x2fv(e,!1,o);case 35688:return i.uniformMatrix3x4fv(e,!1,o);case 35689:return i.uniformMatrix4x2fv(e,!1,o);case 35690:return i.uniformMatrix4x3fv(e,!1,o)}throw new Error("Illegal uniform")}var Ws=P(()=>{});function Ic(t,e){let r={...t,attributes:t.attributes.map(n=>({...n})),bindings:t.bindings.map(n=>({...n}))};for(let n of e?.attributes||[]){let i=r.attributes.find(s=>s.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):L.log.warn(`shader layout attribute ${n.name} not present in shader`)}for(let n of e?.bindings||[]){let i=Ls(r,n.name);if(!i){L.log.warn(`shader layout binding ${n.name} not present in shader`);continue}Object.assign(i,n)}return r}function Ls(t,e){return t.bindings.find(r=>r.name===e||r.name===`${e}Uniforms`||`${r.name}Uniforms`===e)}function Hs(t,e){return t[e]||t[`${e}Uniforms`]||t[e.replace(/Uniforms$/,"")]}var L,yr,zs=P(()=>{L=D(F(),1);Ws();_r();dr();xr();Dn();yr=class extends L.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(e,r){super(e,r),this.device=e;let n=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=n,this.handle=n.handle,this.vs=n.vs,this.fs=n.fs,this.linkStatus=n.linkStatus,this.introspectedLayout=n.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?Ic(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(e,r){let n=(0,L.flattenBindingsByGroup)((0,L.normalizeBindingsByGroup)(this.shaderLayout,e));for(let[i,s]of Object.entries(n)){let o=Ls(this.shaderLayout,i);if(o){switch(s||L.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof st)&&!(s.buffer instanceof st))throw new Error("buffer value");break;case"texture":if(!(s instanceof gt||s instanceof Tt||s instanceof _t))throw new Error(`${this} Bad texture binding for ${i}`);break;case"sampler":L.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}else{let a=this.shaderLayout.bindings.map(c=>`"${c.name}"`).join(", ");r?.disableWarnings||L.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)()}}}draw(e){let r=e.renderPass,n=e.bindGroups?(0,L.flattenBindingsByGroup)(e.bindGroups):e.bindings||this.bindings;return r.setPipeline(this),r.setBindings(n),r.setVertexArray(e.vertexArray),r.draw({parameters:e.parameters,topology:e.topology,isInstanced:e.isInstanced,vertexCount:e.vertexCount,indexCount:e.indexCount,instanceCount:e.instanceCount,firstVertex:e.firstVertex,firstIndex:e.firstIndex,firstInstance:e.firstInstance,baseVertex:e.baseVertex,transformFeedback:e.transformFeedback,uniforms:e.uniforms})}_areTexturesRenderable(e){let r=!0;for(let n of this.shaderLayout.bindings)Hs(e,n.name)||(L.log.warn(`Binding ${n.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(e,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:n}=this.device;n.useProgram(this.handle);let i=0,s=0;for(let o of this.shaderLayout.bindings){let a=Hs(e,o.name);if(!a)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:c}=o,l=n.getUniformBlockIndex(this.handle,c);if(l===4294967295)throw new Error(`Invalid uniform block name ${c}`);if(n.uniformBlockBinding(this.handle,l,s),a instanceof st)n.bindBufferBase(35345,s,a.handle);else{let f=a;n.bindBufferRange(35345,s,f.buffer.handle,f.offset||0,f.size||f.buffer.byteLength-(f.offset||0))}s+=1;break;case"texture":if(!(a instanceof gt||a instanceof Tt||a instanceof _t))throw new Error("texture");let h;if(a instanceof gt)h=a.texture;else if(a instanceof Tt)h=a;else if(a instanceof _t&&a.colorAttachments[0]instanceof gt)L.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),h=a.colorAttachments[0].texture;else throw new Error("No texture");n.activeTexture(33984+i),n.bindTexture(h.glTarget,h.handle),i+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(e){for(let r of this.shaderLayout.uniforms||[]){let{name:n,location:i,type:s,textureUnit:o}=r,a=e[n]??o;a!==void 0&&Xs(this.device.gl,i,s,a)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function Ys(t){return wc[t]}function Pr(t){return Nc[t]}function Cr(t){return Boolean($s[t])}function Ks(t){return $s[t]}var Nc,$s,wc,Ir=P(()=>{Nc={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},$s={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},wc={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function js(t,e){let r={attributes:[],bindings:[]};r.attributes=Oc(t,e);let n=Bc(t,e);for(let a of n){let c=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:c})}let i=Fc(t,e),s=0;for(let a of i)if(Cr(a.type)){let{viewDimension:c,sampleType:l}=Ks(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:s,viewDimension:c,sampleType:l}),a.textureUnit=s,s+=1}i.length&&(r.uniforms=i);let o=Dc(t,e);return o?.length&&(r.varyings=o),r}function Oc(t,e){let r=[],n=t.getProgramParameter(e,35721);for(let i=0;i<n;i++){let s=t.getActiveAttrib(e,i);if(!s)throw new Error("activeInfo");let{name:o,type:a}=s,c=t.getAttribLocation(e,o);if(c>=0){let l=Pr(a),h=/instance/i.test(o)?"instance":"vertex";r.push({name:o,location:c,stepMode:h,type:l})}}return r.sort((i,s)=>i.location-s.location),r}function Dc(t,e){let r=[],n=t.getProgramParameter(e,35971);for(let i=0;i<n;i++){let s=t.getTransformFeedbackVarying(e,i);if(!s)throw new Error("activeInfo");let{name:o,type:a,size:c}=s,l=Pr(a),{type:h,components:f}=(0,Jt.getVariableShaderTypeInfo)(l);r.push({location:i,name:o,type:h,size:c*f})}return r.sort((i,s)=>i.location-s.location),r}function Fc(t,e){let r=[],n=t.getProgramParameter(e,35718);for(let i=0;i<n;i++){let s=t.getActiveUniform(e,i);if(!s)throw new Error("activeInfo");let{name:o,size:a,type:c}=s,{name:l,isArray:h}=vc(o),f=t.getUniformLocation(e,l),d={location:f,name:l,size:a,type:c,isArray:h};if(r.push(d),d.size>1)for(let p=0;p<d.size;p++){let _=`${l}[${p}]`;f=t.getUniformLocation(e,_);let g={...d,name:_,location:f};r.push(g)}}return r}function Bc(t,e){let r=(s,o)=>t.getActiveUniformBlockParameter(e,s,o),n=[],i=t.getProgramParameter(e,35382);for(let s=0;s<i;s++){let o={name:t.getActiveUniformBlockName(e,s)||"",location:r(s,35391),byteLength:r(s,35392),vertex:r(s,35396),fragment:r(s,35398),uniformCount:r(s,35394),uniforms:[]},a=r(s,35395)||[],c=t.getActiveUniforms(e,a,35383),l=t.getActiveUniforms(e,a,35384),h=t.getActiveUniforms(e,a,35387),f=t.getActiveUniforms(e,a,35388);for(let _=0;_<o.uniformCount;++_){let g=a[_];if(g!==void 0){let u=t.getActiveUniform(e,g);if(!u)throw new Error("activeInfo");let T=Pr(c[_]);o.uniforms.push({name:u.name,format:T,type:c[_],arrayLength:l[_],byteOffset:h[_],byteStride:f[_]})}}let d=new Set(o.uniforms.map(_=>_.name.split(".")[0]).filter(_=>Boolean(_))),p=o.name.replace(/Uniforms$/,"");if(d.size===1&&!d.has(o.name)&&!d.has(p)){let[_]=d;Jt.log.warn(`Uniform block "${o.name}" uses GLSL instance "${_}". luma.gl binds uniform buffers by block name ("${o.name}") and alias ("${p}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}n.push(o)}return n.sort((s,o)=>s.location-o.location),n}function vc(t){if(t[t.length-1]!=="]")return{name:t,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(t);return{name:(0,Jt.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${t}`),length:r?.[2]?1:0,isArray:Boolean(r?.[2])}}var Jt,Zs=P(()=>{Jt=D(F(),1);Ir()});var bt,qs,Nr,Qs=P(()=>{bt=D(F(),1);Zs();Ir();qs=4,Nr=class extends bt.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(e,r){super(e,r),this.device=e,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),bt.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=js(this.device.gl,this.handle),bt.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),bt.log.time(qs,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),bt.log.timeEnd(qs,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}bt.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),bt.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(e){switch(e){case"success":return;default:let r=e==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${e}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:e}=this.device;e.useProgram(this.handle);let r=0,n=e.getProgramParameter(this.handle,35718);for(let i=0;i<n;i++){let s=e.getActiveUniform(this.handle,i);if(s&&Cr(s.type)){let o=s.name.endsWith("[0]"),a=o?s.name.slice(0,-3):s.name,c=e.getUniformLocation(this.handle,a);c!==null&&(r=this._assignSamplerUniform(c,s,o,r))}}}_assignSamplerUniform(e,r,n,i){let{gl:s}=this.device;if(n&&r.size>1){let o=Int32Array.from({length:r.size},(a,c)=>i+c);return s.uniform1iv(e,o),i+r.size}return s.uniform1i(e,i),i+1}async _waitForLinkComplete(){let e=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await e(10)}}}});function Uc(t,e){let r=e.sourceBuffer,n=e.destinationBuffer;t.gl.bindBuffer(36662,r.handle),t.gl.bindBuffer(36663,n.handle),t.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),t.gl.bindBuffer(36662,null),t.gl.bindBuffer(36663,null)}function Vc(t,e){let{sourceBuffer:r,byteOffset:n=0,destinationTexture:i,mipLevel:s=0,origin:o=[0,0,0],aspect:a="all",bytesPerRow:c,rowsPerImage:l,size:h}=e;if(a!=="all")throw new Error("copyBufferToTexture aspect is not supported in WebGL");i.writeBuffer(r,{byteOffset:n,bytesPerRow:c,rowsPerImage:l,mipLevel:s,x:o[0]??0,y:o[1]??0,z:o[2]??0,width:h[0],height:h[1],depthOrArrayLayers:h[2]})}function kc(t,e){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:s=e.sourceTexture.width,height:o=e.sourceTexture.height,depthOrArrayLayers:a,origin:c=[0,0,0],destinationBuffer:l,byteOffset:h=0,bytesPerRow:f,rowsPerImage:d}=e;if(r instanceof kt.Texture){r.readBuffer({x:c[0]??0,y:c[1]??0,z:c[2]??0,width:s,height:o,depthOrArrayLayers:a,mipLevel:n,aspect:i,byteOffset:h},l);return}if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==void 0||f||d)throw new Error("not implemented");let{framebuffer:p,destroyFramebuffer:_}=Js(r),g;try{let u=l,T=s||p.width,b=o||p.height,E=(0,kt.assertDefined)(p.colorAttachments[0]),R=cr(E.texture.props.format),S=R.format,M=R.type;t.gl.bindBuffer(35051,u.handle),g=t.gl.bindFramebuffer(36160,p.handle),t.gl.readPixels(c[0],c[1],T,b,S,M,h)}finally{t.gl.bindBuffer(35051,null),g!==void 0&&t.gl.bindFramebuffer(36160,g),_&&p.destroy()}}function Xc(t,e){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:s=[0,0,0],destinationTexture:o}=e,{width:a=e.destinationTexture.width,height:c=e.destinationTexture.height}=e,{framebuffer:l,destroyFramebuffer:h}=Js(r),[f=0,d=0]=i,[p,_,g]=s,u=t.gl.bindFramebuffer(36160,l.handle),T,b;if(o instanceof Tt)T=o,a=Number.isFinite(a)?a:T.width,c=Number.isFinite(c)?c:T.height,T._bind(0),b=T.glTarget;else throw new Error("invalid destination");switch(b){case 3553:case 34067:t.gl.copyTexSubImage2D(b,n,p,_,f,d,a,c);break;case 35866:case 32879:t.gl.copyTexSubImage3D(b,n,p,_,g,f,d,a,c);break;default:}T&&T._unbind(),t.gl.bindFramebuffer(36160,u),h&&l.destroy()}function Js(t){if(t instanceof kt.Texture){let{width:e,height:r,id:n}=t;return{framebuffer:t.device.createFramebuffer({id:`framebuffer-for-${n}`,width:e,height:r,colorAttachments:[t]}),destroyFramebuffer:!0}}return{framebuffer:t,destroyFramebuffer:!1}}var kt,wr,Gs=P(()=>{kt=D(F(),1);Qt();xr();wr=class extends kt.CommandBuffer{device;handle=null;commands=[];constructor(e,r={}){super(e,r),this.device=e}_executeCommands(e=this.commands){for(let r of e)switch(r.name){case"copy-buffer-to-buffer":Uc(this.device,r.options);break;case"copy-buffer-to-texture":Vc(this.device,r.options);break;case"copy-texture-to-buffer":kc(this.device,r.options);break;case"copy-texture-to-texture":Xc(this.device,r.options);break;default:throw new Error(r.name)}}}});function to(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(t)}}function eo(t){switch(t){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(t)}}var Bn=P(()=>{});var St,Wc,Or,ro=P(()=>{St=D(F(),1);Sr();jt();Bn();In();Wc=[1,2,4,8],Or=class extends St.RenderPass{device;handle=null;glParameters={};pipeline=null;bindings={};bindingsPipeline=null;vertexArray=null;constructor(e,r){super(e,r),this.device=e;let n=this.props.framebuffer,i=!n||n.handle===null;i&&e.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let s;if(!r?.parameters?.viewport)if(!i&&n){let{width:o,height:a}=n;s=[0,0,o,a]}else{let[o,a]=e.getDefaultCanvasContext().getDrawingBufferSize();s=[0,0,o,a]}if(this.device.pushState(),this.setParameters({viewport:s,...this.props.parameters}),!i&&n?.colorAttachments.length){let o=n.colorAttachments.map((a,c)=>36064+c);this.device.gl.drawBuffers(o)}else i&&this.device.gl.drawBuffers([1029]);this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}executeBundles(e){throw new Error("Render bundles are only supported in WebGPU")}setParameters(e={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(r.viewport=e.viewport.slice(0,4),r.depthRange=[e.viewport[4],e.viewport[5]]):r.viewport=e.viewport),e.scissorRect&&(r.scissorTest=!0,r.scissor=e.scissorRect),e.blendConstant&&(r.blendColor=e.blendConstant),e.stencilReference!==void 0&&(r[2967]=e.stencilReference,r[36003]=e.stencilReference),"colorMask"in e&&(r.colorMask=Wc.map(n=>Boolean(n&e.colorMask))),this.glParameters=r,rt(this.device.gl,r)}setPipeline(e){this.pipeline=e}setBindings(e,r){if(!this.pipeline)throw new Error("RenderPass.setPipeline() must be called before setBindings()");this.bindings=(0,St.flattenBindingsByGroup)((0,St.normalizeBindingsByGroup)(this.pipeline.shaderLayout,e)),this.bindingsPipeline=this.pipeline}setVertexArray(e){this.vertexArray=e}draw(e){let r=this.pipeline,n=this.vertexArray;if(!r)throw new Error("RenderPass.setPipeline() must be called before draw()");if(!n)throw new Error("RenderPass.setVertexArray() must be called before draw()");if(r.shaderLayout.bindings.length>0&&this.bindingsPipeline!==r)throw new Error("RenderPass.setBindings() must be called after setPipeline() before draw()");r._syncLinkStatus();let{parameters:i=r.props.parameters,topology:s=r.props.topology,vertexCount:o,indexCount:a,instanceCount:c,isInstanced:l=!1,firstVertex:h=0,transformFeedback:f,uniforms:d=r.uniforms}=e,p=to(s),_=Boolean(n.indexBuffer),g=n.indexBuffer?.glIndexType,u=a??o??0;if(r.linkStatus!=="success")return St.log.info(2,`RenderPipeline:${r.id}.draw() aborted - waiting for shader linking`)(),!1;if(!r._areTexturesRenderable(this.bindings))return St.log.info(2,`RenderPipeline:${r.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(r.handle),n.bindBeforeRender(this);let T=f;return T&&T.begin(r.props.topology),r._applyBindings(this.bindings,{disableWarnings:r.props.disableWarnings}),r._applyUniforms(d),Us(this.device,i,this.glParameters,()=>{_&&l?this.device.gl.drawElementsInstanced(p,u,g,h,c||0):_?this.device.gl.drawElements(p,u,g,h):l?this.device.gl.drawArraysInstanced(p,h,o||0,c||0):this.device.gl.drawArrays(p,h,o||0),T&&T.end()}),n.unbindAfterRender(this),!0}drawIndirect(e,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}drawIndexedIndirect(e,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let e={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,e.clearStencil=this.props.clearStencil),r!==0&&ot(this.device.gl,e,()=>{this.device.gl.clear(r)})}clearColorBuffer(e=0,r=[0,0,0,0]){ot(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,e,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var no,Ne,io=P(()=>{no=D(F(),1);Gs();ro();Ne=class extends no.CommandEncoder{device;handle=null;commandBuffer;constructor(e,r){super(e,r),this.device=e,this.commandBuffer=new wr(e,{id:this.id,userData:this.userData})}destroy(){this.destroyResource()}finish(){return this.destroy(),this.commandBuffer}beginRenderPass(e={}){return new Or(this.device,this._applyTimeProfilingToPassProps(e))}beginComputePass(e={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,r,n){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(e,r){e.writeTimestamp(r)}}});function so(t){let{target:e,source:r,start:n=0,count:i=1}=t,s=r.length,o=i*s,a=0;for(let c=n;a<s;a++)e[c++]=r[a]??0;for(;a<o;)a<o-a?(e.copyWithin(n+a,n,n+a),a*=2):(e.copyWithin(n+a,n,n+o-a),a=o);return t.target}var oo=P(()=>{});function Hc(t){return Array.isArray(t)?new Float32Array(t):t}function Lc(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var te,Gt,ao=P(()=>{te=D(F(),1);be();Rn();oo();Gt=class extends te.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;attributeInfosByLocation;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return pn()==="Chrome"}constructor(e,r){super(e,r),this.device=e,this.handle=this.device.gl.createVertexArray(),this.attributeInfosByLocation=new Array(this.maxVertexAttributes).fill(null);for(let n of Object.values((0,te.getAttributeInfosFromLayouts)(r.shaderLayout,r.bufferLayout)))this.attributeInfosByLocation[n.location]=n}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){let r=e;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(e,r){let n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:s,stride:o,offset:a,normalized:c,integer:l,divisor:h}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),l?this.device.gl.vertexAttribIPointer(e,i,s,o,a):this.device.gl.vertexAttribPointer(e,i,s,c,o,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,h||0),this.attributes[e]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,r){this._enable(e,!1),this.attributes[e]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){let r=this.attributes[e];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(e,r)}}_getAccessor(e){let r=this.attributeInfosByLocation[e];if(!r)throw new Error(`Unknown attribute location ${e}`);let n=ir(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(e,r=!0){let i=Gt.isConstantAttributeZeroSupported(this.device)||e!==0;(r||i)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,r){let n=Hc(r),i=n.byteLength*e,s=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o||=!Lc(n,this.bufferValue),o){let a=(0,te.getScratchArray)(r.constructor,s);so({target:a,source:n,start:0,count:s}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function co(t){return typeof t=="number"?Number.isInteger(t):/^\d+$/.test(t)}var Fr,Dr,lo=P(()=>{Fr=D(F(),1);vn();Bn();Dr=class extends Fr.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,r){super(e,r),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(eo(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let[r,n]of Object.entries(e))this.setBuffer(r,n)})}setBuffer(e,r){let n=this._getVaryingIndex(e),{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);if(n<0){this.unusedBuffers[e]=i,Fr.log.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[n]={buffer:i,byteLength:s,byteOffset:o},this.bindOnUse||this._bindBuffer(n,i,o,s)}getBuffer(e){if(co(e))return this.buffers[e]||null;let r=this._getVaryingIndex(e);return this.buffers[r]??null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let r;return this._bound?r=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof st)return{buffer:e,byteOffset:0,byteLength:e.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(co(e))return Number(e);for(let r of this.layout.varyings||[])if(e===r.name)return r.location;return-1}_bindBuffers(){for(let[e,r]of Object.entries(this.buffers)){let{buffer:n,byteLength:i,byteOffset:s}=this._getBufferRange(r);this._bindBuffer(Number(e),n,s,i)}}_unbindBuffers(){for(let e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,r,n=0,i){let s=r&&r.handle;!s||i===void 0?this.gl.bindBufferBase(35982,e,s):this.gl.bindBufferRange(35982,e,s,n,i)}}});var ho,Br,fo=P(()=>{ho=D(F(),1),Br=class extends ho.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(e,r){if(super(e,r),this.device=e,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let e of this._timestampPairs){e.activeQuery&&(this._cancelPendingQuery(e.activeQuery),this.device.gl.deleteQuery(e.activeQuery.handle));for(let r of e.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let e of Array.from(this._pendingReads))this._cancelPendingQuery(e);this.destroyResource()}}isResultAvailable(e){return this.props.type==="timestamp"?e===void 0?this._timestampPairs.some((r,n)=>this._isTimestampPairAvailable(n)):this._isTimestampPairAvailable(this._getTimestampPairIndex(e)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(e){let r=e?.firstQuery||0,n=e?.queryCount||this.props.count-r;if(this._validateRange(r,n),this.props.type==="timestamp"){let i=new Array(n).fill(0n),s=Math.floor(r/2),o=Math.floor((r+n-1)/2);for(let a=s;a<=o;a++){let c=await this._consumeTimestampPairResult(a),l=a*2,h=l+1;l>=r&&l<r+n&&(i[l-r]=0n),h>=r&&h<r+n&&(i[h-r]=c)}return i}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(e,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(e<0||r>=this.props.count||r<=e)throw new Error("Timestamp duration range is out of bounds");if(e%2!==0||r!==e+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let n=await this._consumeTimestampPairResult(this._getTimestampPairIndex(e));return Number(n)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(e){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(e),n=this._timestampPairs[r];if(e%2===0){if(n.activeQuery)throw new Error("Timestamp query pair is already active");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");let s={handle:i,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,i),n.activeQuery=s;return}if(!n.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),n.completedQueries.push(n.activeQuery),n.activeQuery=null}_validateRange(e,r){if(e<0||r<0||e+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(e){if(e<0||e>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(e/2)}_isTimestampPairAvailable(e){let r=this._timestampPairs[e];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(e){if(e.cancelled||this.destroyed)return e.result=0n,!0;if(e.result!==null||e.disjoint)return!0;if(!this.device.gl.getQueryParameter(e.handle,34919))return!1;let n=Boolean(this.device.gl.getParameter(36795));return e.disjoint=n,e.result=n?0n:BigInt(this.device.gl.getQueryParameter(e.handle,34918)),!0}async _consumeTimestampPairResult(e){let r=this._timestampPairs[e];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let n=r.completedQueries.shift();try{return await this._consumeQueryResult(n)}finally{this.device.gl.deleteQuery(n.handle)}}_consumeQueryResult(e){return e.promise||(this._pendingReads.add(e),e.promise=new Promise((r,n)=>{e.resolve=r,e.reject=n;let i=()=>{if(e.pollRequestId=null,e.cancelled||this.destroyed){this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,r(0n);return}if(!this._pollQueryAvailability(e)){e.pollRequestId=this._requestAnimationFrame(i);return}this._pendingReads.delete(e),e.promise=null,e.resolve=null,e.reject=null,e.disjoint?n(new Error("GPU timestamp query was invalidated by a disjoint event")):r(e.result||0n)};i()})),e.promise}_cancelPendingQuery(e){if(this._pendingReads.delete(e),e.cancelled=!0,e.pollRequestId!==null&&(this._cancelAnimationFrame(e.pollRequestId),e.pollRequestId=null),e.resolve){let r=e.resolve;e.promise=null,e.resolve=null,e.reject=null,r(0n)}}_requestAnimationFrame(e){return requestAnimationFrame(e)}_cancelAnimationFrame(e){cancelAnimationFrame(e)}}});var po,vr,uo=P(()=>{po=D(F(),1),vr=class extends po.Fence{device;gl;handle;signaled;_signaled=!1;constructor(e,r={}){super(e,{}),this.device=e,this.gl=e.gl;let n=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n)throw new Error("Failed to create WebGL fence");this.handle=n,this.signaled=new Promise(i=>{let s=()=>{let o=this.gl.clientWaitSync(this.handle,0,0);o===this.gl.ALREADY_SIGNALED||o===this.gl.CONDITION_SATISFIED?(this._signaled=!0,i()):setTimeout(s,1)};s()})}isSignaled(){if(this._signaled)return!0;let e=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=e===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function Un(t){switch(t){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function _o(t){switch(t){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var go=P(()=>{});function To(t,e){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=e||{},{target:s=null,sourceWidth:o,sourceHeight:a,sourceDepth:c,sourceFormat:l,sourceType:h}=e||{},{framebuffer:f,deleteFramebuffer:d}=Eo(t),{gl:p,handle:_}=f;o||=f.width,a||=f.height;let g=f.colorAttachments[i]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${i}`);c=g?.depth||1,l||=g?.glFormat||6408,h||=g?.glType||5121,s=Yc(s,h,l,o,a,c);let u=we.dataTypeDecoder.getDataType(s);h=h||Ys(u);let T=p.bindFramebuffer(36160,_);return p.readBuffer(36064+i),p.readPixels(r,n,o,a,l,h,s),p.readBuffer(36064),p.bindFramebuffer(36160,T||null),d&&f.destroy(),s}function mo(t,e){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:s=6408,targetByteOffset:o=0}=e||{},{sourceWidth:a,sourceHeight:c,sourceType:l}=e||{},{framebuffer:h,deleteFramebuffer:f}=Eo(t);a=a||h.width,c=c||h.height;let d=h;l=l||5121;let p=r;if(!p){let g=Un(s),u=_o(l),T=o+a*c*g*u;p=d.device.createBuffer({byteLength:T})}let _=t.device.createCommandEncoder();return _.copyTextureToBuffer({sourceTexture:t,width:a,height:c,origin:[n,i],destinationBuffer:p,byteOffset:o}),_.destroy(),f&&h.destroy(),p}function Eo(t){return t instanceof we.Framebuffer?{framebuffer:t,deleteFramebuffer:!1}:{framebuffer:zc(t),deleteFramebuffer:!0}}function zc(t,e){let{device:r,width:n,height:i,id:s}=t;return r.createFramebuffer({...e,id:`framebuffer-for-${s}`,width:n,height:i,colorAttachments:[t]})}function Yc(t,e,r,n,i,s){if(t)return t;e||=5121;let o=Mr(e),a=we.dataTypeDecoder.getTypedArrayConstructor(o),c=Un(r);return new a(n*i*c)}var we,Ro=P(()=>{we=D(F(),1);Ir();go();Fn()});function Kc(t,e,r){switch(r.length){case 1:t.gl.vertexAttrib1fv(e,r);break;case 2:t.gl.vertexAttrib2fv(e,r);break;case 3:t.gl.vertexAttrib3fv(e,r);break;case 4:t.gl.vertexAttrib4fv(e,r);break;default:}}function $c(t,e,r){t.gl.vertexAttribI4iv(e,r)}function jc(t,e,r){t.gl.vertexAttribI4uiv(e,r)}function Zc(t,e){if(!t||!e||t.length!==e.length||t.constructor!==e.constructor)return!1;for(let r=0;r<t.length;++r)if(t[r]!==e[r])return!1;return!0}var at,Ft,bo=P(()=>{at=D(F(),1);En();fs();Ge();us();Ss();Ms();Ps();Is();$i();Gi();Qt();ws();_r();Fs();ks();xr();dr();zs();Qs();io();ao();lo();fo();uo();Ro();jt();Sr();xe();Ft=class extends at.Device{static getDeviceFromContext(e){return e?e.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(e){switch(e){case"unorm8x4-bgra":return!1;default:return!0}}constructor(e){super({...e,id:e.id||Ns("webgl-device")});let r=at.Device._getCanvasContextProps(e);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl??null,i=Ft.getDeviceFromContext(n);if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new pr(this,r),this.lost=new Promise(h=>{this._resolveContextLost=h});let s={...e.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),e.powerPreference!==void 0&&(s.powerPreference=e.powerPreference),e.failIfMajorPerformanceCaveat!==void 0&&(s.failIfMajorPerformanceCaveat=e.failIfMajorPerformanceCaveat);let a=this.props._handle||hs(this.canvasContext.canvas,{onContextLost:h=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:h=>{console.log("WebGL context restored")}},s);if(!a)throw new Error("WebGL context creation failed");if(i=Ft.getDeviceFromContext(a),i){if(e._reuseDevices)return at.log.log(1,`Not creating a new Device, instead returning a reference to Device ${i.id} already attached to WebGL context`,i)(),this.canvasContext.destroy(),i._reused=!0,i;throw new Error(`WebGL context already attached to device ${i.id}`)}this.handle=a,this.gl=a,this.spectorJS=Ki({...this.props,gl:this.handle});let c=Ut(this.handle);c.device=this,c.extensions||(c.extensions={}),this.extensions=c.extensions,this.info=ds(this.gl,this.extensions),this.limits=new fr(this.gl),this.features=new lr(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new nt(this.gl,{log:(...h)=>at.log.log(1,...h)()}).trackState(this.gl,{copyState:!1}),(e.debug||e.debugWebGL)&&(this.gl=Ji(this.gl,{debugWebGL:!0,traceWebGL:e.debugWebGL}),at.log.warn("WebGL debug mode activated. Performance reduced.")()),e.debugWebGL&&(at.log.level=Math.max(at.log.level,1)),this.commandEncoder=new Ne(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(this.commandEncoder?.destroy(),!this.props._reuseDevices&&!this._reused){let e=Ut(this.handle);e.device=null}}get isLost(){return this.gl.isContextLost()}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createPresentationContext(e){return new ur(this,e||{})}createBuffer(e){let r=this._normalizeBufferProps(e);return new st(this,r)}createTexture(e){return new Tt(this,e)}createExternalTexture(e){throw new Error("ExternalTexture is not available on WebGL")}createSampler(e){return new br(this,e)}createShader(e){return new Tr(this,e)}createFramebuffer(e){return new _t(this,e)}createVertexArray(e){return new Gt(this,e)}createTransformFeedback(e){return new Dr(this,e)}createQuerySet(e){return new Br(this,e)}createFence(){return new vr(this)}createRenderPipeline(e){return new yr(this,e)}_createSharedRenderPipelineWebGL(e){return new Nr(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}createRenderBundleEncoder(e){throw new Error("Render bundles are only supported in WebGPU")}createCommandEncoder(e={}){return new Ne(this,e)}submit(e){let r=null;e||({submittedCommandEncoder:r,commandBuffer:e}=this._finalizeDefaultCommandEncoderForSubmit());try{e._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{e.destroy()}}writeBufferViaCommandEncoder(e,r,n,i=0){r.write(n,i)}_finalizeDefaultCommandEncoderForSubmit(){let e=this.commandEncoder,r=e.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:e.props.id,timeProfilingQuerySet:e.getTimeProfilingQuerySet()}),{submittedCommandEncoder:e,commandBuffer:r}}readPixelsToArrayWebGL(e,r){return To(e,r)}readPixelsToBufferWebGL(e,r){return mo(e,r)}setParametersWebGL(e){rt(this.gl,e)}getParametersWebGL(e){return nr(this.gl,e)}withParametersWebGL(e,r){return ot(this.gl,e,r)}resetWebGL(){at.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),ss(this.gl)}_getDeviceSpecificTextureFormatCapabilities(e){return Es(this.gl,e,this.extensions)}loseDevice(){let e=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(e=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){nt.get(this.gl).push()}popState(){nt.get(this.gl).pop()}getGLKey(e,r){let n=Number(e);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(e)}getGLKeys(e){let r={emptyIfUnknown:!0};return Object.entries(e).reduce((n,[i,s])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${s}:${this.getGLKey(s,r)}`,n),{})}setConstantAttributeWebGL(e,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[e];switch(i&&Zc(i,r)&&at.log.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=r,r.constructor){case Float32Array:Kc(this,e,r);break;case Int32Array:$c(this,e,r);break;case Uint32Array:jc(this,e,r);break;default:throw new Error("constant")}}getExtension(e){return it(this.gl,e,this.extensions),this.extensions}_setWebGLDebugMetadata(e,r,n){e.luma=r;let i={props:n.spector,id:n.spector.id};e.__SPECTOR_Metadata=i}}});var vn=P(()=>{bo();_r()});var Ba=Qe((an,Fa)=>{(function(t,e){typeof an=="object"&&typeof Fa<"u"?e(an):typeof define=="function"&&define.amd?define(["exports"],e):e(t.esriLoader=t.esriLoader||{})})(an,function(t){"use strict";var e=typeof window<"u",r={Promise:e?window.Promise:void 0},n="4.25",i="next";function s(m){if(m.toLowerCase()===i)return i;var A=m&&m.match(/^(\d)\.(\d+)/);return A&&{major:parseInt(A[1],10),minor:parseInt(A[2],10)}}function o(m){return m===void 0&&(m=n),"https://js.arcgis.com/".concat(m,"/")}function a(m){m===void 0&&(m=n);var A=o(m),y=s(m);if(y!==i&&y.major===3){var x=y.minor<=10?"js/":"";return"".concat(A).concat(x,"esri/css/esri.css")}else return"".concat(A,"esri/themes/light/main.css")}function c(m){var A=document.createElement("link");return A.rel="stylesheet",A.href=m,A}function l(m,A){if(A){var y=document.querySelector(A);y.parentNode.insertBefore(m,y)}else document.head.appendChild(m)}function h(m){return document.querySelector('link[href*="'.concat(m,'"]'))}function f(m){return!m||s(m)?a(m):m}function d(m,A){var y=f(m),x=h(y);return x||(x=c(y),l(x,A)),x}var p={};function _(m){var A=document.createElement("script");return A.type="text/javascript",A.src=m,A.setAttribute("data-esri-loader","loading"),A}function g(m,A,y){var x;y&&(x=u(m,y));var C=function(){A(m),m.removeEventListener("load",C,!1),x&&m.removeEventListener("error",x,!1)};m.addEventListener("load",C,!1)}function u(m,A){var y=function(x){A(x.error||new Error("There was an error attempting to load ".concat(m.src))),m.removeEventListener("error",y,!1)};return m.addEventListener("error",y,!1),y}function T(m){m===void 0&&(m={}),p=m}function b(){return document.querySelector("script[data-esri-loader]")}function E(){var m=window.require;return m&&m.on}function R(m){m===void 0&&(m={});var A={};[p,m].forEach(function(C){for(var I in C)Object.prototype.hasOwnProperty.call(C,I)&&(A[I]=C[I])});var y=A.version,x=A.url||o(y);return new r.Promise(function(C,I){var w=b();if(w){var N=w.getAttribute("src");N!==x?I(new Error("The ArcGIS API for JavaScript is already loaded (".concat(N,")."))):E()?C(w):g(w,C,I)}else if(E())I(new Error("The ArcGIS API for JavaScript is already loaded."));else{var B=A.css;if(B){var dt=B===!0;d(dt?y:B,A.insertCssBefore)}w=_(x),g(w,function(){w.setAttribute("data-esri-loader","loaded"),C(w)},I),document.body.appendChild(w)}})}function S(m){return new r.Promise(function(A,y){var x=window.require.on("error",y);window.require(m,function(){for(var C=[],I=0;I<arguments.length;I++)C[I]=arguments[I];x.remove(),A(C)})})}function M(m,A){if(A===void 0&&(A={}),E())return S(m);var y=b(),x=y&&y.getAttribute("src");return!A.url&&x&&(A.url=x),R(A).then(function(){return S(m)})}t.utils=r,t.loadModules=M,t.getScript=b,t.isLoaded=E,t.loadScript=R,t.setDefaultOptions=T,t.loadCss=d,Object.defineProperty(t,"__esModule",{value:!0})})});var $e={};Re($e,{loadArcGISModules:()=>Pd});var pt={},Vi=D(Je(),1);Nt(pt,D(Je(),1));if(!Vi.Layer)throw new Error("@deck.gl/core is not found");Nt($e,pt);var ki={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function cn(t){return t.createSubclass({properties:ki,constructor(){this._callbacks={},this.watch(Object.keys(ki),(r,n,i)=>{this.emit("change",{[i]:r})})},on(r,n){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(n)},emit(r,n){let i=this._callbacks[r];if(i)for(let s of i)s(n)},toJSON(){let r={};for(let n of this.keys())this[n]!==void 0&&(r[n]=this[n]);return r}})}function ln(t,e,r){return e.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new t},createLayerView(n){return n.type==="2d"?new r({view:n,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var So=D(Je(),1),Ur=D(Wi(),1);vn();async function qc(t){return new Promise(e=>{let r=new So.Deck({controller:!1,gl:t,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:n=>{e({deckInstance:r,device:n})}})})}async function Vr(t){let{deckInstance:e,device:r}=await qc(t),n=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=new Ur.Model(r,{vs:`#version 300 es
|
|
7
|
+
"use strict";var __exports__=(()=>{var Ca=Object.create;var Ue=Object.defineProperty;var La=Object.getOwnPropertyDescriptor;var Aa=Object.getOwnPropertyNames;var Ra=Object.getPrototypeOf,ka=Object.prototype.hasOwnProperty;var P=(e,t,r)=>()=>{if(r)throw r[0];try{return e&&(t=e(e=0)),t}catch(n){throw r=[n],n}};var Ye=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(r){throw t=0,r}},ae=(e,t)=>{for(var r in t)Ue(e,r,{get:t[r],enumerable:!0})},We=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Aa(t))!ka.call(e,i)&&i!==r&&Ue(e,i,{get:()=>t[i],enumerable:!(n=La(t,i))||n.enumerable});return e},St=(e,t,r)=>(We(e,t,"default"),r&&We(r,t,"default")),D=(e,t,r)=>(r=e!=null?Ca(Ra(e)):{},We(t||!e||!e.__esModule?Ue(r,"default",{value:e,enumerable:!0}):r,e)),Da=e=>We(Ue({},"__esModule",{value:!0}),e);var $e=Ye((wf,Ai)=>{Ai.exports=globalThis.deck});var Ii=Ye((vf,Di)=>{Di.exports=globalThis.luma});var I=Ye((Sf,Bi)=>{Bi.exports=globalThis.luma});function Vi(e,t){return Fi?Fi.makeDebugContext(e,t):(Ba(),e)}function Gi(e){return Ia?.initialize(e)||null}function Ba(){Oi||(Oi=!0,Ni.log.warn("Import @luma.gl/webgl/debug before enabling WebGL debugging.")())}var Ni,Fi,Ia,Oi,zi=P(()=>{Ni=D(I(),1),Fi=null,Ia=null,Oi=!1});function rn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,r){return t[e]!==void 0?t[e]:r[e]}var le,N,Wi,q,Ui,ce,Yi,$i,nn,ft,sn,ji,on=P(()=>{le={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,35725:null,36006:null,36007:null,34229:null,34964:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32926:!1,32928:!1,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],36389:null,36662:null,36663:null,35053:null,35055:null,35723:4352,36010:null,35977:!1,3333:4,3317:4,37440:!1,37441:!1,37443:37444,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},N=(e,t,r)=>t?e.enable(r):e.disable(r),Wi=(e,t,r)=>e.hint(r,t),q=(e,t,r)=>e.pixelStorei(r,t),Ui=(e,t,r)=>{let n=r===36006?36009:36008;return e.bindFramebuffer(n,t)},ce=(e,t,r)=>{let i={34964:34962,36662:36662,36663:36663,35053:35051,35055:35052}[r];e.bindBuffer(i,t)};Yi={3042:N,32773:(e,t)=>e.blendColor(...t),32777:"blendEquation",34877:"blendEquation",32969:"blendFunc",32968:"blendFunc",32971:"blendFunc",32970:"blendFunc",3106:(e,t)=>e.clearColor(...t),3107:(e,t)=>e.colorMask(...t),2884:N,2885:(e,t)=>e.cullFace(t),2929:N,2931:(e,t)=>e.clearDepth(t),2932:(e,t)=>e.depthFunc(t),2928:(e,t)=>e.depthRange(...t),2930:(e,t)=>e.depthMask(t),3024:N,35723:Wi,35725:(e,t)=>e.useProgram(t),36007:(e,t)=>e.bindRenderbuffer(36161,t),36389:(e,t)=>e.bindTransformFeedback?.(36386,t),34229:(e,t)=>e.bindVertexArray(t),36006:Ui,36010:Ui,34964:ce,36662:ce,36663:ce,35053:ce,35055:ce,2886:(e,t)=>e.frontFace(t),33170:Wi,2849:(e,t)=>e.lineWidth(t),32823:N,32824:"polygonOffset",10752:"polygonOffset",35977:N,32926:N,32928:N,32938:"sampleCoverage",32939:"sampleCoverage",3089:N,3088:(e,t)=>e.scissor(...t),2960:N,2961:(e,t)=>e.clearStencil(t),2968:(e,t)=>e.stencilMaskSeparate(1028,t),36005:(e,t)=>e.stencilMaskSeparate(1029,t),2962:"stencilFuncFront",2967:"stencilFuncFront",2963:"stencilFuncFront",34816:"stencilFuncBack",36003:"stencilFuncBack",36004:"stencilFuncBack",2964:"stencilOpFront",2965:"stencilOpFront",2966:"stencilOpFront",34817:"stencilOpBack",34818:"stencilOpBack",34819:"stencilOpBack",2978:(e,t)=>e.viewport(...t),34383:N,10754:N,12288:N,12289:N,12290:N,12291:N,12292:N,12293:N,12294:N,12295:N,3333:q,3317:q,37440:q,37441:q,37443:q,3330:q,3332:q,3331:q,3314:q,32878:q,3316:q,3315:q,32877:q,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=rn(t)?t:[t,t];let[r,n]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,n)},stencilFunc:(e,t)=>{t=rn(t)&&t.length===3?[...t,...t]:t;let[r,n,i,s,o,a]=t;e.stencilFuncSeparate(1028,r,n,i),e.stencilFuncSeparate(1029,s,o,a)},stencilOp:(e,t)=>{t=rn(t)&&t.length===3?[...t,...t]:t;let[r,n,i,s,o,a]=t;e.stencilOpSeparate(1028,r,n,i),e.stencilOpSeparate(1029,s,o,a)},viewport:(e,t)=>e.viewport(...t)};$i={blendEquation:(e,t,r)=>e.blendEquationSeparate(F(32777,t,r),F(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(F(32969,t,r),F(32968,t,r),F(32971,t,r),F(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(F(32824,t,r),F(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(F(32938,t,r),F(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,F(2962,t,r),F(2967,t,r),F(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,F(34816,t,r),F(36003,t,r),F(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,F(2964,t,r),F(2965,t,r),F(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,F(34817,t,r),F(34818,t,r),F(34819,t,r))},nn={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({35725:t}),bindRenderbuffer:(e,t,r)=>e({36007:r}),bindTransformFeedback:(e,t,r)=>e({36389:r}),bindVertexArray:(e,t)=>e({34229:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({36006:r,36010:r});case 36009:return e({36006:r});case 36008:return e({36010:r});default:return null}},bindBuffer:(e,t,r)=>{let n={34962:[34964],36662:[36662],36663:[36663],35051:[35053],35052:[35055]}[t];return n?e({[n]:r}):{valueChanged:!0}},blendColor:(e,t,r,n,i)=>e({32773:new Float32Array([t,r,n,i])}),blendEquation:(e,t)=>e({32777:t,34877:t}),blendEquationSeparate:(e,t,r)=>e({32777:t,34877:r}),blendFunc:(e,t,r)=>e({32969:t,32968:r,32971:t,32970:r}),blendFuncSeparate:(e,t,r,n,i)=>e({32969:t,32968:r,32971:n,32970:i}),clearColor:(e,t,r,n,i)=>e({3106:new Float32Array([t,r,n,i])}),clearDepth:(e,t)=>e({2931:t}),clearStencil:(e,t)=>e({2961:t}),colorMask:(e,t,r,n,i)=>e({3107:[t,r,n,i]}),cullFace:(e,t)=>e({2885:t}),depthFunc:(e,t)=>e({2932:t}),depthRange:(e,t,r)=>e({2928:new Float32Array([t,r])}),depthMask:(e,t)=>e({2930:t}),frontFace:(e,t)=>e({2886:t}),lineWidth:(e,t)=>e({2849:t}),polygonOffset:(e,t,r)=>e({32824:t,10752:r}),sampleCoverage:(e,t,r)=>e({32938:t,32939:r}),scissor:(e,t,r,n,i)=>e({3088:new Int32Array([t,r,n,i])}),stencilMask:(e,t)=>e({2968:t,36005:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,n)=>e({2962:t,2967:r,2963:n,34816:t,36003:r,36004:n}),stencilFuncSeparate:(e,t,r,n,i)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:n,[t===1028?2963:36004]:i}),stencilOp:(e,t,r,n)=>e({2964:t,2965:r,2966:n,34817:t,34818:r,34819:n}),stencilOpSeparate:(e,t,r,n,i)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:n,[t===1028?2966:34819]:i}),viewport:(e,t,r,n,i)=>e({2978:[t,r,n,i]})},ft=(e,t)=>e.isEnabled(t),sn={3042:ft,2884:ft,2929:ft,3024:ft,32823:ft,32926:ft,32928:ft,3089:ft,2960:ft,35977:ft},ji=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068])});function et(e,t){if(Fa(t))return;let r={};for(let i in t){let s=Number(i),o=Yi[i];o&&(typeof o=="string"?r[o]=!0:o(e,t[i],s))}let n=e.lumaState?.cache;if(n)for(let i in r){let s=$i[i];s(e,t,n)}}function je(e,t=le){if(typeof t=="number"){let i=t,s=sn[i];return s?s(e,i):e.getParameter(i)}let r=Array.isArray(t)?t:Object.keys(t),n={};for(let i of r){let s=sn[i];n[i]=s?s(e,Number(i)):e.getParameter(Number(i))}return n}function qi(e){et(e,le)}function Fa(e){for(let t in e)return!1;return!0}var Vt=P(()=>{on()});function Zi(e,t){if(e===t)return!0;if(Xi(e)&&Xi(t)&&e.length===t.length){for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}return!1}function Xi(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var Hi=P(()=>{});function Qi(e,t){let r=e[t].bind(e);e[t]=function(i){if(i===void 0||ji.has(i))return r(i);let s=rt.get(e);return i in s.cache||(s.cache[i]=r(i)),s.enable?s.cache[i]:r(i)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Oa(e,t,r){if(!e[t])return;let n=e[t].bind(e);e[t]=function(...s){let o=rt.get(e),{valueChanged:a,oldValue:c}=r(o._updateCache,...s);return a&&n(...s),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Na(e){let t=e.useProgram.bind(e);e.useProgram=function(n){let i=rt.get(e);i.program!==n&&(t(n),i.program=n)}}var rt,an=P(()=>{Vt();Hi();on();rt=class{static get(t){return t.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(t,r){this.gl=t,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){let t=this.stateStack[this.stateStack.length-1];et(this.gl,t),this.stateStack.pop()}trackState(t,r){if(this.cache=r?.copyState?je(t):Object.assign({},le),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,Na(t);for(let n in nn){let i=nn[n];Oa(t,n,i)}Qi(t,"getParameter"),Qi(t,"isEnabled")}_updateCache(t){let r=!1,n,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in t){let o=t[s],a=this.cache[s];Zi(o,a)||(r=!0,n=a,i&&!(s in i)&&(i[s]=a),this.cache[s]=o)}return{valueChanged:r,oldValue:n}}}});function he(e){let t=e.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return t._polyfilled??=!1,t.extensions||={},e.luma=t,t}var cn=P(()=>{});function Ki(e,t,r){let n="",i=c=>{let l=c.statusMessage;l&&(n||=l)};e.addEventListener("webglcontextcreationerror",i,!1);let s=r.failIfMajorPerformanceCaveat!==!0,o={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},a=null;try{a||=e.getContext("webgl2",o),!a&&o.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let c=!1;if(!a&&s&&(o.failIfMajorPerformanceCaveat=!1,a=e.getContext("webgl2",o),c=!0),a||(a=e.getContext("webgl",{}),a&&(a=null,n||="Your browser only supports WebGL1")),!a)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);let l=he(a);l.softwareRenderer=c;let{onContextLost:h,onContextRestored:u}=t;return e.addEventListener("webglcontextlost",f=>h(f),!1),e.addEventListener("webglcontextrestored",f=>u(f),!1),a}finally{e.removeEventListener("webglcontextcreationerror",i,!1)}}var Ji=P(()=>{cn()});function nt(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}var ue=P(()=>{});function ts(e,t){let r=e.getParameter(7936),n=e.getParameter(7937);nt(e,"WEBGL_debug_renderer_info",t);let i=t.WEBGL_debug_renderer_info,s=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),a=s||r,c=o||n,l=e.getParameter(7938),h=es(a,c),u=Va(a,c),f=Ga(a,c);return{type:"webgl",gpu:h,gpuType:f,gpuBackend:u,vendor:a,renderer:c,version:l,shadingLanguage:"glsl",shadingLanguageVersion:300}}function es(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function Va(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function Ga(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(es(e,t)){case"apple":return za(e,t)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function za(e,t){return/Apple (M\d|A\d|GPU)/i.test(`${e} ${t}`)}var rs=P(()=>{ue()});function qe(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var ln=P(()=>{});function ss(e){return e in Ze}function pn(e,t,r){return os(e,t,r,new Set)}function os(e,t,r,n){let i=Ze[t];if(!i||n.has(t))return!1;n.add(t);let s=(i.features||[]).every(o=>os(e,o,r,n));return n.delete(t),s?(i.extensions||[]).every(o=>!!nt(e,o,r)):!1}function as(e,t,r){let n=t.create,i=He[t.format];i?.gl===void 0&&(n=!1),i?.x&&(n=n&&!!nt(e,i.x,r)),t.format==="stencil8"&&(n=!1);let s=i?.r===!1?!1:i?.r===void 0||pn(e,i.r,r),o=n&&t.render&&s&&Za(e,t.format,r);return{format:t.format,create:n&&t.create,render:o,filter:n&&t.filter,blend:n&&t.blend,store:n&&t.store}}function Za(e,t,r){let n=He[t],i=n?.gl;if(i===void 0||n?.x&&!nt(e,n.x,r))return!1;let s=e.getParameter(32873),o=e.getParameter(36006),a=e.createTexture(),c=e.createFramebuffer();if(!a||!c)return!1;let l=0,h=Number(e.getError());for(;h!==l;)h=e.getError();let u=!1;try{if(e.bindTexture(3553,a),e.texStorage2D(3553,1,i,1,1),Number(e.getError())!==l)return!1;e.bindFramebuffer(36160,c),e.framebufferTexture2D(36160,36064,3553,a,0),u=Number(e.checkFramebufferStatus(36160))===36053&&Number(e.getError())===l}finally{e.bindFramebuffer(36160,o),e.deleteFramebuffer(c),e.bindTexture(3553,s),e.deleteTexture(a)}return u}function Qe(e){let t=He[e],r=Qa(e),n=mn.textureFormatDecoder.getInfo(e);return n.compressed&&(t.dataFormat=r),{internalFormat:r,format:t?.dataFormat||Ha(n.channels,n.integer,n.normalized,r),type:n.dataType?qe(n.dataType):t?.types?.[0]||5121,compressed:n.compressed||!1}}function cs(e){switch(mn.textureFormatDecoder.getInfo(e).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${e}`)}}function Ha(e,t,r,n){if(n===6408||n===6407)return n;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function Qa(e){let r=He[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}var mn,fe,de,Gt,zt,Wa,Ua,Ya,$a,ja,qa,ns,is,hn,un,fn,dn,Xe,Xa,Ze,He,Wt=P(()=>{mn=D(I(),1);ue();ln();fe="WEBGL_compressed_texture_s3tc",de="WEBGL_compressed_texture_s3tc_srgb",Gt="EXT_texture_compression_rgtc",zt="EXT_texture_compression_bptc",Wa="WEBGL_compressed_texture_etc",Ua="WEBGL_compressed_texture_astc",Ya="WEBGL_compressed_texture_etc1",$a="WEBGL_compressed_texture_pvrtc",ja="WEBGL_compressed_texture_atc",qa="EXT_texture_norm16",ns="EXT_render_snorm",is="EXT_color_buffer_float",hn="snorm8-renderable-webgl",un="norm16-renderable-webgl",fn="snorm16-renderable-webgl",dn="float16-renderable-webgl",Xe="float32-renderable-webgl",Xa="rgb9e5ufloat-renderable-webgl",Ze={"float32-renderable-webgl":{extensions:[is]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[ns]},"norm16-webgl":{extensions:[qa]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[ns]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[fe,de,Gt,zt]},"texture-compression-bc5-webgl":{extensions:[Gt]},"texture-compression-bc7-webgl":{extensions:[zt]},"texture-compression-etc2":{extensions:[Wa]},"texture-compression-astc":{extensions:[Ua]},"texture-compression-etc1-webgl":{extensions:[Ya]},"texture-compression-pvrtc-webgl":{extensions:[$a]},"texture-compression-atc-webgl":{extensions:[ja]}};He={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:hn},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:hn},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:dn},r16unorm:{gl:33322,rb:!0,r:un},r16snorm:{gl:36760,r:fn},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:hn},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:dn},rg16unorm:{gl:33324,r:un},rg16snorm:{gl:36761,r:fn},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:Xe},rgb9e5ufloat:{gl:35901,r:Xa},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:Xe},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:dn},rgba16unorm:{gl:32859,rb:!0,r:un},rgba16snorm:{gl:36763,r:fn},"rgb32float-webgl":{gl:34837,x:is,r:Xe,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:Xe},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:fe},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:de},"bc1-rgba-unorm":{gl:33777,x:fe},"bc1-rgba-unorm-srgb":{gl:35916,x:de},"bc2-rgba-unorm":{gl:33778,x:fe},"bc2-rgba-unorm-srgb":{gl:35918,x:de},"bc3-rgba-unorm":{gl:33779,x:fe},"bc3-rgba-unorm-srgb":{gl:35919,x:de},"bc4-r-unorm":{gl:36283,x:Gt},"bc4-r-snorm":{gl:36284,x:Gt},"bc5-rg-unorm":{gl:36285,x:Gt},"bc5-rg-snorm":{gl:36286,x:Gt},"bc6h-rgb-ufloat":{gl:36495,x:zt},"bc6h-rgb-float":{gl:36494,x:zt},"bc7-rgba-unorm":{gl:36492,x:zt},"bc7-rgba-unorm-srgb":{gl:36493,x:zt},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var Je,ls,Ke,hs=P(()=>{Je=D(I(),1);ue();Wt();ls={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","html-in-canvas":e=>(0,Je.isHTMLInCanvasSupported)()&&typeof e.texElementImage2D=="function","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},Ke=class extends Je.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,n){super([],n),this.gl=t,this.extensions=r,nt(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let t=this.getFeatures();for(let r of t)this.has(r)&&(yield r);return[]}has(t){return this.disabledFeatures?.[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),ss(t)&&pn(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){let t=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of t)this.has(r)}getFeatures(){return[...Object.keys(ls),...Object.keys(Ze)]}getWebGLFeature(t){let r=ls[t];return typeof r=="string"?!!nt(this.gl,r,this.extensions):typeof r=="function"?r(this.gl):!!r}}});var us,tr,fs=P(()=>{us=D(I(),1),tr=class extends us.DeviceLimits{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxBindGroupsPlusVertexBuffers(){return 0}get maxBindingsPerBindGroup(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageBuffersInVertexStage(){return 0}get maxStorageBuffersInFragmentStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxStorageTexturesInVertexStage(){return 0}get maxStorageTexturesInFragmentStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get maxBufferSize(){return Number.MAX_SAFE_INTEGER}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxColorAttachments(){return this.getParameter(36063)}get maxColorAttachmentBytesPerSample(){return 0}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(t){super(),this.gl=t}getParameter(t){return this.limits[t]===void 0&&(this.limits[t]=this.gl.getParameter(t)),this.limits[t]||0}}});function Ka(e){return e<34069?e+34069:e}function Ja(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var ds,dt,er=P(()=>{ds=D(I(),1);Wt();dt=class extends ds.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(t,r){super(t,r);let n=r.handle,i=n===null;this.device=t,this.gl=t.gl,this.handle=n||i?n:this.gl.createFramebuffer(),i||(t._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),r.handle||(this.autoCreateAttachmentTextures(),this.updateAttachments()))}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&!this.props.handle&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let t=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let n=this.colorAttachments[r];if(n){let i=36064+r;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){let r=cs(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${Ja(r)}`)}this.gl.bindFramebuffer(36160,t)}_attachTextureView(t,r){let{gl:n}=this.device,{texture:i}=r,s=r.props.baseMipLevel,o=r.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,t,i.handle,s,o);break;case 34067:let a=Ka(o);n.framebufferTexture2D(36160,t,a,i.handle,s);break;case 3553:n.framebufferTexture2D(36160,t,3553,i.handle,s);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}resizeAttachments(t,r){if(this.handle===null){this.width=t,this.height=r;return}super.resizeAttachments(t,r)}}});var ms,rr,ps=P(()=>{ms=D(I(),1);er();rr=class extends ms.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(t,r){super(r),this.device=t,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new dt(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var gs,nr,bs=P(()=>{gs=D(I(),1),nr=class extends gs.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(t,r={}){super(r),this.device=t;let n=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${n}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let s=this.canvas.getContext("2d");if(!s)throw new Error(`${n}: Failed to create 2d presentation context`);this.context2d=s,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let t=this.device.getDefaultCanvasContext(),[r,n]=t.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||n===0||t.canvas.width===0||t.canvas.height===0)){if(r!==this.drawingBufferWidth||n!==this.drawingBufferHeight||t.canvas.width!==this.drawingBufferWidth||t.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${n} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(t.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(t){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(t)}}});function xs(e="id"){gn[e]=gn[e]||1;let t=gn[e]++;return`${e}-${t}`}var gn,ys=P(()=>{gn={}});function tc(e){return e&Mt.Buffer.INDEX?34963:e&Mt.Buffer.VERTEX?34962:e&Mt.Buffer.UNIFORM?35345:34962}function ec(e){return e&Mt.Buffer.INDEX||e&Mt.Buffer.VERTEX?35044:e&Mt.Buffer.UNIFORM?35048:35044}var Mt,it,ir=P(()=>{Mt=D(I(),1),it=class extends Mt.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(t,r={}){super(t,r),this.device=t,this.gl=this.device.gl;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),t._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=tc(this.props.usage),this.glUsage=ec(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(t,r=0,n=t.byteLength+r){let i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,r,t),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(t,r,n),this.props.handle?this.trackReferencedMemory(n,"Buffer"):this.trackAllocatedMemory(n)}_initWithByteLength(t){let r=t;t===0&&(r=new Float32Array(0));let n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.props.handle?this.trackReferencedMemory(t,"Buffer"):this.trackAllocatedMemory(t),this}write(t,r=0){let n=ArrayBuffer.isView(t)?t:new Uint8Array(t),i=0,s=void 0,o=36663;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?this.gl.bufferSubData(o,r,n,i,s):this.gl.bufferSubData(o,r,n),this.gl.bindBuffer(o,null),this._setDebugData(t,r,t.byteLength)}async mapAndWriteAsync(t,r=0,n=this.byteLength-r){let i=new ArrayBuffer(n);await t(i,"copied"),this.write(i,r)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}async mapAndReadAsync(t,r=0,n){let i=await this.readAsync(r,n);return await t(i.buffer,"copied")}readSyncWebGL(t=0,r){r=r??this.byteLength-t;let n=new Uint8Array(r),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,n,i,r),this.gl.bindBuffer(36662,null),this._setDebugData(n,t,r),n}}});function ws(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(n.length<=1)continue;let i=n.trim(),s=n.split(":"),o=s[0]?.trim();if(s.length===2){let[d,p]=s;if(!d||!p){r.push({message:i,type:sr(o||"info"),lineNum:0,linePos:0});continue}r.push({message:p.trim(),type:sr(d),lineNum:0,linePos:0});continue}let[a,c,l,...h]=s;if(!a||!c||!l){r.push({message:s.slice(1).join(":").trim()||i,type:sr(o||"info"),lineNum:0,linePos:0});continue}let u=parseInt(l,10);Number.isNaN(u)&&(u=0);let f=parseInt(c,10);Number.isNaN(f)&&(f=0),r.push({message:h.join(":").trim(),type:sr(a),lineNum:u,linePos:f})}return r}function sr(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Es=P(()=>{});function rc(e){return e.split(/\r?\n/).find(t=>t.trim())?.trim()}var me,or,Ts=P(()=>{me=D(I(),1);Es();or=class extends me.Shader{device;handle;_compilationInfoLog="";constructor(t,r){super(t,r),this.device=t;let n=this.props.handle;switch(this.props.stage){case"vertex":this.handle=n||this.device.gl.createShader(35633);break;case"fragment":this.handle=n||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}t._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let i=this._compile(this.source);i&&typeof i.catch=="function"&&i.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this._getCompilationInfoLog();return t?ws(t):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(t){t=t.startsWith("#version ")?t:`#version 300 es
|
|
8
|
+
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(this._getCompilationErrorMessage(t));return}return me.log.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{me.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()})}async _waitForCompilationComplete(){let t=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error",this.compilationStatus==="error"&&this._getCompilationInfoLog()}_getCompilationErrorMessage(t){let r=`${this.props.stage} shader ${this.props.id}`,n=rc(this._getCompilationInfoLog()),i=this.getCompilationInfoSync(),s=i.find(h=>h.type==="error"&&h.message.trim())||i.find(h=>h.message.trim())||i.find(h=>h.type==="error")||i[0];if(!s)return n?`GLSL compilation errors in ${r}: ${n}`:`GLSL compilation errors in ${r}: WebGL did not provide a shader compiler log`;let o=s.lineNum?t.split(/\r?\n/)[s.lineNum-1]?.trim():void 0,a=s.lineNum?` line ${s.lineNum}`:"",c=o?`
|
|
9
|
+
Source: ${o}`:"",l=s.message.trim()||n||"WebGL did not provide a shader compiler log";return`GLSL compilation errors in ${r}:${a}: ${l}${c}`}_getCompilationInfoLog(){let t=this.device.gl.getShaderInfoLog(this.handle)?.trim();return t&&(this._compilationInfoLog=t),this._compilationInfoLog}}});function Ss(e,t,r,n){if(oc(t))return n(e);let i=e;i.pushState();try{return nc(e,t),et(i.gl,r),n(e)}finally{i.popState()}}function nc(e,t){let r=e,{gl:n}=r;if(t.cullMode)switch(t.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(t.frontFace&&n.frontFace(Lt("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&n.enable(34383),t.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let s=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,o=Lt("provokingVertex",t.provokingVertex,{first:36429,last:36430});s?.provokingVertexWEBGL(o)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let s=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,o=Lt("polygonMode",t.polygonMode,{fill:6914,line:6913});s?.polygonModeWEBGL(1028,o),s?.polygonModeWEBGL(1029,o)}t.polygonOffsetLine&&n.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&n.enable(12288),t.clipDistance1&&n.enable(12289),t.clipDistance2&&n.enable(12290),t.clipDistance3&&n.enable(12291),t.clipDistance4&&n.enable(12292),t.clipDistance5&&n.enable(12293),t.clipDistance6&&n.enable(12294),t.clipDistance7&&n.enable(12295)),t.depthWriteEnabled!==void 0&&n.depthMask(sc("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(cr("depthCompare",t.depthCompare))),t.clearDepth!==void 0&&n.clearDepth(t.clearDepth),t.stencilWriteMask){let i=t.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(t.stencilReadMask&&vs.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let i=t.stencilReadMask||4294967295,s=cr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,s,0,i),n.stencilFuncSeparate(1029,s,0,i)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let i=bn("stencilPassOperation",t.stencilPassOperation),s=bn("stencilFailOperation",t.stencilFailOperation),o=bn("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(1028,s,o,i),n.stencilOpSeparate(1029,s,o,i)}switch(t.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let i=_s("blendColorOperation",t.blendColorOperation||"add"),s=_s("blendAlphaOperation",t.blendAlphaOperation||"add");n.blendEquationSeparate(i,s);let o=ar("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=ar("blendColorDstFactor",t.blendColorDstFactor||"zero"),c=ar("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),l=ar("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");n.blendFuncSeparate(o,a,c,l)}}function cr(e,t){return Lt(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function bn(e,t){return Lt(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function _s(e,t){return Lt(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ar(e,t,r="color"){return Lt(e,t,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function ic(e,t){return`Illegal parameter ${t} for ${e}`}function Lt(e,t,r){if(!(t in r))throw new Error(ic(e,t));return r[t]}function sc(e,t){return t}function oc(e){let t=!0;for(let r in e){t=!1;break}return t}var vs,xn=P(()=>{vs=D(I(),1);Vt()});function lr(e){let t={};return e.addressModeU&&(t[10242]=yn(e.addressModeU)),e.addressModeV&&(t[10243]=yn(e.addressModeV)),e.addressModeW&&(t[32882]=yn(e.addressModeW)),e.magFilter&&(t[10240]=wn(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=ac(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=cr("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function yn(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function wn(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function ac(e,t="none"){if(!t)return wn(e);switch(t){case"none":return wn(e);case"nearest":switch(e){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(e){case"nearest":return 9986;case"linear":return 9987}}}var En=P(()=>{xn()});var Ms,hr,Ps=P(()=>{Ms=D(I(),1);En();hr=class extends Ms.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=lr(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,n]of Object.entries(t)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}});function st(e,t,r){if(cc(t))return r(e);let{nocatch:n=!0}=t,i=rt.get(e);i.push(),et(e,t);let s;if(n)s=r(e),i.pop();else try{s=r(e)}finally{i.pop()}return s}function cc(e){for(let t in e)return!1;return!0}var ur=P(()=>{Vt();an()});var fr,mt,Tn=P(()=>{fr=D(I(),1),mt=class extends fr.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...fr.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function dr(e){return lc[e]}var lc,_n=P(()=>{lc={5124:"sint32",5125:"uint32",5122:"sint16",5123:"uint16",5120:"sint8",5121:"uint8",5126:"float32",5131:"float16",33635:"uint16",32819:"uint16",32820:"uint16",33640:"uint32",35899:"uint32",35902:"uint32",34042:"uint32",36269:"uint32"}});function hc(e,t=0){return t?new e.constructor(e.buffer,e.byteOffset+t,(e.byteLength-t)/e.BYTES_PER_ELEMENT):e}function uc(e,t){if(t%e.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${t} must align to typed array element size ${e.BYTES_PER_ELEMENT}`);return t/e.BYTES_PER_ELEMENT}function fc(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function pe(e,t,r){return t==="cube"?34069+r:e}var Pt,pt,mr=P(()=>{Pt=D(I(),1);Wt();En();ur();Tn();_n();pt=class extends Pt.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(t,r){super(t,r,{byteAlignment:1}),this.device=t,this.gl=this.device.gl;let n=Qe(this.props.format);if(this.glTarget=fc(this.props.dimension),this.glInternalFormat=n.internalFormat,this.glFormat=n.format,this.glType=n.type,this.compressed=n.compressed,this.isHandleBorrowed&&this.props.handle===void 0)throw new Error("Borrowed WebGL textures require a texture handle");if(this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),!this.isHandleBorrowed){this.gl.bindTexture(this.glTarget,this.handle);let{dimension:i,width:s,height:o,depth:a,mipLevels:c,glTarget:l,glInternalFormat:h}=this;if(!this.compressed)switch(i){case"2d":case"cube":this.gl.texStorage2D(l,c,h,s,o);break;case"2d-array":case"3d":this.gl.texStorage3D(l,c,h,s,o,a);break;default:throw new Error(i)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data)}this.ownsHandle?this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"):this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"),this.isHandleBorrowed||this.setSampler(this.props.sampler),this.view=new mt(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.ownsHandle?(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")):this.trackDeallocatedReferencedMemory("Texture"),this.destroyed=!0)}createView(t){return new mt(this.device,{...t,texture:this})}clone(t){if(this.isHandleBorrowed&&t&&(t.width!==this.width||t.height!==this.height))throw new Error(`Cannot resize borrowed read-only ${this}`);return super.clone(t)}setSampler(t={}){this._assertWritable("set sampler parameters on"),super.setSampler(t);let r=lr(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(t){this._assertWritable("copy external image data into");let r=this._normalizeCopyExternalImageOptions(t);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:n,glType:i}=this,{image:s,depth:o,mipLevel:a,x:c,y:l,z:h,width:u,height:f}=r,d=pe(this.glTarget,this.dimension,h),p=r.flipY?{37440:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),st(this.gl,p,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(d,a,c,l,u,f,n,i,s);break;case"2d-array":case"3d":this.gl.texSubImage3D(d,a,c,l,h,u,f,o,n,i,s);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyElementImage(t){this._assertWritable("copy element image data into");let r=this._normalizeCopyElementImageOptions(t),{glFormat:n}=this,{element:i,depth:s,mipLevel:o,sourceX:a,sourceY:c,sourceWidth:l,sourceHeight:h,x:u,y:f,z:d,width:p,height:g}=r,m=pe(this.glTarget,this.dimension,d),b=r.flipY?{37440:!0}:{},_=this.gl;if(s!==1||this.dimension!=="2d"&&this.dimension!=="cube")throw new Error(`${this} copyElementImage only supports 2d and cube textures on WebGL`);if(o!==0||u!==0||f!==0)throw new Error(`${this} copyElementImage only supports full base-level uploads on WebGL`);if(typeof _.texElementImage2D!="function")throw new Error(`${this} copyElementImage is not supported by this WebGL implementation`);return this.gl.bindTexture(this.glTarget,this.handle),st(this.gl,b,()=>{_.texElementImage2D?.(m,n,i,{sx:a,sy:c,swidth:l??p,sheight:h??g,width:p,height:g})}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(t){super.copyImageData(t)}readBuffer(t={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let n=this._getSupportedColorReadOptions(t),i=t.byteOffset??0,s=this.computeMemoryLayout(n);if(r.byteLength<i+s.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${i+s.byteLength})`);let o=r;this.gl.bindBuffer(35051,o.handle);try{this._readColorTextureLayers(n,s,a=>{this.gl.readPixels(n.x,n.y,n.width,n.height,this.glFormat,this.glType,i+a)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(t={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(t,r={}){this._assertWritable("write buffer data into");let n=this._normalizeTextureWriteOptions(r),{width:i,height:s,depthOrArrayLayers:o,mipLevel:a,byteOffset:c,x:l,y:h,z:u}=n,{glFormat:f,glType:d,compressed:p}=this,g=pe(this.glTarget,this.dimension,u);if(p)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:m}=this.device.getTextureFormatInfo(this.format),b=m?n.bytesPerRow/m:void 0,_={3317:this.byteAlignment,...b!==void 0?{3314:b}:{},32878:n.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,t.handle),st(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,a,l,h,i,s,f,d,c);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,a,l,h,u,i,s,o,f,d,c);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(t,r={}){this._assertWritable("write data into");let n=this._normalizeTextureWriteOptions(r),i=ArrayBuffer.isView(t)?t:new Uint8Array(t),{width:s,height:o,depthOrArrayLayers:a,mipLevel:c,x:l,y:h,z:u,byteOffset:f}=n,{glFormat:d,glType:p,compressed:g}=this,m=pe(this.glTarget,this.dimension,u),b;if(!g){let{bytesPerPixel:x}=this.device.getTextureFormatInfo(this.format);x&&(b=n.bytesPerRow/x)}let _=this.compressed?{}:{3317:this.byteAlignment,...b!==void 0?{3314:b}:{},32878:n.rowsPerImage},y=uc(i,f),w=g?hc(i,f):i,v=this._getMipLevelSize(c),E=l===0&&h===0&&u===0&&s===v.width&&o===v.height&&a===v.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),st(this.gl,_,()=>{switch(this.dimension){case"2d":case"cube":g?E?this.gl.compressedTexImage2D(m,c,d,s,o,0,w):this.gl.compressedTexSubImage2D(m,c,l,h,s,o,d,w):this.gl.texSubImage2D(m,c,l,h,s,o,d,p,i,y);break;case"2d-array":case"3d":g?E?this.gl.compressedTexImage3D(m,c,d,s,o,a,0,w):this.gl.compressedTexSubImage3D(m,c,l,h,u,s,o,a,d,w):this.gl.texSubImage3D(m,c,l,h,u,s,o,a,d,p,i,y);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(t,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(t={}){let r=this._getSupportedColorReadOptions(t),n=this.computeMemoryLayout(r),i=dr(this.glType),s=(0,Pt.getTypedArrayConstructor)(i),o=new s(n.byteLength/s.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,n,a=>{let c=new s(o.buffer,o.byteOffset+a,n.bytesPerImage/s.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,c)}),o.buffer}_readColorTextureLayers(t,r,n){let i=this._getFramebuffer(),s=r.bytesPerRow/r.bytesPerPixel,o={3333:this.byteAlignment,...s!==t.width?{3330:s}:{}},a=this.gl.getParameter(3074),c=this.gl.bindFramebuffer(36160,i.handle);try{this.gl.readBuffer(36064),st(this.gl,o,()=>{for(let l=0;l<t.depthOrArrayLayers;l++)this._attachReadSubresource(i,t.mipLevel,t.z+l),n(l*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,c||null),this.gl.readBuffer(a)}}_attachReadSubresource(t,r,n){let i=`${r}:${n}`;if(this._framebufferAttachmentKey!==i){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,pe(this.glTarget,this.dimension,n),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,n);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let s=Number(this.gl.checkFramebufferStatus(36160));if(s!==36053)throw new Error(`${t} incomplete for ${this} readback (${s})`)}this._framebufferAttachmentKey=i}}generateMipmapsWebGL(t){if(this._assertWritable("generate mipmaps for"),!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Pt.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!t?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Pt.log.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(t){Pt.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,n]of Object.entries(t)){let i=Number(r),s=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,s);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,i,s);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,i,s);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,s);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,i,s);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}_unbind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}_assertWritable(t){if(this.isHandleBorrowed)throw new Error(`Cannot ${t} borrowed read-only ${this}`)}}});function Cs(e,t,r,n){let i=e,s=n;s===!0&&(s=1),s===!1&&(s=0);let o=typeof s=="number"?[s]:s;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case 5126:return e.uniform1fv(t,o);case 35664:return e.uniform2fv(t,o);case 35665:return e.uniform3fv(t,o);case 35666:return e.uniform4fv(t,o);case 5124:return e.uniform1iv(t,o);case 35667:return e.uniform2iv(t,o);case 35668:return e.uniform3iv(t,o);case 35669:return e.uniform4iv(t,o);case 35670:return e.uniform1iv(t,o);case 35671:return e.uniform2iv(t,o);case 35672:return e.uniform3iv(t,o);case 35673:return e.uniform4iv(t,o);case 5125:return i.uniform1uiv(t,o,1);case 36294:return i.uniform2uiv(t,o,2);case 36295:return i.uniform3uiv(t,o,3);case 36296:return i.uniform4uiv(t,o,4);case 35674:return e.uniformMatrix2fv(t,!1,o);case 35675:return e.uniformMatrix3fv(t,!1,o);case 35676:return e.uniformMatrix4fv(t,!1,o);case 35685:return i.uniformMatrix2x3fv(t,!1,o);case 35686:return i.uniformMatrix2x4fv(t,!1,o);case 35687:return i.uniformMatrix3x2fv(t,!1,o);case 35688:return i.uniformMatrix3x4fv(t,!1,o);case 35689:return i.uniformMatrix4x2fv(t,!1,o);case 35690:return i.uniformMatrix4x3fv(t,!1,o)}throw new Error("Illegal uniform")}var Ls=P(()=>{});function dc(e,t){let r={...e,attributes:e.attributes.map(n=>({...n})),bindings:e.bindings.map(n=>({...n}))};for(let n of t?.attributes||[]){let i=r.attributes.find(s=>s.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):U.log.warn(`shader layout attribute ${n.name} not present in shader`)}for(let n of t?.bindings||[]){let i=Rs(r,n.name);if(!i){U.log.warn(`shader layout binding ${n.name} not present in shader`);continue}Object.assign(i,n)}return r}function Rs(e,t){return e.bindings.find(r=>r.name===t||r.name===`${t}Uniforms`||`${r.name}Uniforms`===t)}function As(e,t){return e[t]||e[`${t}Uniforms`]||e[t.replace(/Uniforms$/,"")]}var U,pr,ks=P(()=>{U=D(I(),1);Ls();ir();er();mr();Tn();pr=class extends U.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(t,r){super(t,r),this.device=t;let n=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=n,this.handle=n.handle,this.vs=n.vs,this.fs=n.fs,this.linkStatus=n.linkStatus,this.introspectedLayout=n.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?dc(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(t,r){let n=(0,U.flattenBindingsByGroup)((0,U.normalizeBindingsByGroup)(this.shaderLayout,t));for(let[i,s]of Object.entries(n)){let o=Rs(this.shaderLayout,i);if(o){switch(s||U.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof it)&&!(s.buffer instanceof it))throw new Error("buffer value");break;case"texture":if(!(s instanceof mt||s instanceof pt||s instanceof dt))throw new Error(`${this} Bad texture binding for ${i}`);break;case"sampler":U.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}else{let a=this.shaderLayout.bindings.map(c=>`"${c.name}"`).join(", ");r?.disableWarnings||U.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)()}}}draw(t){let r=t.renderPass,n=t.bindGroups?(0,U.flattenBindingsByGroup)(t.bindGroups):t.bindings||this.bindings;return r.setPipeline(this),r.setBindings(n),r.setVertexArray(t.vertexArray),r.draw({parameters:t.parameters,topology:t.topology,isInstanced:t.isInstanced,vertexCount:t.vertexCount,indexCount:t.indexCount,instanceCount:t.instanceCount,firstVertex:t.firstVertex,firstIndex:t.firstIndex,firstInstance:t.firstInstance,baseVertex:t.baseVertex,transformFeedback:t.transformFeedback,uniforms:t.uniforms})}_areTexturesRenderable(t){let r=!0;for(let n of this.shaderLayout.bindings)As(t,n.name)||(U.log.warn(`Binding ${n.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(t,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:n}=this.device;n.useProgram(this.handle);let i=0,s=0;for(let o of this.shaderLayout.bindings){let a=As(t,o.name);if(!a)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:c}=o,l=n.getUniformBlockIndex(this.handle,c);if(l===4294967295)throw new Error(`Invalid uniform block name ${c}`);if(n.uniformBlockBinding(this.handle,l,s),a instanceof it)n.bindBufferBase(35345,s,a.handle);else{let u=a;n.bindBufferRange(35345,s,u.buffer.handle,u.offset||0,u.size||u.buffer.byteLength-(u.offset||0))}s+=1;break;case"texture":if(!(a instanceof mt||a instanceof pt||a instanceof dt))throw new Error("texture");let h;if(a instanceof mt)h=a.texture;else if(a instanceof pt)h=a;else if(a instanceof dt&&a.colorAttachments[0]instanceof mt)U.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),h=a.colorAttachments[0].texture;else throw new Error("No texture");n.activeTexture(33984+i),n.bindTexture(h.glTarget,h.handle),i+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(t){for(let r of this.shaderLayout.uniforms||[]){let{name:n,location:i,type:s,textureUnit:o}=r,a=t[n]??o;a!==void 0&&Cs(this.device.gl,i,s,a)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function Ds(e){return pc[e]}function gr(e){return mc[e]}function br(e){return!!Bs[e]}function Is(e){return Bs[e]}var mc,Bs,pc,xr=P(()=>{mc={5126:"f32",35664:"vec2<f32>",35665:"vec3<f32>",35666:"vec4<f32>",5124:"i32",35667:"vec2<i32>",35668:"vec3<i32>",35669:"vec4<i32>",5125:"u32",36294:"vec2<u32>",36295:"vec3<u32>",36296:"vec4<u32>",35670:"f32",35671:"vec2<f32>",35672:"vec3<f32>",35673:"vec4<f32>",35674:"mat2x2<f32>",35685:"mat2x3<f32>",35686:"mat2x4<f32>",35687:"mat3x2<f32>",35675:"mat3x3<f32>",35688:"mat3x4<f32>",35689:"mat4x2<f32>",35690:"mat4x3<f32>",35676:"mat4x4<f32>"},Bs={35678:{viewDimension:"2d",sampleType:"float"},35680:{viewDimension:"cube",sampleType:"float"},35679:{viewDimension:"3d",sampleType:"float"},35682:{viewDimension:"3d",sampleType:"depth"},36289:{viewDimension:"2d-array",sampleType:"float"},36292:{viewDimension:"2d-array",sampleType:"depth"},36293:{viewDimension:"cube",sampleType:"float"},36298:{viewDimension:"2d",sampleType:"sint"},36299:{viewDimension:"3d",sampleType:"sint"},36300:{viewDimension:"cube",sampleType:"sint"},36303:{viewDimension:"2d-array",sampleType:"uint"},36306:{viewDimension:"2d",sampleType:"uint"},36307:{viewDimension:"3d",sampleType:"uint"},36308:{viewDimension:"cube",sampleType:"uint"},36311:{viewDimension:"2d-array",sampleType:"uint"}},pc={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function Fs(e,t){let r={attributes:[],bindings:[]};r.attributes=gc(e,t);let n=yc(e,t);for(let a of n){let c=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,group:0,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:c})}let i=xc(e,t),s=0;for(let a of i)if(br(a.type)){let{viewDimension:c,sampleType:l}=Is(a.type);r.bindings.push({type:"texture",name:a.name,group:0,location:s,viewDimension:c,sampleType:l}),a.textureUnit=s,s+=1}i.length&&(r.uniforms=i);let o=bc(e,t);return o?.length&&(r.varyings=o),r}function gc(e,t){let r=[],n=e.getProgramParameter(t,35721);for(let i=0;i<n;i++){let s=e.getActiveAttrib(t,i);if(!s)throw new Error("activeInfo");let{name:o,type:a}=s,c=e.getAttribLocation(t,o);if(c>=0){let l=gr(a),h=/instance/i.test(o)?"instance":"vertex";r.push({name:o,location:c,stepMode:h,type:l})}}return r.sort((i,s)=>i.location-s.location),r}function bc(e,t){let r=[],n=e.getProgramParameter(t,35971);for(let i=0;i<n;i++){let s=e.getTransformFeedbackVarying(t,i);if(!s)throw new Error("activeInfo");let{name:o,type:a,size:c}=s,l=gr(a),{type:h,components:u}=(0,Ut.getVariableShaderTypeInfo)(l);r.push({location:i,name:o,type:h,size:c*u})}return r.sort((i,s)=>i.location-s.location),r}function xc(e,t){let r=[],n=e.getProgramParameter(t,35718);for(let i=0;i<n;i++){let s=e.getActiveUniform(t,i);if(!s)throw new Error("activeInfo");let{name:o,size:a,type:c}=s,{name:l,isArray:h}=wc(o),u=e.getUniformLocation(t,l),f={location:u,name:l,size:a,type:c,isArray:h};if(r.push(f),f.size>1)for(let d=0;d<f.size;d++){let p=`${l}[${d}]`;u=e.getUniformLocation(t,p);let g={...f,name:p,location:u};r.push(g)}}return r}function yc(e,t){let r=(s,o)=>e.getActiveUniformBlockParameter(t,s,o),n=[],i=e.getProgramParameter(t,35382);for(let s=0;s<i;s++){let o={name:e.getActiveUniformBlockName(t,s)||"",location:r(s,35391),byteLength:r(s,35392),vertex:r(s,35396),fragment:r(s,35398),uniformCount:r(s,35394),uniforms:[]},a=r(s,35395)||[],c=e.getActiveUniforms(t,a,35383),l=e.getActiveUniforms(t,a,35384),h=e.getActiveUniforms(t,a,35387),u=e.getActiveUniforms(t,a,35388);for(let p=0;p<o.uniformCount;++p){let g=a[p];if(g!==void 0){let m=e.getActiveUniform(t,g);if(!m)throw new Error("activeInfo");let b=gr(c[p]);o.uniforms.push({name:m.name,format:b,type:c[p],arrayLength:l[p],byteOffset:h[p],byteStride:u[p]})}}let f=new Set(o.uniforms.map(p=>p.name.split(".")[0]).filter(p=>!!p)),d=o.name.replace(/Uniforms$/,"");if(f.size===1&&!f.has(o.name)&&!f.has(d)){let[p]=f;Ut.log.warn(`Uniform block "${o.name}" uses GLSL instance "${p}". luma.gl binds uniform buffers by block name ("${o.name}") and alias ("${d}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}n.push(o)}return n.sort((s,o)=>s.location-o.location),n}function wc(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);return{name:(0,Ut.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${e}`),length:r?.[2]?1:0,isArray:!!r?.[2]}}var Ut,Os=P(()=>{Ut=D(I(),1);xr()});var yt,Ns,yr,Vs=P(()=>{yt=D(I(),1);Os();xr();Ns=4,yr=class extends yt.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(t,r){super(t,r),this.device=t,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),yt.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Fs(this.device.gl,this.handle),yt.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),yt.log.time(Ns,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),yt.log.timeEnd(Ns,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let n=this._getLinkStatus();this._reportLinkStatus(n);return}yt.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),yt.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:let r=t==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let n=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${t}: ${n}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:t}=this.device;t.useProgram(this.handle);let r=0,n=t.getProgramParameter(this.handle,35718);for(let i=0;i<n;i++){let s=t.getActiveUniform(this.handle,i);if(s&&br(s.type)){let o=s.name.endsWith("[0]"),a=o?s.name.slice(0,-3):s.name,c=t.getUniformLocation(this.handle,a);c!==null&&(r=this._assignSamplerUniform(c,s,o,r))}}}_assignSamplerUniform(t,r,n,i){let{gl:s}=this.device;if(n&&r.size>1){let o=Int32Array.from({length:r.size},(a,c)=>i+c);return s.uniform1iv(t,o),i+r.size}return s.uniform1i(t,i),i+1}async _waitForLinkComplete(){let t=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await t(10)}}}});function Ec(e,t){let r=t.sourceBuffer,n=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,n.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Tc(e,t){let{sourceBuffer:r,byteOffset:n=0,destinationTexture:i,mipLevel:s=0,origin:o=[0,0,0],aspect:a="all",bytesPerRow:c,rowsPerImage:l,size:h}=t;if(a!=="all")throw new Error("copyBufferToTexture aspect is not supported in WebGL");i.writeBuffer(r,{byteOffset:n,bytesPerRow:c,rowsPerImage:l,mipLevel:s,x:o[0]??0,y:o[1]??0,z:o[2]??0,width:h[0],height:h[1],depthOrArrayLayers:h[2]})}function _c(e,t){let{sourceTexture:r,mipLevel:n=0,aspect:i="all",width:s=t.sourceTexture.width,height:o=t.sourceTexture.height,depthOrArrayLayers:a,origin:c=[0,0,0],destinationBuffer:l,byteOffset:h=0,bytesPerRow:u,rowsPerImage:f}=t;if(r instanceof At.Texture){r.readBuffer({x:c[0]??0,y:c[1]??0,z:c[2]??0,width:s,height:o,depthOrArrayLayers:a,mipLevel:n,aspect:i,byteOffset:h},l);return}if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||a!==void 0||u||f)throw new Error("not implemented");let{framebuffer:d,destroyFramebuffer:p}=Gs(r),g;try{let m=l,b=s||d.width,_=o||d.height,y=(0,At.assertDefined)(d.colorAttachments[0]),w=Qe(y.texture.props.format),v=w.format,E=w.type;e.gl.bindBuffer(35051,m.handle),g=e.gl.bindFramebuffer(36160,d.handle),e.gl.readPixels(c[0],c[1],b,_,v,E,h)}finally{e.gl.bindBuffer(35051,null),g!==void 0&&e.gl.bindFramebuffer(36160,g),p&&d.destroy()}}function vc(e,t){let{sourceTexture:r,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:s=[0,0,0],destinationTexture:o}=t,{width:a=t.destinationTexture.width,height:c=t.destinationTexture.height}=t,{framebuffer:l,destroyFramebuffer:h}=Gs(r),[u=0,f=0]=i,[d,p,g]=s,m=e.gl.bindFramebuffer(36160,l.handle),b,_;if(o instanceof pt)b=o,a=Number.isFinite(a)?a:b.width,c=Number.isFinite(c)?c:b.height,b._bind(0),_=b.glTarget;else throw new Error("invalid destination");switch(_){case 3553:case 34067:e.gl.copyTexSubImage2D(_,n,d,p,u,f,a,c);break;case 35866:case 32879:e.gl.copyTexSubImage3D(_,n,d,p,g,u,f,a,c);break;default:}b&&b._unbind(),e.gl.bindFramebuffer(36160,m),h&&l.destroy()}function Gs(e){if(e instanceof At.Texture){let{width:t,height:r,id:n}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${n}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var At,wr,zs=P(()=>{At=D(I(),1);Wt();mr();wr=class extends At.CommandBuffer{device;handle=null;commands=[];constructor(t,r={}){super(t,r),this.device=t}_executeCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Ec(this.device,r.options);break;case"copy-buffer-to-texture":Tc(this.device,r.options);break;case"copy-texture-to-buffer":_c(this.device,r.options);break;case"copy-texture-to-texture":vc(this.device,r.options);break;default:throw new Error(r.name)}}}});function Ws(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function Us(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var vn=P(()=>{});var wt,Sc,Er,Ys=P(()=>{wt=D(I(),1);ur();Vt();vn();xn();Sc=[1,2,4,8],Er=class extends wt.RenderPass{device;handle=null;glParameters={};pipeline=null;bindings={};bindingsPipeline=null;vertexArray=null;constructor(t,r){super(t,r),this.device=t;let n=this.props.framebuffer,i=!n||n.handle===null;i&&t.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let s;if(!r?.parameters?.viewport)if(!i&&n){let{width:o,height:a}=n;s=[0,0,o,a]}else{let[o,a]=t.getDefaultCanvasContext().getDrawingBufferSize();s=[0,0,o,a]}if(this.device.pushState(),this.setParameters({viewport:s,...this.props.parameters}),!i&&n?.colorAttachments.length){let o=n.colorAttachments.map((a,c)=>36064+c);this.device.gl.drawBuffers(o)}else i&&this.device.gl.drawBuffers([1029]);this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}executeBundles(t){throw new Error("Render bundles are only supported in WebGPU")}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference!==void 0&&(r[2967]=t.stencilReference,r[36003]=t.stencilReference),"colorMask"in t&&(r.colorMask=Sc.map(n=>!!(n&t.colorMask))),this.glParameters=r,et(this.device.gl,r)}setPipeline(t){this.pipeline=t}setBindings(t,r){if(!this.pipeline)throw new Error("RenderPass.setPipeline() must be called before setBindings()");this.bindings=(0,wt.flattenBindingsByGroup)((0,wt.normalizeBindingsByGroup)(this.pipeline.shaderLayout,t)),this.bindingsPipeline=this.pipeline}setVertexArray(t){this.vertexArray=t}draw(t){let r=this.pipeline,n=this.vertexArray;if(!r)throw new Error("RenderPass.setPipeline() must be called before draw()");if(!n)throw new Error("RenderPass.setVertexArray() must be called before draw()");if(r.shaderLayout.bindings.length>0&&this.bindingsPipeline!==r)throw new Error("RenderPass.setBindings() must be called after setPipeline() before draw()");r._syncLinkStatus();let{parameters:i=r.props.parameters,topology:s=r.props.topology,vertexCount:o,indexCount:a,instanceCount:c,isInstanced:l=!1,firstVertex:h=0,transformFeedback:u,uniforms:f=r.uniforms}=t,d=Ws(s),p=!!n.indexBuffer,g=n.indexBuffer?.glIndexType,m=a??o??0;if(r.linkStatus!=="success")return wt.log.info(2,`RenderPipeline:${r.id}.draw() aborted - waiting for shader linking`)(),!1;if(!r._areTexturesRenderable(this.bindings))return wt.log.info(2,`RenderPipeline:${r.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(r.handle),n.bindBeforeRender(this);let b=u;return b&&b.begin(r.props.topology),r._applyBindings(this.bindings,{disableWarnings:r.props.disableWarnings}),r._applyUniforms(f),Ss(this.device,i,this.glParameters,()=>{p&&l?this.device.gl.drawElementsInstanced(d,m,g,h,c||0):p?this.device.gl.drawElements(d,m,g,h):l?this.device.gl.drawArraysInstanced(d,h,o||0,c||0):this.device.gl.drawArrays(d,h,o||0),b&&b.end()}),n.unbindAfterRender(this),!0}drawIndirect(t,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}drawIndexedIndirect(t,r=0){throw new Error("Indirect drawing is only supported in WebGPU")}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,t.clearStencil=this.props.clearStencil),r!==0&&st(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){st(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var $s,ge,js=P(()=>{$s=D(I(),1);zs();Ys();ge=class extends $s.CommandEncoder{device;handle=null;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new wr(t,{id:this.id,userData:this.userData})}destroy(){this.destroyResource()}finish(){return this.destroy(),this.commandBuffer}beginRenderPass(t={}){return new Er(this.device,this._applyTimeProfilingToPassProps(t))}beginComputePass(t={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,n){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(t,r){t.writeTimestamp(r)}}});var Tr,Mc,_r,Pc,qs,Sn=P(()=>{Tr=globalThis,Mc=globalThis.document||{},_r=globalThis.process||{},Pc=globalThis.console,qs=globalThis.navigator||{}});function vr(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&process.versions?.electron)return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}var Mn=P(()=>{});function Et(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||vr()}var Pn=P(()=>{Mn()});function Cn(e){return!e&&!Et()?"Node":vr(e)?"Electron":(e||qs.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var Xs=P(()=>{Pn();Mn();Sn()});var Ln,be=P(()=>{Sn();Pn();Xs();Ln="4.1.1"});function Zs(e){let{target:t,source:r,start:n=0,count:i=1}=e,s=r.length,o=i*s,a=0;for(let c=n;a<s;a++)t[c++]=r[a]??0;for(;a<o;)a<o-a?(t.copyWithin(n+a,n,n+a),a*=2):(t.copyWithin(n+a,n,n+o-a),a=o);return e.target}var Hs=P(()=>{});function Lc(e){return Array.isArray(e)?new Float32Array(e):e}function Ac(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Yt,Sr,Qs=P(()=>{Yt=D(I(),1);be();ln();Hs();Sr=class e extends Yt.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;attributeInfosByLocation;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return Cn()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray(),this.attributeInfosByLocation=new Array(this.maxVertexAttributes).fill(null);for(let n of Object.values((0,Yt.getAttributeInfosFromLayouts)(r.shaderLayout,r.bufferLayout)))this.attributeInfosByLocation[n.location]=n}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(t,r){let n=r;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:s,stride:o,offset:a,normalized:c,integer:l,divisor:h}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),l?this.device.gl.vertexAttribIPointer(t,i,s,o,a):this.device.gl.vertexAttribPointer(t,i,s,c,o,a),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,h||0),this.attributes[t]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfosByLocation[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let n=qe(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let i=e.isConstantAttributeZeroSupported(this.device)||t!==0;(r||i)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let n=Lc(r),i=n.byteLength*t,s=n.length*t;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o||=!Ac(n,this.bufferValue),o){let a=(0,Yt.getScratchArray)(r.constructor,s);Zs({target:a,source:n,start:0,count:s}),this.buffer.write(a),this.bufferValue=r}return this.buffer}}});function Ks(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var Pr,Mr,Js=P(()=>{Pr=D(I(),1);An();vn();Mr=class extends Pr.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(Us(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let[r,n]of Object.entries(t))this.setBuffer(r,n)})}setBuffer(t,r){let n=this._getVaryingIndex(t),{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);if(n<0){this.unusedBuffers[t]=i,Pr.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[n]={buffer:i,byteLength:s,byteOffset:o},this.bindOnUse||this._bindBuffer(n,i,o,s)}getBuffer(t){if(Ks(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return this.buffers[r]??null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof it)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:n=0,byteLength:i=t.buffer.byteLength}=t;return{buffer:r,byteOffset:n,byteLength:i}}_getVaryingIndex(t){if(Ks(t))return Number(t);for(let r of this.layout.varyings||[])if(t===r.name)return r.location;return-1}_bindBuffers(){for(let[t,r]of Object.entries(this.buffers)){let{buffer:n,byteLength:i,byteOffset:s}=this._getBufferRange(r);this._bindBuffer(Number(t),n,s,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,n=0,i){let s=r&&r.handle;!s||i===void 0?this.gl.bindBufferBase(35982,t,s):this.gl.bindBufferRange(35982,t,s,n,i)}}});var to,Cr,eo=P(()=>{to=D(I(),1),Cr=class extends to.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(t,r){if(super(t,r),this.device=t,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let n=this.device.gl.createQuery();if(!n)throw new Error("WebGL query not supported");this.handle=n}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let t of this._timestampPairs){t.activeQuery&&(this._cancelPendingQuery(t.activeQuery),this.device.gl.deleteQuery(t.activeQuery.handle));for(let r of t.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let t of Array.from(this._pendingReads))this._cancelPendingQuery(t);this.destroyResource()}}isResultAvailable(t){return this.props.type==="timestamp"?t===void 0?this._timestampPairs.some((r,n)=>this._isTimestampPairAvailable(n)):this._isTimestampPairAvailable(this._getTimestampPairIndex(t)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(t){let r=t?.firstQuery||0,n=t?.queryCount||this.props.count-r;if(this._validateRange(r,n),this.props.type==="timestamp"){let i=new Array(n).fill(0n),s=Math.floor(r/2),o=Math.floor((r+n-1)/2);for(let a=s;a<=o;a++){let c=await this._consumeTimestampPairResult(a),l=a*2,h=l+1;l>=r&&l<r+n&&(i[l-r]=0n),h>=r&&h<r+n&&(i[h-r]=c)}return i}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(t,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(t<0||r>=this.props.count||r<=t)throw new Error("Timestamp duration range is out of bounds");if(t%2!==0||r!==t+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let n=await this._consumeTimestampPairResult(this._getTimestampPairIndex(t));return Number(n)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(t){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(t),n=this._timestampPairs[r];if(t%2===0){if(n.activeQuery)throw new Error("Timestamp query pair is already active");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");let s={handle:i,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,i),n.activeQuery=s;return}if(!n.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),n.completedQueries.push(n.activeQuery),n.activeQuery=null}_validateRange(t,r){if(t<0||r<0||t+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(t){if(t<0||t>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(t/2)}_isTimestampPairAvailable(t){let r=this._timestampPairs[t];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(t){if(t.cancelled||this.destroyed)return t.result=0n,!0;if(t.result!==null||t.disjoint)return!0;if(!this.device.gl.getQueryParameter(t.handle,34919))return!1;let n=!!this.device.gl.getParameter(36795);return t.disjoint=n,t.result=n?0n:BigInt(this.device.gl.getQueryParameter(t.handle,34918)),!0}async _consumeTimestampPairResult(t){let r=this._timestampPairs[t];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let n=r.completedQueries.shift();try{return await this._consumeQueryResult(n)}finally{this.device.gl.deleteQuery(n.handle)}}_consumeQueryResult(t){return t.promise||(this._pendingReads.add(t),t.promise=new Promise((r,n)=>{t.resolve=r,t.reject=n;let i=()=>{if(t.pollRequestId=null,t.cancelled||this.destroyed){this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,r(0n);return}if(!this._pollQueryAvailability(t)){t.pollRequestId=this._requestAnimationFrame(i);return}this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,t.disjoint?n(new Error("GPU timestamp query was invalidated by a disjoint event")):r(t.result||0n)};i()})),t.promise}_cancelPendingQuery(t){if(this._pendingReads.delete(t),t.cancelled=!0,t.pollRequestId!==null&&(this._cancelAnimationFrame(t.pollRequestId),t.pollRequestId=null),t.resolve){let r=t.resolve;t.promise=null,t.resolve=null,t.reject=null,r(0n)}}_requestAnimationFrame(t){return requestAnimationFrame(t)}_cancelAnimationFrame(t){cancelAnimationFrame(t)}}});var ro,Lr,no=P(()=>{ro=D(I(),1),Lr=class extends ro.Fence{device;gl;handle;signaled;_signaled=!1;constructor(t,r={}){super(t,{}),this.device=t,this.gl=t.gl;let n=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!n)throw new Error("Failed to create WebGL fence");this.handle=n,this.signaled=new Promise(i=>{let s=()=>{let o=this.gl.clientWaitSync(this.handle,0,0);o===this.gl.ALREADY_SIGNALED||o===this.gl.CONDITION_SATISFIED?(this._signaled=!0,i()):setTimeout(s,1)};s()})}isSignaled(){if(this._signaled)return!0;let t=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=t===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function Rn(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function io(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var so=P(()=>{});function oo(e,t){let{sourceX:r=0,sourceY:n=0,sourceAttachment:i=0}=t||{},{target:s=null,sourceWidth:o,sourceHeight:a,sourceDepth:c,sourceFormat:l,sourceType:h}=t||{},{framebuffer:u,deleteFramebuffer:f}=co(e),{gl:d,handle:p}=u;o||=u.width,a||=u.height;let g=u.colorAttachments[i]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${i}`);c=g?.depth||1,l||=g?.glFormat||6408,h||=g?.glType||5121,s=kc(s,h,l,o,a,c);let m=xe.dataTypeDecoder.getDataType(s);h=h||Ds(m);let b=d.bindFramebuffer(36160,p);return d.readBuffer(36064+i),d.readPixels(r,n,o,a,l,h,s),d.readBuffer(36064),d.bindFramebuffer(36160,b||null),f&&u.destroy(),s}function ao(e,t){let{target:r,sourceX:n=0,sourceY:i=0,sourceFormat:s=6408,targetByteOffset:o=0}=t||{},{sourceWidth:a,sourceHeight:c,sourceType:l}=t||{},{framebuffer:h,deleteFramebuffer:u}=co(e);a=a||h.width,c=c||h.height;let f=h;l=l||5121;let d=r;if(!d){let g=Rn(s),m=io(l),b=o+a*c*g*m;d=f.device.createBuffer({byteLength:b})}let p=e.device.createCommandEncoder();return p.copyTextureToBuffer({sourceTexture:e,width:a,height:c,origin:[n,i],destinationBuffer:d,byteOffset:o}),p.destroy(),u&&h.destroy(),d}function co(e){return e instanceof xe.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Rc(e),deleteFramebuffer:!0}}function Rc(e,t){let{device:r,width:n,height:i,id:s}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${s}`,width:n,height:i,colorAttachments:[e]})}function kc(e,t,r,n,i,s){if(e)return e;t||=5121;let o=dr(t),a=xe.dataTypeDecoder.getTypedArrayConstructor(o),c=Rn(r);return new a(n*i*c)}var xe,lo=P(()=>{xe=D(I(),1);xr();so();_n()});function Dc(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function Ic(e,t,r){e.gl.vertexAttribI4iv(t,r)}function Bc(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function Fc(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ot,ye,ho=P(()=>{ot=D(I(),1);an();Ji();cn();rs();hs();fs();ps();bs();zi();Wt();ys();ir();Ts();Ps();mr();er();ks();Vs();js();Qs();Js();eo();no();lo();Vt();ur();ue();ye=class e extends ot.Device{static getDeviceFromContext(t){return t?t.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;_isLost=!1;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(t){return t!=="unorm8x4-bgra"}constructor(t){super({...t,id:t.id||xs("webgl-device")});let r=ot.Device._getCanvasContextProps(t);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=r.canvas?.gl??null,i=e.getDeviceFromContext(n);if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new rr(this,r),this.lost=new Promise(h=>{this._resolveContextLost=h});let s={...t.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),t.powerPreference!==void 0&&(s.powerPreference=t.powerPreference),t.failIfMajorPerformanceCaveat!==void 0&&(s.failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat);let a=this.props._handle||Ki(this.canvasContext.canvas,{onContextLost:h=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:h=>{console.log("WebGL context restored")}},s);if(!a)throw new Error("WebGL context creation failed");if(i=e.getDeviceFromContext(a),i){if(t._reuseDevices)return ot.log.log(1,`Not creating a new Device, instead returning a reference to Device ${i.id} already attached to WebGL context`,i)(),this.canvasContext.destroy(),i._reused=!0,i;throw new Error(`WebGL context already attached to device ${i.id}`)}this.handle=a,this.gl=a,this.spectorJS=Gi({...this.props,gl:this.handle});let c=he(this.handle);c.device=this,c.extensions||(c.extensions={}),this.extensions=c.extensions,this.info=ts(this.gl,this.extensions),this.limits=new tr(this.gl),this.features=new Ke(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new rt(this.gl,{log:(...h)=>ot.log.log(1,...h)()}).trackState(this.gl,{copyState:!1}),(t.debug||t.debugWebGL)&&(this.gl=Vi(this.gl,{debugWebGL:!0,traceWebGL:t.debugWebGL}),ot.log.warn("WebGL debug mode activated. Performance reduced.")()),t.debugWebGL&&(ot.log.level=Math.max(ot.log.level,1)),this.commandEncoder=new ge(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(!this.props._reuseDevices&&!this._reused){this._isLost=!0,this.commandEncoder?.destroy();let t=he(this.handle);t.device=null}}get isLost(){return this._isLost||this.gl.isContextLost()}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createPresentationContext(t){return new nr(this,t||{})}createBuffer(t){let r=this._normalizeBufferProps(t);return new it(this,r)}createTexture(t){return new pt(this,t)}createExternalTexture(t){throw new Error("ExternalTexture is not available on WebGL")}createSampler(t){return new hr(this,t)}createShader(t){return new or(this,t)}createFramebuffer(t){return new dt(this,t)}createVertexArray(t){return new Sr(this,t)}createTransformFeedback(t){return new Mr(this,t)}createQuerySet(t){return new Cr(this,t)}createFence(){return new Lr(this)}createRenderPipeline(t){return new pr(this,t)}_createSharedRenderPipelineWebGL(t){return new yr(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}createRenderBundleEncoder(t){throw new Error("Render bundles are only supported in WebGPU")}createCommandEncoder(t={}){return new ge(this,t)}submit(t){let r=null;t||({submittedCommandEncoder:r,commandBuffer:t}=this._finalizeDefaultCommandEncoderForSubmit());try{t._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{t.destroy()}}writeBufferViaCommandEncoder(t,r,n,i=0){r.write(n,i)}_finalizeDefaultCommandEncoderForSubmit(){let t=this.commandEncoder,r=t.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:t.props.id,timeProfilingQuerySet:t.getTimeProfilingQuerySet()}),{submittedCommandEncoder:t,commandBuffer:r}}readPixelsToArrayWebGL(t,r){return oo(t,r)}readPixelsToBufferWebGL(t,r){return ao(t,r)}setParametersWebGL(t){et(this.gl,t)}getParametersWebGL(t){return je(this.gl,t)}withParametersWebGL(t,r){return st(this.gl,t,r)}resetWebGL(){ot.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),qi(this.gl)}_getDeviceSpecificTextureFormatCapabilities(t){return as(this.gl,t,this.extensions)}loseDevice(){let t=!1,n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(t=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){rt.get(this.gl).push()}popState(){rt.get(this.gl).pop()}getGLKey(t,r){let n=Number(t);for(let i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((n,[i,s])=>(n[`${i}:${this.getGLKey(i,r)}`]=`${s}:${this.getGLKey(s,r)}`,n),{})}setConstantAttributeWebGL(t,r){let n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);let i=this._constants[t];switch(i&&Fc(i,r)&&ot.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Dc(this,t,r);break;case Int32Array:Ic(this,t,r);break;case Uint32Array:Bc(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return nt(this.gl,t,this.extensions),this.extensions}_setWebGLDebugMetadata(t,r,n){t.luma=r;let i={props:n.spector,id:n.spector.id};t.__SPECTOR_Metadata=i}}});var An=P(()=>{ho();ir()});var Ma=Ye((Jr,Sa)=>{(function(e,t){typeof Jr=="object"&&typeof Sa<"u"?t(Jr):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Jr,(function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},n="4.25",i="next";function s(x){if(x.toLowerCase()===i)return i;var T=x&&x.match(/^(\d)\.(\d+)/);return T&&{major:parseInt(T[1],10),minor:parseInt(T[2],10)}}function o(x){return x===void 0&&(x=n),"https://js.arcgis.com/".concat(x,"/")}function a(x){x===void 0&&(x=n);var T=o(x),M=s(x);if(M!==i&&M.major===3){var S=M.minor<=10?"js/":"";return"".concat(T).concat(S,"esri/css/esri.css")}else return"".concat(T,"esri/themes/light/main.css")}function c(x){var T=document.createElement("link");return T.rel="stylesheet",T.href=x,T}function l(x,T){if(T){var M=document.querySelector(T);M.parentNode.insertBefore(x,M)}else document.head.appendChild(x)}function h(x){return document.querySelector('link[href*="'.concat(x,'"]'))}function u(x){return!x||s(x)?a(x):x}function f(x,T){var M=u(x),S=h(M);return S||(S=c(M),l(S,T)),S}var d={};function p(x){var T=document.createElement("script");return T.type="text/javascript",T.src=x,T.setAttribute("data-esri-loader","loading"),T}function g(x,T,M){var S;M&&(S=m(x,M));var C=function(){T(x),x.removeEventListener("load",C,!1),S&&x.removeEventListener("error",S,!1)};x.addEventListener("load",C,!1)}function m(x,T){var M=function(S){T(S.error||new Error("There was an error attempting to load ".concat(x.src))),x.removeEventListener("error",M,!1)};return x.addEventListener("error",M,!1),M}function b(x){x===void 0&&(x={}),d=x}function _(){return document.querySelector("script[data-esri-loader]")}function y(){var x=window.require;return x&&x.on}function w(x){x===void 0&&(x={});var T={};[d,x].forEach(function(C){for(var L in C)Object.prototype.hasOwnProperty.call(C,L)&&(T[L]=C[L])});var M=T.version,S=T.url||o(M);return new r.Promise(function(C,L){var R=_();if(R){var A=R.getAttribute("src");A!==S?L(new Error("The ArcGIS API for JavaScript is already loaded (".concat(A,")."))):y()?C(R):g(R,C,L)}else if(y())L(new Error("The ArcGIS API for JavaScript is already loaded."));else{var B=T.css;if(B){var ht=B===!0;f(ht?M:B,T.insertCssBefore)}R=p(S),g(R,function(){R.setAttribute("data-esri-loader","loaded"),C(R)},L),document.body.appendChild(R)}})}function v(x){return new r.Promise(function(T,M){var S=window.require.on("error",M);window.require(x,function(){for(var C=[],L=0;L<arguments.length;L++)C[L]=arguments[L];S.remove(),T(C)})})}function E(x,T){if(T===void 0&&(T={}),y())return v(x);var M=_(),S=M&&M.getAttribute("src");return!T.url&&S&&(T.url=S),w(T).then(function(){return v(x)})}e.utils=r,e.loadModules=E,e.getScript=_,e.isLoaded=y,e.loadScript=w,e.setDefaultOptions=b,e.loadCss=f,Object.defineProperty(e,"__esModule",{value:!0})}))});var Ge={};ae(Ge,{loadArcGISModules:()=>bf});var ut={},Ri=D($e(),1);St(ut,D($e(),1));if(!Ri.Layer)throw new Error("@deck.gl/core is not found");St(Ge,ut);var ki={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function tn(e){return e.createSubclass({properties:ki,constructor(){this._callbacks={},this.watch(Object.keys(ki),(r,n,i)=>{this.emit("change",{[i]:r})})},on(r,n){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(n)},emit(r,n){let i=this._callbacks[r];if(i)for(let s of i)s(n)},toJSON(){let r={};for(let n of this.keys())this[n]!==void 0&&(r[n]=this[n]);return r}})}function en(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new e},createLayerView(n){return n.type==="2d"?new r({view:n,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var uo=D($e(),1),Ar=D(Ii(),1);An();async function Oc(e){return new Promise(t=>{let r=new uo.Deck({controller:!1,gl:e,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:n=>{t({deckInstance:r,device:n})}})})}async function Rr(e){let{deckInstance:t,device:r}=await Oc(e),n=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=new Ar.Model(r,{vs:`#version 300 es
|
|
10
10
|
in vec2 pos;
|
|
11
11
|
out vec2 v_texcoord;
|
|
12
12
|
void main(void) {
|
|
@@ -26,6 +26,6 @@ void main(void) {
|
|
|
26
26
|
// input correctly; multiplying again here would darken overlays.
|
|
27
27
|
fragColor = imageColor;
|
|
28
28
|
}
|
|
29
|
-
`,bindings:{deckglTexture:n},parameters:{depthWriteEnabled:!1,depthCompare:"always",blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"},geometry:new Ur.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6,disableWarnings:!0}),s=r.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[n],depthStencilAttachment:"depth16unorm"});return e.setProps({_framebuffer:s,_customRender:o=>{if(o==="arcgis"){let a=r.gl;a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),e._drawLayers(o)}else this.redraw()}}),{deck:e,texture:n,fbo:s,model:i}}function Oe(t,e){let{model:r,deck:n,fbo:i}=t,s=r.device;if(s instanceof Ft){let o=s.getParametersWebGL(36006),{width:a,height:c,views:l,viewState:h,...f}=e,d=window.devicePixelRatio,p=Math.round(a*d),_=Math.round(c*d);i.resize({width:p,height:_});let g=i.colorAttachments[0].texture??i.colorAttachments[0];g!==t.texture&&(t.texture=g,r.setBindings({deckglTexture:g}));let u={width:a,height:c,viewState:h||f};l&&(u.views=l),n.setProps(u),n.redraw("arcgis");let{gl:T}=s;o?(T.bindFramebuffer(36160,o),T.drawBuffers([36064])):T.drawBuffers([1029]),T.enable(3042),T.blendFuncSeparate(1,771,1,771),T.blendEquationSeparate(32774,32774);let b={handle:o,width:p,height:_,colorAttachments:[null]},E=s.beginRenderPass({framebuffer:b,parameters:{viewport:[0,0,p,_]},clearColor:!1,clearDepth:!1});try{r.draw(E)}finally{E.end()}}}function ee(t){t.deck.finalize(),t.model.destroy(),t.fbo.destroy(),t.texture.destroy()}function Vn(t){return t.createSubclass({properties:{cancelInitialization:null,resources:null},async attach(){let e=this.context,r=!1;this.cancelInitialization=()=>r=!0;let n=await Vr.call(this,e);if(r){ee(n);return}this.resources=n,this.layer.deck.on("change",i=>n.deck.setProps(i)),n.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){this.cancelInitialization?.(),this.resources&&(ee(this.resources),this.resources=null)},render(e){if(!this.resources)return;let[r,n]=this.view.state.size,i=e.state;Oe(this.resources,{width:r,height:n,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(i.scale),bearing:-i.rotation,pitch:0})}})}var Qc=/^(?:\d+\.?\d*|\.\d+)$/;function At(t){switch(typeof t){case"number":if(!Number.isFinite(t))throw new Error(`Could not parse position string ${t}`);return{type:"literal",value:t};case"string":try{let e=Jc(t);return new Xn(e).parseExpression()}catch(e){let r=e instanceof Error?e.message:String(e);throw new Error(`Could not parse position string ${t}: ${r}`)}default:throw new Error(`Could not parse position string ${t}`)}}function kn(t,e){switch(t.type){case"literal":return t.value;case"percentage":return Math.round(t.value*e);case"binary":let r=kn(t.left,e),n=kn(t.right,e);return t.operator==="+"?r+n:r-n;default:throw new Error("Unknown layout expression type")}}function Mt(t,e){return kn(t,e)}function Jc(t){let e=[],r=0;for(;r<t.length;){let n=t[r];if(/\s/.test(n)){r++;continue}if(n==="+"||n==="-"||n==="("||n===")"||n==="%"){e.push({type:"symbol",value:n}),r++;continue}if(Ao(n)||n==="."){let i=r,s=n===".";for(r++;r<t.length;){let a=t[r];if(Ao(a)){r++;continue}if(a==="."&&!s){s=!0,r++;continue}break}let o=t.slice(i,r);if(!Qc.test(o))throw new Error("Invalid number token");e.push({type:"number",value:parseFloat(o)});continue}if(Mo(n)){let i=r;for(;r<t.length&&Mo(t[r]);)r++;let s=t.slice(i,r).toLowerCase();e.push({type:"word",value:s});continue}throw new Error("Invalid token in position string")}return e}var Xn=class{constructor(e){this.index=0;this.tokens=e}parseExpression(){let e=this.parseBinaryExpression();if(this.index<this.tokens.length)throw new Error("Unexpected token at end of expression");return e}parseBinaryExpression(){let e=this.parseFactor(),r=this.peek();for(;Gc(r);){this.index++;let n=this.parseFactor();e={type:"binary",operator:r.value,left:e,right:n},r=this.peek()}return e}parseFactor(){let e=this.peek();if(!e)throw new Error("Unexpected end of expression");if(e.type==="symbol"&&e.value==="+")return this.index++,this.parseFactor();if(e.type==="symbol"&&e.value==="-"){this.index++;let r=this.parseFactor();return{type:"binary",operator:"-",left:{type:"literal",value:0},right:r}}if(e.type==="symbol"&&e.value==="("){this.index++;let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(e.type==="word"&&e.value==="calc"){if(this.index++,!this.consumeSymbol("("))throw new Error("Missing opening parenthesis after calc");let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(e.type==="number"){this.index++;let r=e.value,n=this.peek();return n&&n.type==="symbol"&&n.value==="%"?(this.index++,{type:"percentage",value:r/100}):n&&n.type==="word"&&n.value==="px"?(this.index++,{type:"literal",value:r}):{type:"literal",value:r}}throw new Error("Unexpected token in expression")}consumeSymbol(e){let r=this.peek();return r&&r.type==="symbol"&&r.value===e?(this.index++,!0):!1}peek(){return this.tokens[this.index]||null}};function Ao(t){return t>="0"&&t<="9"}function Mo(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"}function Gc(t){return Boolean(t&&t.type==="symbol"&&(t.value==="+"||t.value==="-"))}function re(t,e,r){if(t===e)return!0;if(!r||!t||!e)return!1;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(!re(t[n],e[n],r-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof t=="object"&&typeof e=="object"){let n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let s of n)if(!e.hasOwnProperty(s)||!re(t[s],e[s],r-1))return!1;return!0}return!1}function xo(t,e){let r={...t};for(let n in e)n!=="id"&&(Array.isArray(r[n])&&Array.isArray(e[n])?r[n]=tl(r[n],e[n]):r[n]=e[n]);return r}function tl(t,e){t=t.slice();for(let r=0;r<e.length;r++){let n=e[r];Number.isFinite(n)&&(t[r]=n)}return t}var De=class{constructor(e){let{id:r,x:n=0,y:i=0,width:s="100%",height:o="100%",padding:a=null}=e;this.id=r||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=At(n),this._y=At(i),this._width=At(s),this._height=At(o),this._padding=a&&{left:At(a.left||0),right:At(a.right||0),top:At(a.top||0),bottom:At(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.constructor===e.constructor&&re(this.props,e.props,2)}clone(e){let r=this.constructor;return new r({...this.props,...e})}makeViewport({width:e,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:e,height:r});if(!i.height||!i.width)return null;let s=this.getViewportType(n);return new s({...n,...this.props,...i})}getViewStateId(){let{viewState:e}=this.props;return typeof e=="string"?e:e?.id||this.id}filterViewState(e){return this.props.viewState&&typeof this.props.viewState=="object"?this.props.viewState.id?xo(e,this.props.viewState):this.props.viewState:e}getDimensions({width:e,height:r}){let n={x:Mt(this._x,e),y:Mt(this._y,r),width:Mt(this._width,e),height:Mt(this._height,r)};return this._padding&&(n.padding={left:Mt(this._padding.left,e),top:Mt(this._padding.top,r),right:Mt(this._padding.right,e),bottom:Mt(this._padding.bottom,r)}),n}get controller(){let e=this.props.controller;return e?e===!0?{type:this.ControllerType}:typeof e=="function"?{type:e}:{type:this.ControllerType,...e}:null}};be();function ne(t,e){if(!t)throw new Error(e||"Assertion failed")}function Wn(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return ne(Number.isFinite(e)&&e>=0),e}function yo(t){let{logLevel:e,message:r}=t;t.logLevel=Wn(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let i=typeof t.message;return ne(i==="string"||i==="object"),Object.assign(t,{args:n},t.opts)}var Xt=()=>{},kr=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,i,s={}){let o=yo({logLevel:r,message:n,args:this._buildArgs(r,n,i),opts:s});return this._createLogFunction(e,o,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return Xt;let i=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&i!==void 0){if(this._onceCache.has(i))return Xt;this._onceCache.add(i)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=Wn(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function el(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Xr=class{constructor(e,r,n="sessionStorage"){this.storage=el(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function Po(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function Co(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}be();var Wr;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Wr||(Wr={}));var rl=10;function Io(t){return typeof t!="string"?t:(t=t.toUpperCase(),Wr[t]||Wr.WHITE)}function No(t,e,r){return!Rt&&typeof t=="string"&&(e&&(t=`\x1B[${Io(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${Io(r)+rl}m${t}\x1B[49m`)),t}function wo(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),i=t;for(let s of n){let o=i[s];typeof o=="function"&&(e.find(a=>s===a)||(i[s]=o.bind(t)))}}be();function ie(){let t;if(Rt()&&tr.performance)t=tr?.performance?.now?.();else if("hrtime"in er){let e=er?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var se={debug:Rt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Hn={enabled:!0,level:0},xt=class extends kr{constructor({id:e}={id:""}){super({level:0}),this.VERSION=un,this._startTs=ie(),this._deltaTs=ie(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Xr(`__probe-${this.id}__`,{[this.id]:Hn}),this.timeStamp(`${this.id} started`),wo(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((ie()-this._startTs).toPrecision(10))}getDelta(){return Number((ie()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:se.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:se.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:se.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:se.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:se.debug||se.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||Xt,tag:il(r)}):Xt}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||Xt})}group(e,r,n={collapsed:!1}){let i=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:i})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||Xt})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;ne(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=ie();let i=nl(this.id,r.message,r);return n.bind(console,i,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(Hn),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...Hn};this._storage.setConfiguration({[this.id]:{...r,...e}})}};xt.VERSION=un;function nl(t,e,r){if(typeof e=="string"){let n=r.time?Co(Po(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=No(e,r.color,r.background)}return e}function il(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var Z_=new xt({id:"@probe.gl/log"});var sl=new xt({id:"deck"}),oe=sl;var eg=1/Math.PI*180,rg=1/180*Math.PI,ol={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...ol}};var X=globalThis.mathgl.config;function Ln(t,{precision:e=X.precision}={}){return t=al(t),`${parseFloat(t.toPrecision(e))}`}function yt(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function z(t,e,r){return ll(t,n=>Math.max(e,Math.min(r,n)))}function Fe(t,e,r){return yt(t)?t.map((n,i)=>Fe(n,e[i],r)):r*e+(1-r)*t}function Pt(t,e,r){let n=X.EPSILON;r&&(X.EPSILON=r);try{if(t===e)return!0;if(yt(t)&&yt(e)){if(t.length!==e.length)return!1;for(let i=0;i<t.length;++i)if(!Pt(t[i],e[i]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=X.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{X.EPSILON=n}}function al(t){return Math.round(t/X.EPSILON)*X.EPSILON}function cl(t){return t.clone?t.clone():new Array(t.length)}function ll(t,e,r){if(yt(t)){let n=t;r=r||cl(n);for(let i=0;i<r.length&&i<n.length;++i){let s=typeof t=="number"?t:t[i];r[i]=e(s,i,r)}return r}return e(t)}var ae=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:yt(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(X)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+Ln(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!Pt(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let i=0;i<this.ELEMENTS;++i){let s=e[i],o=typeof r=="number"?r:r[i];this[i]=s+n*(o-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(X.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function hl(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function H(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function Hr(t,e,r=""){if(X.debug&&!hl(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function zn(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var Lr=class extends ae{get x(){return this[0]}set x(e){this[0]=H(e)}get y(){return this[1]}set y(e){this[1]=H(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let i=this[n]-e[n];r+=i*i}return H(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return H(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return zn(e>=0&&e<this.ELEMENTS,"index is out of range"),H(this[e])}setComponent(e,r){return zn(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var J={};Re(J,{add:()=>_l,angle:()=>Fl,ceil:()=>gl,clone:()=>fl,copy:()=>pl,create:()=>Oo,cross:()=>Pl,dist:()=>Ll,distance:()=>vo,div:()=>Hl,divide:()=>Bo,dot:()=>yl,equals:()=>Vl,exactEquals:()=>Ul,floor:()=>Tl,forEach:()=>Kl,fromValues:()=>dl,inverse:()=>Ml,len:()=>kl,length:()=>Vo,lerp:()=>Cl,max:()=>El,min:()=>ml,mul:()=>Wl,multiply:()=>Fo,negate:()=>Al,normalize:()=>xl,random:()=>Il,rotate:()=>Dl,round:()=>Rl,scale:()=>bl,scaleAndAdd:()=>Sl,set:()=>ul,sqrDist:()=>zl,sqrLen:()=>Yl,squaredDistance:()=>Uo,squaredLength:()=>ko,str:()=>vl,sub:()=>Xl,subtract:()=>Do,transformMat2:()=>Nl,transformMat2d:()=>wl,transformMat3:()=>Ol,transformMat4:()=>Yn,zero:()=>Bl});var U=typeof Float32Array<"u"?Float32Array:Array,mt=Math.random;function Q(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var pg=Math.PI/180;function Oo(){let t=new U(2);return U!=Float32Array&&(t[0]=0,t[1]=0),t}function fl(t){let e=new U(2);return e[0]=t[0],e[1]=t[1],e}function dl(t,e){let r=new U(2);return r[0]=t,r[1]=e,r}function pl(t,e){return t[0]=e[0],t[1]=e[1],t}function ul(t,e,r){return t[0]=e,t[1]=r,t}function _l(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Do(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Fo(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Bo(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function gl(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Tl(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function ml(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function El(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Rl(t,e){return t[0]=Q(e[0]),t[1]=Q(e[1]),t}function bl(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Sl(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function vo(t,e){let r=e[0]-t[0],n=e[1]-t[1];return Math.sqrt(r*r+n*n)}function Uo(t,e){let r=e[0]-t[0],n=e[1]-t[1];return r*r+n*n}function Vo(t){let e=t[0],r=t[1];return Math.sqrt(e*e+r*r)}function ko(t){let e=t[0],r=t[1];return e*e+r*r}function Al(t,e){return t[0]=-e[0],t[1]=-e[1],t}function Ml(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function xl(t,e){let r=e[0],n=e[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function yl(t,e){return t[0]*e[0]+t[1]*e[1]}function Pl(t,e,r){let n=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=n,t}function Cl(t,e,r,n){let i=e[0],s=e[1];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t}function Il(t,e){e=e===void 0?1:e;let r=mt()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function Nl(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i,t[1]=r[1]*n+r[3]*i,t}function wl(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i+r[4],t[1]=r[1]*n+r[3]*i+r[5],t}function Ol(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[3]*i+r[6],t[1]=r[1]*n+r[4]*i+r[7],t}function Yn(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[4]*i+r[12],t[1]=r[1]*n+r[5]*i+r[13],t}function Dl(t,e,r,n){let i=e[0]-r[0],s=e[1]-r[1],o=Math.sin(n),a=Math.cos(n);return t[0]=i*a-s*o+r[0],t[1]=i*o+s*a+r[1],t}function Fl(t,e){let r=t[0],n=t[1],i=e[0],s=e[1],o=Math.sqrt((r*r+n*n)*(i*i+s*s)),a=o&&(r*i+n*s)/o;return Math.acos(Math.min(Math.max(a,-1),1))}function Bl(t){return t[0]=0,t[1]=0,t}function vl(t){return`vec2(${t[0]}, ${t[1]})`}function Ul(t,e){return t[0]===e[0]&&t[1]===e[1]}function Vl(t,e){let r=t[0],n=t[1],i=e[0],s=e[1];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-s)<=1e-6*Math.max(1,Math.abs(n),Math.abs(s))}var kl=Vo,Xl=Do,Wl=Fo,Hl=Bo,Ll=vo,zl=Uo,Yl=ko,Kl=function(){let t=Oo();return function(e,r,n,i,s,o){let a,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,o),e[a]=t[0],e[a+1]=t[1];return e}}();function Xo(t,e,r){let n=e[0],i=e[1],s=r[3]*n+r[7]*i||1;return t[0]=(r[0]*n+r[4]*i)/s,t[1]=(r[1]*n+r[5]*i)/s,t}function Yr(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[3]*n+r[7]*i+r[11]*s||1;return t[0]=(r[0]*n+r[4]*i+r[8]*s)/o,t[1]=(r[1]*n+r[5]*i+r[9]*s)/o,t[2]=(r[2]*n+r[6]*i+r[10]*s)/o,t}function Wo(t,e,r){let n=e[0],i=e[1];return t[0]=r[0]*n+r[2]*i,t[1]=r[1]*n+r[3]*i,t[2]=e[2],t}var G={};Re(G,{add:()=>Ql,angle:()=>Gn,bezier:()=>fh,ceil:()=>Jl,clone:()=>$l,copy:()=>Zl,create:()=>Ho,cross:()=>$n,dist:()=>Rh,distance:()=>$o,div:()=>Eh,divide:()=>Ko,dot:()=>Kn,equals:()=>gh,exactEquals:()=>_h,floor:()=>Gl,forEach:()=>Mh,fromValues:()=>jl,hermite:()=>hh,inverse:()=>oh,len:()=>Sh,length:()=>Lo,lerp:()=>ch,max:()=>eh,min:()=>th,mul:()=>mh,multiply:()=>Yo,negate:()=>sh,normalize:()=>ah,random:()=>dh,rotateX:()=>qn,rotateY:()=>Qn,rotateZ:()=>Jn,round:()=>rh,scale:()=>nh,scaleAndAdd:()=>ih,set:()=>ql,slerp:()=>lh,sqrDist:()=>bh,sqrLen:()=>Ah,squaredDistance:()=>jo,squaredLength:()=>Zo,str:()=>uh,sub:()=>Th,subtract:()=>zo,transformMat3:()=>jn,transformMat4:()=>Be,transformQuat:()=>Zn,zero:()=>ph});function Ho(){let t=new U(3);return U!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function $l(t){let e=new U(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Lo(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function jl(t,e,r){let n=new U(3);return n[0]=t,n[1]=e,n[2]=r,n}function Zl(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function ql(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function Ql(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function zo(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function Yo(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function Ko(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function Jl(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function Gl(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function th(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function eh(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function rh(t,e){return t[0]=Q(e[0]),t[1]=Q(e[1]),t[2]=Q(e[2]),t}function nh(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function ih(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function $o(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return Math.sqrt(r*r+n*n+i*i)}function jo(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2];return r*r+n*n+i*i}function Zo(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function sh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function oh(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function ah(t,e){let r=e[0],n=e[1],i=e[2],s=r*r+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function Kn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function $n(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[0],a=r[1],c=r[2];return t[0]=i*c-s*a,t[1]=s*o-n*c,t[2]=n*a-i*o,t}function ch(t,e,r,n){let i=e[0],s=e[1],o=e[2];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t[2]=o+n*(r[2]-o),t}function lh(t,e,r,n){let i=Math.acos(Math.min(Math.max(Kn(e,r),-1),1)),s=Math.sin(i),o=Math.sin((1-n)*i)/s,a=Math.sin(n*i)/s;return t[0]=o*e[0]+a*r[0],t[1]=o*e[1]+a*r[1],t[2]=o*e[2]+a*r[2],t}function hh(t,e,r,n,i,s){let o=s*s,a=o*(2*s-3)+1,c=o*(s-2)+s,l=o*(s-1),h=o*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+i[0]*h,t[1]=e[1]*a+r[1]*c+n[1]*l+i[1]*h,t[2]=e[2]*a+r[2]*c+n[2]*l+i[2]*h,t}function fh(t,e,r,n,i,s){let o=1-s,a=o*o,c=s*s,l=a*o,h=3*s*a,f=3*c*o,d=c*s;return t[0]=e[0]*l+r[0]*h+n[0]*f+i[0]*d,t[1]=e[1]*l+r[1]*h+n[1]*f+i[1]*d,t[2]=e[2]*l+r[2]*h+n[2]*f+i[2]*d,t}function dh(t,e){e=e===void 0?1:e;let r=mt()*2*Math.PI,n=mt()*2-1,i=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=n*e,t}function Be(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[3]*n+r[7]*i+r[11]*s+r[15];return o=o||1,t[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/o,t[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/o,t[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/o,t}function jn(t,e,r){let n=e[0],i=e[1],s=e[2];return t[0]=n*r[0]+i*r[3]+s*r[6],t[1]=n*r[1]+i*r[4]+s*r[7],t[2]=n*r[2]+i*r[5]+s*r[8],t}function Zn(t,e,r){let n=r[0],i=r[1],s=r[2],o=r[3],a=e[0],c=e[1],l=e[2],h=i*l-s*c,f=s*a-n*l,d=n*c-i*a,p=i*d-s*f,_=s*h-n*d,g=n*f-i*h,u=o*2;return h*=u,f*=u,d*=u,p*=2,_*=2,g*=2,t[0]=a+h+p,t[1]=c+f+_,t[2]=l+d+g,t}function qn(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Qn(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Jn(t,e,r,n){let i=[],s=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Gn(t,e){let r=t[0],n=t[1],i=t[2],s=e[0],o=e[1],a=e[2],c=Math.sqrt((r*r+n*n+i*i)*(s*s+o*o+a*a)),l=c&&Kn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function ph(t){return t[0]=0,t[1]=0,t[2]=0,t}function uh(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function _h(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function gh(t,e){let r=t[0],n=t[1],i=t[2],s=e[0],o=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-a)<=1e-6*Math.max(1,Math.abs(i),Math.abs(a))}var Th=zo,mh=Yo,Eh=Ko,Rh=$o,bh=jo,Sh=Lo,Ah=Zo,Mh=function(){let t=Ho();return function(e,r,n,i,s,o){let a,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}}();var ti=[0,0,0],Kr,ct=class extends Lr{static get ZERO(){return Kr||(Kr=new ct(0,0,0),Object.freeze(Kr)),Kr}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&yt(e)?this.copy(e):(X.debug&&(H(e),H(r),H(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return X.debug&&(H(e.x),H(e.y),H(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=H(e)}angle(e){return Gn(this,e)}cross(e){return $n(this,this,e),this.check()}rotateX({radians:e,origin:r=ti}){return qn(this,this,r,e),this.check()}rotateY({radians:e,origin:r=ti}){return Qn(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=ti}){return Jn(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Be(this,this,e),this.check()}transformAsVector(e){return Yr(this,this,e),this.check()}transformByMatrix3(e){return jn(this,this,e),this.check()}transformByMatrix2(e){return Wo(this,this,e),this.check()}transformByQuaternion(e){return Zn(this,this,e),this.check()}};var $r=class extends ae{toString(){let e="[";if(X.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=H(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let i=0;i<this.RANK;++i)r[i]=this[n+i];return r}setColumn(e,r){let n=e*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=r[i];return this}};var W={};Re(W,{add:()=>Zh,adjoint:()=>Nh,clone:()=>yh,copy:()=>Ph,create:()=>xh,decompose:()=>Xh,determinant:()=>ni,equals:()=>Gh,exactEquals:()=>Jh,frob:()=>jh,fromQuat:()=>hi,fromQuat2:()=>Uh,fromRotation:()=>Dh,fromRotationTranslation:()=>Qo,fromRotationTranslationScale:()=>Wh,fromRotationTranslationScaleOrigin:()=>Hh,fromScaling:()=>Oh,fromTranslation:()=>wh,fromValues:()=>Ch,fromXRotation:()=>Fh,fromYRotation:()=>Bh,fromZRotation:()=>vh,frustum:()=>fi,getRotation:()=>kh,getScaling:()=>Jo,getTranslation:()=>Vh,identity:()=>qo,invert:()=>ri,lookAt:()=>ui,mul:()=>tf,multiply:()=>ve,multiplyScalar:()=>qh,multiplyScalarAndAdd:()=>Qh,ortho:()=>pi,orthoNO:()=>ta,orthoZO:()=>Yh,perspective:()=>di,perspectiveFromFieldOfView:()=>zh,perspectiveNO:()=>Go,perspectiveZO:()=>Lh,rotate:()=>oi,rotateX:()=>ai,rotateY:()=>ci,rotateZ:()=>li,scale:()=>si,set:()=>Ih,str:()=>$h,sub:()=>ef,subtract:()=>ea,targetTo:()=>Kh,translate:()=>ii,transpose:()=>ei});function xh(){let t=new U(16);return U!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function yh(t){let e=new U(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Ph(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function Ch(t,e,r,n,i,s,o,a,c,l,h,f,d,p,_,g){let u=new U(16);return u[0]=t,u[1]=e,u[2]=r,u[3]=n,u[4]=i,u[5]=s,u[6]=o,u[7]=a,u[8]=c,u[9]=l,u[10]=h,u[11]=f,u[12]=d,u[13]=p,u[14]=_,u[15]=g,u}function Ih(t,e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=c,t[8]=l,t[9]=h,t[10]=f,t[11]=d,t[12]=p,t[13]=_,t[14]=g,t[15]=u,t}function qo(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ei(t,e){if(t===e){let r=e[1],n=e[2],i=e[3],s=e[6],o=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=i,t[13]=o,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function ri(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],d=e[10],p=e[11],_=e[12],g=e[13],u=e[14],T=e[15],b=r*a-n*o,E=r*c-i*o,R=r*l-s*o,S=n*c-i*a,M=n*l-s*a,m=i*l-s*c,A=h*g-f*_,y=h*u-d*_,x=h*T-p*_,C=f*u-d*g,I=f*T-p*g,w=d*T-p*u,N=b*w-E*I+R*C+S*x-M*y+m*A;return N?(N=1/N,t[0]=(a*w-c*I+l*C)*N,t[1]=(i*I-n*w-s*C)*N,t[2]=(g*m-u*M+T*S)*N,t[3]=(d*M-f*m-p*S)*N,t[4]=(c*x-o*w-l*y)*N,t[5]=(r*w-i*x+s*y)*N,t[6]=(u*R-_*m-T*E)*N,t[7]=(h*m-d*R+p*E)*N,t[8]=(o*I-a*x+l*A)*N,t[9]=(n*x-r*I-s*A)*N,t[10]=(_*M-g*R+T*b)*N,t[11]=(f*R-h*M-p*b)*N,t[12]=(a*y-o*C-c*A)*N,t[13]=(r*C-n*y+i*A)*N,t[14]=(g*E-_*S-u*b)*N,t[15]=(h*S-f*E+d*b)*N,t):null}function Nh(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],f=e[9],d=e[10],p=e[11],_=e[12],g=e[13],u=e[14],T=e[15],b=r*a-n*o,E=r*c-i*o,R=r*l-s*o,S=n*c-i*a,M=n*l-s*a,m=i*l-s*c,A=h*g-f*_,y=h*u-d*_,x=h*T-p*_,C=f*u-d*g,I=f*T-p*g,w=d*T-p*u;return t[0]=a*w-c*I+l*C,t[1]=i*I-n*w-s*C,t[2]=g*m-u*M+T*S,t[3]=d*M-f*m-p*S,t[4]=c*x-o*w-l*y,t[5]=r*w-i*x+s*y,t[6]=u*R-_*m-T*E,t[7]=h*m-d*R+p*E,t[8]=o*I-a*x+l*A,t[9]=n*x-r*I-s*A,t[10]=_*M-g*R+T*b,t[11]=f*R-h*M-p*b,t[12]=a*y-o*C-c*A,t[13]=r*C-n*y+i*A,t[14]=g*E-_*S-u*b,t[15]=h*S-f*E+d*b,t}function ni(t){let e=t[0],r=t[1],n=t[2],i=t[3],s=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],f=t[10],d=t[11],p=t[12],_=t[13],g=t[14],u=t[15],T=e*o-r*s,b=e*a-n*s,E=r*a-n*o,R=l*_-h*p,S=l*g-f*p,M=h*g-f*_,m=e*M-r*S+n*R,A=s*M-o*S+a*R,y=l*E-h*b+f*T,x=p*E-_*b+g*T;return c*m-i*A+u*y-d*x}function ve(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=e[8],d=e[9],p=e[10],_=e[11],g=e[12],u=e[13],T=e[14],b=e[15],E=r[0],R=r[1],S=r[2],M=r[3];return t[0]=E*n+R*a+S*f+M*g,t[1]=E*i+R*c+S*d+M*u,t[2]=E*s+R*l+S*p+M*T,t[3]=E*o+R*h+S*_+M*b,E=r[4],R=r[5],S=r[6],M=r[7],t[4]=E*n+R*a+S*f+M*g,t[5]=E*i+R*c+S*d+M*u,t[6]=E*s+R*l+S*p+M*T,t[7]=E*o+R*h+S*_+M*b,E=r[8],R=r[9],S=r[10],M=r[11],t[8]=E*n+R*a+S*f+M*g,t[9]=E*i+R*c+S*d+M*u,t[10]=E*s+R*l+S*p+M*T,t[11]=E*o+R*h+S*_+M*b,E=r[12],R=r[13],S=r[14],M=r[15],t[12]=E*n+R*a+S*f+M*g,t[13]=E*i+R*c+S*d+M*u,t[14]=E*s+R*l+S*p+M*T,t[15]=E*o+R*h+S*_+M*b,t}function ii(t,e,r){let n=r[0],i=r[1],s=r[2],o,a,c,l,h,f,d,p,_,g,u,T;return e===t?(t[12]=e[0]*n+e[4]*i+e[8]*s+e[12],t[13]=e[1]*n+e[5]*i+e[9]*s+e[13],t[14]=e[2]*n+e[6]*i+e[10]*s+e[14],t[15]=e[3]*n+e[7]*i+e[11]*s+e[15]):(o=e[0],a=e[1],c=e[2],l=e[3],h=e[4],f=e[5],d=e[6],p=e[7],_=e[8],g=e[9],u=e[10],T=e[11],t[0]=o,t[1]=a,t[2]=c,t[3]=l,t[4]=h,t[5]=f,t[6]=d,t[7]=p,t[8]=_,t[9]=g,t[10]=u,t[11]=T,t[12]=o*n+h*i+_*s+e[12],t[13]=a*n+f*i+g*s+e[13],t[14]=c*n+d*i+u*s+e[14],t[15]=l*n+p*i+T*s+e[15]),t}function si(t,e,r){let n=r[0],i=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*i,t[5]=e[5]*i,t[6]=e[6]*i,t[7]=e[7]*i,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function oi(t,e,r,n){let i=n[0],s=n[1],o=n[2],a=Math.sqrt(i*i+s*s+o*o),c,l,h,f,d,p,_,g,u,T,b,E,R,S,M,m,A,y,x,C,I,w,N,B;return a<1e-6?null:(a=1/a,i*=a,s*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,f=e[0],d=e[1],p=e[2],_=e[3],g=e[4],u=e[5],T=e[6],b=e[7],E=e[8],R=e[9],S=e[10],M=e[11],m=i*i*h+c,A=s*i*h+o*l,y=o*i*h-s*l,x=i*s*h-o*l,C=s*s*h+c,I=o*s*h+i*l,w=i*o*h+s*l,N=s*o*h-i*l,B=o*o*h+c,t[0]=f*m+g*A+E*y,t[1]=d*m+u*A+R*y,t[2]=p*m+T*A+S*y,t[3]=_*m+b*A+M*y,t[4]=f*x+g*C+E*I,t[5]=d*x+u*C+R*I,t[6]=p*x+T*C+S*I,t[7]=_*x+b*C+M*I,t[8]=f*w+g*N+E*B,t[9]=d*w+u*N+R*B,t[10]=p*w+T*N+S*B,t[11]=_*w+b*N+M*B,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function ai(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],f=e[10],d=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*i+l*n,t[5]=o*i+h*n,t[6]=a*i+f*n,t[7]=c*i+d*n,t[8]=l*i-s*n,t[9]=h*i-o*n,t[10]=f*i-a*n,t[11]=d*i-c*n,t}function ci(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[0],o=e[1],a=e[2],c=e[3],l=e[8],h=e[9],f=e[10],d=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i-l*n,t[1]=o*i-h*n,t[2]=a*i-f*n,t[3]=c*i-d*n,t[8]=s*n+l*i,t[9]=o*n+h*i,t[10]=a*n+f*i,t[11]=c*n+d*i,t}function li(t,e,r){let n=Math.sin(r),i=Math.cos(r),s=e[0],o=e[1],a=e[2],c=e[3],l=e[4],h=e[5],f=e[6],d=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*i+l*n,t[1]=o*i+h*n,t[2]=a*i+f*n,t[3]=c*i+d*n,t[4]=l*i-s*n,t[5]=h*i-o*n,t[6]=f*i-a*n,t[7]=d*i-c*n,t}function wh(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function Oh(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Dh(t,e,r){let n=r[0],i=r[1],s=r[2],o=Math.sqrt(n*n+i*i+s*s),a,c,l;return o<1e-6?null:(o=1/o,n*=o,i*=o,s*=o,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=i*n*l+s*c,t[2]=s*n*l-i*c,t[3]=0,t[4]=n*i*l-s*c,t[5]=i*i*l+a,t[6]=s*i*l+n*c,t[7]=0,t[8]=n*s*l+i*c,t[9]=i*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function Fh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Bh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function vh(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Qo(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3],a=n+n,c=i+i,l=s+s,h=n*a,f=n*c,d=n*l,p=i*c,_=i*l,g=s*l,u=o*a,T=o*c,b=o*l;return t[0]=1-(p+g),t[1]=f+b,t[2]=d-T,t[3]=0,t[4]=f-b,t[5]=1-(h+g),t[6]=_+u,t[7]=0,t[8]=d+T,t[9]=_-u,t[10]=1-(h+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function Uh(t,e){let r=new U(3),n=-e[0],i=-e[1],s=-e[2],o=e[3],a=e[4],c=e[5],l=e[6],h=e[7],f=n*n+i*i+s*s+o*o;return f>0?(r[0]=(a*o+h*n+c*s-l*i)*2/f,r[1]=(c*o+h*i+l*n-a*s)*2/f,r[2]=(l*o+h*s+a*i-c*n)*2/f):(r[0]=(a*o+h*n+c*s-l*i)*2,r[1]=(c*o+h*i+l*n-a*s)*2,r[2]=(l*o+h*s+a*i-c*n)*2),Qo(t,e,r),t}function Vh(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function Jo(t,e){let r=e[0],n=e[1],i=e[2],s=e[4],o=e[5],a=e[6],c=e[8],l=e[9],h=e[10];return t[0]=Math.sqrt(r*r+n*n+i*i),t[1]=Math.sqrt(s*s+o*o+a*a),t[2]=Math.sqrt(c*c+l*l+h*h),t}function kh(t,e){let r=new U(3);Jo(r,e);let n=1/r[0],i=1/r[1],s=1/r[2],o=e[0]*n,a=e[1]*i,c=e[2]*s,l=e[4]*n,h=e[5]*i,f=e[6]*s,d=e[8]*n,p=e[9]*i,_=e[10]*s,g=o+h+_,u=0;return g>0?(u=Math.sqrt(g+1)*2,t[3]=.25*u,t[0]=(f-p)/u,t[1]=(d-c)/u,t[2]=(a-l)/u):o>h&&o>_?(u=Math.sqrt(1+o-h-_)*2,t[3]=(f-p)/u,t[0]=.25*u,t[1]=(a+l)/u,t[2]=(d+c)/u):h>_?(u=Math.sqrt(1+h-o-_)*2,t[3]=(d-c)/u,t[0]=(a+l)/u,t[1]=.25*u,t[2]=(f+p)/u):(u=Math.sqrt(1+_-o-h)*2,t[3]=(a-l)/u,t[0]=(d+c)/u,t[1]=(f+p)/u,t[2]=.25*u),t}function Xh(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let i=n[0],s=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],f=n[9],d=n[10];r[0]=Math.sqrt(i*i+s*s+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+f*f+d*d);let p=1/r[0],_=1/r[1],g=1/r[2],u=i*p,T=s*_,b=o*g,E=a*p,R=c*_,S=l*g,M=h*p,m=f*_,A=d*g,y=u+R+A,x=0;return y>0?(x=Math.sqrt(y+1)*2,t[3]=.25*x,t[0]=(S-m)/x,t[1]=(M-b)/x,t[2]=(T-E)/x):u>R&&u>A?(x=Math.sqrt(1+u-R-A)*2,t[3]=(S-m)/x,t[0]=.25*x,t[1]=(T+E)/x,t[2]=(M+b)/x):R>A?(x=Math.sqrt(1+R-u-A)*2,t[3]=(M-b)/x,t[0]=(T+E)/x,t[1]=.25*x,t[2]=(S+m)/x):(x=Math.sqrt(1+A-u-R)*2,t[3]=(T-E)/x,t[0]=(M+b)/x,t[1]=(S+m)/x,t[2]=.25*x),t}function Wh(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=e[3],c=i+i,l=s+s,h=o+o,f=i*c,d=i*l,p=i*h,_=s*l,g=s*h,u=o*h,T=a*c,b=a*l,E=a*h,R=n[0],S=n[1],M=n[2];return t[0]=(1-(_+u))*R,t[1]=(d+E)*R,t[2]=(p-b)*R,t[3]=0,t[4]=(d-E)*S,t[5]=(1-(f+u))*S,t[6]=(g+T)*S,t[7]=0,t[8]=(p+b)*M,t[9]=(g-T)*M,t[10]=(1-(f+_))*M,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function Hh(t,e,r,n,i){let s=e[0],o=e[1],a=e[2],c=e[3],l=s+s,h=o+o,f=a+a,d=s*l,p=s*h,_=s*f,g=o*h,u=o*f,T=a*f,b=c*l,E=c*h,R=c*f,S=n[0],M=n[1],m=n[2],A=i[0],y=i[1],x=i[2],C=(1-(g+T))*S,I=(p+R)*S,w=(_-E)*S,N=(p-R)*M,B=(1-(d+T))*M,dt=(u+b)*M,q=(_+E)*m,je=(u-b)*m,vi=(1-(d+g))*m;return t[0]=C,t[1]=I,t[2]=w,t[3]=0,t[4]=N,t[5]=B,t[6]=dt,t[7]=0,t[8]=q,t[9]=je,t[10]=vi,t[11]=0,t[12]=r[0]+A-(C*A+N*y+q*x),t[13]=r[1]+y-(I*A+B*y+je*x),t[14]=r[2]+x-(w*A+dt*y+vi*x),t[15]=1,t}function hi(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=r+r,a=n+n,c=i+i,l=r*o,h=n*o,f=n*a,d=i*o,p=i*a,_=i*c,g=s*o,u=s*a,T=s*c;return t[0]=1-f-_,t[1]=h+T,t[2]=d-u,t[3]=0,t[4]=h-T,t[5]=1-l-_,t[6]=p+g,t[7]=0,t[8]=d+u,t[9]=p-g,t[10]=1-l-f,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function fi(t,e,r,n,i,s,o){let a=1/(r-e),c=1/(i-n),l=1/(s-o);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(i+n)*c,t[10]=(o+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=o*s*2*l,t[15]=0,t}function Go(t,e,r,n,i){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0){let o=1/(n-i);t[10]=(i+n)*o,t[14]=2*i*n*o}else t[10]=-1,t[14]=-2*n;return t}var di=Go;function Lh(t,e,r,n,i){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,i!=null&&i!==1/0){let o=1/(n-i);t[10]=i*o,t[14]=i*n*o}else t[10]=-1,t[14]=-n;return t}function zh(t,e,r,n){let i=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),o=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(i+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((o-a)*c*.5),t[9]=(i-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function ta(t,e,r,n,i,s,o){let a=1/(e-r),c=1/(n-i),l=1/(s-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(i+n)*c,t[14]=(o+s)*l,t[15]=1,t}var pi=ta;function Yh(t,e,r,n,i,s,o){let a=1/(e-r),c=1/(n-i),l=1/(s-o);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(i+n)*c,t[14]=s*l,t[15]=1,t}function ui(t,e,r,n){let i,s,o,a,c,l,h,f,d,p,_=e[0],g=e[1],u=e[2],T=n[0],b=n[1],E=n[2],R=r[0],S=r[1],M=r[2];return Math.abs(_-R)<1e-6&&Math.abs(g-S)<1e-6&&Math.abs(u-M)<1e-6?qo(t):(f=_-R,d=g-S,p=u-M,i=1/Math.sqrt(f*f+d*d+p*p),f*=i,d*=i,p*=i,s=b*p-E*d,o=E*f-T*p,a=T*d-b*f,i=Math.sqrt(s*s+o*o+a*a),i?(i=1/i,s*=i,o*=i,a*=i):(s=0,o=0,a=0),c=d*a-p*o,l=p*s-f*a,h=f*o-d*s,i=Math.sqrt(c*c+l*l+h*h),i?(i=1/i,c*=i,l*=i,h*=i):(c=0,l=0,h=0),t[0]=s,t[1]=c,t[2]=f,t[3]=0,t[4]=o,t[5]=l,t[6]=d,t[7]=0,t[8]=a,t[9]=h,t[10]=p,t[11]=0,t[12]=-(s*_+o*g+a*u),t[13]=-(c*_+l*g+h*u),t[14]=-(f*_+d*g+p*u),t[15]=1,t)}function Kh(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=n[0],c=n[1],l=n[2],h=i-r[0],f=s-r[1],d=o-r[2],p=h*h+f*f+d*d;p>0&&(p=1/Math.sqrt(p),h*=p,f*=p,d*=p);let _=c*d-l*f,g=l*h-a*d,u=a*f-c*h;return p=_*_+g*g+u*u,p>0&&(p=1/Math.sqrt(p),_*=p,g*=p,u*=p),t[0]=_,t[1]=g,t[2]=u,t[3]=0,t[4]=f*u-d*g,t[5]=d*_-h*u,t[6]=h*g-f*_,t[7]=0,t[8]=h,t[9]=f,t[10]=d,t[11]=0,t[12]=i,t[13]=s,t[14]=o,t[15]=1,t}function $h(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function jh(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function Zh(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function ea(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function qh(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function Qh(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function Jh(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function Gh(t,e){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],f=t[9],d=t[10],p=t[11],_=t[12],g=t[13],u=t[14],T=t[15],b=e[0],E=e[1],R=e[2],S=e[3],M=e[4],m=e[5],A=e[6],y=e[7],x=e[8],C=e[9],I=e[10],w=e[11],N=e[12],B=e[13],dt=e[14],q=e[15];return Math.abs(r-b)<=1e-6*Math.max(1,Math.abs(r),Math.abs(b))&&Math.abs(n-E)<=1e-6*Math.max(1,Math.abs(n),Math.abs(E))&&Math.abs(i-R)<=1e-6*Math.max(1,Math.abs(i),Math.abs(R))&&Math.abs(s-S)<=1e-6*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(o-M)<=1e-6*Math.max(1,Math.abs(o),Math.abs(M))&&Math.abs(a-m)<=1e-6*Math.max(1,Math.abs(a),Math.abs(m))&&Math.abs(c-A)<=1e-6*Math.max(1,Math.abs(c),Math.abs(A))&&Math.abs(l-y)<=1e-6*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(h-x)<=1e-6*Math.max(1,Math.abs(h),Math.abs(x))&&Math.abs(f-C)<=1e-6*Math.max(1,Math.abs(f),Math.abs(C))&&Math.abs(d-I)<=1e-6*Math.max(1,Math.abs(d),Math.abs(I))&&Math.abs(p-w)<=1e-6*Math.max(1,Math.abs(p),Math.abs(w))&&Math.abs(_-N)<=1e-6*Math.max(1,Math.abs(_),Math.abs(N))&&Math.abs(g-B)<=1e-6*Math.max(1,Math.abs(g),Math.abs(B))&&Math.abs(u-dt)<=1e-6*Math.max(1,Math.abs(u),Math.abs(dt))&&Math.abs(T-q)<=1e-6*Math.max(1,Math.abs(T),Math.abs(q))}var tf=ve,ef=ea;var Ct={};Re(Ct,{add:()=>af,ceil:()=>cf,clone:()=>rf,copy:()=>sf,create:()=>ra,cross:()=>Ef,dist:()=>Nf,distance:()=>oa,div:()=>If,divide:()=>sa,dot:()=>mf,equals:()=>yf,exactEquals:()=>xf,floor:()=>lf,forEach:()=>Ff,fromValues:()=>nf,inverse:()=>gf,len:()=>Of,length:()=>ca,lerp:()=>Rf,max:()=>ff,min:()=>hf,mul:()=>Cf,multiply:()=>ia,negate:()=>_f,normalize:()=>Tf,random:()=>bf,round:()=>df,scale:()=>pf,scaleAndAdd:()=>uf,set:()=>of,sqrDist:()=>wf,sqrLen:()=>Df,squaredDistance:()=>aa,squaredLength:()=>la,str:()=>Mf,sub:()=>Pf,subtract:()=>na,transformMat4:()=>_i,transformQuat:()=>Sf,zero:()=>Af});function ra(){let t=new U(4);return U!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function rf(t){let e=new U(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function nf(t,e,r,n){let i=new U(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i}function sf(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function of(t,e,r,n,i){return t[0]=e,t[1]=r,t[2]=n,t[3]=i,t}function af(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function na(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function ia(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t[3]=e[3]*r[3],t}function sa(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t[3]=e[3]/r[3],t}function cf(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t[3]=Math.ceil(e[3]),t}function lf(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t[3]=Math.floor(e[3]),t}function hf(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t[3]=Math.min(e[3],r[3]),t}function ff(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t[3]=Math.max(e[3],r[3]),t}function df(t,e){return t[0]=Q(e[0]),t[1]=Q(e[1]),t[2]=Q(e[2]),t[3]=Q(e[3]),t}function pf(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function uf(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t}function oa(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],s=e[3]-t[3];return Math.sqrt(r*r+n*n+i*i+s*s)}function aa(t,e){let r=e[0]-t[0],n=e[1]-t[1],i=e[2]-t[2],s=e[3]-t[3];return r*r+n*n+i*i+s*s}function ca(t){let e=t[0],r=t[1],n=t[2],i=t[3];return Math.sqrt(e*e+r*r+n*n+i*i)}function la(t){let e=t[0],r=t[1],n=t[2],i=t[3];return e*e+r*r+n*n+i*i}function _f(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}function gf(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t[3]=1/e[3],t}function Tf(t,e){let r=e[0],n=e[1],i=e[2],s=e[3],o=r*r+n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),t[0]=r*o,t[1]=n*o,t[2]=i*o,t[3]=s*o,t}function mf(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Ef(t,e,r,n){let i=r[0]*n[1]-r[1]*n[0],s=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],a=r[1]*n[2]-r[2]*n[1],c=r[1]*n[3]-r[3]*n[1],l=r[2]*n[3]-r[3]*n[2],h=e[0],f=e[1],d=e[2],p=e[3];return t[0]=f*l-d*c+p*a,t[1]=-(h*l)+d*o-p*s,t[2]=h*c-f*o+p*i,t[3]=-(h*a)+f*s-d*i,t}function Rf(t,e,r,n){let i=e[0],s=e[1],o=e[2],a=e[3];return t[0]=i+n*(r[0]-i),t[1]=s+n*(r[1]-s),t[2]=o+n*(r[2]-o),t[3]=a+n*(r[3]-a),t}function bf(t,e){e=e===void 0?1:e;let r,n,i,s,o,a;do r=mt()*2-1,n=mt()*2-1,o=r*r+n*n;while(o>=1);do i=mt()*2-1,s=mt()*2-1,a=i*i+s*s;while(a>=1);let c=Math.sqrt((1-o)/a);return t[0]=e*r,t[1]=e*n,t[2]=e*i*c,t[3]=e*s*c,t}function _i(t,e,r){let n=e[0],i=e[1],s=e[2],o=e[3];return t[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*o,t[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*o,t[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*o,t[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*o,t}function Sf(t,e,r){let n=e[0],i=e[1],s=e[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*s-c*i,f=l*i+c*n-o*s,d=l*s+o*i-a*n,p=-o*n-a*i-c*s;return t[0]=h*l+p*-o+f*-c-d*-a,t[1]=f*l+p*-a+d*-o-h*-c,t[2]=d*l+p*-c+h*-a-f*-o,t[3]=e[3],t}function Af(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t}function Mf(t){return`vec4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]})`}function xf(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function yf(t,e){let r=t[0],n=t[1],i=t[2],s=t[3],o=e[0],a=e[1],c=e[2],l=e[3];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-c)<=1e-6*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(s-l)<=1e-6*Math.max(1,Math.abs(s),Math.abs(l))}var Pf=na,Cf=ia,If=sa,Nf=oa,wf=aa,Of=ca,Df=la,Ff=function(){let t=ra();return function(e,r,n,i,s,o){let a,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,o),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}}();var mi;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(mi||(mi={}));var Bf=45*Math.PI/180,vf=1,gi=.1,Ti=500,Uf=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),Y=class extends $r{static get IDENTITY(){return kf()}static get ZERO(){return Vf()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return mi}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return this[0]=e,this[1]=r,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=f,this[11]=d,this[12]=p,this[13]=_,this[14]=g,this[15]=u,this.check()}setRowMajor(e,r,n,i,s,o,a,c,l,h,f,d,p,_,g,u){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=o,this[6]=h,this[7]=_,this[8]=n,this[9]=a,this[10]=f,this[11]=g,this[12]=i,this[13]=c,this[14]=d,this[15]=u,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(Uf)}fromObject(e){return this.check()}fromQuaternion(e){return hi(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:i,top:s,near:o=gi,far:a=Ti}=e;return a===1/0?Xf(this,r,n,i,s,o):fi(this,r,n,i,s,o,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:i=[0,1,0]}=e;return ui(this,r,n,i),this.check()}ortho(e){let{left:r,right:n,bottom:i,top:s,near:o=gi,far:a=Ti}=e;return pi(this,r,n,i,s,o,a),this.check()}orthographic(e){let{fovy:r=Bf,aspect:n=vf,focalDistance:i=1,near:s=gi,far:o=Ti}=e;ha(r);let a=r/2,c=i*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:o})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:i=.1,far:s=500}=e;return ha(r),di(this,r,n,i,s),this.check()}determinant(){return ni(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=0,e[4]=this[4]*i,e[5]=this[5]*s,e[6]=this[6]*o,e[7]=0,e[8]=this[8]*i,e[9]=this[9]*s,e[10]=this[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=this[4]*i,e[4]=this[5]*s,e[5]=this[6]*o,e[6]=this[8]*i,e[7]=this[9]*s,e[8]=this[10]*o,e}transpose(){return ei(this,this),this.check()}invert(){return ri(this,this),this.check()}multiplyLeft(e){return ve(this,e,this),this.check()}multiplyRight(e){return ve(this,this,e),this.check()}rotateX(e){return ai(this,this,e),this.check()}rotateY(e){return ci(this,this,e),this.check()}rotateZ(e){return li(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return oi(this,this,e,r),this.check()}scale(e){return si(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return ii(this,this,e),this.check()}transform(e,r){return e.length===4?(r=_i(r||[-0,-0,-0,-0],e,this),Hr(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,i;switch(n){case 2:i=Yn(r||[-0,-0],e,this);break;case 3:i=Be(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Hr(i,e.length),i}transformAsVector(e,r){let n;switch(e.length){case 2:n=Xo(r||[-0,-0],e,this);break;case 3:n=Yr(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Hr(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},jr,Zr;function Vf(){return jr||(jr=new Y([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(jr)),jr}function kf(){return Zr||(Zr=new Y,Object.freeze(Zr)),Zr}function ha(t){if(t>Math.PI*2)throw Error("expected radians")}function Xf(t,e,r,n,i,s){let o=2*s/(r-e),a=2*s/(i-n),c=(r+e)/(r-e),l=(i+n)/(i-n),h=-1,f=-1,d=-2*s;return t[0]=o,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=h,t[11]=f,t[12]=0,t[13]=0,t[14]=d,t[15]=0,t}function le(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Ei(t,e){let r=t%e;return r<0?e+r:r}function da(t){return[t[12],t[13],t[14]]}function pa(t){return{left:ce(t[3]+t[0],t[7]+t[4],t[11]+t[8],t[15]+t[12]),right:ce(t[3]-t[0],t[7]-t[4],t[11]-t[8],t[15]-t[12]),bottom:ce(t[3]+t[1],t[7]+t[5],t[11]+t[9],t[15]+t[13]),top:ce(t[3]-t[1],t[7]-t[5],t[11]-t[9],t[15]-t[13]),near:ce(t[3]+t[2],t[7]+t[6],t[11]+t[10],t[15]+t[14]),far:ce(t[3]-t[2],t[7]-t[6],t[11]-t[10],t[15]-t[14])}}var fa=new ct;function ce(t,e,r,n){fa.set(t,e,r);let i=fa.len();return{distance:n/i,normal:new ct(-t/i,-e/i,-r/i)}}function Ri(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Bt(t,e){let r=Ct.transformMat4([],e,t);return Ct.scale(r,r,1/r[3]),r}function Ue(t,e,r){return t<e?e:t>r?r:t}function Wf(t){return Math.log(t)*Math.LOG2E}var Ve=Math.log2||Wf;function lt(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var ht=Math.PI,ua=ht/4,tt=ht/180,bi=180/ht,he=512,qr=4003e4,ft=85.051129,_a=1.5;function Si(t){return Ve(t)}function et(t){let[e,r]=t;lt(Number.isFinite(e)),lt(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*tt,i=r*tt,s=he*(n+ht)/(2*ht),o=he*(ht+Math.log(Math.tan(ua+i*.5)))/(2*ht);return[s,o]}function K(t){let[e,r]=t,n=e/he*(2*ht)-ht,i=2*(Math.atan(Math.exp(r/he*(2*ht)-ht))-ua);return[n*bi,i*bi]}function Ai(t){let{latitude:e}=t;lt(Number.isFinite(e));let r=Math.cos(e*tt);return Si(qr*r)-9}function ke(t){let e=Math.cos(t*tt);return he/qr/e}function fe(t){let{latitude:e,longitude:r,highPrecision:n=!1}=t;lt(Number.isFinite(e)&&Number.isFinite(r));let i=he,s=Math.cos(e*tt),o=i/360,a=o/s,c=i/qr/s,l={unitsPerMeter:[c,c,c],metersPerUnit:[1/c,1/c,1/c],unitsPerDegree:[o,a,c],degreesPerUnit:[1/o,1/a,1/c]};if(n){let h=tt*Math.tan(e*tt)/s,f=o*h/2,d=i/qr*h,p=d/a*c;l.unitsPerDegree2=[0,f,d],l.unitsPerMeter2=[p,0,p]}return l}function Mi(t,e){let[r,n,i]=t,[s,o,a]=e,{unitsPerMeter:c,unitsPerMeter2:l}=fe({longitude:r,latitude:n,highPrecision:!0}),h=et(t);h[0]+=s*(c[0]+l[0]*o),h[1]+=o*(c[1]+l[1]*o);let f=K(h),d=(i||0)+(a||0);return Number.isFinite(i)||Number.isFinite(a)?[f[0],f[1],d]:f}function Qr(t){let{height:e,pitch:r,bearing:n,altitude:i,scale:s,center:o}=t,a=Ri();W.translate(a,a,[0,0,-i]),W.rotateX(a,a,-r*tt),W.rotateZ(a,a,n*tt);let c=s/e;return W.scale(a,a,[c,c,c]),o&&W.translate(a,a,G.negate([],o)),a}function xi(t){let{width:e,height:r,altitude:n,pitch:i=0,offset:s,center:o,scale:a,nearZMultiplier:c=1,farZMultiplier:l=1}=t,{fovy:h=It(_a)}=t;n!==void 0&&(h=It(n));let f=h*tt,d=i*tt,p=Wt(h),_=p;o&&(_+=o[2]*a/Math.cos(d)/r);let g=f*(.5+(s?s[1]:0)/r),u=Math.sin(g)*_/Math.sin(Ue(Math.PI/2-d-g,.01,Math.PI-.01)),T=Math.sin(d)*u+_,b=_*10,E=Math.min(T*l,b);return{fov:f,aspect:e/r,focalDistance:p,near:c,far:E}}function It(t){return 2*Math.atan(.5/t)*bi}function Wt(t){return .5/Math.tan(.5*t*tt)}function Jr(t,e){let[r,n,i=0]=t;return lt(Number.isFinite(r)&&Number.isFinite(n)&&Number.isFinite(i)),Bt(e,[r,n,i,1])}function de(t,e,r=0){let[n,i,s]=t;if(lt(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return Bt(e,[n,i,s,1]);let o=Bt(e,[n,i,0,1]),a=Bt(e,[n,i,1,1]),c=o[2],l=a[2],h=c===l?0:((r||0)-c)/(l-c);return J.lerp([],o,a,h)}function Gr(t){let{width:e,height:r,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}=t,[[a,c],[l,h]]=n,f=Hf(t.padding),d=et([a,Ue(h,-ft,ft)]),p=et([l,Ue(c,-ft,ft)]),_=[Math.max(Math.abs(p[0]-d[0]),i),Math.max(Math.abs(p[1]-d[1]),i)],g=[e-f.left-f.right-Math.abs(o[0])*2,r-f.top-f.bottom-Math.abs(o[1])*2];lt(g[0]>0&&g[1]>0);let u=g[0]/_[0],T=g[1]/_[1],b=(f.right-f.left)/2/u,E=(f.top-f.bottom)/2/T,R=[(p[0]+d[0])/2+b,(p[1]+d[1])/2+E],S=K(R),M=Math.min(s,Ve(Math.abs(Math.min(u,T))));return lt(Number.isFinite(M)),{longitude:S[0],latitude:S[1],zoom:M}}function Hf(t=0){return typeof t=="number"?{top:t,bottom:t,left:t,right:t}:(lt(Number.isFinite(t.top)&&Number.isFinite(t.bottom)&&Number.isFinite(t.left)&&Number.isFinite(t.right)),t)}var ga=Math.PI/180;function tn(t,e=0){let{width:r,height:n,unproject:i}=t,s={targetZ:e},o=i([0,n],s),a=i([r,n],s),c,l,h=t.fovy?.5*t.fovy*ga:Math.atan(.5/t.altitude),f=(90-t.pitch)*ga;return h>f-.01?(c=Ta(t,0,e),l=Ta(t,r,e)):(c=i([0,0],s),l=i([r,0],s)),[o,a,l,c]}function Ta(t,e,r){let{pixelUnprojectionMatrix:n}=t,i=Bt(n,[e,0,1,1]),s=Bt(n,[e,t.height,1,1]),a=(r*t.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),c=J.lerp([],i,s,a),l=K(c);return l.push(r),l}var k;(function(t){t[t.Start=1]="Start",t[t.Move=2]="Move",t[t.End=4]="End",t[t.Cancel=8]="Cancel"})(k||(k={}));var Ht;(function(t){t[t.None=0]="None",t[t.Left=1]="Left",t[t.Right=2]="Right",t[t.Up=4]="Up",t[t.Down=8]="Down",t[t.Horizontal=3]="Horizontal",t[t.Vertical=12]="Vertical",t[t.All=15]="All"})(Ht||(Ht={}));var Z;(function(t){t[t.Possible=1]="Possible",t[t.Began=2]="Began",t[t.Changed=4]="Changed",t[t.Ended=8]="Ended",t[t.Recognized=8]="Recognized",t[t.Cancelled=16]="Cancelled",t[t.Failed=32]="Failed"})(Z||(Z={}));var t1={pointerdown:k.Start,pointermove:k.Move,pointerup:k.End,pointercancel:k.Cancel,pointerout:k.Cancel};var ya=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",M0=typeof window<"u"?window:global;var C0=ya.indexOf("firefox")!==-1;var Pa={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(Pa,"IDENTITY",{get:()=>(oe.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),Pa.CARTESIAN)});var pe={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0};var sd=Math.PI/180,od=le(),Ca=[0,0,0],ad={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};function cd({width:t,height:e,orthographic:r,fovyRadians:n,focalDistance:i,padding:s,near:o,far:a}){let c=t/e,l=r?new Y().orthographic({fovy:n,aspect:c,focalDistance:i,near:o,far:a}):new Y().perspective({fovy:n,aspect:c,near:o,far:a});if(s){let{left:h=0,right:f=0,top:d=0,bottom:p=0}=s,_=z((h+t-f)/2,0,t)-t/2,g=z((d+e-p)/2,0,e)-e/2;l[8]-=_*2/t,l[9]+=g*2/e}return l}var Ii=class{constructor(e={}){this._frustumPlanes={};this.id=e.id||this.constructor.displayName||"viewport",this.x=e.x||0,this.y=e.y||0,this.width=e.width||1,this.height=e.height||1,this.zoom=e.zoom||0,this.padding=e.padding,this.distanceScales=e.distanceScales||ad,this.focalDistance=e.focalDistance||1,this.position=e.position||Ca,this.modelMatrix=e.modelMatrix||null;let{longitude:r,latitude:n}=e;this.isGeospatial=Number.isFinite(n)&&Number.isFinite(r),this._initProps(e),this._initMatrices(e),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?pe.WEB_MERCATOR:pe.WEB_MERCATOR_AUTO_OFFSET:pe.IDENTITY}equals(e){return e instanceof Ii?this===e?!0:e.width===this.width&&e.height===this.height&&e.scale===this.scale&&Pt(e.projectionMatrix,this.projectionMatrix)&&Pt(e.viewMatrix,this.viewMatrix):!1}project(e,{topLeft:r=!0}={}){let n=this.projectPosition(e),i=Jr(n,this.pixelProjectionMatrix),[s,o]=i,a=r?o:this.height-o;return e.length===2?[s,a]:[s,a,i[2]]}unproject(e,{topLeft:r=!0,targetZ:n}={}){let[i,s,o]=e,a=r?s:this.height-s,c=n&&n*this.distanceScales.unitsPerMeter[2],l=de([i,a,o],this.pixelUnprojectionMatrix,c),[h,f,d]=this.unprojectPosition(l);return Number.isFinite(o)?[h,f,d]:Number.isFinite(n)?[h,f,n]:[h,f]}projectPosition(e){let[r,n]=this.projectFlat(e),i=(e[2]||0)*this.distanceScales.unitsPerMeter[2];return[r,n,i]}unprojectPosition(e){let[r,n]=this.unprojectFlat(e),i=(e[2]||0)*this.distanceScales.metersPerUnit[2];return[r,n,i]}projectFlat(e){if(this.isGeospatial){let r=et(e);return r[1]=z(r[1],-318,830),r}return e}unprojectFlat(e){return this.isGeospatial?K(e):e}getBounds(e={}){let r={targetZ:e.z||0},n=this.unproject([0,0],r),i=this.unproject([this.width,0],r),s=this.unproject([0,this.height],r),o=this.unproject([this.width,this.height],r);return[Math.min(n[0],i[0],s[0],o[0]),Math.min(n[1],i[1],s[1],o[1]),Math.max(n[0],i[0],s[0],o[0]),Math.max(n[1],i[1],s[1],o[1])]}getDistanceScales(e){return e&&this.isGeospatial?fe({longitude:e[0],latitude:e[1],highPrecision:!0}):this.distanceScales}containsPixel({x:e,y:r,width:n=1,height:i=1}){return e<this.x+this.width&&this.x<e+n&&r<this.y+this.height&&this.y<r+i}getFrustumPlanes(){return this._frustumPlanes.near?this._frustumPlanes:(Object.assign(this._frustumPlanes,pa(this.viewProjectionMatrix)),this._frustumPlanes)}panByPosition(e,r,n){return null}_initProps(e){let r=e.longitude,n=e.latitude;this.isGeospatial&&(Number.isFinite(e.zoom)||(this.zoom=Ai({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=e.distanceScales||fe({latitude:n,longitude:r}));let i=Math.pow(2,this.zoom);this.scale=i;let{position:s,modelMatrix:o}=e,a=Ca;if(s&&(a=o?new Y(o).transformAsVector(s,[]):s),this.isGeospatial){let c=this.projectPosition([r,n,0]);this.center=new ct(a).scale(this.distanceScales.unitsPerMeter).add(c)}else this.center=this.projectPosition(a)}_initMatrices(e){let{viewMatrix:r=od,projectionMatrix:n=null,orthographic:i=!1,fovyRadians:s,fovy:o=75,near:a=.1,far:c=1e3,padding:l=null,focalDistance:h=1}=e;this.viewMatrixUncentered=r,this.viewMatrix=new Y().multiplyRight(r).translate(new ct(this.center).negate()),this.projectionMatrix=n||cd({width:this.width,height:this.height,orthographic:i,fovyRadians:s||o*sd,focalDistance:h,padding:l,near:a,far:c});let f=le();W.multiply(f,f,this.projectionMatrix),W.multiply(f,f,this.viewMatrix),this.viewProjectionMatrix=f,this.viewMatrixInverse=W.invert([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=da(this.viewMatrixInverse);let d=le(),p=le();W.scale(d,d,[this.width/2,-this.height/2,1]),W.translate(d,d,[1,-1,0]),W.multiply(p,d,this.viewProjectionMatrix),this.pixelProjectionMatrix=p,this.pixelUnprojectionMatrix=W.invert(le(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||oe.warn("Pixel project matrix not invertible")()}},vt=Ii;vt.displayName="Viewport";var en=class extends vt{constructor(r={}){let{latitude:n=0,longitude:i=0,zoom:s=0,pitch:o=0,bearing:a=0,nearZMultiplier:c=.1,farZMultiplier:l=1.01,nearZ:h,farZ:f,orthographic:d=!1,projectionMatrix:p,repeat:_=!1,worldOffset:g=0,position:u,padding:T,legacyMeterSizes:b=!1}=r,{width:E,height:R,altitude:S=1.5}=r,M=Math.pow(2,s);E=E||1,R=R||1;let m,A=null;if(p)S=p[5]/2,m=It(S);else{r.fovy?(m=r.fovy,S=Wt(m)):m=It(S);let x;if(T){let{top:C=0,bottom:I=0}=T;x=[0,z((C+R-I)/2,0,R)-R/2]}A=xi({width:E,height:R,scale:M,center:u&&[0,0,u[2]*ke(n)],offset:x,pitch:o,fovy:m,nearZMultiplier:c,farZMultiplier:l}),Number.isFinite(h)&&(A.near=h),Number.isFinite(f)&&(A.far=f)}let y=Qr({height:R,pitch:o,bearing:a,scale:M,altitude:S});g&&(y=new Y().translate([512*g,0,0]).multiplyLeft(y));super({...r,width:E,height:R,viewMatrix:y,longitude:i,latitude:n,zoom:s,...A,fovy:m,focalDistance:S});this.latitude=n,this.longitude=i,this.zoom=s,this.pitch=o,this.bearing=a,this.altitude=S,this.fovy=m,this.orthographic=d,this._subViewports=_?[]:null,this._pseudoMeters=b,Object.freeze(this)}get subViewports(){if(this._subViewports&&!this._subViewports.length){let r=this.getBounds(),n=Math.floor((r[0]+180)/360),i=Math.ceil((r[2]-180)/360);for(let s=n;s<=i;s++){let o=s?new en({...this,worldOffset:s}):this;this._subViewports.push(o)}}return this._subViewports}projectPosition(r){if(this._pseudoMeters)return super.projectPosition(r);let[n,i]=this.projectFlat(r),s=(r[2]||0)*ke(r[1]);return[n,i,s]}unprojectPosition(r){if(this._pseudoMeters)return super.unprojectPosition(r);let[n,i]=this.unprojectFlat(r),s=(r[2]||0)/ke(i);return[n,i,s]}addMetersToLngLat(r,n){return Mi(r,n)}panByPosition(r,n,i){let s=de(n,this.pixelUnprojectionMatrix),o=this.projectFlat(r),a=J.add([],o,J.negate([],s)),c=J.add([],this.center,a),[l,h]=this.unprojectFlat(c);return{longitude:l,latitude:h}}panByPosition3D(r,n){let i=r[2]||0,s=J.sub([],r,this.unproject(n,{targetZ:i}));return{longitude:this.longitude+s[0],latitude:this.latitude+s[1]}}getBounds(r={}){let n=tn(this,r.z||0);return[Math.min(n[0][0],n[1][0],n[2][0],n[3][0]),Math.min(n[0][1],n[1][1],n[2][1],n[3][1]),Math.max(n[0][0],n[1][0],n[2][0],n[3][0]),Math.max(n[0][1],n[1][1],n[2][1],n[3][1])]}fitBounds(r,n={}){let{width:i,height:s}=this,{longitude:o,latitude:a,zoom:c}=Gr({width:i,height:s,bounds:r,...n});return new en({width:i,height:s,longitude:o,latitude:a,zoom:c})}},ue=en;ue.displayName="WebMercatorViewport";var We=class{constructor(e){this._inProgress=!1;this._handle=null;this.time=0;this.settings={duration:0};this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:e,settings:r}=this;this._handle=e.addChannel({delay:e.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var Ia=()=>{},Ni={BREAK:1,SNAP_TO_END:2,IGNORE:3},ld=t=>t,hd=Ni.BREAK,He=class{constructor(e){this._onTransitionUpdate=e=>{let{time:r,settings:{interpolator:n,startProps:i,endProps:s,duration:o,easing:a}}=e,c=a(r/o),l=n.interpolateProps(i,s,c);this.propsInTransition=this.getControllerState({...this.props,...l}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})};this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new We(e.timeline),this.onViewStateChange=e.onViewStateChange||Ia,this.onStateChange=e.onStateChange||Ia}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let r=!1,n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){let{interruption:s,endProps:o}=this.transition.settings;i={...n,...s===Ni.SNAP_TO_END?o:this.propsInTransition||n}}this._triggerTransition(i,e),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(e){let{transitionDuration:r,transitionInterpolator:n}=e;return(r>0||r==="auto")&&Boolean(n)}_isUpdateDueToCurrentTransition(e){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition):!1}_shouldIgnoreViewportChange(e,r){return this.transition.inProgress?this.transition.settings.interruption===Ni.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(e,r):!0}_triggerTransition(e,r){let n=this.getControllerState(e),i=this.getControllerState(r).shortestPathFrom(n),s=r.transitionInterpolator,o=s.getDuration?s.getDuration(e,r):r.transitionDuration;if(o===0)return;let a=s.initializeProps(e,i);this.propsInTransition={};let c={duration:o,easing:r.transitionEasing||ld,interpolator:s,interruption:r.transitionInterruption||hd,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(c),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(r)}}};function Lt(t,e){if(!t)throw new Error(e||"deck.gl: assertion failed.")}var Le=class{constructor(e){let{compare:r,extract:n,required:i}=e;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(e,r){for(let n of this._propsToCompare)if(!(n in e)||!(n in r)||!Pt(e[n],r[n]))return!1;return!0}initializeProps(e,r){let n={},i={};for(let s of this._propsToExtract)(s in e||s in r)&&(n[s]=e[s],i[s]=r[s]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,r){return r.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(r=>{let n=e[r];Lt(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var _e=Math.PI/180,Na=180/Math.PI,nn=6370972,ge=256;function fd(){let t=ge/nn,e=Math.PI/180*ge;return{unitsPerMeter:[t,t,t],unitsPerMeter2:[0,0,0],metersPerUnit:[1/t,1/t,1/t],unitsPerDegree:[e,e,t],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,1/t]}}var Te=class extends vt{constructor(r={}){let{longitude:n=0,bearing:i=0,pitch:s=0,zoom:o=0,nearZMultiplier:a=.5,farZMultiplier:c=1,resolution:l=10}=r,{latitude:h=0,height:f,altitude:d=1.5,fovy:p}=r;h=Math.max(Math.min(h,90),-90),f=f||1,p?d=Wt(p):p=It(d);let _=Math.max(Math.min(h,ft),-ft),g=Math.pow(2,o-rn(_)),u=s*_e,T=r.nearZ??a,b=r.farZ??(d+ge*2*g/f/Math.max(Math.cos(u),.1))*c,E=new Y().lookAt({eye:[0,-d,0],up:[0,0,1]}).rotateX(-u).rotateY(-i*_e).rotateX(h*_e).rotateZ(-n*_e).scale(g/f);super({...r,height:f,viewMatrix:E,longitude:n,latitude:h,zoom:o,distanceScales:fd(),fovy:p,focalDistance:d,near:T,far:b});this.scale=g,this.latitude=h,this.longitude=n,this.bearing=i,this.pitch=s,this.fovy=p,this.resolution=l}get projectionMode(){return pe.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(r={}){let n={targetZ:r.z||0},i=this.unproject([0,this.height/2],n),s=this.unproject([this.width/2,0],n),o=this.unproject([this.width,this.height/2],n),a=this.unproject([this.width/2,this.height],n);return o[0]<this.longitude&&(o[0]+=360),i[0]>this.longitude&&(i[0]-=360),[Math.min(i[0],o[0],s[0],a[0]),Math.min(i[1],o[1],s[1],a[1]),Math.max(i[0],o[0],s[0],a[0]),Math.max(i[1],o[1],s[1],a[1])]}unproject(r,{topLeft:n=!0,targetZ:i}={}){let[s,o,a]=r,c=n?o:this.height-o,{pixelUnprojectionMatrix:l}=this,h;if(Number.isFinite(a))h=wi(l,[s,c,a,1]);else{let _=wi(l,[s,c,-1,1]),g=wi(l,[s,c,1,1]),u=((i||0)/nn+1)*ge,T=G.sqrLen(G.sub([],_,g)),b=G.sqrLen(_),E=G.sqrLen(g),S=4*((4*b*E-(T-b-E)**2)/16)/T,M=Math.sqrt(b-S),m=Math.sqrt(Math.max(0,u*u-S)),A=(M-m)/Math.sqrt(T);h=G.lerp([],_,g,A)}let[f,d,p]=this.unprojectPosition(h);return Number.isFinite(a)?[f,d,p]:Number.isFinite(i)?[f,d,i]:[f,d]}projectPosition(r){let[n,i,s=0]=r,o=n*_e,a=i*_e,c=Math.cos(a),l=(s/nn+1)*ge;return[Math.sin(o)*c*l,-Math.cos(o)*c*l,Math.sin(a)*l]}unprojectPosition(r){let[n,i,s]=r,o=G.len(r),a=Math.asin(s/o),l=Math.atan2(n,-i)*Na,h=a*Na,f=(o/ge-1)*nn;return[l,h,f]}projectFlat(r){return r}unprojectFlat(r){return r}panByPosition([r,n,i],s,o){let c=.25/Math.pow(2,this.zoom-rn(this.latitude)),l=r+c*(o[0]-s[0]),h=n-c*(o[1]-s[1]);h=Math.max(Math.min(h,90),-90);let f={longitude:l,latitude:h,zoom:i-rn(n)};return f.zoom+=rn(f.latitude),f}};Te.displayName="GlobeViewport";function rn(t,e){e&&(t=Math.max(Math.min(t,ft),-ft));let r=Math.PI*Math.cos(t*Math.PI/180);return Math.log2(r)}function wi(t,e){let r=Ct.transformMat4([],e,t);return Ct.scale(r,r,1/r[3]),r}var dd=["longitude","latitude","zoom","bearing","pitch"],pd=["longitude","latitude","zoom"],zt=class extends Le{constructor(r={}){let n=Array.isArray(r)?r:r.transitionProps,i=Array.isArray(r)?{}:r;i.transitionProps=Array.isArray(n)?{compare:n,required:n}:n||{compare:dd,required:pd};super(i.transitionProps);this.opts=i}initializeProps(r,n){let i=super.initializeProps(r,n),{makeViewport:s,around:o}=this.opts;if(s&&o)if(s(r)instanceof Te)oe.warn("around not supported in GlobeView")();else{let c=s(r),l=s(n),h=c.unproject(o);i.start.around=o,Object.assign(i.end,{around:l.project(h),aroundPosition:h,width:n.width,height:n.height})}return i}interpolateProps(r,n,i){let s={};for(let o of this._propsToExtract)s[o]=Fe(r[o]||0,n[o]||0,i);if(n.aroundPosition&&this.opts.makeViewport){let o=this.opts.makeViewport({...n,...s});Object.assign(s,o.panByPosition(n.aroundPosition,Fe(r.around,n.around,i)))}return s}};var Et={transitionDuration:0},ud=300,Oi=t=>1-(1-t)*(1-t),Yt={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],DOUBLE_CLICK_DRAG:["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],KEYBOARD:["keydown"]},Kt={},ze=class{constructor(e){this.state={};this._events={};this._interactionState={isDragging:!1};this._customEvents=[];this._eventStartBlocked=null;this._panMove=!1;this._multiPanMode=null;this._multiPanStartCenter=null;this._doubleClickDragAnchor=null;this._suppressDoubleClickUntil=0;this.invertPan=!1;this.dragMode="rotate";this.inertia=0;this.scrollZoom=!0;this.dragPan=!0;this.dragRotate=!0;this.doubleClickZoom=!0;this.doubleClickDragZoom=!0;this.touchZoom=!0;this.touchRotate=!1;this.multiTouchDrag=null;this.trackpadGesture=!1;this.keyboard=!0;this.transitionManager=new He({...e,getControllerState:r=>new this.ControllerState(r),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport,this.pickPosition=e.pickPosition}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(let e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;let r=this._eventStartBlocked;switch(e.type){case"panstart":return r?!1:this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return r||!this._isTrackpadGestureAllowed(e)?!1:this._onPinchStart(e);case"pinchmove":return this._isTrackpadGestureAllowed(e)?this._onPinch(e):!1;case"pinchend":return this._isTrackpadGestureAllowed(e)?this._onPinchEnd(e):!1;case"multipanstart":return r?!1:this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"dblclickdragstart":return r?!1:this._onDoubleClickDragStart(e);case"dblclickdragmove":return this._onDoubleClickDrag(e);case"dblclickdragend":case"dblclickdragcancel":return this._onDoubleClickDragEnd(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){let{x:r,y:n}=this.props,{offsetCenter:i}=e;return[i.x-r,i.y-n]}isPointInBounds(e,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let s=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return s&&r&&r.stopPropagation(),s}isFunctionKeyPressed(e){let{srcEvent:r}=e;return Boolean(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=r}setProps(e){e.dragMode&&(this.dragMode=e.dragMode);let r=this.props;this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);let{inertia:n}=e;this.inertia=Number.isFinite(n)?n:n===!0?ud:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:o=!0,doubleClickZoom:a=!0,doubleClickDragZoom:c=!1,touchZoom:l=!0,touchRotate:h=!1,multiTouchDrag:f=h?"rotate":null,trackpadGesture:d=!1,keyboard:p=!0}=e,_=Boolean(this.onViewStateChange);if(this.toggleEvents(Yt.WHEEL,_&&i),this.toggleEvents(Yt.PAN,_),this.toggleEvents(Yt.PINCH,_&&(l||f==="rotate")),this.toggleEvents(Yt.MULTI_PAN,_&&Boolean(f)),this.toggleEvents(Yt.DOUBLE_CLICK,_&&a),this.toggleEvents(Yt.DOUBLE_CLICK_DRAG,_&&c),this.toggleEvents(Yt.KEYBOARD,_&&p),this.scrollZoom=i,this.dragPan=s,this.dragRotate=o,this.doubleClickZoom=a,this.doubleClickDragZoom=c,this.touchZoom=l,this.touchRotate=f==="rotate",this.multiTouchDrag=f,this.trackpadGesture=d,this.keyboard=p,(!r||r.height!==e.height||r.width!==e.width||r.maxBounds!==e.maxBounds)&&e.maxBounds){let u=new this.ControllerState({...e,makeViewport:this.makeViewport}),T=u.getViewportProps();Object.keys(T).some(E=>!re(T[E],e[E],1))&&this.updateViewport(u)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,r){this.eventManager&&e.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(e,r=null,n={}){let i={...e.getViewportProps(),...r},s=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),s){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:o,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=this.controllerState[n?"panStart":"rotateStart"]({pos:r});return this._panMove=n,this.updateViewport(i,Et,{isDragging:!0}),!0}_onPan(e){return this.isDragging()?this._panMove?this._onPanMove(e):this._onPanRotate(e):!1}_onPanEnd(e){return this.isDragging()?this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e):!1}_onPanMove(e){if(!this.dragPan)return!1;let r=this.getCenter(e),n=this.controllerState.pan({pos:r});return this.updateViewport(n,Et,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){let{inertia:r}=this;if(this.dragPan&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],s=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:Oi},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState.panEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;let r=this.getCenter(e),n=this.controllerState.rotate({pos:r});return this.updateViewport(n,Et,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){let{inertia:r}=this;if(this.dragRotate&&r&&e.velocity){let n=this.getCenter(e),i=[n[0]+e.velocityX*r/2,n[1]+e.velocityY*r/2],s=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:Oi},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom||this.trackpadGesture&&e.device!=="mouse")return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;e.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=e,o=2/(1+Math.exp(-Math.abs(s*n)));s<0&&o!==0&&(o=1/o);let a=i?{...this._getTransitionProps({around:r}),transitionDuration:250}:Et,c=this.controllerState.zoom({pos:r,scale:o});return this.updateViewport(c,a,{isZooming:!0,isPanning:!0}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(e){let{multiTouchDrag:r}=this;if(!r||!this._isMultiPanEventAllowed(e,r))return!1;let n=e.offsetCenter;if(!this.isPointInBounds(this.getCenter(e),e))return!1;let i=e.pointerType==="trackpad",s={x:n.x-(i?0:e.deltaX),y:n.y-(i?0:e.deltaY)},o={...e,offsetCenter:s},a=this.getCenter(o),c=r==="pan"?this.controllerState.panStart({pos:a}):this.controllerState.rotateStart({pos:a});return this._multiPanMode=r,this._multiPanStartCenter=s,this.updateViewport(c,Et,{isDragging:!0}),!0}_onMultiPan(e){let{mode:r,event:n}=this._getMultiPanEvent(e);return!r||!n||!this.isDragging()?!1:r==="pan"?this._onPanMove(n):this._onPanRotate(n)}_onMultiPanEnd(e){let{mode:r,event:n}=this._getMultiPanEvent(e);if(!r||!n||!this.isDragging())return this._resetMultiPan(),!1;let i=r==="pan"?this._onPanMoveEnd(n):this._onPanRotateEnd(n);return this._resetMultiPan(),i}_isTrackpadGestureAllowed(e){return e.pointerType!=="trackpad"||this.trackpadGesture}_isMultiPanEventAllowed(e,r){return e.pointerType==="trackpad"?this.trackpadGesture&&(r==="pan"?this.dragPan:this.dragRotate):e.pointerType==="touch"&&(r==="pan"?this.dragPan:this.dragRotate)}_getMultiPanEvent(e){let r=this._multiPanMode,n=this._multiPanStartCenter;return!r||!n?{mode:null,event:null}:{mode:r,event:{...e,offsetCenter:{x:n.x+e.deltaX,y:n.y+e.deltaY}}}}_resetMultiPan(){this._multiPanMode=null,this._multiPanStartCenter=null}_onPinchStart(e){this._doubleClickDragAnchor=null;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.controllerState.zoomStart({pos:r}).rotateStart({pos:r});return Kt._startPinchRotation=e.rotation,Kt._lastPinchEvent=e,this.updateViewport(n,Et,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=e,i=this.getCenter(e);r=r.zoom({pos:i,scale:n})}if(this.touchRotate){let{rotation:n}=e;r=r.rotate({deltaAngleX:Kt._startPinchRotation-n})}return this.updateViewport(r,Et,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),Kt._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=Kt;if(this.touchZoom&&r&&n&&e.scale!==n.scale){let i=this.getCenter(e),s=this.controllerState.rotateEnd(),o=Math.log2(e.scale),a=(o-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),c=Math.pow(2,o+a*r/2);s=s.zoom({pos:i,scale:c}).zoomEnd(),this.updateViewport(s,{...this._getTransitionProps({around:i}),transitionDuration:r,transitionEasing:Oi},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return Kt._startPinchRotation=null,Kt._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom||Date.now()<this._suppressDoubleClickUntil)return!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return!1;let n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:r,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:r}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onDoubleClickDragStart(e){if(!this.doubleClickDragZoom)return this._doubleClickDragAnchor=null,!1;let r=this.getCenter(e);if(!this.isPointInBounds(r,e))return this._doubleClickDragAnchor=null,!1;this._doubleClickDragAnchor=r;let n=this.controllerState.zoomStart({pos:r});return e.scale!==1&&(n=n.zoom({pos:r,scale:e.scale})),this.updateViewport(n,Et,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(e){let r=this._doubleClickDragAnchor;if(!r)return!1;let n=this.controllerState.zoom({pos:r,scale:e.scale});return this.updateViewport(n,Et,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(e){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let r=this.controllerState.zoomEnd();return this.updateViewport(r,null,{isDragging:!1,isPanning:!1,isZooming:!1}),this._suppressDoubleClickUntil=Date.now()+100,this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,c,l={};switch(e.srcEvent.code){case"Minus":c=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),l.isZooming=!0;break;case"Equal":c=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":r?(c=a.rotateLeft(s),l.isRotating=!0):(c=a.moveLeft(i),l.isPanning=!0);break;case"ArrowRight":r?(c=a.rotateRight(s),l.isRotating=!0):(c=a.moveRight(i),l.isPanning=!0);break;case"ArrowUp":r?(c=a.rotateUp(o),l.isRotating=!0):(c=a.moveUp(i),l.isPanning=!0);break;case"ArrowDown":r?(c=a.rotateDown(o),l.isRotating=!0):(c=a.moveDown(i),l.isPanning=!0);break;default:return!1}return this.updateViewport(c,this._getTransitionProps(),l),!0}_getTransitionProps(e){let{transition:r}=this;return!r||!r.transitionInterpolator?Et:e?{...r,transitionInterpolator:new zt({...e,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var Ye=class{constructor(e,r,n){this.makeViewport=n,this._viewportProps=this.applyConstraints(e),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};var wa=5,_d=1.2,Oa=512,Da=[[-1/0,-90],[1/0,90]];function sn([t,e]){if(Math.abs(e)>90&&(e=Math.sign(e)*90),Number.isFinite(t)){let[n,i]=et([t,e]);return[n,z(i,0,Oa)]}let[,r]=et([0,e]);return[t,z(r,0,Oa)]}var Di=class extends Ye{constructor(r){let{width:n,height:i,latitude:s,longitude:o,zoom:a,bearing:c=0,pitch:l=0,altitude:h=1.5,position:f=[0,0,0],maxZoom:d=20,minZoom:p=0,maxPitch:_=60,minPitch:g=0,startPanLngLat:u,startZoomLngLat:T,startRotatePos:b,startRotateLngLat:E,startBearing:R,startPitch:S,startZoom:M,normalize:m=!0}=r;Lt(Number.isFinite(o)),Lt(Number.isFinite(s)),Lt(Number.isFinite(a));let A=r.maxBounds||(m?Da:null);super({width:n,height:i,latitude:s,longitude:o,zoom:a,bearing:c,pitch:l,altitude:h,maxZoom:d,minZoom:p,maxPitch:_,minPitch:g,normalize:m,position:f,maxBounds:A},{startPanLngLat:u,startZoomLngLat:T,startRotatePos:b,startRotateLngLat:E,startBearing:R,startPitch:S,startZoom:M},r.makeViewport);this.getAltitude=r.getAltitude}panStart({pos:r}){return this._getUpdatedState({startPanLngLat:this._unproject(r)})}pan({pos:r,startPos:n}){let i=this.getState().startPanLngLat||this._unproject(n);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,r);return this._getUpdatedState(o)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:r}){let n=this.getAltitude?.(r);return this._getUpdatedState({startRotatePos:r,startRotateLngLat:n!==void 0?this._unproject3D(r,n):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:r,deltaAngleX:n=0,deltaAngleY:i=0}){let{startRotatePos:s,startRotateLngLat:o,startBearing:a,startPitch:c}=this.getState();if(!s||a===void 0||c===void 0)return this;let l;if(r?l=this._getNewRotation(r,s,c,a):l={bearing:a+n,pitch:c+i},o){let h=this.makeViewport({...this.getViewportProps(),...l}),f="panByPosition3D"in h?"panByPosition3D":"panByPosition";return this._getUpdatedState({...l,...h[f](o,s)})}return this._getUpdatedState(l)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart({pos:r}){return this._getUpdatedState({startZoomLngLat:this._unproject(r),startZoom:this.getViewportProps().zoom})}zoom({pos:r,startPos:n,scale:i}){let{startZoom:s,startZoomLngLat:o}=this.getState();if(o||(s=this.getViewportProps().zoom,o=this._unproject(n)||this._unproject(r)),!o)return this;let a=this._constrainZoom(s+Math.log2(i)),c=this.makeViewport({...this.getViewportProps(),zoom:a});return this._getUpdatedState({zoom:a,...c.panByPosition(o,r)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(r=2){return this._zoomFromCenter(r)}zoomOut(r=2){return this._zoomFromCenter(1/r)}moveLeft(r=100){return this._panFromCenter([r,0])}moveRight(r=100){return this._panFromCenter([-r,0])}moveUp(r=100){return this._panFromCenter([0,r])}moveDown(r=100){return this._panFromCenter([0,-r])}rotateLeft(r=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-r})}rotateRight(r=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+r})}rotateUp(r=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+r})}rotateDown(r=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-r})}shortestPathFrom(r){let n=r.getViewportProps(),i={...this.getViewportProps()},{bearing:s,longitude:o}=i;return Math.abs(s-n.bearing)>180&&(i.bearing=s<0?s+360:s-360),Math.abs(o-n.longitude)>180&&(i.longitude=o<0?o+360:o-360),i}applyConstraints(r){let{maxPitch:n,minPitch:i,pitch:s,longitude:o,bearing:a,normalize:c,maxBounds:l}=r;if(c&&((o<-180||o>180)&&(r.longitude=Ei(o+180,360)-180),(a<-180||a>180)&&(r.bearing=Ei(a+180,360)-180)),r.pitch=z(s,i,n),r.zoom=this._constrainZoom(r.zoom,r),l){let h=sn(l[0]),f=sn(l[1]),d=2**r.zoom,p=r.width/2/d,_=r.height/2/d,[g,u]=K([h[0]+p,h[1]+_]),[T,b]=K([f[0]-p,f[1]-_]);r.longitude=z(r.longitude,g,T),r.latitude=z(r.latitude,u,b)}return r}_constrainZoom(r,n){n||=this.getViewportProps();let{maxZoom:i,maxBounds:s}=n,o=s!==null&&n.width>0&&n.height>0,{minZoom:a}=n;if(o){let c=sn(s[0]),l=sn(s[1]),h=l[0]-c[0],f=l[1]-c[1];Number.isFinite(h)&&h>0&&(a=Math.max(a,Math.log2(n.width/h))),Number.isFinite(f)&&f>0&&(a=Math.max(a,Math.log2(n.height/f))),a>i&&(a=i)}return z(r,a,i)}_zoomFromCenter(r){let{width:n,height:i}=this.getViewportProps();return this.zoom({pos:[n/2,i/2],scale:r})}_panFromCenter(r){let{width:n,height:i}=this.getViewportProps();return this.pan({startPos:[n/2,i/2],pos:[n/2+r[0],i/2+r[1]]})}_getUpdatedState(r){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...r})}_unproject(r){let n=this.makeViewport(this.getViewportProps());return r&&n.unproject(r)}_unproject3D(r,n){return this.makeViewport(this.getViewportProps()).unproject(r,{targetZ:n})}_getNewRotation(r,n,i,s){let o=r[0]-n[0],a=r[1]-n[1],c=r[1],l=n[1],{width:h,height:f}=this.getViewportProps(),d=o/h,p=0;a>0?Math.abs(f-l)>wa&&(p=a/(l-f)*_d):a<0&&l>wa&&(p=1-c/l),p=z(p,-1,1);let{minPitch:_,maxPitch:g}=this.getViewportProps(),u=s+180*d,T=i;return p>0?T=i+p*(g-i):p<0&&(T=i-p*(_-i)),{pitch:T,bearing:u}}},Ke=class extends ze{constructor(){super(...arguments);this.ControllerState=Di;this.transition={transitionDuration:300,transitionInterpolator:new zt({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})};this.dragMode="pan";this.rotationPivot="center";this._getAltitude=r=>{if(this.rotationPivot==="2d")return 0;if(this.rotationPivot==="3d"&&this.pickPosition){let{x:n,y:i}=this.props,s=this.pickPosition(n+r[0],i+r[1]);if(s&&s.coordinate&&s.coordinate.length>=3)return s.coordinate[2]}}}setProps(r){"rotationPivot"in r&&(this.rotationPivot=r.rotationPivot||"center"),r.getAltitude=this._getAltitude,r.position=r.position||[0,0,0],r.maxBounds=r.maxBounds||(r.normalize===!1?null:Da),super.setProps(r)}updateViewport(r,n=null,i={}){let s=r.getState();i.isDragging&&s.startRotateLngLat?i={...i,rotationPivotPosition:s.startRotateLngLat}:i.isDragging===!1&&(i={...i,rotationPivotPosition:void 0}),super.updateViewport(r,n,i)}};var me=class extends De{constructor(e={}){super(e)}getViewportType(){return ue}get ControllerType(){return Ke}};me.displayName="MapView";var gd=5916575505e-1,Td=78271.484,on=111320,md=55*Math.PI/180,Ed=65,Rd=80;function bd(t,e){let r=(t.latitude+e.latitude)/2*Math.PI/180,n=(t.latitude-e.latitude)*on,i=(t.longitude-e.longitude)*on*Math.cos(r);return Math.sqrt(n*n+i*i)}function Sd(t,e,r,n,i){let s=t.toMap({x:n/2,y:i/2}),o=t.toMap({x:n/2+1,y:i/2});if(s&&o){let a=bd(s,o);if(a>0){let c=r*Math.PI/180;return Math.log2(Td*Math.cos(c)/a)}}return Math.log2(gd/t.scale)-1}function Ad(t,e,r){let n=Math.max(0,Math.min(1,(r-t)/(e-t)));return n*n*(3-2*n)}function Md(t,e){let r=t/e;return .5/(Math.tan(md/2)/Math.sqrt(1+r*r))}function xd(t,e,r,n){let i=Md(r,n),s=Ad(Ed,Rd,t);return e*(1-s)+i*s}function yd(t,e,r,n,i,s){return{views:new me({id:"arcgis-scene"}),viewState:{"arcgis-scene":{id:"arcgis-scene",longitude:e,latitude:r,zoom:n,pitch:t.camera.tilt,bearing:t.camera.heading,altitude:s,position:[0,0,0],resolution:i}}}}function Fi(t,e){class r{constructor(i,s){if(this.resources=null,this.cancelInitialization=null,this.renderNode=null,i&&typeof i=="object"&&"view"in i){let{view:l,...h}=i;this.view=l,this.deck=new t(h)}else this.view=i,this.deck=new t(s);let o=!1,a=this,c=e.createSubclass({consumes:{required:["composite-color"]},produces:"composite-color",initialize(){},render(l){let h=this,f=l.find(B=>B.name==="composite-color");if(!a.resources&&!o){let B=h.gl;if(B){o=!0;let dt=!1;a.cancelInitialization=()=>{dt=!0},Vr.call(a,B).then(q=>{if(o=!1,dt){ee(q);return}a.deck.on("change",je=>q.deck.setProps(je)),q.deck.setProps(a.deck.toJSON()),a.resources=q,h.requestRender()}).catch(q=>{o=!1,console.error("DeckRenderer: failed to initialize resources",q)})}return f}if(!a.resources)return f;let d=h.bindRenderTarget(),p=h.gl,_=window.devicePixelRatio||1,g=p.drawingBufferWidth/_,u=p.drawingBufferHeight/_,T=a.view.camera.position,b=a.view.toMap({x:g/2,y:u/2}),E=b?b.latitude:a.view.center.latitude,R=b?b.longitude:a.view.center.longitude,S=(E+T.latitude)/2*Math.PI/180,M=(T.latitude-E)*on,m=(T.longitude-R)*on*Math.cos(S),A=Math.sqrt(M*M+m*m),y=Math.sqrt(A*A+T.z*T.z),x=Sd(a.view,R,E,g,u),C=u*a.view.resolution,I=y/C,w=xd(a.view.camera.tilt,I,g,u),N=yd(a.view,R,E,x,a.view.resolution,w);try{N?Oe(a.resources,{width:g,height:u,latitude:E,longitude:R,altitude:w,zoom:x,bearing:a.view.camera.heading,pitch:a.view.camera.tilt,...N}):Oe(a.resources,{width:g,height:u,latitude:E,longitude:R,altitude:w,zoom:x,bearing:a.view.camera.heading,pitch:a.view.camera.tilt})}catch(B){console.error("DeckRenderer: render error",B)}return d}});this.renderNode=new c({view:this.view})}async setup(i){}dispose(){this.cancelInitialization?.(),this.resources&&(ee(this.resources),this.resources=null),this.renderNode=null}redraw(){this.renderNode?.requestRender()}render(){this.renderNode?.requestRender()}}return r}var Bi=D(Ba(),1),Ee;async function Pd(t,e){let r=Array.isArray(t)?null:t;return await Cd(r,e),Array.isArray(t)?(0,Bi.loadModules)(t,e).then(n=>({...Ee,modules:n})):Ee}async function Cd(t,e){if(Ee)return Ee;if(t){let o=t.layers.Layer,a=t.core.Accessor,c=t.views["2d"].layers.BaseLayerViewGL2D,l=t.views["3d"].webgl.RenderNode;return va(o,a,c,l)}let[r,n,i,s]=await(0,Bi.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/webgl/RenderNode"],e);return va(r,n,i,s)}function va(t,e,r,n){let i=cn(e),s=Vn(r),o=ln(i,t,s),a=Fi(i,n);return Ee={DeckLayer:o,DeckRenderer:a},Ee}return Ha($e);})();
|
|
29
|
+
`,bindings:{deckglTexture:n},parameters:{depthWriteEnabled:!1,depthCompare:"always",blendColorSrcFactor:"one",blendColorDstFactor:"one-minus-src-alpha",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one-minus-src-alpha",blendColorOperation:"add",blendAlphaOperation:"add"},geometry:new Ar.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6,disableWarnings:!0}),s=r.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[n],depthStencilAttachment:"depth16unorm"});return t.setProps({_framebuffer:s,_customRender:o=>{if(o==="arcgis"){let a=r.gl;a.blendFuncSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),t._drawLayers(o)}else this.redraw()}}),{deck:t,texture:n,fbo:s,model:i}}function we(e,t){let{model:r,deck:n,fbo:i}=e,s=r.device;if(s instanceof ye){let o=s.getParametersWebGL(36006),{width:a,height:c,views:l,viewState:h,...u}=t,f=window.devicePixelRatio,d=Math.round(a*f),p=Math.round(c*f);i.resize({width:d,height:p});let g=i.colorAttachments[0].texture??i.colorAttachments[0];g!==e.texture&&(e.texture=g,r.setBindings({deckglTexture:g}));let m={width:a,height:c,viewState:h||u};l&&(m.views=l),n.setProps(m),n.redraw("arcgis");let{gl:b}=s;o?(b.bindFramebuffer(36160,o),b.drawBuffers([36064])):b.drawBuffers([1029]),b.enable(3042),b.blendFuncSeparate(1,771,1,771),b.blendEquationSeparate(32774,32774);let _={handle:o,width:d,height:p,colorAttachments:[null]},y=s.beginRenderPass({framebuffer:_,parameters:{viewport:[0,0,d,p]},clearColor:!1,clearDepth:!1});try{r.draw(y)}finally{y.end()}}}function $t(e){e.deck.finalize(),e.model.destroy(),e.fbo.destroy(),e.texture.destroy()}function kn(e){return e.createSubclass({properties:{cancelInitialization:null,resources:null},async attach(){let t=this.context,r=!1;this.cancelInitialization=()=>r=!0;let n=await Rr.call(this,t);if(r){$t(n);return}this.resources=n,this.layer.deck.on("change",i=>n.deck.setProps(i)),n.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){this.cancelInitialization?.(),this.resources&&($t(this.resources),this.resources=null)},render(t){if(!this.resources)return;let[r,n]=this.view.state.size,i=t.state;we(this.resources,{width:r,height:n,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(i.scale),bearing:-i.rotation,pitch:0})}})}var Nc=/^(?:\d+\.?\d*|\.\d+)$/;function $(e){switch(typeof e){case"number":if(!Number.isFinite(e))throw new Error(`Could not parse position string ${e}`);return{type:"literal",value:e};case"string":try{let t=Vc(e);return new In(t).parseExpression()}catch(t){let r=t instanceof Error?t.message:String(t);throw new Error(`Could not parse position string ${e}: ${r}`)}default:throw new Error(`Could not parse position string ${e}`)}}function Dn(e,t){switch(e.type){case"literal":return e.value;case"percentage":return Math.round(e.value*t);case"binary":let r=Dn(e.left,t),n=Dn(e.right,t);return e.operator==="+"?r+n:r-n;default:throw new Error("Unknown layout expression type")}}function j(e,t){return Dn(e,t)}function Vc(e){let t=[],r=0;for(;r<e.length;){let n=e[r];if(/\s/.test(n)){r++;continue}if(n==="+"||n==="-"||n==="("||n===")"||n==="%"){t.push({type:"symbol",value:n}),r++;continue}if(fo(n)||n==="."){let i=r,s=n===".";for(r++;r<e.length;){let a=e[r];if(fo(a)){r++;continue}if(a==="."&&!s){s=!0,r++;continue}break}let o=e.slice(i,r);if(!Nc.test(o))throw new Error("Invalid number token");t.push({type:"number",value:parseFloat(o)});continue}if(mo(n)){let i=r;for(;r<e.length&&mo(e[r]);)r++;let s=e.slice(i,r).toLowerCase();t.push({type:"word",value:s});continue}throw new Error("Invalid token in position string")}return t}var In=class{constructor(t){this.index=0;this.tokens=t}parseExpression(){let t=this.parseBinaryExpression();if(this.index<this.tokens.length)throw new Error("Unexpected token at end of expression");return t}parseBinaryExpression(){let t=this.parseFactor(),r=this.peek();for(;Gc(r);){this.index++;let n=this.parseFactor();t={type:"binary",operator:r.value,left:t,right:n},r=this.peek()}return t}parseFactor(){let t=this.peek();if(!t)throw new Error("Unexpected end of expression");if(t.type==="symbol"&&t.value==="+")return this.index++,this.parseFactor();if(t.type==="symbol"&&t.value==="-"){this.index++;let r=this.parseFactor();return{type:"binary",operator:"-",left:{type:"literal",value:0},right:r}}if(t.type==="symbol"&&t.value==="("){this.index++;let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(t.type==="word"&&t.value==="calc"){if(this.index++,!this.consumeSymbol("("))throw new Error("Missing opening parenthesis after calc");let r=this.parseBinaryExpression();if(!this.consumeSymbol(")"))throw new Error("Missing closing parenthesis");return r}if(t.type==="number"){this.index++;let r=t.value,n=this.peek();return n&&n.type==="symbol"&&n.value==="%"?(this.index++,{type:"percentage",value:r/100}):n&&n.type==="word"&&n.value==="px"?(this.index++,{type:"literal",value:r}):{type:"literal",value:r}}throw new Error("Unexpected token in expression")}consumeSymbol(t){let r=this.peek();return r&&r.type==="symbol"&&r.value===t?(this.index++,!0):!1}peek(){return this.tokens[this.index]||null}};function fo(e){return e>="0"&&e<="9"}function mo(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"}function Gc(e){return!!(e&&e.type==="symbol"&&(e.value==="+"||e.value==="-"))}function Rt(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Rt(e[n],t[n],r-1))return!1;return!0}if(Array.isArray(t))return!1;if(typeof e=="object"&&typeof t=="object"){let n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let s of n)if(!t.hasOwnProperty(s)||!Rt(e[s],t[s],r-1))return!1;return!0}return!1}function po(e,t){let r={...e};for(let n in t)n!=="id"&&(Array.isArray(r[n])&&Array.isArray(t[n])?r[n]=zc(r[n],t[n]):r[n]=t[n]);return r}function zc(e,t){e=e.slice();for(let r=0;r<t.length;r++){let n=t[r];Number.isFinite(n)&&(e[r]=n)}return e}var Ee=class{constructor(t){let{id:r,x:n=0,y:i=0,width:s="100%",height:o="100%",padding:a=null}=t;this.id=r||this.constructor.displayName||"view",this.props={...t,id:this.id},this._x=$(n),this._y=$(i),this._width=$(s),this._height=$(o),this._padding=a&&{left:$(a.left||0),right:$(a.right||0),top:$(a.top||0),bottom:$(a.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(t){return this===t?!0:this.constructor===t.constructor&&Rt(this.props,t.props,2)}clone(t){let r=this.constructor;return new r({...this.props,...t})}makeViewport({width:t,height:r,viewState:n}){n=this.filterViewState(n);let i=this.getDimensions({width:t,height:r});if(!i.height||!i.width)return null;let s=this.getViewportType(n);return new s({...n,...this.props,...i})}getViewStateId(){let{viewState:t}=this.props;return typeof t=="string"?t:t?.id||this.id}filterViewState(t){return this.props.viewState&&typeof this.props.viewState=="object"?this.props.viewState.id?po(t,this.props.viewState):this.props.viewState:t}getDimensions({width:t,height:r}){let n={x:j(this._x,t),y:j(this._y,r),width:j(this._width,t),height:j(this._height,r)};return this._padding&&(n.padding={left:j(this._padding.left,t),top:j(this._padding.top,r),right:j(this._padding.right,t),bottom:j(this._padding.bottom,r)}),n}get controller(){let t=this.props.controller;return t?t===!0?{type:this.ControllerType}:typeof t=="function"?{type:t}:{type:this.ControllerType,...t}:null}};be();function jt(e,t){if(!e)throw new Error(t||"Assertion failed")}function Bn(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return jt(Number.isFinite(t)&&t>=0),t}function go(e){let{logLevel:t,message:r}=e;e.logLevel=Bn(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let i=typeof e.message;return jt(i==="string"||i==="object"),Object.assign(e,{args:n},e.opts)}var kt=()=>{},kr=class{constructor({level:t=0}={}){this.userData={},this._onceCache=new Set,this._level=t}set level(t){this.setLevel(t)}get level(){return this.getLevel()}setLevel(t){return this._level=t,this}getLevel(){return this._level}warn(t,...r){return this._log("warn",0,t,r,{once:!0})}error(t,...r){return this._log("error",0,t,r)}log(t,r,...n){return this._log("log",t,r,n)}info(t,r,...n){return this._log("info",t,r,n)}once(t,r,...n){return this._log("once",t,r,n,{once:!0})}_log(t,r,n,i,s={}){let o=go({logLevel:r,message:n,args:this._buildArgs(r,n,i),opts:s});return this._createLogFunction(t,o,s)}_buildArgs(t,r,n){return[t,r,...n]}_createLogFunction(t,r,n){if(!this._shouldLog(r.logLevel))return kt;let i=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&i!==void 0){if(this._onceCache.has(i))return kt;this._onceCache.add(i)}return this._emit(t,r)}_shouldLog(t){return this.getLevel()>=Bn(t)}_getOnceTag(t){if(t!==void 0)try{return typeof t=="string"?t:String(t)}catch{return}}};function Wc(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Dr=class{constructor(t,r,n="sessionStorage"){this.storage=Wc(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function bo(e){let t;return e<10?t=`${e.toFixed(2)}ms`:e<100?t=`${e.toFixed(1)}ms`:e<1e3?t=`${e.toFixed(0)}ms`:t=`${(e/1e3).toFixed(2)}s`,t}function xo(e,t=8){let r=Math.max(t-e.length,0);return`${" ".repeat(r)}${e}`}be();var Ir;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Ir||(Ir={}));var Uc=10;function yo(e){return typeof e!="string"?e:(e=e.toUpperCase(),Ir[e]||Ir.WHITE)}function wo(e,t,r){return!Et&&typeof e=="string"&&(t&&(e=`\x1B[${yo(t)}m${e}\x1B[39m`),r&&(e=`\x1B[${yo(r)+Uc}m${e}\x1B[49m`)),e}function Eo(e,t=["constructor"]){let r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),i=e;for(let s of n){let o=i[s];typeof o=="function"&&(t.find(a=>s===a)||(i[s]=o.bind(e)))}}be();function qt(){let e;if(Et()&&Tr.performance)e=Tr?.performance?.now?.();else if("hrtime"in _r){let t=_r?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var Xt={debug:Et()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Fn={enabled:!0,level:0},Tt=class extends kr{constructor({id:t}={id:""}){super({level:0}),this.VERSION=Ln,this._startTs=qt(),this._deltaTs=qt(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new Dr(`__probe-${this.id}__`,{[this.id]:Fn}),this.timeStamp(`${this.id} started`),Eo(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((qt()-this._startTs).toPrecision(10))}getDelta(){return Number((qt()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(t=!0){return this._updateConfiguration({enabled:t}),this}setLevel(t){return this._updateConfiguration({level:t}),this}get(t){return this._getConfiguration()[t]}set(t,r){this._updateConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){if(!t)throw new Error(r||"Assertion failed")}warn(t,...r){return this._log("warn",0,t,r,{method:Xt.warn,once:!0})}error(t,...r){return this._log("error",0,t,r,{method:Xt.error})}deprecated(t,r){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(t,r){return this.error(`\`${t}\` has been removed. Use \`${r}\` instead`)}probe(t,r,...n){return this._log("log",t,r,n,{method:Xt.log,time:!0,once:!0})}log(t,r,...n){return this._log("log",t,r,n,{method:Xt.debug})}info(t,r,...n){return this._log("info",t,r,n,{method:console.info})}once(t,r,...n){return this._log("once",t,r,n,{method:Xt.debug||Xt.info,once:!0})}table(t,r,n){return r?this._log("table",t,r,n&&[n]||[],{method:console.table||kt,tag:$c(r)}):kt}time(t,r){return this._log("time",t,r,[],{method:console.time?console.time:console.info})}timeEnd(t,r){return this._log("time",t,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(t,r){return this._log("time",t,r,[],{method:console.timeStamp||kt})}group(t,r,n={collapsed:!1}){let i=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",t,r,[],{method:i})}groupCollapsed(t,r,n={}){return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._log("groupEnd",t,"",[],{method:console.groupEnd||kt})}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&super._shouldLog(t)}_emit(t,r){let n=r.method;jt(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=qt();let i=Yc(this.id,r.message,r);return n.bind(console,i,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(Fn),this._storage.config[this.id]}_updateConfiguration(t){let r=this._storage.config[this.id]||{...Fn};this._storage.setConfiguration({[this.id]:{...r,...t}})}};Tt.VERSION=Ln;function Yc(e,t,r){if(typeof t=="string"){let n=r.time?xo(bo(r.total)):"";t=r.time?`${e}: ${n} ${t}`:`${e}: ${t}`,t=wo(t,r.color,r.background)}return t}function $c(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}globalThis.probe={};var kp=new Tt({id:"@probe.gl/log"});var jc=new Tt({id:"deck"}),Br=jc;var Np=1/Math.PI*180,Vp=1/180*Math.PI,qc={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...qc}};var G=globalThis.mathgl.config;function On(e,{precision:t=G.precision}={}){return e=Xc(e),`${parseFloat(e.toPrecision(t))}`}function _t(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Y(e,t,r){return Hc(e,n=>Math.max(t,Math.min(r,n)))}function Te(e,t,r){return _t(e)?e.map((n,i)=>Te(n,t[i],r)):r*t+(1-r)*e}function gt(e,t,r){let n=G.EPSILON;r&&(G.EPSILON=r);try{if(e===t)return!0;if(_t(e)&&_t(t)){if(e.length!==t.length)return!1;for(let i=0;i<e.length;++i)if(!gt(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=G.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{G.EPSILON=n}}function Xc(e){return Math.round(e/G.EPSILON)*G.EPSILON}function Zc(e){return e.clone?e.clone():new Array(e.length)}function Hc(e,t,r){if(_t(e)){let n=e;r=r||Zc(n);for(let i=0;i<r.length&&i<n.length;++i){let s=typeof e=="number"?e:e[i];r[i]=t(s,i,r)}return r}return t(e)}var Zt=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(t,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=t[n+r];return this.check()}toArray(t=[],r=0){for(let n=0;n<this.ELEMENTS;++n)t[r+n]=this[n];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:_t(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(G)}formatString(t){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+On(this[n],t);return`${t.printTypes?this.constructor.name:""}[${r}]`}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!gt(this[r],t[r]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==t[r])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,r,n){if(n===void 0)return this.lerp(this,t,r);for(let i=0;i<this.ELEMENTS;++i){let s=t[i],o=typeof r=="number"?r:r[i];this[i]=s+n*(o-s)}return this.check()}min(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(t[r],this[r]);return this.check()}max(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(t[r],this[r]);return this.check()}clamp(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t[n]),r[n]);return this.check()}add(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(t){if(typeof t=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;else for(let r=0;r<this.ELEMENTS&&r<t.length;++r)this[r]*=t[r];return this.check()}multiplyByScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}check(){if(G.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let t=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)t=t&&Number.isFinite(this[r]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=t;return this.check()}addScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t),r);return this.check()}get elements(){return this}};function Qc(e,t){if(e.length!==t)return!1;for(let r=0;r<e.length;++r)if(!Number.isFinite(e[r]))return!1;return!0}function z(e){if(!Number.isFinite(e))throw new Error(`Invalid number ${JSON.stringify(e)}`);return e}function Fr(e,t,r=""){if(G.debug&&!Qc(e,t))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return e}function Nn(e,t){if(!e)throw new Error(`math.gl assertion ${t}`)}var Or=class extends Zt{get x(){return this[0]}set x(t){this[0]=z(t)}get y(){return this[1]}set y(t){this[1]=z(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let r=0;r<this.ELEMENTS;++r)t+=this[r]*this[r];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let r=0;for(let n=0;n<this.ELEMENTS;++n){let i=this[n]-t[n];r+=i*i}return z(r)}dot(t){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*t[n];return z(r)}normalize(){let t=this.magnitude();if(t!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=t;return this.check()}multiply(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return Nn(t>=0&&t<this.ELEMENTS,"index is out of range"),z(this[t])}setComponent(t,r){return Nn(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=r,this.check()}addVectors(t,r){return this.copy(t).add(r)}subVectors(t,r){return this.copy(t).subtract(r)}multiplyVectors(t,r){return this.copy(t).multiply(r)}addScaledVector(t,r){return this.add(new this.constructor(t).multiplyScalar(r))}};var at={};ae(at,{add:()=>rl,angle:()=>El,ceil:()=>nl,clone:()=>Kc,copy:()=>tl,create:()=>To,cross:()=>ml,dist:()=>Al,distance:()=>Mo,div:()=>Ll,divide:()=>So,dot:()=>dl,equals:()=>Sl,exactEquals:()=>vl,floor:()=>il,forEach:()=>Dl,fromValues:()=>Jc,inverse:()=>ul,len:()=>Ml,length:()=>Co,lerp:()=>pl,max:()=>ol,min:()=>sl,mul:()=>Cl,multiply:()=>vo,negate:()=>hl,normalize:()=>fl,random:()=>gl,rotate:()=>wl,round:()=>al,scale:()=>cl,scaleAndAdd:()=>ll,set:()=>el,sqrDist:()=>Rl,sqrLen:()=>kl,squaredDistance:()=>Po,squaredLength:()=>Lo,str:()=>_l,sub:()=>Pl,subtract:()=>_o,transformMat2:()=>bl,transformMat2d:()=>xl,transformMat3:()=>yl,transformMat4:()=>Vn,zero:()=>Tl});var O=typeof Float32Array<"u"?Float32Array:Array,bt=Math.random;function Q(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var Hp=Math.PI/180;function To(){let e=new O(2);return O!=Float32Array&&(e[0]=0,e[1]=0),e}function Kc(e){let t=new O(2);return t[0]=e[0],t[1]=e[1],t}function Jc(e,t){let r=new O(2);return r[0]=e,r[1]=t,r}function tl(e,t){return e[0]=t[0],e[1]=t[1],e}function el(e,t,r){return e[0]=t,e[1]=r,e}function rl(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e}function _o(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e}function vo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e}function So(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e}function nl(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e}function il(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e}function sl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e}function ol(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e}function al(e,t){return e[0]=Q(t[0]),e[1]=Q(t[1]),e}function cl(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e}function ll(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e}function Mo(e,t){let r=t[0]-e[0],n=t[1]-e[1];return Math.sqrt(r*r+n*n)}function Po(e,t){let r=t[0]-e[0],n=t[1]-e[1];return r*r+n*n}function Co(e){let t=e[0],r=e[1];return Math.sqrt(t*t+r*r)}function Lo(e){let t=e[0],r=e[1];return t*t+r*r}function hl(e,t){return e[0]=-t[0],e[1]=-t[1],e}function ul(e,t){return e[0]=1/t[0],e[1]=1/t[1],e}function fl(e,t){let r=t[0],n=t[1],i=r*r+n*n;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e}function dl(e,t){return e[0]*t[0]+e[1]*t[1]}function ml(e,t,r){let n=t[0]*r[1]-t[1]*r[0];return e[0]=e[1]=0,e[2]=n,e}function pl(e,t,r,n){let i=t[0],s=t[1];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e}function gl(e,t){t=t===void 0?1:t;let r=bt()*2*Math.PI;return e[0]=Math.cos(r)*t,e[1]=Math.sin(r)*t,e}function bl(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e}function xl(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i+r[4],e[1]=r[1]*n+r[3]*i+r[5],e}function yl(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[3]*i+r[6],e[1]=r[1]*n+r[4]*i+r[7],e}function Vn(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[4]*i+r[12],e[1]=r[1]*n+r[5]*i+r[13],e}function wl(e,t,r,n){let i=t[0]-r[0],s=t[1]-r[1],o=Math.sin(n),a=Math.cos(n);return e[0]=i*a-s*o+r[0],e[1]=i*o+s*a+r[1],e}function El(e,t){let r=e[0],n=e[1],i=t[0],s=t[1],o=Math.sqrt((r*r+n*n)*(i*i+s*s)),a=o&&(r*i+n*s)/o;return Math.acos(Math.min(Math.max(a,-1),1))}function Tl(e){return e[0]=0,e[1]=0,e}function _l(e){return`vec2(${e[0]}, ${e[1]})`}function vl(e,t){return e[0]===t[0]&&e[1]===t[1]}function Sl(e,t){let r=e[0],n=e[1],i=t[0],s=t[1];return Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(n-s)<=1e-6*Math.max(1,Math.abs(n),Math.abs(s))}var Ml=Co,Pl=_o,Cl=vo,Ll=So,Al=Mo,Rl=Po,kl=Lo,Dl=(function(){let e=To();return function(t,r,n,i,s,o){let a,c;for(r||(r=2),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],s(e,e,o),t[a]=e[0],t[a+1]=e[1];return t}})();function Ao(e,t,r){let n=t[0],i=t[1],s=r[3]*n+r[7]*i||1;return e[0]=(r[0]*n+r[4]*i)/s,e[1]=(r[1]*n+r[5]*i)/s,e}function Vr(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[3]*n+r[7]*i+r[11]*s||1;return e[0]=(r[0]*n+r[4]*i+r[8]*s)/o,e[1]=(r[1]*n+r[5]*i+r[9]*s)/o,e[2]=(r[2]*n+r[6]*i+r[10]*s)/o,e}function Ro(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2],e}var Gr={};ae(Gr,{add:()=>Nl,angle:()=>qn,bezier:()=>Kl,ceil:()=>Vl,clone:()=>Il,copy:()=>Fl,create:()=>ko,cross:()=>zn,dist:()=>ah,distance:()=>Oo,div:()=>oh,divide:()=>Fo,dot:()=>Gn,equals:()=>nh,exactEquals:()=>rh,floor:()=>Gl,forEach:()=>uh,fromValues:()=>Bl,hermite:()=>Ql,inverse:()=>ql,len:()=>lh,length:()=>Do,lerp:()=>Zl,max:()=>Wl,min:()=>zl,mul:()=>sh,multiply:()=>Bo,negate:()=>jl,normalize:()=>Xl,random:()=>Jl,rotateX:()=>Yn,rotateY:()=>$n,rotateZ:()=>jn,round:()=>Ul,scale:()=>Yl,scaleAndAdd:()=>$l,set:()=>Ol,slerp:()=>Hl,sqrDist:()=>ch,sqrLen:()=>hh,squaredDistance:()=>No,squaredLength:()=>Vo,str:()=>eh,sub:()=>ih,subtract:()=>Io,transformMat3:()=>Wn,transformMat4:()=>_e,transformQuat:()=>Un,zero:()=>th});function ko(){let e=new O(3);return O!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Il(e){let t=new O(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Do(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function Bl(e,t,r){let n=new O(3);return n[0]=e,n[1]=t,n[2]=r,n}function Fl(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Ol(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Nl(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Io(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function Bo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Fo(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Vl(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Gl(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function zl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function Wl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Ul(e,t){return e[0]=Q(t[0]),e[1]=Q(t[1]),e[2]=Q(t[2]),e}function Yl(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function $l(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function Oo(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(r*r+n*n+i*i)}function No(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2];return r*r+n*n+i*i}function Vo(e){let t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function jl(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function ql(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Xl(e,t){let r=t[0],n=t[1],i=t[2],s=r*r+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function Gn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function zn(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[0],a=r[1],c=r[2];return e[0]=i*c-s*a,e[1]=s*o-n*c,e[2]=n*a-i*o,e}function Zl(e,t,r,n){let i=t[0],s=t[1],o=t[2];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e[2]=o+n*(r[2]-o),e}function Hl(e,t,r,n){let i=Math.acos(Math.min(Math.max(Gn(t,r),-1),1)),s=Math.sin(i),o=Math.sin((1-n)*i)/s,a=Math.sin(n*i)/s;return e[0]=o*t[0]+a*r[0],e[1]=o*t[1]+a*r[1],e[2]=o*t[2]+a*r[2],e}function Ql(e,t,r,n,i,s){let o=s*s,a=o*(2*s-3)+1,c=o*(s-2)+s,l=o*(s-1),h=o*(3-2*s);return e[0]=t[0]*a+r[0]*c+n[0]*l+i[0]*h,e[1]=t[1]*a+r[1]*c+n[1]*l+i[1]*h,e[2]=t[2]*a+r[2]*c+n[2]*l+i[2]*h,e}function Kl(e,t,r,n,i,s){let o=1-s,a=o*o,c=s*s,l=a*o,h=3*s*a,u=3*c*o,f=c*s;return e[0]=t[0]*l+r[0]*h+n[0]*u+i[0]*f,e[1]=t[1]*l+r[1]*h+n[1]*u+i[1]*f,e[2]=t[2]*l+r[2]*h+n[2]*u+i[2]*f,e}function Jl(e,t){t=t===void 0?1:t;let r=bt()*2*Math.PI,n=bt()*2-1,i=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*i,e[1]=Math.sin(r)*i,e[2]=n*t,e}function _e(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[3]*n+r[7]*i+r[11]*s+r[15];return o=o||1,e[0]=(r[0]*n+r[4]*i+r[8]*s+r[12])/o,e[1]=(r[1]*n+r[5]*i+r[9]*s+r[13])/o,e[2]=(r[2]*n+r[6]*i+r[10]*s+r[14])/o,e}function Wn(e,t,r){let n=t[0],i=t[1],s=t[2];return e[0]=n*r[0]+i*r[3]+s*r[6],e[1]=n*r[1]+i*r[4]+s*r[7],e[2]=n*r[2]+i*r[5]+s*r[8],e}function Un(e,t,r){let n=r[0],i=r[1],s=r[2],o=r[3],a=t[0],c=t[1],l=t[2],h=i*l-s*c,u=s*a-n*l,f=n*c-i*a,d=i*f-s*u,p=s*h-n*f,g=n*u-i*h,m=o*2;return h*=m,u*=m,f*=m,d*=2,p*=2,g*=2,e[0]=a+h+d,e[1]=c+u+p,e[2]=l+f+g,e}function Yn(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function $n(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function jn(e,t,r,n){let i=[],s=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function qn(e,t){let r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2],c=Math.sqrt((r*r+n*n+i*i)*(s*s+o*o+a*a)),l=c&&Gn(e,t)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function th(e){return e[0]=0,e[1]=0,e[2]=0,e}function eh(e){return`vec3(${e[0]}, ${e[1]}, ${e[2]})`}function rh(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function nh(e,t){let r=e[0],n=e[1],i=e[2],s=t[0],o=t[1],a=t[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-o)<=1e-6*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-a)<=1e-6*Math.max(1,Math.abs(i),Math.abs(a))}var ih=Io,sh=Bo,oh=Fo,ah=Oo,ch=No,lh=Do,hh=Vo,uh=(function(){let e=ko();return function(t,r,n,i,s,o){let a,c;for(r||(r=3),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}})();var Xn=[0,0,0],zr,vt=class e extends Or{static get ZERO(){return zr||(zr=new e(0,0,0),Object.freeze(zr)),zr}constructor(t=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&_t(t)?this.copy(t):(G.debug&&(z(t),z(r),z(n)),this[0]=t,this[1]=r,this[2]=n)}set(t,r,n){return this[0]=t,this[1]=r,this[2]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this.check()}fromObject(t){return G.debug&&(z(t.x),z(t.y),z(t.z)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this.check()}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t}get ELEMENTS(){return 3}get z(){return this[2]}set z(t){this[2]=z(t)}angle(t){return qn(this,t)}cross(t){return zn(this,this,t),this.check()}rotateX({radians:t,origin:r=Xn}){return Yn(this,this,r,t),this.check()}rotateY({radians:t,origin:r=Xn}){return $n(this,this,r,t),this.check()}rotateZ({radians:t,origin:r=Xn}){return jn(this,this,r,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return _e(this,this,t),this.check()}transformAsVector(t){return Vr(this,this,t),this.check()}transformByMatrix3(t){return Wn(this,this,t),this.check()}transformByMatrix2(t){return Ro(this,this,t),this.check()}transformByQuaternion(t){return Un(this,this,t),this.check()}};var Wr=class extends Zt{toString(){let t="[";if(G.printRowMajor){t+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)t+=` ${this[n*this.RANK+r]}`}else{t+="column-major:";for(let r=0;r<this.ELEMENTS;++r)t+=` ${this[r]}`}return t+="]",t}getElementIndex(t,r){return r*this.RANK+t}getElement(t,r){return this[r*this.RANK+t]}setElement(t,r,n){return this[r*this.RANK+t]=z(n),this}getColumn(t,r=new Array(this.RANK).fill(-0)){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)r[i]=this[n+i];return r}setColumn(t,r){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=r[i];return this}};var W={};ae(W,{add:()=>Fh,adjoint:()=>bh,clone:()=>dh,copy:()=>mh,create:()=>fh,decompose:()=>Ph,determinant:()=>Qn,equals:()=>Gh,exactEquals:()=>Vh,frob:()=>Bh,fromQuat:()=>ii,fromQuat2:()=>vh,fromRotation:()=>wh,fromRotationTranslation:()=>zo,fromRotationTranslationScale:()=>Ch,fromRotationTranslationScaleOrigin:()=>Lh,fromScaling:()=>yh,fromTranslation:()=>xh,fromValues:()=>ph,fromXRotation:()=>Eh,fromYRotation:()=>Th,fromZRotation:()=>_h,frustum:()=>si,getRotation:()=>Mh,getScaling:()=>Wo,getTranslation:()=>Sh,identity:()=>Go,invert:()=>Hn,lookAt:()=>ci,mul:()=>zh,multiply:()=>ve,multiplyScalar:()=>Oh,multiplyScalarAndAdd:()=>Nh,ortho:()=>ai,orthoNO:()=>Yo,orthoZO:()=>kh,perspective:()=>oi,perspectiveFromFieldOfView:()=>Rh,perspectiveNO:()=>Uo,perspectiveZO:()=>Ah,rotate:()=>ti,rotateX:()=>ei,rotateY:()=>ri,rotateZ:()=>ni,scale:()=>Jn,set:()=>gh,str:()=>Ih,sub:()=>Wh,subtract:()=>$o,targetTo:()=>Dh,translate:()=>Kn,transpose:()=>Zn});function fh(){let e=new O(16);return O!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function dh(e){let t=new O(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function mh(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function ph(e,t,r,n,i,s,o,a,c,l,h,u,f,d,p,g){let m=new O(16);return m[0]=e,m[1]=t,m[2]=r,m[3]=n,m[4]=i,m[5]=s,m[6]=o,m[7]=a,m[8]=c,m[9]=l,m[10]=h,m[11]=u,m[12]=f,m[13]=d,m[14]=p,m[15]=g,m}function gh(e,t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e[4]=s,e[5]=o,e[6]=a,e[7]=c,e[8]=l,e[9]=h,e[10]=u,e[11]=f,e[12]=d,e[13]=p,e[14]=g,e[15]=m,e}function Go(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Zn(e,t){if(e===t){let r=t[1],n=t[2],i=t[3],s=t[6],o=t[7],a=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=s,e[11]=t[14],e[12]=i,e[13]=o,e[14]=a}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function Hn(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],u=t[9],f=t[10],d=t[11],p=t[12],g=t[13],m=t[14],b=t[15],_=r*a-n*o,y=r*c-i*o,w=r*l-s*o,v=n*c-i*a,E=n*l-s*a,x=i*l-s*c,T=h*g-u*p,M=h*m-f*p,S=h*b-d*p,C=u*m-f*g,L=u*b-d*g,R=f*b-d*m,A=_*R-y*L+w*C+v*S-E*M+x*T;return A?(A=1/A,e[0]=(a*R-c*L+l*C)*A,e[1]=(i*L-n*R-s*C)*A,e[2]=(g*x-m*E+b*v)*A,e[3]=(f*E-u*x-d*v)*A,e[4]=(c*S-o*R-l*M)*A,e[5]=(r*R-i*S+s*M)*A,e[6]=(m*w-p*x-b*y)*A,e[7]=(h*x-f*w+d*y)*A,e[8]=(o*L-a*S+l*T)*A,e[9]=(n*S-r*L-s*T)*A,e[10]=(p*E-g*w+b*_)*A,e[11]=(u*w-h*E-d*_)*A,e[12]=(a*M-o*C-c*T)*A,e[13]=(r*C-n*M+i*T)*A,e[14]=(g*y-p*v-m*_)*A,e[15]=(h*v-u*y+f*_)*A,e):null}function bh(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=t[4],a=t[5],c=t[6],l=t[7],h=t[8],u=t[9],f=t[10],d=t[11],p=t[12],g=t[13],m=t[14],b=t[15],_=r*a-n*o,y=r*c-i*o,w=r*l-s*o,v=n*c-i*a,E=n*l-s*a,x=i*l-s*c,T=h*g-u*p,M=h*m-f*p,S=h*b-d*p,C=u*m-f*g,L=u*b-d*g,R=f*b-d*m;return e[0]=a*R-c*L+l*C,e[1]=i*L-n*R-s*C,e[2]=g*x-m*E+b*v,e[3]=f*E-u*x-d*v,e[4]=c*S-o*R-l*M,e[5]=r*R-i*S+s*M,e[6]=m*w-p*x-b*y,e[7]=h*x-f*w+d*y,e[8]=o*L-a*S+l*T,e[9]=n*S-r*L-s*T,e[10]=p*E-g*w+b*_,e[11]=u*w-h*E-d*_,e[12]=a*M-o*C-c*T,e[13]=r*C-n*M+i*T,e[14]=g*y-p*v-m*_,e[15]=h*v-u*y+f*_,e}function Qn(e){let t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],o=e[5],a=e[6],c=e[7],l=e[8],h=e[9],u=e[10],f=e[11],d=e[12],p=e[13],g=e[14],m=e[15],b=t*o-r*s,_=t*a-n*s,y=r*a-n*o,w=l*p-h*d,v=l*g-u*d,E=h*g-u*p,x=t*E-r*v+n*w,T=s*E-o*v+a*w,M=l*y-h*_+u*b,S=d*y-p*_+g*b;return c*x-i*T+m*M-f*S}function ve(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3],a=t[4],c=t[5],l=t[6],h=t[7],u=t[8],f=t[9],d=t[10],p=t[11],g=t[12],m=t[13],b=t[14],_=t[15],y=r[0],w=r[1],v=r[2],E=r[3];return e[0]=y*n+w*a+v*u+E*g,e[1]=y*i+w*c+v*f+E*m,e[2]=y*s+w*l+v*d+E*b,e[3]=y*o+w*h+v*p+E*_,y=r[4],w=r[5],v=r[6],E=r[7],e[4]=y*n+w*a+v*u+E*g,e[5]=y*i+w*c+v*f+E*m,e[6]=y*s+w*l+v*d+E*b,e[7]=y*o+w*h+v*p+E*_,y=r[8],w=r[9],v=r[10],E=r[11],e[8]=y*n+w*a+v*u+E*g,e[9]=y*i+w*c+v*f+E*m,e[10]=y*s+w*l+v*d+E*b,e[11]=y*o+w*h+v*p+E*_,y=r[12],w=r[13],v=r[14],E=r[15],e[12]=y*n+w*a+v*u+E*g,e[13]=y*i+w*c+v*f+E*m,e[14]=y*s+w*l+v*d+E*b,e[15]=y*o+w*h+v*p+E*_,e}function Kn(e,t,r){let n=r[0],i=r[1],s=r[2],o,a,c,l,h,u,f,d,p,g,m,b;return t===e?(e[12]=t[0]*n+t[4]*i+t[8]*s+t[12],e[13]=t[1]*n+t[5]*i+t[9]*s+t[13],e[14]=t[2]*n+t[6]*i+t[10]*s+t[14],e[15]=t[3]*n+t[7]*i+t[11]*s+t[15]):(o=t[0],a=t[1],c=t[2],l=t[3],h=t[4],u=t[5],f=t[6],d=t[7],p=t[8],g=t[9],m=t[10],b=t[11],e[0]=o,e[1]=a,e[2]=c,e[3]=l,e[4]=h,e[5]=u,e[6]=f,e[7]=d,e[8]=p,e[9]=g,e[10]=m,e[11]=b,e[12]=o*n+h*i+p*s+t[12],e[13]=a*n+u*i+g*s+t[13],e[14]=c*n+f*i+m*s+t[14],e[15]=l*n+d*i+b*s+t[15]),e}function Jn(e,t,r){let n=r[0],i=r[1],s=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*s,e[9]=t[9]*s,e[10]=t[10]*s,e[11]=t[11]*s,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function ti(e,t,r,n){let i=n[0],s=n[1],o=n[2],a=Math.sqrt(i*i+s*s+o*o),c,l,h,u,f,d,p,g,m,b,_,y,w,v,E,x,T,M,S,C,L,R,A,B;return a<1e-6?null:(a=1/a,i*=a,s*=a,o*=a,l=Math.sin(r),c=Math.cos(r),h=1-c,u=t[0],f=t[1],d=t[2],p=t[3],g=t[4],m=t[5],b=t[6],_=t[7],y=t[8],w=t[9],v=t[10],E=t[11],x=i*i*h+c,T=s*i*h+o*l,M=o*i*h-s*l,S=i*s*h-o*l,C=s*s*h+c,L=o*s*h+i*l,R=i*o*h+s*l,A=s*o*h-i*l,B=o*o*h+c,e[0]=u*x+g*T+y*M,e[1]=f*x+m*T+w*M,e[2]=d*x+b*T+v*M,e[3]=p*x+_*T+E*M,e[4]=u*S+g*C+y*L,e[5]=f*S+m*C+w*L,e[6]=d*S+b*C+v*L,e[7]=p*S+_*C+E*L,e[8]=u*R+g*A+y*B,e[9]=f*R+m*A+w*B,e[10]=d*R+b*A+v*B,e[11]=p*R+_*A+E*B,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function ei(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[4],o=t[5],a=t[6],c=t[7],l=t[8],h=t[9],u=t[10],f=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=s*i+l*n,e[5]=o*i+h*n,e[6]=a*i+u*n,e[7]=c*i+f*n,e[8]=l*i-s*n,e[9]=h*i-o*n,e[10]=u*i-a*n,e[11]=f*i-c*n,e}function ri(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[0],o=t[1],a=t[2],c=t[3],l=t[8],h=t[9],u=t[10],f=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=s*i-l*n,e[1]=o*i-h*n,e[2]=a*i-u*n,e[3]=c*i-f*n,e[8]=s*n+l*i,e[9]=o*n+h*i,e[10]=a*n+u*i,e[11]=c*n+f*i,e}function ni(e,t,r){let n=Math.sin(r),i=Math.cos(r),s=t[0],o=t[1],a=t[2],c=t[3],l=t[4],h=t[5],u=t[6],f=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=s*i+l*n,e[1]=o*i+h*n,e[2]=a*i+u*n,e[3]=c*i+f*n,e[4]=l*i-s*n,e[5]=h*i-o*n,e[6]=u*i-a*n,e[7]=f*i-c*n,e}function xh(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}function yh(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function wh(e,t,r){let n=r[0],i=r[1],s=r[2],o=Math.sqrt(n*n+i*i+s*s),a,c,l;return o<1e-6?null:(o=1/o,n*=o,i*=o,s*=o,c=Math.sin(t),a=Math.cos(t),l=1-a,e[0]=n*n*l+a,e[1]=i*n*l+s*c,e[2]=s*n*l-i*c,e[3]=0,e[4]=n*i*l-s*c,e[5]=i*i*l+a,e[6]=s*i*l+n*c,e[7]=0,e[8]=n*s*l+i*c,e[9]=i*s*l-n*c,e[10]=s*s*l+a,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}function Eh(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Th(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function _h(e,t){let r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function zo(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3],a=n+n,c=i+i,l=s+s,h=n*a,u=n*c,f=n*l,d=i*c,p=i*l,g=s*l,m=o*a,b=o*c,_=o*l;return e[0]=1-(d+g),e[1]=u+_,e[2]=f-b,e[3]=0,e[4]=u-_,e[5]=1-(h+g),e[6]=p+m,e[7]=0,e[8]=f+b,e[9]=p-m,e[10]=1-(h+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function vh(e,t){let r=new O(3),n=-t[0],i=-t[1],s=-t[2],o=t[3],a=t[4],c=t[5],l=t[6],h=t[7],u=n*n+i*i+s*s+o*o;return u>0?(r[0]=(a*o+h*n+c*s-l*i)*2/u,r[1]=(c*o+h*i+l*n-a*s)*2/u,r[2]=(l*o+h*s+a*i-c*n)*2/u):(r[0]=(a*o+h*n+c*s-l*i)*2,r[1]=(c*o+h*i+l*n-a*s)*2,r[2]=(l*o+h*s+a*i-c*n)*2),zo(e,t,r),e}function Sh(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Wo(e,t){let r=t[0],n=t[1],i=t[2],s=t[4],o=t[5],a=t[6],c=t[8],l=t[9],h=t[10];return e[0]=Math.sqrt(r*r+n*n+i*i),e[1]=Math.sqrt(s*s+o*o+a*a),e[2]=Math.sqrt(c*c+l*l+h*h),e}function Mh(e,t){let r=new O(3);Wo(r,t);let n=1/r[0],i=1/r[1],s=1/r[2],o=t[0]*n,a=t[1]*i,c=t[2]*s,l=t[4]*n,h=t[5]*i,u=t[6]*s,f=t[8]*n,d=t[9]*i,p=t[10]*s,g=o+h+p,m=0;return g>0?(m=Math.sqrt(g+1)*2,e[3]=.25*m,e[0]=(u-d)/m,e[1]=(f-c)/m,e[2]=(a-l)/m):o>h&&o>p?(m=Math.sqrt(1+o-h-p)*2,e[3]=(u-d)/m,e[0]=.25*m,e[1]=(a+l)/m,e[2]=(f+c)/m):h>p?(m=Math.sqrt(1+h-o-p)*2,e[3]=(f-c)/m,e[0]=(a+l)/m,e[1]=.25*m,e[2]=(u+d)/m):(m=Math.sqrt(1+p-o-h)*2,e[3]=(a-l)/m,e[0]=(f+c)/m,e[1]=(u+d)/m,e[2]=.25*m),e}function Ph(e,t,r,n){t[0]=n[12],t[1]=n[13],t[2]=n[14];let i=n[0],s=n[1],o=n[2],a=n[4],c=n[5],l=n[6],h=n[8],u=n[9],f=n[10];r[0]=Math.sqrt(i*i+s*s+o*o),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(h*h+u*u+f*f);let d=1/r[0],p=1/r[1],g=1/r[2],m=i*d,b=s*p,_=o*g,y=a*d,w=c*p,v=l*g,E=h*d,x=u*p,T=f*g,M=m+w+T,S=0;return M>0?(S=Math.sqrt(M+1)*2,e[3]=.25*S,e[0]=(v-x)/S,e[1]=(E-_)/S,e[2]=(b-y)/S):m>w&&m>T?(S=Math.sqrt(1+m-w-T)*2,e[3]=(v-x)/S,e[0]=.25*S,e[1]=(b+y)/S,e[2]=(E+_)/S):w>T?(S=Math.sqrt(1+w-m-T)*2,e[3]=(E-_)/S,e[0]=(b+y)/S,e[1]=.25*S,e[2]=(v+x)/S):(S=Math.sqrt(1+T-m-w)*2,e[3]=(b-y)/S,e[0]=(E+_)/S,e[1]=(v+x)/S,e[2]=.25*S),e}function Ch(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=t[3],c=i+i,l=s+s,h=o+o,u=i*c,f=i*l,d=i*h,p=s*l,g=s*h,m=o*h,b=a*c,_=a*l,y=a*h,w=n[0],v=n[1],E=n[2];return e[0]=(1-(p+m))*w,e[1]=(f+y)*w,e[2]=(d-_)*w,e[3]=0,e[4]=(f-y)*v,e[5]=(1-(u+m))*v,e[6]=(g+b)*v,e[7]=0,e[8]=(d+_)*E,e[9]=(g-b)*E,e[10]=(1-(u+p))*E,e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}function Lh(e,t,r,n,i){let s=t[0],o=t[1],a=t[2],c=t[3],l=s+s,h=o+o,u=a+a,f=s*l,d=s*h,p=s*u,g=o*h,m=o*u,b=a*u,_=c*l,y=c*h,w=c*u,v=n[0],E=n[1],x=n[2],T=i[0],M=i[1],S=i[2],C=(1-(g+b))*v,L=(d+w)*v,R=(p-y)*v,A=(d-w)*E,B=(1-(f+b))*E,ht=(m+_)*E,H=(p+y)*x,ze=(m-_)*x,Li=(1-(f+g))*x;return e[0]=C,e[1]=L,e[2]=R,e[3]=0,e[4]=A,e[5]=B,e[6]=ht,e[7]=0,e[8]=H,e[9]=ze,e[10]=Li,e[11]=0,e[12]=r[0]+T-(C*T+A*M+H*S),e[13]=r[1]+M-(L*T+B*M+ze*S),e[14]=r[2]+S-(R*T+ht*M+Li*S),e[15]=1,e}function ii(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=r+r,a=n+n,c=i+i,l=r*o,h=n*o,u=n*a,f=i*o,d=i*a,p=i*c,g=s*o,m=s*a,b=s*c;return e[0]=1-u-p,e[1]=h+b,e[2]=f-m,e[3]=0,e[4]=h-b,e[5]=1-l-p,e[6]=d+g,e[7]=0,e[8]=f+m,e[9]=d-g,e[10]=1-l-u,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function si(e,t,r,n,i,s,o){let a=1/(r-t),c=1/(i-n),l=1/(s-o);return e[0]=s*2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s*2*c,e[6]=0,e[7]=0,e[8]=(r+t)*a,e[9]=(i+n)*c,e[10]=(o+s)*l,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*s*2*l,e[15]=0,e}function Uo(e,t,r,n,i){let s=1/Math.tan(t/2);if(e[0]=s/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){let o=1/(n-i);e[10]=(i+n)*o,e[14]=2*i*n*o}else e[10]=-1,e[14]=-2*n;return e}var oi=Uo;function Ah(e,t,r,n,i){let s=1/Math.tan(t/2);if(e[0]=s/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){let o=1/(n-i);e[10]=i*o,e[14]=i*n*o}else e[10]=-1,e[14]=-n;return e}function Rh(e,t,r,n){let i=Math.tan(t.upDegrees*Math.PI/180),s=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),a=Math.tan(t.rightDegrees*Math.PI/180),c=2/(o+a),l=2/(i+s);return e[0]=c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=l,e[6]=0,e[7]=0,e[8]=-((o-a)*c*.5),e[9]=(i-s)*l*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}function Yo(e,t,r,n,i,s,o){let a=1/(t-r),c=1/(n-i),l=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*l,e[11]=0,e[12]=(t+r)*a,e[13]=(i+n)*c,e[14]=(o+s)*l,e[15]=1,e}var ai=Yo;function kh(e,t,r,n,i,s,o){let a=1/(t-r),c=1/(n-i),l=1/(s-o);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*c,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=l,e[11]=0,e[12]=(t+r)*a,e[13]=(i+n)*c,e[14]=s*l,e[15]=1,e}function ci(e,t,r,n){let i,s,o,a,c,l,h,u,f,d,p=t[0],g=t[1],m=t[2],b=n[0],_=n[1],y=n[2],w=r[0],v=r[1],E=r[2];return Math.abs(p-w)<1e-6&&Math.abs(g-v)<1e-6&&Math.abs(m-E)<1e-6?Go(e):(u=p-w,f=g-v,d=m-E,i=1/Math.sqrt(u*u+f*f+d*d),u*=i,f*=i,d*=i,s=_*d-y*f,o=y*u-b*d,a=b*f-_*u,i=Math.sqrt(s*s+o*o+a*a),i?(i=1/i,s*=i,o*=i,a*=i):(s=0,o=0,a=0),c=f*a-d*o,l=d*s-u*a,h=u*o-f*s,i=Math.sqrt(c*c+l*l+h*h),i?(i=1/i,c*=i,l*=i,h*=i):(c=0,l=0,h=0),e[0]=s,e[1]=c,e[2]=u,e[3]=0,e[4]=o,e[5]=l,e[6]=f,e[7]=0,e[8]=a,e[9]=h,e[10]=d,e[11]=0,e[12]=-(s*p+o*g+a*m),e[13]=-(c*p+l*g+h*m),e[14]=-(u*p+f*g+d*m),e[15]=1,e)}function Dh(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=n[0],c=n[1],l=n[2],h=i-r[0],u=s-r[1],f=o-r[2],d=h*h+u*u+f*f;d>0&&(d=1/Math.sqrt(d),h*=d,u*=d,f*=d);let p=c*f-l*u,g=l*h-a*f,m=a*u-c*h;return d=p*p+g*g+m*m,d>0&&(d=1/Math.sqrt(d),p*=d,g*=d,m*=d),e[0]=p,e[1]=g,e[2]=m,e[3]=0,e[4]=u*m-f*g,e[5]=f*p-h*m,e[6]=h*g-u*p,e[7]=0,e[8]=h,e[9]=u,e[10]=f,e[11]=0,e[12]=i,e[13]=s,e[14]=o,e[15]=1,e}function Ih(e){return`mat4(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]}, ${e[4]}, ${e[5]}, ${e[6]}, ${e[7]}, ${e[8]}, ${e[9]}, ${e[10]}, ${e[11]}, ${e[12]}, ${e[13]}, ${e[14]}, ${e[15]})`}function Bh(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]+e[3]*e[3]+e[4]*e[4]+e[5]*e[5]+e[6]*e[6]+e[7]*e[7]+e[8]*e[8]+e[9]*e[9]+e[10]*e[10]+e[11]*e[11]+e[12]*e[12]+e[13]*e[13]+e[14]*e[14]+e[15]*e[15])}function Fh(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e[4]=t[4]+r[4],e[5]=t[5]+r[5],e[6]=t[6]+r[6],e[7]=t[7]+r[7],e[8]=t[8]+r[8],e[9]=t[9]+r[9],e[10]=t[10]+r[10],e[11]=t[11]+r[11],e[12]=t[12]+r[12],e[13]=t[13]+r[13],e[14]=t[14]+r[14],e[15]=t[15]+r[15],e}function $o(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e[4]=t[4]-r[4],e[5]=t[5]-r[5],e[6]=t[6]-r[6],e[7]=t[7]-r[7],e[8]=t[8]-r[8],e[9]=t[9]-r[9],e[10]=t[10]-r[10],e[11]=t[11]-r[11],e[12]=t[12]-r[12],e[13]=t[13]-r[13],e[14]=t[14]-r[14],e[15]=t[15]-r[15],e}function Oh(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*r,e[5]=t[5]*r,e[6]=t[6]*r,e[7]=t[7]*r,e[8]=t[8]*r,e[9]=t[9]*r,e[10]=t[10]*r,e[11]=t[11]*r,e[12]=t[12]*r,e[13]=t[13]*r,e[14]=t[14]*r,e[15]=t[15]*r,e}function Nh(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e[4]=t[4]+r[4]*n,e[5]=t[5]+r[5]*n,e[6]=t[6]+r[6]*n,e[7]=t[7]+r[7]*n,e[8]=t[8]+r[8]*n,e[9]=t[9]+r[9]*n,e[10]=t[10]+r[10]*n,e[11]=t[11]+r[11]*n,e[12]=t[12]+r[12]*n,e[13]=t[13]+r[13]*n,e[14]=t[14]+r[14]*n,e[15]=t[15]+r[15]*n,e}function Vh(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[11]===t[11]&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[15]===t[15]}function Gh(e,t){let r=e[0],n=e[1],i=e[2],s=e[3],o=e[4],a=e[5],c=e[6],l=e[7],h=e[8],u=e[9],f=e[10],d=e[11],p=e[12],g=e[13],m=e[14],b=e[15],_=t[0],y=t[1],w=t[2],v=t[3],E=t[4],x=t[5],T=t[6],M=t[7],S=t[8],C=t[9],L=t[10],R=t[11],A=t[12],B=t[13],ht=t[14],H=t[15];return Math.abs(r-_)<=1e-6*Math.max(1,Math.abs(r),Math.abs(_))&&Math.abs(n-y)<=1e-6*Math.max(1,Math.abs(n),Math.abs(y))&&Math.abs(i-w)<=1e-6*Math.max(1,Math.abs(i),Math.abs(w))&&Math.abs(s-v)<=1e-6*Math.max(1,Math.abs(s),Math.abs(v))&&Math.abs(o-E)<=1e-6*Math.max(1,Math.abs(o),Math.abs(E))&&Math.abs(a-x)<=1e-6*Math.max(1,Math.abs(a),Math.abs(x))&&Math.abs(c-T)<=1e-6*Math.max(1,Math.abs(c),Math.abs(T))&&Math.abs(l-M)<=1e-6*Math.max(1,Math.abs(l),Math.abs(M))&&Math.abs(h-S)<=1e-6*Math.max(1,Math.abs(h),Math.abs(S))&&Math.abs(u-C)<=1e-6*Math.max(1,Math.abs(u),Math.abs(C))&&Math.abs(f-L)<=1e-6*Math.max(1,Math.abs(f),Math.abs(L))&&Math.abs(d-R)<=1e-6*Math.max(1,Math.abs(d),Math.abs(R))&&Math.abs(p-A)<=1e-6*Math.max(1,Math.abs(p),Math.abs(A))&&Math.abs(g-B)<=1e-6*Math.max(1,Math.abs(g),Math.abs(B))&&Math.abs(m-ht)<=1e-6*Math.max(1,Math.abs(m),Math.abs(ht))&&Math.abs(b-H)<=1e-6*Math.max(1,Math.abs(b),Math.abs(H))}var zh=ve,Wh=$o;var Se={};ae(Se,{add:()=>qh,ceil:()=>Xh,clone:()=>Uh,copy:()=>$h,create:()=>jo,cross:()=>su,dist:()=>gu,distance:()=>Ho,div:()=>pu,divide:()=>Zo,dot:()=>iu,equals:()=>fu,exactEquals:()=>uu,floor:()=>Zh,forEach:()=>wu,fromValues:()=>Yh,inverse:()=>ru,len:()=>xu,length:()=>Ko,lerp:()=>ou,max:()=>Qh,min:()=>Hh,mul:()=>mu,multiply:()=>Xo,negate:()=>eu,normalize:()=>nu,random:()=>au,round:()=>Kh,scale:()=>Jh,scaleAndAdd:()=>tu,set:()=>jh,sqrDist:()=>bu,sqrLen:()=>yu,squaredDistance:()=>Qo,squaredLength:()=>Jo,str:()=>hu,sub:()=>du,subtract:()=>qo,transformMat4:()=>li,transformQuat:()=>cu,zero:()=>lu});function jo(){let e=new O(4);return O!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Uh(e){let t=new O(4);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Yh(e,t,r,n){let i=new O(4);return i[0]=e,i[1]=t,i[2]=r,i[3]=n,i}function $h(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function jh(e,t,r,n,i){return e[0]=t,e[1]=r,e[2]=n,e[3]=i,e}function qh(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function qo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e[3]=t[3]-r[3],e}function Xo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e[3]=t[3]*r[3],e}function Zo(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e[3]=t[3]/r[3],e}function Xh(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e[3]=Math.ceil(t[3]),e}function Zh(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e[3]=Math.floor(t[3]),e}function Hh(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e[3]=Math.min(t[3],r[3]),e}function Qh(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e[3]=Math.max(t[3],r[3]),e}function Kh(e,t){return e[0]=Q(t[0]),e[1]=Q(t[1]),e[2]=Q(t[2]),e[3]=Q(t[3]),e}function Jh(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function tu(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e[3]=t[3]+r[3]*n,e}function Ho(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],s=t[3]-e[3];return Math.sqrt(r*r+n*n+i*i+s*s)}function Qo(e,t){let r=t[0]-e[0],n=t[1]-e[1],i=t[2]-e[2],s=t[3]-e[3];return r*r+n*n+i*i+s*s}function Ko(e){let t=e[0],r=e[1],n=e[2],i=e[3];return Math.sqrt(t*t+r*r+n*n+i*i)}function Jo(e){let t=e[0],r=e[1],n=e[2],i=e[3];return t*t+r*r+n*n+i*i}function eu(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=-t[3],e}function ru(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e[3]=1/t[3],e}function nu(e,t){let r=t[0],n=t[1],i=t[2],s=t[3],o=r*r+n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),e[0]=r*o,e[1]=n*o,e[2]=i*o,e[3]=s*o,e}function iu(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function su(e,t,r,n){let i=r[0]*n[1]-r[1]*n[0],s=r[0]*n[2]-r[2]*n[0],o=r[0]*n[3]-r[3]*n[0],a=r[1]*n[2]-r[2]*n[1],c=r[1]*n[3]-r[3]*n[1],l=r[2]*n[3]-r[3]*n[2],h=t[0],u=t[1],f=t[2],d=t[3];return e[0]=u*l-f*c+d*a,e[1]=-(h*l)+f*o-d*s,e[2]=h*c-u*o+d*i,e[3]=-(h*a)+u*s-f*i,e}function ou(e,t,r,n){let i=t[0],s=t[1],o=t[2],a=t[3];return e[0]=i+n*(r[0]-i),e[1]=s+n*(r[1]-s),e[2]=o+n*(r[2]-o),e[3]=a+n*(r[3]-a),e}function au(e,t){t=t===void 0?1:t;let r,n,i,s,o,a;do r=bt()*2-1,n=bt()*2-1,o=r*r+n*n;while(o>=1);do i=bt()*2-1,s=bt()*2-1,a=i*i+s*s;while(a>=1);let c=Math.sqrt((1-o)/a);return e[0]=t*r,e[1]=t*n,e[2]=t*i*c,e[3]=t*s*c,e}function li(e,t,r){let n=t[0],i=t[1],s=t[2],o=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*s+r[12]*o,e[1]=r[1]*n+r[5]*i+r[9]*s+r[13]*o,e[2]=r[2]*n+r[6]*i+r[10]*s+r[14]*o,e[3]=r[3]*n+r[7]*i+r[11]*s+r[15]*o,e}function cu(e,t,r){let n=t[0],i=t[1],s=t[2],o=r[0],a=r[1],c=r[2],l=r[3],h=l*n+a*s-c*i,u=l*i+c*n-o*s,f=l*s+o*i-a*n,d=-o*n-a*i-c*s;return e[0]=h*l+d*-o+u*-c-f*-a,e[1]=u*l+d*-a+f*-o-h*-c,e[2]=f*l+d*-c+h*-a-u*-o,e[3]=t[3],e}function lu(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=0,e}function hu(e){return`vec4(${e[0]}, ${e[1]}, ${e[2]}, ${e[3]})`}function uu(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function fu(e,t){let r=e[0],n=e[1],i=e[2],s=e[3],o=t[0],a=t[1],c=t[2],l=t[3];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(i-c)<=1e-6*Math.max(1,Math.abs(i),Math.abs(c))&&Math.abs(s-l)<=1e-6*Math.max(1,Math.abs(s),Math.abs(l))}var du=qo,mu=Xo,pu=Zo,gu=Ho,bu=Qo,xu=Ko,yu=Jo,wu=(function(){let e=jo();return function(t,r,n,i,s,o){let a,c;for(r||(r=4),n||(n=0),i?c=Math.min(i*r+n,t.length):c=t.length,a=n;a<c;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],e[3]=t[a+3],s(e,e,o),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2],t[a+3]=e[3];return t}})();var fi;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(fi||(fi={}));var Eu=45*Math.PI/180,Tu=1,hi=.1,ui=500,_u=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),K=class extends Wr{static get IDENTITY(){return Su()}static get ZERO(){return vu()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return fi}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return this[0]=t,this[1]=r,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=a,this[7]=c,this[8]=l,this[9]=h,this[10]=u,this[11]=f,this[12]=d,this[13]=p,this[14]=g,this[15]=m,this.check()}setRowMajor(t,r,n,i,s,o,a,c,l,h,u,f,d,p,g,m){return this[0]=t,this[1]=s,this[2]=l,this[3]=d,this[4]=r,this[5]=o,this[6]=h,this[7]=p,this[8]=n,this[9]=a,this[10]=u,this[11]=g,this[12]=i,this[13]=c,this[14]=f,this[15]=m,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(_u)}fromObject(t){return this.check()}fromQuaternion(t){return ii(this,t),this.check()}frustum(t){let{left:r,right:n,bottom:i,top:s,near:o=hi,far:a=ui}=t;return a===1/0?Mu(this,r,n,i,s,o):si(this,r,n,i,s,o,a),this.check()}lookAt(t){let{eye:r,center:n=[0,0,0],up:i=[0,1,0]}=t;return ci(this,r,n,i),this.check()}ortho(t){let{left:r,right:n,bottom:i,top:s,near:o=hi,far:a=ui}=t;return ai(this,r,n,i,s,o,a),this.check()}orthographic(t){let{fovy:r=Eu,aspect:n=Tu,focalDistance:i=1,near:s=hi,far:o=ui}=t;ta(r);let a=r/2,c=i*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:o})}perspective(t){let{fovy:r=45*Math.PI/180,aspect:n=1,near:i=.1,far:s=500}=t;return ta(r),oi(this,r,n,i,s),this.check()}determinant(){return Qn(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*s,t[2]=this[2]*o,t[3]=0,t[4]=this[4]*i,t[5]=this[5]*s,t[6]=this[6]*o,t[7]=0,t[8]=this[8]*i,t[9]=this[9]*s,t[10]=this[10]*o,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],s=1/n[1],o=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*s,t[2]=this[2]*o,t[3]=this[4]*i,t[4]=this[5]*s,t[5]=this[6]*o,t[6]=this[8]*i,t[7]=this[9]*s,t[8]=this[10]*o,t}transpose(){return Zn(this,this),this.check()}invert(){return Hn(this,this),this.check()}multiplyLeft(t){return ve(this,t,this),this.check()}multiplyRight(t){return ve(this,this,t),this.check()}rotateX(t){return ei(this,this,t),this.check()}rotateY(t){return ri(this,this,t),this.check()}rotateZ(t){return ni(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,r){return ti(this,this,t,r),this.check()}scale(t){return Jn(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return Kn(this,this,t),this.check()}transform(t,r){return t.length===4?(r=li(r||[-0,-0,-0,-0],t,this),Fr(r,4),r):this.transformAsPoint(t,r)}transformAsPoint(t,r){let{length:n}=t,i;switch(n){case 2:i=Vn(r||[-0,-0],t,this);break;case 3:i=_e(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return Fr(i,t.length),i}transformAsVector(t,r){let n;switch(t.length){case 2:n=Ao(r||[-0,-0],t,this);break;case 3:n=Vr(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return Fr(n,t.length),n}transformPoint(t,r){return this.transformAsPoint(t,r)}transformVector(t,r){return this.transformAsPoint(t,r)}transformDirection(t,r){return this.transformAsVector(t,r)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,r,n){return this.identity().translate([t,r,n])}},Ur,Yr;function vu(){return Ur||(Ur=new K([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Ur)),Ur}function Su(){return Yr||(Yr=new K,Object.freeze(Yr)),Yr}function ta(e){if(e>Math.PI*2)throw Error("expected radians")}function Mu(e,t,r,n,i,s){let o=2*s/(r-t),a=2*s/(i-n),c=(r+t)/(r-t),l=(i+n)/(i-n),h=-1,u=-1,f=-2*s;return e[0]=o,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=c,e[9]=l,e[10]=h,e[11]=u,e[12]=0,e[13]=0,e[14]=f,e[15]=0,e}function Qt(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function di(e,t){let r=e%t;return r<0?t+r:r}function ra(e){return[e[12],e[13],e[14]]}function na(e){return{left:Ht(e[3]+e[0],e[7]+e[4],e[11]+e[8],e[15]+e[12]),right:Ht(e[3]-e[0],e[7]-e[4],e[11]-e[8],e[15]-e[12]),bottom:Ht(e[3]+e[1],e[7]+e[5],e[11]+e[9],e[15]+e[13]),top:Ht(e[3]-e[1],e[7]-e[5],e[11]-e[9],e[15]-e[13]),near:Ht(e[3]+e[2],e[7]+e[6],e[11]+e[10],e[15]+e[14]),far:Ht(e[3]-e[2],e[7]-e[6],e[11]-e[10],e[15]-e[14])}}var ea=new vt;function Ht(e,t,r,n){ea.set(e,t,r);let i=ea.len();return{distance:n/i,normal:new vt(-e/i,-t/i,-r/i)}}function mi(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Ct(e,t){let r=Se.transformMat4([],t,e);return Se.scale(r,r,1/r[3]),r}function Me(e,t,r){return e<t?t:e>r?r:e}function Pu(e){return Math.log(e)*Math.LOG2E}var Pe=Math.log2||Pu;function ct(e,t){if(!e)throw new Error(t||"@math.gl/web-mercator: assertion failed.")}var lt=Math.PI,ia=lt/4,J=lt/180,pi=180/lt,Kt=512,$r=4003e4,Jt=85.051129,sa=1.5;function gi(e){return Pe(e)}function tt(e){let[t,r]=e;ct(Number.isFinite(t)),ct(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=t*J,i=r*J,s=Kt*(n+lt)/(2*lt),o=Kt*(lt+Math.log(Math.tan(ia+i*.5)))/(2*lt);return[s,o]}function X(e){let[t,r]=e,n=t/Kt*(2*lt)-lt,i=2*(Math.atan(Math.exp(r/Kt*(2*lt)-lt))-ia);return[n*pi,i*pi]}function bi(e){let{latitude:t}=e;ct(Number.isFinite(t));let r=Math.cos(t*J);return gi($r*r)-9}function Ce(e){let t=Math.cos(e*J);return Kt/$r/t}function te(e){let{latitude:t,longitude:r,highPrecision:n=!1}=e;ct(Number.isFinite(t)&&Number.isFinite(r));let i=Kt,s=Math.cos(t*J),o=i/360,a=o/s,c=i/$r/s,l={unitsPerMeter:[c,c,c],metersPerUnit:[1/c,1/c,1/c],unitsPerDegree:[o,a,c],degreesPerUnit:[1/o,1/a,1/c]};if(n){let h=J*Math.tan(t*J)/s,u=o*h/2,f=i/$r*h,d=f/a*c;l.unitsPerDegree2=[0,u,f],l.unitsPerMeter2=[d,0,d]}return l}function xi(e,t){let[r,n,i]=e,[s,o,a]=t,{unitsPerMeter:c,unitsPerMeter2:l}=te({longitude:r,latitude:n,highPrecision:!0}),h=tt(e);h[0]+=s*(c[0]+l[0]*o),h[1]+=o*(c[1]+l[1]*o);let u=X(h),f=(i||0)+(a||0);return Number.isFinite(i)||Number.isFinite(a)?[u[0],u[1],f]:u}function jr(e){let{height:t,pitch:r,bearing:n,altitude:i,scale:s,center:o}=e,a=mi();W.translate(a,a,[0,0,-i]),W.rotateX(a,a,-r*J),W.rotateZ(a,a,n*J);let c=s/t;return W.scale(a,a,[c,c,c]),o&&W.translate(a,a,Gr.negate([],o)),a}function yi(e){let{width:t,height:r,altitude:n,pitch:i=0,offset:s,center:o,scale:a,nearZMultiplier:c=1,farZMultiplier:l=1}=e,{fovy:h=Dt(sa)}=e;n!==void 0&&(h=Dt(n));let u=h*J,f=i*J,d=Le(h),p=d;o&&(p+=o[2]*a/Math.cos(f)/r);let g=u*(.5+(s?s[1]:0)/r),m=Math.sin(g)*p/Math.sin(Me(Math.PI/2-f-g,.01,Math.PI-.01)),b=Math.sin(f)*m+p,_=p*10,y=Math.min(b*l,_);return{fov:u,aspect:t/r,focalDistance:d,near:c,far:y}}function Dt(e){return 2*Math.atan(.5/e)*pi}function Le(e){return .5/Math.tan(.5*e*J)}function ee(e,t){let[r,n,i=0]=e;return ct(Number.isFinite(r)&&Number.isFinite(n)&&Number.isFinite(i)),Ct(t,[r,n,i,1])}function re(e,t,r=0){let[n,i,s]=e;if(ct(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return Ct(t,[n,i,s,1]);let o=Ct(t,[n,i,0,1]),a=Ct(t,[n,i,1,1]),c=o[2],l=a[2],h=c===l?0:((r||0)-c)/(l-c);return at.lerp([],o,a,h)}function qr(e){let{width:t,height:r,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}=e,[[a,c],[l,h]]=n,u=Cu(e.padding),f=tt([a,Me(h,-Jt,Jt)]),d=tt([l,Me(c,-Jt,Jt)]),p=[Math.max(Math.abs(d[0]-f[0]),i),Math.max(Math.abs(d[1]-f[1]),i)],g=[t-u.left-u.right-Math.abs(o[0])*2,r-u.top-u.bottom-Math.abs(o[1])*2];ct(g[0]>0&&g[1]>0);let m=g[0]/p[0],b=g[1]/p[1],_=(u.right-u.left)/2/m,y=(u.top-u.bottom)/2/b,w=[(d[0]+f[0])/2+_,(d[1]+f[1])/2+y],v=X(w),E=Math.min(s,Pe(Math.abs(Math.min(m,b))));return ct(Number.isFinite(E)),{longitude:v[0],latitude:v[1],zoom:E}}function Cu(e=0){return typeof e=="number"?{top:e,bottom:e,left:e,right:e}:(ct(Number.isFinite(e.top)&&Number.isFinite(e.bottom)&&Number.isFinite(e.left)&&Number.isFinite(e.right)),e)}var oa=Math.PI/180;function Xr(e,t=0){let{width:r,height:n,unproject:i}=e,s={targetZ:t},o=i([0,n],s),a=i([r,n],s),c,l,h=e.fovy?.5*e.fovy*oa:Math.atan(.5/e.altitude),u=(90-e.pitch)*oa;return h>u-.01?(c=aa(e,0,t),l=aa(e,r,t)):(c=i([0,0],s),l=i([r,0],s)),[o,a,l,c]}function aa(e,t,r){let{pixelUnprojectionMatrix:n}=e,i=Ct(n,[t,0,1,1]),s=Ct(n,[t,e.height,1,1]),a=(r*e.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),c=at.lerp([],i,s,a),l=X(c);return l.push(r),l}var V;(function(e){e[e.Start=1]="Start",e[e.Move=2]="Move",e[e.End=4]="End",e[e.Cancel=8]="Cancel"})(V||(V={}));var It;(function(e){e[e.None=0]="None",e[e.Left=1]="Left",e[e.Right=2]="Right",e[e.Up=4]="Up",e[e.Down=8]="Down",e[e.Horizontal=3]="Horizontal",e[e.Vertical=12]="Vertical",e[e.All=15]="All"})(It||(It={}));var Z;(function(e){e[e.Possible=1]="Possible",e[e.Began=2]="Began",e[e.Changed=4]="Changed",e[e.Ended=8]="Ended",e[e.Recognized=8]="Recognized",e[e.Cancelled=16]="Cancelled",e[e.Failed=32]="Failed"})(Z||(Z={}));var G0={pointerdown:V.Start,pointermove:V.Move,pointerup:V.End,pointercancel:V.Cancel,pointerout:V.Cancel};var ga=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"";var dx=ga.indexOf("firefox")!==-1;var ba={DEFAULT:"default",LNGLAT:"lnglat",METER_OFFSETS:"meter-offsets",LNGLAT_OFFSETS:"lnglat-offsets",CARTESIAN:"cartesian"};Object.defineProperty(ba,"IDENTITY",{get:()=>(Br.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),ba.CARTESIAN)});var Zr={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0};var $u=Math.PI/180,ju=Qt(),xa=[0,0,0],qu={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};function Xu({width:e,height:t,orthographic:r,fovyRadians:n,focalDistance:i,padding:s,near:o,far:a}){let c=e/t,l=r?new K().orthographic({fovy:n,aspect:c,focalDistance:i,near:o,far:a}):new K().perspective({fovy:n,aspect:c,near:o,far:a});if(s){let{left:h=0,right:u=0,top:f=0,bottom:d=0}=s,p=Y((h+e-u)/2,0,e)-e/2,g=Y((f+t-d)/2,0,t)-t/2;l[8]-=p*2/e,l[9]+=g*2/t}return l}var Hr=class Hr{constructor(t={}){this._frustumPlanes={};this.id=t.id||this.constructor.displayName||"viewport",this.x=t.x||0,this.y=t.y||0,this.width=t.width||1,this.height=t.height||1,this.zoom=t.zoom||0,this.padding=t.padding,this.distanceScales=t.distanceScales||qu,this.focalDistance=t.focalDistance||1,this.position=t.position||xa,this.modelMatrix=t.modelMatrix||null;let{longitude:r,latitude:n}=t;this.isGeospatial=Number.isFinite(n)&&Number.isFinite(r),this._initProps(t),this._initMatrices(t),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?Zr.WEB_MERCATOR:Zr.WEB_MERCATOR_AUTO_OFFSET:Zr.IDENTITY}equals(t){return t instanceof Hr?this===t?!0:t.width===this.width&&t.height===this.height&&t.scale===this.scale&&t.projectionMode===this.projectionMode&&t.resolution===this.resolution&>(t.distanceScales.unitsPerMeter,this.distanceScales.unitsPerMeter)&>(t.projectionMatrix,this.projectionMatrix)&>(t.viewMatrix,this.viewMatrix):!1}project(t,{topLeft:r=!0}={}){let n=this.projectPosition(t),i=ee(n,this.pixelProjectionMatrix),[s,o]=i,a=r?o:this.height-o;return t.length===2?[s,a]:[s,a,i[2]]}unproject(t,{topLeft:r=!0,targetZ:n}={}){let[i,s,o]=t,a=r?s:this.height-s,c=n&&n*this.distanceScales.unitsPerMeter[2],l=re([i,a,o],this.pixelUnprojectionMatrix,c),[h,u,f]=this.unprojectPosition(l);return Number.isFinite(o)?[h,u,f]:Number.isFinite(n)?[h,u,n]:[h,u]}projectPosition(t){let[r,n]=this.projectFlat(t),i=(t[2]||0)*this.distanceScales.unitsPerMeter[2];return[r,n,i]}unprojectPosition(t){let[r,n]=this.unprojectFlat(t),i=(t[2]||0)*this.distanceScales.metersPerUnit[2];return[r,n,i]}projectFlat(t){if(this.isGeospatial){let r=tt(t);return r[1]=Y(r[1],-318,830),r}return t}unprojectFlat(t){return this.isGeospatial?X(t):t}getBounds(t={}){let r={targetZ:t.z||0},n=this.unproject([0,0],r),i=this.unproject([this.width,0],r),s=this.unproject([0,this.height],r),o=this.unproject([this.width,this.height],r);return[Math.min(n[0],i[0],s[0],o[0]),Math.min(n[1],i[1],s[1],o[1]),Math.max(n[0],i[0],s[0],o[0]),Math.max(n[1],i[1],s[1],o[1])]}getDistanceScales(t){return t&&this.isGeospatial?te({longitude:t[0],latitude:t[1],highPrecision:!0}):this.distanceScales}containsPixel({x:t,y:r,width:n=1,height:i=1}){return t<this.x+this.width&&this.x<t+n&&r<this.y+this.height&&this.y<r+i}getFrustumPlanes(){return this._frustumPlanes.near?this._frustumPlanes:(Object.assign(this._frustumPlanes,na(this.viewProjectionMatrix)),this._frustumPlanes)}panByPosition(t,r,n){return null}_initProps(t){let r=t.longitude,n=t.latitude;this.isGeospatial&&(Number.isFinite(t.zoom)||(this.zoom=bi({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=t.distanceScales||te({latitude:n,longitude:r}));let i=Math.pow(2,this.zoom);this.scale=i;let{position:s,modelMatrix:o}=t,a=xa;if(s&&(a=o?new K(o).transformAsVector(s,[]):s),this.isGeospatial){let c=this.projectPosition([r,n,0]);this.center=new vt(a).scale(this.distanceScales.unitsPerMeter).add(c)}else this.center=this.projectPosition(a)}_initMatrices(t){let{viewMatrix:r=ju,projectionMatrix:n=null,orthographic:i=!1,fovyRadians:s,fovy:o=75,near:a=.1,far:c=1e3,padding:l=null,focalDistance:h=1}=t;this.viewMatrixUncentered=r,this.viewMatrix=new K().multiplyRight(r).translate(new vt(this.center).negate()),this.projectionMatrix=n||Xu({width:this.width,height:this.height,orthographic:i,fovyRadians:s||o*$u,focalDistance:h,padding:l,near:a,far:c});let u=Qt();W.multiply(u,u,this.projectionMatrix),W.multiply(u,u,this.viewMatrix),this.viewProjectionMatrix=u,this.viewMatrixInverse=W.invert([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=ra(this.viewMatrixInverse);let f=Qt(),d=Qt();W.scale(f,f,[this.width/2,-this.height/2,1]),W.translate(f,f,[1,-1,0]),W.multiply(d,f,this.viewProjectionMatrix),this.pixelProjectionMatrix=d,this.pixelUnprojectionMatrix=W.invert(Qt(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||Br.warn("Pixel project matrix not invertible")()}};Hr.displayName="Viewport";var Re=Hr;var ne=class ne extends Re{constructor(t={}){let{latitude:r=0,longitude:n=0,zoom:i=0,pitch:s=0,bearing:o=0,nearZMultiplier:a=.1,farZMultiplier:c=1.01,nearZ:l,farZ:h,orthographic:u=!1,projectionMatrix:f,repeat:d=!1,worldOffset:p=0,position:g,padding:m,legacyMeterSizes:b=!1}=t,{width:_,height:y,altitude:w=1.5}=t,v=Math.pow(2,i);_=_||1,y=y||1;let E,x=null;if(f)w=f[5]/2,E=Dt(w);else{t.fovy?(E=t.fovy,w=Le(E)):E=Dt(w);let M;if(m){let{top:S=0,bottom:C=0}=m;M=[0,Y((S+y-C)/2,0,y)-y/2]}x=yi({width:_,height:y,scale:v,center:g&&[0,0,g[2]*Ce(r)],offset:M,pitch:s,fovy:E,nearZMultiplier:a,farZMultiplier:c}),Number.isFinite(l)&&(x.near=l),Number.isFinite(h)&&(x.far=h)}let T=jr({height:y,pitch:s,bearing:o,scale:v,altitude:w});p&&(T=new K().translate([512*p,0,0]).multiplyLeft(T)),super({...t,width:_,height:y,viewMatrix:T,longitude:n,latitude:r,zoom:i,...x,fovy:E,focalDistance:w}),this.latitude=r,this.longitude=n,this.zoom=i,this.pitch=s,this.bearing=o,this.altitude=w,this.fovy=E,this.orthographic=u,this._subViewports=d?[]:null,this._pseudoMeters=b,Object.freeze(this)}get subViewports(){if(this._subViewports&&!this._subViewports.length){let t=this.getBounds(),r=Math.floor((t[0]+180)/360),n=Math.ceil((t[2]-180)/360);for(let i=r;i<=n;i++){let s=i?new ne({...this,worldOffset:i}):this;this._subViewports.push(s)}}return this._subViewports}equals(t){return t instanceof ne&&t._pseudoMeters===this._pseudoMeters&&super.equals(t)}projectPosition(t){if(this._pseudoMeters)return super.projectPosition(t);let[r,n]=this.projectFlat(t),i=(t[2]||0)*Ce(t[1]);return[r,n,i]}unprojectPosition(t){if(this._pseudoMeters)return super.unprojectPosition(t);let[r,n]=this.unprojectFlat(t),i=(t[2]||0)/Ce(n);return[r,n,i]}addMetersToLngLat(t,r){return xi(t,r)}panByPosition(t,r,n){let i=re(r,this.pixelUnprojectionMatrix),s=this.projectFlat(t),o=at.add([],s,at.negate([],i)),a=at.add([],this.center,o),[c,l]=this.unprojectFlat(a);return{longitude:c,latitude:l}}panByPosition3D(t,r){let n=t[2]||0,i=at.sub([],t,this.unproject(r,{targetZ:n}));return{longitude:this.longitude+i[0],latitude:this.latitude+i[1]}}getBounds(t={}){let r=Xr(this,t.z||0);return[Math.min(r[0][0],r[1][0],r[2][0],r[3][0]),Math.min(r[0][1],r[1][1],r[2][1],r[3][1]),Math.max(r[0][0],r[1][0],r[2][0],r[3][0]),Math.max(r[0][1],r[1][1],r[2][1],r[3][1])]}fitBounds(t,r={}){let{width:n,height:i}=this,{longitude:s,latitude:o,zoom:a}=qr({width:n,height:i,bounds:t,...r});return new ne({width:n,height:i,longitude:s,latitude:o,zoom:a})}};ne.displayName="WebMercatorViewport";var ke=ne;var De=class{constructor(t){this._inProgress=!1;this._handle=null;this.time=0;this.settings={duration:0};this._timeline=t}get inProgress(){return this._inProgress}start(t){this.cancel(),this.settings=t,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){let{_timeline:t,settings:r}=this;this._handle=t.addChannel({delay:t.getTime(),duration:r.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}};var ya=()=>{},wa={mode:"preserve"},Zu={mode:"hard"},_i={BREAK:1,SNAP_TO_END:2,IGNORE:3},Hu=e=>e,Qu=_i.BREAK,Ie=class{constructor(t){this._onTransitionUpdate=t=>{let{time:r,settings:{interpolator:n,startProps:i,endProps:s,duration:o,easing:a}}=t,c=a(r/o),l=n.interpolateProps(i,s,c);this.propsInTransition=this.getControllerState({...this.props,...l},wa).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})};this.getControllerState=t.getControllerState,this.propsInTransition=null,this.transition=new De(t.timeline),this.onViewStateChange=t.onViewStateChange||ya,this.onStateChange=t.onStateChange||ya}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(t){let r=!1,n=this.props;if(this.props=t,!n||this._shouldIgnoreViewportChange(n,t))return!1;if(this._isTransitionEnabled(t)){let i=n;if(this.transition.inProgress){let{interruption:s,endProps:o}=this.transition.settings;i={...n,...s===_i.SNAP_TO_END?o:this.propsInTransition||n}}this._triggerTransition(i,t),r=!0}else this.transition.cancel();return r}updateTransition(){this.transition.update()}_isTransitionEnabled(t){let{transitionDuration:r,transitionInterpolator:n}=t;return(r>0||r==="auto")&&!!n}_isUpdateDueToCurrentTransition(t){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(t,this.propsInTransition):!1}_shouldIgnoreViewportChange(t,r){return this.transition.inProgress?this.transition.settings.interruption===_i.IGNORE||this._isUpdateDueToCurrentTransition(r):this._isTransitionEnabled(r)?r.transitionInterpolator.arePropsEqual(t,r):!0}_triggerTransition(t,r){let n=this.getControllerState(t,wa),i=this.getControllerState(r,Zu).shortestPathFrom(n),s=r.transitionInterpolator,o=s.getDuration?s.getDuration(t,r):r.transitionDuration;if(o===0)return;let a=s.initializeProps(t,i);this.propsInTransition={};let c={duration:o,easing:r.transitionEasing||Hu,interpolator:s,interruption:r.transitionInterruption||Qu,startProps:a.start,endProps:a.end,onStart:r.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(r.onTransitionInterrupt),onEnd:this._onTransitionEnd(r.onTransitionEnd)};this.transition.start(c),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(t){return r=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),t?.(r)}}};function Bt(e,t){if(!e)throw new Error(t||"deck.gl: assertion failed.")}var Be=class{constructor(t){let{compare:r,extract:n,required:i}=t;this._propsToCompare=r,this._propsToExtract=n||r,this._requiredProps=i}arePropsEqual(t,r){for(let n of this._propsToCompare)if(!(n in t)||!(n in r)||!gt(t[n],r[n]))return!1;return!0}initializeProps(t,r){let n={},i={};for(let s of this._propsToExtract)(s in t||s in r)&&(n[s]=t[s],i[s]=r[s]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(t,r){return r.transitionDuration}_checkRequiredProps(t){this._requiredProps&&this._requiredProps.forEach(r=>{let n=t[r];Bt(Number.isFinite(n)||Array.isArray(n),`${r} is required for transition`)})}};var Ku=["longitude","latitude","zoom","bearing","pitch"],Ju=["longitude","latitude","zoom"],Ft=class extends Be{constructor(t={}){let r=Array.isArray(t)?t:t.transitionProps,n=Array.isArray(t)?{}:t;n.transitionProps=Array.isArray(r)?{compare:r,required:r}:r||{compare:Ku,required:Ju},super(n.transitionProps),this.opts=n}initializeProps(t,r){let n=super.initializeProps(t,r),{makeViewport:i,around:s}=this.opts;if(i&&s){let o=i(t),a=i(r),c=o.unproject(s);n.start.around=s,Object.assign(n.end,{around:a.project(c),aroundPosition:c,width:r.width,height:r.height})}return n}interpolateProps(t,r,n){let i={};for(let s of this._propsToExtract)i[s]=Te(t[s]||0,r[s]||0,n);if(r.aroundPosition&&this.opts.makeViewport){let s=this.opts.makeViewport({...r,...i});Object.assign(i,s.panByPosition(r.aroundPosition,Te(t.around,r.around,n)))}return i}};var xt={transitionDuration:0},tf=300,ef=300,vi=e=>1-(1-e)*(1-e),rf=e=>e===1?1:1-Math.pow(2,-10*e),Ot={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],DOUBLE_CLICK_DRAG:["dblclickdragstart","dblclickdragmove","dblclickdragend","dblclickdragcancel"],KEYBOARD:["keydown"]},Nt={},Fe=class{constructor(t){this.state={};this._events={};this._interactionState={isDragging:!1};this._customEvents=[];this._eventStartBlocked=null;this._panMove=!1;this._multiPanMode=null;this._multiPanStartCenter=null;this._doubleClickDragAnchor=null;this._suppressDoubleClickUntil=0;this.invertPan=!1;this.dragMode="rotate";this.inertia=0;this.scrollZoom=!0;this.dragPan=!0;this.dragRotate=!0;this.doubleClickZoom=!0;this.doubleClickDragZoom=!0;this.touchZoom=!0;this.touchRotate=!1;this.multiTouchDrag=null;this.trackpadGesture=!1;this.zoomAround="pointer";this.keyboard=!0;this.transitionManager=new Ie({...t,getControllerState:(r,n)=>new this.ControllerState({...r,constraintContext:n,makeViewport:t.makeViewport}),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=t.eventManager,this.onViewStateChange=t.onViewStateChange||(()=>{}),this.onStateChange=t.onStateChange||(()=>{}),this.makeViewport=t.makeViewport,this.pickPosition=t.pickPosition}set events(t){this.toggleEvents(this._customEvents,!1),this.toggleEvents(t,!0),this._customEvents=t,this.props&&this.setProps(this.props)}finalize(){for(let t in this._events)this._events[t]&&this.eventManager?.off(t,this.handleEvent);this.transitionManager.finalize()}handleEvent(t){this._controllerState=void 0;let r=this._eventStartBlocked;switch(t.type){case"panstart":return r?!1:this._onPanStart(t);case"panmove":return this._onPan(t);case"panend":return this._onPanEnd(t);case"pinchstart":return r||!this._isTrackpadGestureAllowed(t)?!1:this._onPinchStart(t);case"pinchmove":return this._isTrackpadGestureAllowed(t)?this._onPinch(t):!1;case"pinchend":return this._isTrackpadGestureAllowed(t)?this._onPinchEnd(t):!1;case"multipanstart":return r?!1:this._onMultiPanStart(t);case"multipanmove":return this._onMultiPan(t);case"multipanend":return this._onMultiPanEnd(t);case"dblclick":return this._onDoubleClick(t);case"dblclickdragstart":return r?!1:this._onDoubleClickDragStart(t);case"dblclickdragmove":return this._onDoubleClickDrag(t);case"dblclickdragend":case"dblclickdragcancel":return this._onDoubleClickDragEnd(t);case"wheel":return this._onWheel(t);case"keydown":return this._onKeyDown(t);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(t){let{x:r,y:n}=this.props,{offsetCenter:i}=t;return[i.x-r,i.y-n]}getZoomPosition(t){if(this.zoomAround==="pointer")return t;let r=this.makeViewport(this.controllerState.getViewportProps()),[n,i]=ee(r.center,r.pixelProjectionMatrix);return[n,i]}isPointInBounds(t,r){let{width:n,height:i}=this.props;if(r&&r.handled)return!1;let s=t[0]>=0&&t[0]<=n&&t[1]>=0&&t[1]<=i;return s&&r&&r.stopPropagation(),s}isFunctionKeyPressed(t){let{srcEvent:r}=t;return!!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(t){let r=setTimeout(()=>{this._eventStartBlocked===r&&(this._eventStartBlocked=null)},t);this._eventStartBlocked=r}setProps(t){t.maxBoundsPadding===void 0&&(t.maxBoundsPadding=null),t.dragMode&&(this.dragMode=t.dragMode);let r=this.props;this.props=t,"transitionInterpolator"in t||(t.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(t);let{inertia:n}=t;this.inertia=Number.isFinite(n)?n:n===!0?tf:0;let{scrollZoom:i=!0,dragPan:s=!0,dragRotate:o=!0,doubleClickZoom:a=!0,doubleClickDragZoom:c=!1,touchZoom:l=!0,touchRotate:h=!1,multiTouchDrag:u=h?"rotate":null,trackpadGesture:f=!1,zoomAround:d="pointer",keyboard:p=!0}=t,g=!!this.onViewStateChange;if(this.toggleEvents(Ot.WHEEL,g&&i),this.toggleEvents(Ot.PAN,g),this.toggleEvents(Ot.PINCH,g&&(l||u==="rotate")),this.toggleEvents(Ot.MULTI_PAN,g&&!!u),this.toggleEvents(Ot.DOUBLE_CLICK,g&&a),this.toggleEvents(Ot.DOUBLE_CLICK_DRAG,g&&c),this.toggleEvents(Ot.KEYBOARD,g&&p),this.scrollZoom=i,this.dragPan=s,this.dragRotate=o,this.doubleClickZoom=a,this.doubleClickDragZoom=c,this.touchZoom=l,this.touchRotate=u==="rotate",this.multiTouchDrag=u,this.trackpadGesture=f,this.zoomAround=d,this.keyboard=p,(!r||r.height!==t.height||r.width!==t.width||r.maxBounds!==t.maxBounds||r.maxBoundsPadding!==t.maxBoundsPadding)&&t.maxBounds){let b=new this.ControllerState({...t,makeViewport:this.makeViewport}),_=b.getViewportProps();Object.keys(_).some(w=>!Rt(_[w],t[w],1))&&this.updateViewport(b)}}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(t,r){this.eventManager&&t.forEach(n=>{this._events[n]!==r&&(this._events[n]=r,r?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(t,r=null,n={}){let i={...t.getViewportProps(),...r},s=this.controllerState!==t;if(this.state=t.getState(),this._setInteractionState(n),s){let o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:o,viewId:this.props.id})}}_onTransition(t){this.onViewStateChange({...t,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(t){Object.assign(this._interactionState,t),this.onStateChange(this._interactionState)}_getConstraintContext(t,r){return this.props.rubberBand?{mode:r==="update"?"elastic":r==="end"?"rebound":"hard"}:{mode:"hard"}}_getReboundTransition(t,r){if(t.mode!=="rebound")return null;let n=r.getViewportProps();return Object.keys(n).some(s=>!Rt(this.props[s],n[s],1))?{...this._getTransitionProps(),transitionDuration:ef,transitionEasing:rf}:null}_onPanStart(t){let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.isFunctionKeyPressed(t)||t.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);let i=n?"pan":"rotate",s=this._getConstraintContext(i,"start"),o=n?this.controllerState.panStart({pos:r},s):this.controllerState.rotateStart({pos:r},s);return this._panMove=n,this.updateViewport(o,xt,{isDragging:!0}),!0}_onPan(t){return this.isDragging()?this._panMove?this._onPanMove(t):this._onPanRotate(t):!1}_onPanEnd(t){return this.isDragging()?this._panMove?this._onPanMoveEnd(t):this._onPanRotateEnd(t):!1}_onPanMove(t){if(!this.dragPan)return!1;let r=this.getCenter(t),n=this.controllerState.pan({pos:r},this._getConstraintContext("pan","update"));return this.updateViewport(n,xt,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(t){let{inertia:r}=this;if(this.dragPan&&r&&t.velocity){let n=this.getCenter(t),i=[n[0]+t.velocityX*r/2,n[1]+t.velocityY*r/2],s=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:vi},{isDragging:!1,isPanning:!0})}else{let n=this.controllerState,i=this._getConstraintContext("pan","end"),s=n.panEnd(i),o=this._getReboundTransition(i,s);this.updateViewport(s,o,{isDragging:!1,isPanning:!!o})}return!0}_onPanRotate(t){if(!this.dragRotate)return!1;let r=this.getCenter(t),n=this.controllerState.rotate({pos:r},this._getConstraintContext("rotate","update"));return this.updateViewport(n,xt,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(t){let{inertia:r}=this;if(this.dragRotate&&r&&t.velocity){let n=this.getCenter(t),i=[n[0]+t.velocityX*r/2,n[1]+t.velocityY*r/2],s=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:r,transitionEasing:vi},{isDragging:!1,isRotating:!0})}else{let n=this.controllerState,i=this._getConstraintContext("rotate","end"),s=n.rotateEnd(i),o=this._getReboundTransition(i,s);this.updateViewport(s,o,{isDragging:!1,isRotating:!!o})}return!0}_onWheel(t){if(!this.scrollZoom||this.trackpadGesture&&t.device!=="mouse")return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;t.srcEvent.preventDefault();let{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=t,o=2/(1+Math.exp(-Math.abs(s*n)));s<0&&o!==0&&(o=1/o);let a=this.getZoomPosition(r),c=i?{...this._getTransitionProps({around:a}),transitionDuration:250}:xt,l=this.controllerState.zoom({pos:a,scale:o});return this.updateViewport(l,c,{isZooming:!0,isPanning:!0}),i||this._setInteractionState({isZooming:!1,isPanning:!1}),!0}_onMultiPanStart(t){let{multiTouchDrag:r}=this;if(!r||!this._isMultiPanEventAllowed(t,r))return!1;let n=t.offsetCenter;if(!this.isPointInBounds(this.getCenter(t),t))return!1;let i=t.pointerType==="trackpad",s={x:n.x-(i?0:t.deltaX),y:n.y-(i?0:t.deltaY)},o={...t,offsetCenter:s},a=this.getCenter(o),c=r==="pan"?this.controllerState.panStart({pos:a},this._getConstraintContext("pan","start")):this.controllerState.rotateStart({pos:a},this._getConstraintContext("rotate","start"));return this._multiPanMode=r,this._multiPanStartCenter=s,this.updateViewport(c,xt,{isDragging:!0}),!0}_onMultiPan(t){let{mode:r,event:n}=this._getMultiPanEvent(t);return!r||!n||!this.isDragging()?!1:r==="pan"?this._onPanMove(n):this._onPanRotate(n)}_onMultiPanEnd(t){let{mode:r,event:n}=this._getMultiPanEvent(t);if(!r||!n||!this.isDragging())return this._resetMultiPan(),!1;let i=r==="pan"?this._onPanMoveEnd(n):this._onPanRotateEnd(n);return this._resetMultiPan(),i}_isTrackpadGestureAllowed(t){return t.pointerType!=="trackpad"||this.trackpadGesture}_isMultiPanEventAllowed(t,r){return t.pointerType==="trackpad"?this.trackpadGesture&&(r==="pan"?this.dragPan:this.dragRotate):t.pointerType==="touch"&&(r==="pan"?this.dragPan:this.dragRotate)}_getMultiPanEvent(t){let r=this._multiPanMode,n=this._multiPanStartCenter;return!r||!n?{mode:null,event:null}:{mode:r,event:{...t,offsetCenter:{x:n.x+t.deltaX,y:n.y+t.deltaY}}}}_resetMultiPan(){this._multiPanMode=null,this._multiPanStartCenter=null}_onPinchStart(t){this._doubleClickDragAnchor=null;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.controllerState.zoomStart({pos:this.getZoomPosition(r)},this._getConstraintContext("zoom","start")).rotateStart({pos:r},this._getConstraintContext("rotate","start"));return Nt._startPinchRotation=t.rotation,Nt._lastPinchEvent=t,this.updateViewport(n,xt,{isDragging:!0}),!0}_onPinch(t){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let r=this.controllerState;if(this.touchZoom){let{scale:n}=t,i=this.getCenter(t);r=r.zoom({pos:this.getZoomPosition(i),scale:n},this._getConstraintContext("zoom","update"))}if(this.touchRotate){let{rotation:n}=t;r=r.rotate({deltaAngleX:Nt._startPinchRotation-n},this._getConstraintContext("rotate","update"))}return this.updateViewport(r,xt,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),Nt._lastPinchEvent=t,!0}_onPinchEnd(t){if(!this.isDragging())return!1;let{inertia:r}=this,{_lastPinchEvent:n}=Nt;if(this.touchZoom&&r&&n&&t.scale!==n.scale){let i=this.getCenter(t),s=this.getZoomPosition(i),o=this.controllerState.rotateEnd(),a=Math.log2(t.scale),c=(a-Math.log2(n.scale))/(t.deltaTime-n.deltaTime),l=Math.pow(2,a+c*r/2);o=o.zoom({pos:s,scale:l}).zoomEnd(),this.updateViewport(o,{...this._getTransitionProps({around:s}),transitionDuration:r,transitionEasing:vi},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(r)}else{let i=this.controllerState,s=this._getConstraintContext("zoom","end"),o=this._getConstraintContext("rotate","end"),a=i.zoomEnd(s).rotateEnd(o),c=this._getReboundTransition(this.touchZoom?s:o,a);this.updateViewport(a,c,{isDragging:!1,isPanning:!!c&&this.touchZoom,isZooming:!!c&&this.touchZoom,isRotating:!!c&&this.touchRotate})}return Nt._startPinchRotation=null,Nt._lastPinchEvent=null,!0}_onDoubleClick(t){if(!this.doubleClickZoom||Date.now()<this._suppressDoubleClickUntil)return!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return!1;let n=this.isFunctionKeyPressed(t),i=this.getZoomPosition(r),s=this.controllerState.zoom({pos:i,scale:n?.5:2});return this.updateViewport(s,this._getTransitionProps({around:i}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onDoubleClickDragStart(t){if(!this.doubleClickDragZoom)return this._doubleClickDragAnchor=null,!1;let r=this.getCenter(t);if(!this.isPointInBounds(r,t))return this._doubleClickDragAnchor=null,!1;this._doubleClickDragAnchor=this.getZoomPosition(r);let n=this.controllerState.zoomStart({pos:this._doubleClickDragAnchor},this._getConstraintContext("zoom","start"));return t.scale!==1&&(n=n.zoom({pos:this._doubleClickDragAnchor,scale:t.scale},this._getConstraintContext("zoom","update"))),this.updateViewport(n,xt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDrag(t){let r=this._doubleClickDragAnchor;if(!r)return!1;let n=this.controllerState.zoom({pos:r,scale:t.scale},this._getConstraintContext("zoom","update"));return this.updateViewport(n,xt,{isDragging:!0,isPanning:!0,isZooming:!0}),!0}_onDoubleClickDragEnd(t){if(!this._doubleClickDragAnchor)return!1;this._doubleClickDragAnchor=null;let n=this.controllerState,i=this._getConstraintContext("zoom","end"),s=n.zoomEnd(i),o=this._getReboundTransition(i,s);return this.updateViewport(s,o,{isDragging:!1,isPanning:!!o,isZooming:!!o}),this._suppressDoubleClickUntil=Date.now()+100,this.blockEvents(100),!0}_onKeyDown(t){if(!this.keyboard)return!1;let r=this.isFunctionKeyPressed(t),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:a}=this,c,l={};switch(t.srcEvent.code){case"Minus":c=r?a.zoomOut(n).zoomOut(n):a.zoomOut(n),l.isZooming=!0;break;case"Equal":c=r?a.zoomIn(n).zoomIn(n):a.zoomIn(n),l.isZooming=!0;break;case"ArrowLeft":r?(c=a.rotateLeft(s),l.isRotating=!0):(c=a.moveLeft(i),l.isPanning=!0);break;case"ArrowRight":r?(c=a.rotateRight(s),l.isRotating=!0):(c=a.moveRight(i),l.isPanning=!0);break;case"ArrowUp":r?(c=a.rotateUp(o),l.isRotating=!0):(c=a.moveUp(i),l.isPanning=!0);break;case"ArrowDown":r?(c=a.rotateDown(o),l.isRotating=!0):(c=a.moveDown(i),l.isPanning=!0);break;default:return!1}return this.updateViewport(c,this._getTransitionProps(),l),!0}_getTransitionProps(t){let{transition:r}=this;return!r||!r.transitionInterpolator?xt:t?{...r,transitionInterpolator:new Ft({...t,...r.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:r}};var ie=Symbol("constraintAround"),Oe=class{constructor(t,r,n,i){this.makeViewport=n,this._viewportProps=this.applyConstraints(t,i),this._state=r}getViewportProps(){return this._viewportProps}getState(){return this._state}};function Qr(e,t,r){let n=e-t;return n&&Number.isFinite(n)?t+n*r/(r+Math.abs(n)):t}function Si(e,t,r){let n=j($(r?.left??0),e),i=j($(r?.right??0),e),s=j($(r?.top??0),t),o=j($(r?.bottom??0),t);return{x:n,y:s,width:e-n-i,height:t-s-o}}function Ea(e,t,r){let[n,i]=e.project(t);return n=Number.isFinite(n)?n:e.width/2,i=Number.isFinite(i)?i:e.height/2,{left:n-r.x,right:r.x+r.width-n,top:i-r.y,bottom:r.y+r.height-i}}var Ta=5,nf=1.2,_a=512,va=[[-1/0,-90],[1/0,90]],sf=1;function Ne([e,t]){if(Math.abs(t)>90&&(t=Math.sign(t)*90),Number.isFinite(e)){let[n,i]=tt([e,t]);return[n,Y(i,0,_a)]}let[,r]=tt([0,t]);return[e,Y(r,0,_a)]}var Mi=class extends Oe{constructor(t){let{width:r,height:n,latitude:i,longitude:s,zoom:o,bearing:a=0,pitch:c=0,altitude:l=1.5,position:h=[0,0,0],maxZoom:u=20,minZoom:f=0,maxPitch:d=60,minPitch:p=0,startPanLngLat:g,startZoomLngLat:m,startRotatePos:b,startRotateLngLat:_,startBearing:y,startPitch:w,startZoom:v,normalize:E=!0,rubberBand:x=!1}=t,{[ie]:T}=t;Bt(Number.isFinite(s)),Bt(Number.isFinite(i)),Bt(Number.isFinite(o));let M=t.maxBounds||(E?va:null),S=t.maxBoundsPadding||null;super({width:r,height:n,latitude:i,longitude:s,zoom:o,bearing:a,pitch:c,altitude:l,maxZoom:u,minZoom:f,maxPitch:d,minPitch:p,normalize:E,position:h,maxBounds:M,maxBoundsPadding:S,rubberBand:x,[ie]:T},{startPanLngLat:g,startZoomLngLat:m,startRotatePos:b,startRotateLngLat:_,startBearing:y,startPitch:w,startZoom:v},t.makeViewport,t.constraintContext),this.getAltitude=t.getAltitude}panStart({pos:t},r){return this._getUpdatedState({startPanLngLat:this._unproject(t)},r)}pan({pos:t,startPos:r},n){let i=this.getState().startPanLngLat||this._unproject(r);if(!i)return this;let o=this.makeViewport(this.getViewportProps()).panByPosition(i,t);return this._getUpdatedState(o,n)}panEnd(t){return this._getUpdatedState({startPanLngLat:null},t)}rotateStart({pos:t}){let r=this.getAltitude?.(t);return this._getUpdatedState({startRotatePos:t,startRotateLngLat:r!==void 0?this._unproject3D(t,r):void 0,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:t,deltaAngleX:r=0,deltaAngleY:n=0}){let{startRotatePos:i,startRotateLngLat:s,startBearing:o,startPitch:a}=this.getState();if(!i||o===void 0||a===void 0)return this;let c;if(t?c=this._getNewRotation(t,i,a,o):c={bearing:o+r,pitch:a+n},s){let l=this.makeViewport({...this.getViewportProps(),...c}),h="panByPosition3D"in l?"panByPosition3D":"panByPosition";return this._getUpdatedState({...c,...l[h](s,i)})}return this._getUpdatedState(c)}rotateEnd(){return this._getUpdatedState({startRotatePos:null,startRotateLngLat:null,startBearing:null,startPitch:null})}zoomStart({pos:t},r){return this._getUpdatedState({startZoomLngLat:this._unproject(t),startZoom:this.getViewportProps().zoom},r)}zoom({pos:t,startPos:r,scale:n},i){let{startZoom:s,startZoomLngLat:o}=this.getState();return o||(s=this.getViewportProps().zoom,o=this._unproject(r)||this._unproject(t)),o?this._getUpdatedState({zoom:s+Math.log2(n),[ie]:{position:o,screenPosition:t}},i):this}zoomEnd(t){return this._getUpdatedState({startZoomLngLat:null,startZoom:null},t)}zoomIn(t=2,r){return this._zoomFromCenter(t,r)}zoomOut(t=2,r){return this._zoomFromCenter(1/t,r)}moveLeft(t=100,r){return this._panFromCenter([t,0],r)}moveRight(t=100,r){return this._panFromCenter([-t,0],r)}moveUp(t=100,r){return this._panFromCenter([0,t],r)}moveDown(t=100,r){return this._panFromCenter([0,-t],r)}rotateLeft(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-t})}rotateRight(t=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+t})}rotateUp(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+t})}rotateDown(t=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-t})}shortestPathFrom(t){let r=t.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:s}=n;return Math.abs(i-r.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(s-r.longitude)>180&&(n.longitude=s<0?s+360:s-360),n}applyConstraints(t,r){let n=t,i=n[ie];delete n[ie];let{maxPitch:s,minPitch:o,pitch:a,bearing:c,normalize:l,maxBounds:h,rubberBand:u}=t;l&&(c<-180||c>180)&&(t.bearing=di(c+180,360)-180),t.pitch=Y(a,o,s);let f=this._constrainZoom(t.zoom,t),d=u&&r?.mode==="elastic";if(t.zoom=r?.mode==="preserve"?t.zoom:d?Qr(t.zoom,f,sf):f,i){let p=this.makeViewport(t);Object.assign(t,p.panByPosition(i.position,i.screenPosition))}if(l&&(t.longitude<-180||t.longitude>180)&&(t.longitude=di(t.longitude+180,360)-180),h){let p=Si(t.width,t.height,t.maxBoundsPadding),g=this.makeViewport({...t,bearing:0,pitch:0}),m=Ea(g,[t.longitude,t.latitude],p),b=Ne(h[0]),_=Ne(h[1]),y=2**t.zoom,w=[b[0]+m.left/y,b[1]+m.bottom/y],v=[_[0]-m.right/y,_[1]-m.top/y],E=Ne([t.longitude,t.latitude]),x=[Y(E[0],w[0],v[0]),Y(E[1],w[1],v[1])],T=E.slice();if(p.width>=0&&(T[0]=r?.mode==="preserve"?E[0]:d?Qr(E[0],x[0],p.width/2/y):x[0]),p.height>=0&&(T[1]=r?.mode==="preserve"?E[1]:d?Qr(E[1],x[1],p.height/2/y):x[1]),T[0]!==E[0]||T[1]!==E[1]){let[M,S]=X(T);T[0]!==E[0]&&(t.longitude=M),T[1]!==E[1]&&(t.latitude=S)}}return t}_constrainZoom(t,r){r||=this.getViewportProps();let{maxZoom:n,maxBounds:i}=r,s=i!==null&&r.width>0&&r.height>0,{minZoom:o}=r;if(s){let a=Si(r.width,r.height,r.maxBoundsPadding),c=Ne(i[0]),l=Ne(i[1]),h=l[0]-c[0],u=l[1]-c[1];a.width>0&&Number.isFinite(h)&&h>0&&(o=Math.max(o,Math.log2(a.width/h))),a.height>0&&Number.isFinite(u)&&u>0&&(o=Math.max(o,Math.log2(a.height/u))),o>n&&(o=n)}return Y(t,o,n)}_zoomFromCenter(t,r){let{width:n,height:i}=this.getViewportProps();return this.zoom({pos:[n/2,i/2],scale:t},r)}_panFromCenter(t,r){let{width:n,height:i}=this.getViewportProps();return this.pan({startPos:[n/2,i/2],pos:[n/2+t[0],i/2+t[1]]},r)}_getUpdatedState(t,r){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...t,constraintContext:r})}_unproject(t){let r=this.makeViewport(this.getViewportProps());return t&&r.unproject(t)}_unproject3D(t,r){return this.makeViewport(this.getViewportProps()).unproject(t,{targetZ:r})}_getNewRotation(t,r,n,i){let s=t[0]-r[0],o=t[1]-r[1],a=t[1],c=r[1],{width:l,height:h}=this.getViewportProps(),u=s/l,f=0;o>0?Math.abs(h-c)>Ta&&(f=o/(c-h)*nf):o<0&&c>Ta&&(f=1-a/c),f=Y(f,-1,1);let{minPitch:d,maxPitch:p}=this.getViewportProps(),g=i+180*u,m=n;return f>0?m=n+f*(p-n):f<0&&(m=n-f*(d-n)),{pitch:m,bearing:g}}},Ve=class extends Fe{constructor(){super(...arguments);this.ControllerState=Mi;this.transition={transitionDuration:300,transitionInterpolator:new Ft({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})};this.dragMode="pan";this.rotationPivot="center";this._getAltitude=r=>{if(this.rotationPivot==="2d")return 0;if(this.rotationPivot==="3d"&&this.pickPosition){let{x:n,y:i}=this.props,s=this.pickPosition(n+r[0],i+r[1]);if(s&&s.coordinate&&s.coordinate.length>=3)return s.coordinate[2]}}}setProps(r){"rotationPivot"in r&&(this.rotationPivot=r.rotationPivot||"center"),r.getAltitude=this._getAltitude,r.position=r.position||[0,0,0],r.maxBounds=r.maxBounds||(r.normalize===!1?null:va),super.setProps(r)}updateViewport(r,n=null,i={}){let s=r.getState();i.isDragging&&s.startRotateLngLat?i={...i,rotationPivotPosition:s.startRotateLngLat}:i.isDragging===!1&&(i={...i,rotationPivotPosition:void 0}),super.updateViewport(r,n,i)}};var se=class extends Ee{constructor(t={}){super(t)}getViewportType(){return ke}get ControllerType(){return Ve}};se.displayName="MapView";var of=5916575505e-1,af=78271.484,Kr=111320,cf=55*Math.PI/180,lf=65,hf=80;function uf(e,t){let r=(e.latitude+t.latitude)/2*Math.PI/180,n=(e.latitude-t.latitude)*Kr,i=(e.longitude-t.longitude)*Kr*Math.cos(r);return Math.sqrt(n*n+i*i)}function ff(e,t,r,n,i){let s=e.toMap({x:n/2,y:i/2}),o=e.toMap({x:n/2+1,y:i/2});if(s&&o){let a=uf(s,o);if(a>0){let c=r*Math.PI/180;return Math.log2(af*Math.cos(c)/a)}}return Math.log2(of/e.scale)-1}function df(e,t,r){let n=Math.max(0,Math.min(1,(r-e)/(t-e)));return n*n*(3-2*n)}function mf(e,t){let r=e/t;return .5/(Math.tan(cf/2)/Math.sqrt(1+r*r))}function pf(e,t,r,n){let i=mf(r,n),s=df(lf,hf,e);return t*(1-s)+i*s}function gf(e,t,r,n,i,s){return{views:new se({id:"arcgis-scene"}),viewState:{"arcgis-scene":{id:"arcgis-scene",longitude:t,latitude:r,zoom:n,pitch:e.camera.tilt,bearing:e.camera.heading,altitude:s,position:[0,0,0],resolution:i}}}}function Pi(e,t){class r{constructor(i,s){if(this.resources=null,this.cancelInitialization=null,this.renderNode=null,i&&typeof i=="object"&&"view"in i){let{view:l,...h}=i;this.view=l,this.deck=new e(h)}else this.view=i,this.deck=new e(s);let o=!1,a=this,c=t.createSubclass({consumes:{required:["composite-color"]},produces:"composite-color",initialize(){},render(l){let h=this,u=l.find(B=>B.name==="composite-color");if(!a.resources&&!o){let B=h.gl;if(B){o=!0;let ht=!1;a.cancelInitialization=()=>{ht=!0},Rr.call(a,B).then(H=>{if(o=!1,ht){$t(H);return}a.deck.on("change",ze=>H.deck.setProps(ze)),H.deck.setProps(a.deck.toJSON()),a.resources=H,h.requestRender()}).catch(H=>{o=!1,console.error("DeckRenderer: failed to initialize resources",H)})}return u}if(!a.resources)return u;let f=h.bindRenderTarget(),d=h.gl,p=window.devicePixelRatio||1,g=d.drawingBufferWidth/p,m=d.drawingBufferHeight/p,b=a.view.camera.position,_=a.view.toMap({x:g/2,y:m/2}),y=_?_.latitude:a.view.center.latitude,w=_?_.longitude:a.view.center.longitude,v=(y+b.latitude)/2*Math.PI/180,E=(b.latitude-y)*Kr,x=(b.longitude-w)*Kr*Math.cos(v),T=Math.sqrt(E*E+x*x),M=Math.sqrt(T*T+b.z*b.z),S=ff(a.view,w,y,g,m),C=m*a.view.resolution,L=M/C,R=pf(a.view.camera.tilt,L,g,m),A=gf(a.view,w,y,S,a.view.resolution,R);try{A?we(a.resources,{width:g,height:m,latitude:y,longitude:w,altitude:R,zoom:S,bearing:a.view.camera.heading,pitch:a.view.camera.tilt,...A}):we(a.resources,{width:g,height:m,latitude:y,longitude:w,altitude:R,zoom:S,bearing:a.view.camera.heading,pitch:a.view.camera.tilt})}catch(B){console.error("DeckRenderer: render error",B)}return f}});this.renderNode=new c({view:this.view})}async setup(i){}dispose(){this.cancelInitialization?.(),this.resources&&($t(this.resources),this.resources=null),this.renderNode=null}redraw(){this.renderNode?.requestRender()}render(){this.renderNode?.requestRender()}}return r}var Ci=D(Ma(),1),oe;async function bf(e,t){let r=Array.isArray(e)?null:e;return await xf(r,t),Array.isArray(e)?(0,Ci.loadModules)(e,t).then(n=>({...oe,modules:n})):oe}async function xf(e,t){if(oe)return oe;if(e){let o=e.layers.Layer,a=e.core.Accessor,c=e.views["2d"].layers.BaseLayerViewGL2D,l=e.views["3d"].webgl.RenderNode;return Pa(o,a,c,l)}let[r,n,i,s]=await(0,Ci.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/webgl/RenderNode"],t);return Pa(r,n,i,s)}function Pa(e,t,r,n){let i=tn(t),s=kn(r),o=en(i,e,s),a=Pi(i,n);return oe={DeckLayer:o,DeckRenderer:a},oe}return Da(Ge);})();
|
|
30
30
|
return __exports__;
|
|
31
31
|
});
|