@mml-io/3d-web-threejs 0.0.0-experimental-2a3c26b-20251217

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/LICENSE +19 -0
  2. package/build/ThreeJSWorldRenderer.d.ts +55 -0
  3. package/build/ThreeJSWorldRenderer.d.ts.map +1 -0
  4. package/build/camera/ThreeJSCameraManager.d.ts +16 -0
  5. package/build/camera/ThreeJSCameraManager.d.ts.map +1 -0
  6. package/build/character/CanvasText.d.ts +35 -0
  7. package/build/character/CanvasText.d.ts.map +1 -0
  8. package/build/character/Character.d.ts +59 -0
  9. package/build/character/Character.d.ts.map +1 -0
  10. package/build/character/CharacterMaterial.d.ts +20 -0
  11. package/build/character/CharacterMaterial.d.ts.map +1 -0
  12. package/build/character/CharacterModel.d.ts +47 -0
  13. package/build/character/CharacterModel.d.ts.map +1 -0
  14. package/build/character/CharacterTooltip.d.ts +33 -0
  15. package/build/character/CharacterTooltip.d.ts.map +1 -0
  16. package/build/character/LowPolyModel.d.ts +2 -0
  17. package/build/character/LowPolyModel.d.ts.map +1 -0
  18. package/build/character/ThreeJSCharacterManager.d.ts +51 -0
  19. package/build/character/ThreeJSCharacterManager.d.ts.map +1 -0
  20. package/build/character/instancing/CharacterColourSamplingUtils.d.ts +15 -0
  21. package/build/character/instancing/CharacterColourSamplingUtils.d.ts.map +1 -0
  22. package/build/character/instancing/CharacterInstances.d.ts +92 -0
  23. package/build/character/instancing/CharacterInstances.d.ts.map +1 -0
  24. package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts +8 -0
  25. package/build/character/instancing/CharacterInstancingAnimationUtils.d.ts.map +1 -0
  26. package/build/character/instancing/CharacterInstancingUtils.d.ts +4 -0
  27. package/build/character/instancing/CharacterInstancingUtils.d.ts.map +1 -0
  28. package/build/character/instancing/vendor/core/InstancedEntity.d.ts +192 -0
  29. package/build/character/instancing/vendor/core/InstancedEntity.d.ts.map +1 -0
  30. package/build/character/instancing/vendor/core/InstancedMesh2.d.ts +362 -0
  31. package/build/character/instancing/vendor/core/InstancedMesh2.d.ts.map +1 -0
  32. package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts +146 -0
  33. package/build/character/instancing/vendor/core/InstancedMeshBVH.d.ts.map +1 -0
  34. package/build/character/instancing/vendor/core/feature/Capacity.d.ts +14 -0
  35. package/build/character/instancing/vendor/core/feature/Capacity.d.ts.map +1 -0
  36. package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts +38 -0
  37. package/build/character/instancing/vendor/core/feature/FrustumCulling.d.ts.map +1 -0
  38. package/build/character/instancing/vendor/core/feature/Instances.d.ts +50 -0
  39. package/build/character/instancing/vendor/core/feature/Instances.d.ts.map +1 -0
  40. package/build/character/instancing/vendor/core/feature/LOD.d.ts +90 -0
  41. package/build/character/instancing/vendor/core/feature/LOD.d.ts.map +1 -0
  42. package/build/character/instancing/vendor/core/feature/Morph.d.ts +19 -0
  43. package/build/character/instancing/vendor/core/feature/Morph.d.ts.map +1 -0
  44. package/build/character/instancing/vendor/core/feature/Raycasting.d.ts +8 -0
  45. package/build/character/instancing/vendor/core/feature/Raycasting.d.ts.map +1 -0
  46. package/build/character/instancing/vendor/core/feature/Skeleton.d.ts +20 -0
  47. package/build/character/instancing/vendor/core/feature/Skeleton.d.ts.map +1 -0
  48. package/build/character/instancing/vendor/core/feature/Uniforms.d.ts +43 -0
  49. package/build/character/instancing/vendor/core/feature/Uniforms.d.ts.map +1 -0
  50. package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts +43 -0
  51. package/build/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.d.ts.map +1 -0
  52. package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts +26 -0
  53. package/build/character/instancing/vendor/core/utils/InstancedRenderList.d.ts.map +1 -0
  54. package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts +157 -0
  55. package/build/character/instancing/vendor/core/utils/SquareDataTexture.d.ts.map +1 -0
  56. package/build/character/instancing/vendor/index.d.ts +26 -0
  57. package/build/character/instancing/vendor/index.d.ts.map +1 -0
  58. package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts +2 -0
  59. package/build/character/instancing/vendor/shaders/ShaderChunk.d.ts.map +1 -0
  60. package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts +2 -0
  61. package/build/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.d.ts.map +1 -0
  62. package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts +2 -0
  63. package/build/character/instancing/vendor/shaders/chunks/instanced_color_vertex.d.ts.map +1 -0
  64. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts +2 -0
  65. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.d.ts.map +1 -0
  66. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts +2 -0
  67. package/build/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.d.ts.map +1 -0
  68. package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts +2 -0
  69. package/build/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.d.ts.map +1 -0
  70. package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts +2 -0
  71. package/build/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.d.ts.map +1 -0
  72. package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts +2 -0
  73. package/build/character/instancing/vendor/shaders/chunks/instanced_vertex.d.ts.map +1 -0
  74. package/build/character/instancing/vendor/utils/CreateFrom.d.ts +10 -0
  75. package/build/character/instancing/vendor/utils/CreateFrom.d.ts.map +1 -0
  76. package/build/character/instancing/vendor/utils/SortingUtils.d.ts +17 -0
  77. package/build/character/instancing/vendor/utils/SortingUtils.d.ts.map +1 -0
  78. package/build/character/loading/CharacterModelLoader.d.ts +12 -0
  79. package/build/character/loading/CharacterModelLoader.d.ts.map +1 -0
  80. package/build/character/loading/GLTFLoadingWorker.worker.d.ts +3 -0
  81. package/build/character/loading/GLTFLoadingWorker.worker.d.ts.map +1 -0
  82. package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts +9 -0
  83. package/build/character/loading/GLTFLoadingWorkerBrowserCache.d.ts.map +1 -0
  84. package/build/character/loading/GLTFLoadingWorkerPool.d.ts +23 -0
  85. package/build/character/loading/GLTFLoadingWorkerPool.d.ts.map +1 -0
  86. package/build/character/loading/GLTFLoadingWorkerTypes.d.ts +19 -0
  87. package/build/character/loading/GLTFLoadingWorkerTypes.d.ts.map +1 -0
  88. package/build/collisions/ThreeJSCollisionManager.d.ts +18 -0
  89. package/build/collisions/ThreeJSCollisionManager.d.ts.map +1 -0
  90. package/build/composer.d.ts +108 -0
  91. package/build/composer.d.ts.map +1 -0
  92. package/build/ground-plane/GroundPlane.d.ts +10 -0
  93. package/build/ground-plane/GroundPlane.d.ts.map +1 -0
  94. package/build/index.d.ts +2 -0
  95. package/build/index.d.ts.map +1 -0
  96. package/build/index.js +10494 -0
  97. package/build/index.js.map +7 -0
  98. package/build/mml/ThreeJSMMLCompositionScene.d.ts +32 -0
  99. package/build/mml/ThreeJSMMLCompositionScene.d.ts.map +1 -0
  100. package/build/mml/ThreeJSMMLManager.d.ts +20 -0
  101. package/build/mml/ThreeJSMMLManager.d.ts.map +1 -0
  102. package/build/post-effects/PostProcessingManager.d.ts +102 -0
  103. package/build/post-effects/PostProcessingManager.d.ts.map +1 -0
  104. package/build/post-effects/bright-contrast-sat.d.ts +3 -0
  105. package/build/post-effects/bright-contrast-sat.d.ts.map +1 -0
  106. package/build/post-effects/gauss-grain.d.ts +3 -0
  107. package/build/post-effects/gauss-grain.d.ts.map +1 -0
  108. package/build/post-effects/n8-ssao/BlueNoise.d.ts +2 -0
  109. package/build/post-effects/n8-ssao/BlueNoise.d.ts.map +1 -0
  110. package/build/post-effects/n8-ssao/DepthDownSample.d.ts +18 -0
  111. package/build/post-effects/n8-ssao/DepthDownSample.d.ts.map +1 -0
  112. package/build/post-effects/n8-ssao/EffectCompositer.d.ts +40 -0
  113. package/build/post-effects/n8-ssao/EffectCompositer.d.ts.map +1 -0
  114. package/build/post-effects/n8-ssao/EffectShader.d.ts +32 -0
  115. package/build/post-effects/n8-ssao/EffectShader.d.ts.map +1 -0
  116. package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts +12 -0
  117. package/build/post-effects/n8-ssao/FullScreenTriangle.d.ts.map +1 -0
  118. package/build/post-effects/n8-ssao/N8SSAOPass.d.ts +66 -0
  119. package/build/post-effects/n8-ssao/N8SSAOPass.d.ts.map +1 -0
  120. package/build/post-effects/n8-ssao/PoissionBlur.d.ts +31 -0
  121. package/build/post-effects/n8-ssao/PoissionBlur.d.ts.map +1 -0
  122. package/build/shaders/bayer-dither.d.ts +2 -0
  123. package/build/shaders/bayer-dither.d.ts.map +1 -0
  124. package/build/shaders/shader-helpers.d.ts +5 -0
  125. package/build/shaders/shader-helpers.d.ts.map +1 -0
  126. package/build/shaders/vertex-shader.d.ts +2 -0
  127. package/build/shaders/vertex-shader.d.ts.map +1 -0
  128. package/build/sun/Sun.d.ts +21 -0
  129. package/build/sun/Sun.d.ts.map +1 -0
  130. package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts +31 -0
  131. package/build/tweakpane/ThreeJSTweakPaneFolders.d.ts.map +1 -0
  132. package/build/tweakpane/blades/collisionsStatsFolder.d.ts +10 -0
  133. package/build/tweakpane/blades/collisionsStatsFolder.d.ts.map +1 -0
  134. package/build/tweakpane/blades/effects/bcsFolder.d.ts +15 -0
  135. package/build/tweakpane/blades/effects/bcsFolder.d.ts.map +1 -0
  136. package/build/tweakpane/blades/effects/bloomAndGrain.d.ts +15 -0
  137. package/build/tweakpane/blades/effects/bloomAndGrain.d.ts.map +1 -0
  138. package/build/tweakpane/blades/effects/ssaoFolder.d.ts +52 -0
  139. package/build/tweakpane/blades/effects/ssaoFolder.d.ts.map +1 -0
  140. package/build/tweakpane/blades/effects/toneMappingFolder.d.ts +22 -0
  141. package/build/tweakpane/blades/effects/toneMappingFolder.d.ts.map +1 -0
  142. package/build/tweakpane/blades/environmentFolder.d.ts +58 -0
  143. package/build/tweakpane/blades/environmentFolder.d.ts.map +1 -0
  144. package/build/tweakpane/blades/postProcessingFolder.d.ts +34 -0
  145. package/build/tweakpane/blades/postProcessingFolder.d.ts.map +1 -0
  146. package/build/tweakpane/blades/rendererFolder.d.ts +17 -0
  147. package/build/tweakpane/blades/rendererFolder.d.ts.map +1 -0
  148. package/build/tweakpane/blades/rendererStatsFolder.d.ts +10 -0
  149. package/build/tweakpane/blades/rendererStatsFolder.d.ts.map +1 -0
  150. package/package.json +44 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ThreeJSWorldRenderer.ts", "../src/camera/ThreeJSCameraManager.ts", "../src/character/Character.ts", "../src/character/CharacterModel.ts", "../src/character/CharacterMaterial.ts", "../src/shaders/bayer-dither.ts", "../src/shaders/shader-helpers.ts", "../src/character/instancing/CharacterColourSamplingUtils.ts", "../src/character/CharacterTooltip.ts", "../src/character/CanvasText.ts", "../src/character/LowPolyModel.ts", "../src/character/loading/CharacterModelLoader.ts", "worker:/home/runner/work/3d-web-experience/3d-web-experience/packages/3d-web-threejs/src/character/loading/GLTFLoadingWorker.worker", "../src/character/loading/GLTFLoadingWorkerPool.ts", "../src/character/ThreeJSCharacterManager.ts", "../src/character/instancing/CharacterInstances.ts", "../src/character/instancing/CharacterInstancingAnimationUtils.ts", "../src/character/instancing/CharacterInstancingUtils.ts", "../src/character/instancing/vendor/core/InstancedEntity.ts", "../src/character/instancing/vendor/core/InstancedMesh2.ts", "../src/character/instancing/vendor/core/InstancedMeshBVH.ts", "../src/character/instancing/vendor/core/utils/GLInstancedBufferAttribute.ts", "../src/character/instancing/vendor/core/utils/SquareDataTexture.ts", "../src/character/instancing/vendor/core/feature/Capacity.ts", "../src/character/instancing/vendor/core/feature/FrustumCulling.ts", "../src/character/instancing/vendor/utils/SortingUtils.ts", "../src/character/instancing/vendor/core/utils/InstancedRenderList.ts", "../src/character/instancing/vendor/core/feature/LOD.ts", "../src/character/instancing/vendor/core/feature/Morph.ts", "../src/character/instancing/vendor/core/feature/Raycasting.ts", "../src/character/instancing/vendor/core/feature/Skeleton.ts", "../src/character/instancing/vendor/core/feature/Uniforms.ts", "../src/character/instancing/vendor/core/feature/Instances.ts", "../src/character/instancing/vendor/shaders/ShaderChunk.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_color_pars_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_color_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_material_color_pars_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_material_color_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_pars_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_skinning_pars_vertex.ts", "../src/character/instancing/vendor/shaders/chunks/instanced_vertex.ts", "../src/character/instancing/vendor/utils/CreateFrom.ts", "../src/collisions/ThreeJSCollisionManager.ts", "../src/composer.ts", "../src/post-effects/PostProcessingManager.ts", "../src/tweakpane/blades/effects/bcsFolder.ts", "../src/tweakpane/blades/effects/bloomAndGrain.ts", "../src/tweakpane/blades/effects/ssaoFolder.ts", "../src/tweakpane/blades/effects/toneMappingFolder.ts", "../src/tweakpane/blades/postProcessingFolder.ts", "../src/post-effects/bright-contrast-sat.ts", "../src/shaders/vertex-shader.ts", "../src/post-effects/gauss-grain.ts", "../src/post-effects/n8-ssao/N8SSAOPass.ts", "../src/post-effects/n8-ssao/BlueNoise.ts", "../src/post-effects/n8-ssao/DepthDownSample.ts", "../src/post-effects/n8-ssao/EffectCompositer.ts", "../src/post-effects/n8-ssao/EffectShader.ts", "../src/post-effects/n8-ssao/FullScreenTriangle.ts", "../src/post-effects/n8-ssao/PoissionBlur.ts", "../src/sun/Sun.ts", "../src/tweakpane/blades/environmentFolder.ts", "../src/tweakpane/blades/rendererFolder.ts", "../src/ground-plane/GroundPlane.ts", "../src/mml/ThreeJSMMLCompositionScene.ts", "../src/mml/ThreeJSMMLManager.ts", "../src/tweakpane/ThreeJSTweakPaneFolders.ts", "../src/tweakpane/blades/collisionsStatsFolder.ts", "../src/tweakpane/blades/rendererStatsFolder.ts"],
4
+ "sourcesContent": ["import {\n CameraManager,\n CollisionsManager,\n IRenderer,\n MMLDocumentConfiguration,\n RendererConfig,\n RenderState,\n TweakPane,\n} from \"@mml-io/3d-web-client-core\";\nimport { LoadingProgressManager } from \"@mml-io/mml-web\";\nimport { AudioListener, Group, Scene, Vector3 } from \"three\";\n\nimport { ThreeJSCameraManager } from \"./camera/ThreeJSCameraManager\";\nimport { Character, LoadedAnimations } from \"./character/Character\";\nimport { CharacterModelLoader } from \"./character/loading/CharacterModelLoader\";\nimport { ThreeJSCharacterManager } from \"./character/ThreeJSCharacterManager\";\nimport { ThreeJSCollisionManager } from \"./collisions/ThreeJSCollisionManager\";\nimport { Composer } from \"./composer\";\nimport { GroundPlane } from \"./ground-plane/GroundPlane\";\nimport { ThreeJSMMLCompositionScene } from \"./mml/ThreeJSMMLCompositionScene\";\nimport { ThreeJSMMLManager } from \"./mml/ThreeJSMMLManager\";\nimport { ThreeJSTweakPaneFolders } from \"./tweakpane/ThreeJSTweakPaneFolders\";\n\nexport interface ThreeJSRendererOptions {\n targetElement: HTMLElement;\n coreCameraManager: CameraManager;\n collisionsManager: CollisionsManager;\n config: RendererConfig;\n tweakPane?: TweakPane | null;\n mmlTargetWindow: Window;\n mmlTargetElement: HTMLElement;\n loadingProgressManager: LoadingProgressManager | null;\n mmlDocuments: { [key: string]: MMLDocumentConfiguration };\n mmlAuthToken: string | null;\n}\n\nexport class ThreeJSWorldRenderer implements IRenderer {\n private scene: Scene = new Scene();\n private composer: Composer;\n private audioListener = new AudioListener();\n private characterGroup: Group = new Group();\n private groundPlane: GroundPlane | null = null;\n private tweakPane: TweakPane | null = null;\n\n private characterModelLoader: CharacterModelLoader;\n private animationsPromise: Promise<LoadedAnimations>;\n private config: RendererConfig;\n private localCharacterId: number | null = null;\n\n public mmlCompositionScene: ThreeJSMMLCompositionScene;\n\n private threeJSCollisionManager: ThreeJSCollisionManager;\n private threeJSTweakPaneProvider: ThreeJSTweakPaneFolders | null = null;\n private threeJSCameraManager: ThreeJSCameraManager;\n private coreCameraManager: CameraManager;\n private loadingProgressManager: LoadingProgressManager | null = null;\n private targetElement: HTMLElement;\n private collisionsManager: CollisionsManager;\n private mmlTargetWindow: Window;\n private mmlTargetElement: HTMLElement;\n\n private characterManager: ThreeJSCharacterManager;\n private mmlManager: ThreeJSMMLManager;\n\n constructor({\n targetElement,\n coreCameraManager,\n collisionsManager,\n config,\n tweakPane = null,\n mmlTargetWindow,\n mmlTargetElement,\n loadingProgressManager,\n mmlDocuments,\n mmlAuthToken,\n }: ThreeJSRendererOptions) {\n this.targetElement = targetElement;\n this.coreCameraManager = coreCameraManager;\n this.collisionsManager = collisionsManager;\n this.tweakPane = tweakPane;\n this.config = config;\n this.mmlTargetWindow = mmlTargetWindow;\n this.mmlTargetElement = mmlTargetElement;\n this.loadingProgressManager = loadingProgressManager;\n this.animationsPromise = Character.loadAnimations(\n new CharacterModelLoader(),\n config.animationConfig,\n );\n this.characterModelLoader = new CharacterModelLoader();\n\n this.scene.add(this.audioListener);\n this.scene.add(this.characterGroup);\n\n this.threeJSCameraManager = new ThreeJSCameraManager(this.coreCameraManager);\n\n this.composer = new Composer({\n scene: this.scene,\n cameraManager: this.threeJSCameraManager,\n spawnSun: config.spawnSun ?? true,\n environmentConfiguration: config.environmentConfiguration,\n postProcessingEnabled: config.postProcessingEnabled,\n });\n\n // Create ThreeJSCollisionManager to handle Three.js-specific collision mesh processing\n this.threeJSCollisionManager = new ThreeJSCollisionManager(this.scene);\n\n // Set up collision debug visualization callback\n this.collisionsManager.onDebugChange = (enabled: boolean) => {\n this.threeJSCollisionManager.toggleDebugForAll(enabled);\n };\n\n // Initialize character manager\n this.characterManager = new ThreeJSCharacterManager(\n this.characterGroup,\n this.animationsPromise,\n this.characterModelLoader,\n this.threeJSCameraManager,\n this.composer,\n );\n\n // Initialize MML\n this.mmlCompositionScene = new ThreeJSMMLCompositionScene({\n targetElement: this.targetElement,\n scene: this.scene,\n camera: this.threeJSCameraManager.mainCamera,\n audioListener: this.audioListener,\n collisionsManager: this.collisionsManager,\n threeJSCollisionManager: this.threeJSCollisionManager,\n loadingProgressManager: this.loadingProgressManager,\n getUserPositionAndRotation: () => {\n // Return local character position/rotation\n const localCharData = this.characterManager.getLocalCharacterForMML(this.localCharacterId);\n if (localCharData) {\n return localCharData;\n }\n return {\n position: { x: 0, y: 0, z: 0 },\n rotation: { x: 0, y: 0, z: 0 },\n };\n },\n });\n\n this.scene.add(this.mmlCompositionScene.group);\n\n // Initialize MML manager\n this.mmlManager = new ThreeJSMMLManager(\n this.mmlCompositionScene,\n this.mmlTargetWindow,\n this.mmlTargetElement,\n this.loadingProgressManager,\n );\n\n this.targetElement.appendChild(this.composer.renderer.domElement);\n\n // Setup audio context resume on user interaction\n document.addEventListener(\"mousedown\", () => {\n if (this.audioListener.context.state === \"suspended\") {\n this.audioListener.context.resume();\n }\n });\n\n // Initialize ground plane if configured\n this.setGroundPlaneEnabled(this.config.environmentConfiguration?.groundPlane ?? true);\n\n // Setup tweakPane if provided (after initialization is complete)\n if (this.tweakPane) {\n this.setupTweakPane();\n }\n\n this.setMMLConfiguration(mmlDocuments, mmlAuthToken);\n }\n\n private setupTweakPane(): void {\n if (!this.tweakPane) {\n return;\n }\n\n // Create and setup the ThreeJS-specific provider\n this.threeJSTweakPaneProvider = new ThreeJSTweakPaneFolders(\n this.composer.renderer,\n this.scene,\n this.composer,\n this.collisionsManager,\n this.config.postProcessingEnabled,\n );\n\n this.threeJSTweakPaneProvider.registerFolders((this.tweakPane as any).gui);\n this.threeJSTweakPaneProvider.setupChangeHandlers();\n\n this.tweakPane.setupCamPane(this.coreCameraManager);\n }\n\n render(state: RenderState): void {\n const startFrameTimeMs = performance.now();\n\n // Update local character ID from render state\n this.localCharacterId = state.localCharacterId;\n\n const { removedUserIds, deltaTimeSeconds } = state;\n\n // Handle removed characters\n for (const characterId of removedUserIds) {\n this.characterManager.despawnCharacter(characterId);\n }\n\n // Update character manager (handles spawning, updating, LOD evaluation, etc.)\n this.characterManager.update(state, deltaTimeSeconds);\n\n // Update camera manager (syncs Three.js cameras with core state)\n this.threeJSCameraManager.update();\n\n // Update audio listener position\n this.updateAudioListenerPosition();\n\n // Render the frame\n const characterPosition = this.characterManager.getLocalCharacterPosition(\n this.localCharacterId,\n );\n this.composer.sun?.updateCharacterPosition(\n new Vector3(characterPosition?.x || 0, characterPosition?.y || 0, characterPosition?.z || 0),\n );\n this.composer.render();\n\n // End frame timing and update TweakPane if visible (skip expensive operations when hidden)\n if (this.threeJSTweakPaneProvider && this.tweakPane && this.tweakPane.guiVisible) {\n const endFrameTimeMs = performance.now();\n const frameRenderTimeMs = endFrameTimeMs - startFrameTimeMs;\n this.threeJSTweakPaneProvider.update(deltaTimeSeconds, frameRenderTimeMs);\n this.tweakPane.updateCameraData(this.coreCameraManager);\n }\n }\n\n private updateAudioListenerPosition(): void {\n const headPosition =\n this.localCharacterId !== null\n ? this.characterManager.getCharacterHeadPosition(this.localCharacterId)\n : null;\n\n this.audioListener.rotation.copy(this.threeJSCameraManager.mainCamera.rotation);\n\n if (headPosition) {\n this.audioListener.position.copy(headPosition);\n } else {\n this.audioListener.position.copy(this.threeJSCameraManager.mainCamera.position);\n }\n this.audioListener.updateMatrixWorld();\n }\n\n private setGroundPlaneEnabled(enabled: boolean): void {\n if (enabled && this.groundPlane === null) {\n this.groundPlane = new GroundPlane();\n const creationResult = this.threeJSCollisionManager.createCollisionMesh(this.groundPlane);\n this.collisionsManager.addMeshesGroup(this.groundPlane, creationResult);\n this.threeJSCollisionManager.updateDebugVisualization(\n this.collisionsManager.isDebugEnabled(),\n this.groundPlane,\n creationResult.meshBVH,\n );\n this.scene.add(this.groundPlane);\n } else if (!enabled && this.groundPlane !== null) {\n this.collisionsManager.removeMeshesGroup(this.groundPlane);\n this.threeJSCollisionManager.removeDebugVisualization(this.groundPlane);\n this.scene.remove(this.groundPlane);\n this.groundPlane = null;\n }\n }\n\n fitContainer(): void {\n this.composer.fitContainer();\n }\n\n dispose(): void {\n // Dispose character manager\n this.characterManager.dispose();\n\n // Dispose ground plane\n if (this.groundPlane) {\n this.collisionsManager.removeMeshesGroup(this.groundPlane);\n this.threeJSCollisionManager.removeDebugVisualization(this.groundPlane);\n this.scene.remove(this.groundPlane);\n this.groundPlane = null;\n }\n\n // Dispose TweakPane provider (TweakPane itself is managed by client)\n if (this.threeJSTweakPaneProvider) {\n this.threeJSTweakPaneProvider = null;\n }\n this.tweakPane = null;\n\n // Dispose collision debug visuals\n this.threeJSCollisionManager.clearAllDebugVisualizations();\n\n // Dispose MML manager\n this.mmlManager.dispose();\n\n // Dispose MML\n this.mmlCompositionScene.dispose();\n\n // Dispose camera manager\n this.threeJSCameraManager.dispose();\n\n // Dispose composer\n this.composer.dispose();\n }\n\n addChatBubble(characterId: number, message: string): void {\n this.characterManager.addChatBubble(characterId, message);\n }\n\n updateConfig(config: Partial<RendererConfig>): void {\n this.config = {\n ...this.config,\n ...config,\n };\n\n if (config.environmentConfiguration !== undefined) {\n this.composer.updateEnvironmentConfiguration(config.environmentConfiguration);\n this.setGroundPlaneEnabled(config.environmentConfiguration.groundPlane ?? true);\n }\n\n if (config.postProcessingEnabled !== undefined) {\n this.composer.togglePostProcessing(config.postProcessingEnabled);\n }\n\n if (config.enableTweakPane !== undefined && this.tweakPane) {\n this.tweakPane.setVisible(config.enableTweakPane);\n }\n }\n\n public setMMLConfiguration(\n mmlDocuments: { [key: string]: MMLDocumentConfiguration },\n authToken: string | null,\n ): void {\n this.mmlManager.setMMLConfiguration(mmlDocuments, authToken);\n }\n\n onChatMessage(message: string): void {\n this.mmlManager.onChatMessage(message);\n }\n}\n", "import { CameraManager, Quat, Vect3 } from \"@mml-io/3d-web-client-core\";\nimport { PerspectiveCamera } from \"three\";\n\nexport class ThreeJSCameraManager {\n public readonly mainCamera: PerspectiveCamera;\n private flyCamera: PerspectiveCamera;\n\n constructor(private coreCameraManager: CameraManager) {\n const aspect = window.innerWidth / window.innerHeight;\n const initialState = this.coreCameraManager.getMainCameraState();\n\n this.mainCamera = new PerspectiveCamera(initialState.fov, aspect, 0.1, 400);\n this.mainCamera.far = 10000;\n this.mainCamera.position.set(\n initialState.position.x,\n initialState.position.y,\n initialState.position.z,\n );\n this.mainCamera.name = \"MainCamera\";\n\n this.flyCamera = new PerspectiveCamera(initialState.fov, aspect, 0.1, 400);\n this.flyCamera.name = \"FlyCamera\";\n this.flyCamera.position.copy(this.mainCamera.position);\n\n this.update();\n }\n\n getActiveCamera(): PerspectiveCamera {\n return this.coreCameraManager.isFlyCameraOn() ? this.flyCamera : this.mainCamera;\n }\n\n getDistance(): number {\n return this.coreCameraManager.distance;\n }\n\n public update(): void {\n this.syncMainCamera();\n this.syncFlyCamera();\n }\n\n private syncMainCamera(): void {\n const state = this.coreCameraManager.getMainCameraState();\n\n this.mainCamera.position.set(state.position.x, state.position.y, state.position.z);\n this.mainCamera.quaternion.set(\n state.rotation.x,\n state.rotation.y,\n state.rotation.z,\n state.rotation.w,\n );\n this.mainCamera.fov = state.fov;\n this.mainCamera.aspect = state.aspect;\n this.mainCamera.updateProjectionMatrix();\n }\n\n private syncFlyCamera(): void {\n const flyState = this.coreCameraManager.getFlyCameraState();\n\n this.flyCamera.position.set(flyState.position.x, flyState.position.y, flyState.position.z);\n this.flyCamera.quaternion.set(\n flyState.rotation.x,\n flyState.rotation.y,\n flyState.rotation.z,\n flyState.rotation.w,\n );\n this.flyCamera.fov = flyState.fov;\n this.flyCamera.aspect = flyState.aspect;\n this.flyCamera.updateProjectionMatrix();\n }\n\n public updateAspect(aspect: number): void {\n this.coreCameraManager.updateAspect(aspect);\n this.mainCamera.aspect = aspect;\n this.flyCamera.aspect = aspect;\n this.mainCamera.updateProjectionMatrix();\n this.flyCamera.updateProjectionMatrix();\n }\n\n public dispose(): void {\n this.coreCameraManager.dispose();\n }\n}\n", "import {\n EulXYZ,\n Vect3,\n AnimationState,\n AnimationWeights,\n AnimationTimes,\n CharacterDescription,\n} from \"@mml-io/3d-web-client-core\";\nimport { AnimationClip, Color, Group, Object3D, Quaternion, Vector3 } from \"three\";\n\nimport { ThreeJSCameraManager } from \"../camera/ThreeJSCameraManager\";\nimport { Composer } from \"../composer\";\n\nimport { CharacterModel } from \"./CharacterModel\";\nimport { CharacterTooltip } from \"./CharacterTooltip\";\nimport { CharacterModelLoader } from \"./loading/CharacterModelLoader\";\nimport { lowPolyLoDModelURL } from \"./LowPolyModel\";\n\nexport type AnimationConfig = {\n idleAnimationFileUrl: string;\n jogAnimationFileUrl: string;\n sprintAnimationFileUrl: string;\n airAnimationFileUrl: string;\n doubleJumpAnimationFileUrl: string;\n};\n\nexport type LoadedAnimations = {\n idleAnimation: AnimationClip;\n jogAnimation: AnimationClip;\n sprintAnimation: AnimationClip;\n airAnimation: AnimationClip;\n doubleJumpAnimation: AnimationClip;\n};\n\nexport type CharacterConfig = {\n username: string;\n characterDescription: CharacterDescription | null;\n animationsPromise: Promise<LoadedAnimations>;\n characterModelLoader: CharacterModelLoader;\n characterId: number;\n modelLoadedCallback: () => void;\n modelLoadFailedCallback?: (error: Error) => void;\n cameraManager: ThreeJSCameraManager;\n composer: Composer;\n isLocal: boolean;\n abortController?: AbortController;\n};\n\nfunction characterHeightToTooltipHeightOffset(characterHeight: number): number {\n return characterHeight + 0.15;\n}\n\nfunction characterDescriptionMatches(\n a: CharacterDescription | null,\n b: CharacterDescription | null,\n): boolean {\n if (a === null && b === null) {\n return true;\n }\n if (a === null || b === null) {\n return false;\n }\n return (\n a?.meshFileUrl === b?.meshFileUrl &&\n a?.mmlCharacterString === b?.mmlCharacterString &&\n a?.mmlCharacterUrl === b?.mmlCharacterUrl\n );\n}\n\nexport class Character extends Group {\n private model: CharacterModel | null = null;\n public usernameTooltip: CharacterTooltip;\n\n public chatTooltips: CharacterTooltip[] = [];\n\n constructor(private config: CharacterConfig) {\n super();\n this.usernameTooltip = new CharacterTooltip(\n this.config.isLocal\n ? {\n secondsToFadeOut: 10,\n }\n : {},\n );\n this.usernameTooltip.setText(this.config.username);\n this.add(this.usernameTooltip);\n\n // Check if operation was canceled before starting loading\n if (this.config.abortController?.signal.aborted) {\n console.log(`Character loading canceled before starting for ${this.config.characterId}`);\n return;\n }\n\n this.load()\n .then(() => {\n if (this.config.abortController?.signal.aborted) {\n return;\n }\n if (this.model?.mesh) {\n this.config.modelLoadedCallback();\n } else {\n console.error(\n `Character loading failed in constructor for ${this.config.username} (${this.config.characterId}):`,\n );\n if (this.config.modelLoadFailedCallback) {\n this.config.modelLoadFailedCallback(new Error(\"Model not loaded in constructor\"));\n }\n }\n this.setTooltipHeights();\n })\n .catch((error) => {\n // Check if the error is due to cancellation\n if (this.config.abortController?.signal.aborted) {\n console.log(`Character loading canceled in constructor for ${this.config.characterId}`);\n return;\n }\n console.error(\n `Character loading failed in constructor for ${this.config.username} (${this.config.characterId}):`,\n error,\n );\n\n // Call the error callback if provided\n if (this.config.modelLoadFailedCallback) {\n this.config.modelLoadFailedCallback(error);\n }\n });\n }\n\n getColors(): Array<[number, number, number]> {\n return this.model?.getColors() || [];\n }\n\n updateCharacter(\n username: string,\n characterDescription: CharacterDescription | null,\n abortController: AbortController,\n onModelLoaded: () => void,\n onModelLoadFailed: (error: Error) => void,\n ) {\n if (!characterDescriptionMatches(this.config.characterDescription, characterDescription)) {\n this.config.characterDescription = characterDescription;\n this.load()\n .then(() => {\n // Check if operation was canceled after loading\n if (abortController.signal.aborted) {\n console.log(`Character update canceled for ${this.config.characterId}`);\n return;\n }\n this.setTooltipHeights();\n onModelLoaded();\n })\n .catch((error) => {\n // Check if the error is due to cancellation\n if (abortController.signal.aborted) {\n console.log(`Character update canceled during loading for ${this.config.characterId}`);\n return;\n }\n console.error(\n `Character update failed for ${this.config.username} (${this.config.characterId}):`,\n error,\n );\n\n // Call the error callback if provided\n if (onModelLoadFailed) {\n onModelLoadFailed(error);\n }\n });\n }\n if (this.config.username !== username) {\n this.config.username = username;\n this.usernameTooltip.setText(username);\n // Force the tooltip to show if the character's name changes\n this.usernameTooltip.show();\n }\n }\n\n private setTooltipHeights() {\n if (this.model && this.model.characterHeight) {\n let height = characterHeightToTooltipHeightOffset(this.model.characterHeight);\n this.usernameTooltip.setHeightOffset(height);\n height += this.usernameTooltip.scale.y;\n\n for (const chatTooltip of this.chatTooltips) {\n chatTooltip.setHeightOffset(height);\n height += chatTooltip.scale.y;\n }\n }\n }\n\n public static loadAnimations(\n characterModelLoader: CharacterModelLoader,\n animationConfig: AnimationConfig,\n ): Promise<LoadedAnimations> {\n return new Promise((resolve) => {\n const idleAnimation = characterModelLoader.loadAnimation(\n animationConfig.idleAnimationFileUrl,\n );\n const jogAnimation = characterModelLoader.loadAnimation(animationConfig.jogAnimationFileUrl);\n const sprintAnimation = characterModelLoader.loadAnimation(\n animationConfig.sprintAnimationFileUrl,\n );\n const airAnimation = characterModelLoader.loadAnimation(animationConfig.airAnimationFileUrl);\n const doubleJumpAnimation = characterModelLoader.loadAnimation(\n animationConfig.doubleJumpAnimationFileUrl,\n );\n resolve(\n Promise.all([\n idleAnimation,\n jogAnimation,\n sprintAnimation,\n airAnimation,\n doubleJumpAnimation,\n ]).then((animations) => {\n const animationConfig: LoadedAnimations = {\n idleAnimation: animations[0]!,\n jogAnimation: animations[1]!,\n sprintAnimation: animations[2]!,\n airAnimation: animations[3]!,\n doubleJumpAnimation: animations[4]!,\n };\n return animationConfig;\n }),\n );\n });\n }\n\n private async load(): Promise<void> {\n // Check if operation was canceled before starting\n if (this.config.abortController?.signal.aborted) {\n console.log(`Character loading canceled for ${this.config.characterId}`);\n return;\n }\n\n const previousModel = this.model;\n if (previousModel && previousModel.mesh) {\n this.remove(previousModel.mesh);\n }\n this.model = new CharacterModel({\n characterDescription: this.config.characterDescription ?? {\n meshFileUrl: lowPolyLoDModelURL,\n },\n animationsPromise: this.config.animationsPromise,\n characterModelLoader: this.config.characterModelLoader,\n cameraManager: this.config.cameraManager,\n characterId: this.config.characterId,\n isLocal: this.config.isLocal,\n abortController: this.config.abortController,\n });\n\n try {\n await this.model.init();\n\n // Check if operation was canceled after loading\n if (this.config.abortController?.signal.aborted) {\n if (this.model) {\n this.model.dispose();\n this.model = null;\n }\n return;\n }\n\n if (this.model && this.model.mesh) {\n this.add(this.model.mesh);\n } else {\n console.warn(\n `Character model for ${this.config.username} (${this.config.characterId}) failed to load.`,\n );\n }\n } catch (error) {\n // Check if the error is due to cancellation\n if (this.config.abortController?.signal.aborted) {\n return;\n }\n console.error(\n `Character loading failed for ${this.config.username} (${this.config.characterId}):`,\n error,\n );\n throw error;\n }\n }\n\n public updateAnimation(targetAnimation: AnimationState) {\n this.model?.updateAnimation(targetAnimation);\n }\n\n public applyAnimationWeights(weights: AnimationWeights) {\n this.model?.applyAnimationWeights(weights);\n }\n\n public applyAnimationTimes(times: AnimationTimes) {\n this.model?.applyAnimationTimes(times);\n }\n\n public update(deltaTime: number) {\n if (!this.model) return;\n if (this.usernameTooltip) {\n this.usernameTooltip.update();\n }\n this.model.update(deltaTime);\n }\n\n public getPosition(): Vect3 {\n return this.position as unknown as Vect3;\n }\n\n public getRotation(): EulXYZ {\n return this.rotation as unknown as EulXYZ;\n }\n\n public setPosition(x: number, y: number, z: number) {\n this.position.set(x, y, z);\n }\n\n public setRotation(x: number, y: number, z: number, w: number) {\n this.rotation.setFromQuaternion(new Quaternion(x, y, z, w));\n }\n\n getCurrentAnimation(): AnimationState {\n return this.model?.currentAnimation || AnimationState.idle;\n }\n\n addChatBubble(message: string) {\n const tooltip = new CharacterTooltip({\n maxWidth: 1000,\n secondsToFadeOut: 10,\n color: new Color(0.125, 0.125, 0.125),\n });\n this.add(tooltip);\n this.chatTooltips.unshift(tooltip);\n tooltip.setText(message, () => {\n this.chatTooltips = this.chatTooltips.filter((t) => t !== tooltip);\n this.remove(tooltip);\n tooltip.dispose();\n this.setTooltipHeights();\n });\n if (this.config.isLocal) {\n // Show the character's name if they're local and they emit a chat bubble\n this.usernameTooltip.show();\n }\n this.setTooltipHeights();\n }\n\n public getMesh(): Object3D | null {\n return this.model?.mesh || null;\n }\n\n public getHeadWorldPosition(): Vector3 | null {\n if (this.model?.headBone) {\n const worldPosition = new Vector3();\n this.model.headBone.getWorldPosition(worldPosition);\n return worldPosition;\n }\n return null;\n }\n\n dispose() {\n if (this.model) {\n this.model.dispose();\n this.model = null;\n }\n this.usernameTooltip.dispose();\n for (const chatTooltip of this.chatTooltips) {\n chatTooltip.dispose();\n }\n this.chatTooltips = [];\n }\n}\n", "import {\n MMLCharacter,\n type MMLCharacterDescription,\n parseMMLDescription,\n} from \"@mml-io/3d-web-avatar\";\nimport {\n AnimationState,\n AnimationWeights,\n AnimationTimes,\n CharacterDescription,\n} from \"@mml-io/3d-web-client-core\";\nimport {\n AnimationAction,\n AnimationClip,\n AnimationMixer,\n Bone,\n Color,\n Group,\n LoopRepeat,\n Material,\n Mesh,\n MeshStandardMaterial,\n Object3D,\n Skeleton,\n SkinnedMesh,\n Texture,\n Vector3,\n} from \"three\";\n\nimport { ThreeJSCameraManager } from \"../camera/ThreeJSCameraManager\";\n\nimport { LoadedAnimations } from \"./Character\";\nimport { CharacterMaterial } from \"./CharacterMaterial\";\nimport { captureCharacterColorsFromObject3D } from \"./instancing/CharacterColourSamplingUtils\";\nimport { CharacterModelLoader } from \"./loading/CharacterModelLoader\";\n\nexport const colorPartNamesIndex = [\n \"hair\",\n \"shirt_short\",\n \"shirt_long\",\n \"pants_short\",\n \"pants_long\",\n \"shoes\",\n \"skin\",\n \"lips\",\n] as const;\n\nexport type ColorPartName = (typeof colorPartNamesIndex)[number];\n\nexport function colorsToColorArray(\n colors: Map<ColorPartName, Color>,\n): Array<[number, number, number]> {\n const colorArray: Array<[number, number, number]> = [];\n for (const partName of colorPartNamesIndex) {\n const color = colors.get(partName);\n if (color) {\n colorArray.push([\n Math.round(color.r * 255),\n Math.round(color.g * 255),\n Math.round(color.b * 255),\n ]);\n }\n }\n return colorArray;\n}\n\nexport function colorArrayToColors(\n colorArray: Array<[number, number, number]>,\n): Map<ColorPartName, Color> {\n const colors = new Map<ColorPartName, Color>();\n for (let i = 0; i < colorPartNamesIndex.length; i++) {\n const color = colorArray[i];\n if (color) {\n colors.set(colorPartNamesIndex[i], new Color(color[0] / 255, color[1] / 255, color[2] / 255));\n }\n }\n return colors;\n}\n\nconst tempVector = new Vector3();\n\nfunction disposeMaterialTextures(material: Material): void {\n // Iterate over all enumerable properties (including inherited) to find textures dynamically\n // This catches all texture properties without needing a hardcoded list\n const textureKeys: string[] = [];\n\n // First pass: find and dispose textures\n for (const key in material) {\n const value = (material as any)[key];\n if (value instanceof Texture) {\n textureKeys.push(key);\n value.dispose();\n }\n }\n\n // Second pass: clear texture references so Three.js stops counting them\n for (const key of textureKeys) {\n (material as any)[key] = null;\n }\n}\n\nfunction getSimpleHeight(mesh: Object3D): number {\n let maxY = -Infinity;\n let minY = Infinity;\n\n mesh.traverse((child) => {\n const asMesh = child as Mesh;\n if (asMesh.geometry) {\n const positionAttribute = asMesh.geometry.getAttribute(\"position\");\n for (let i = 0; i < positionAttribute.count; i++) {\n const y = positionAttribute.getY(i);\n maxY = Math.max(maxY, y);\n minY = Math.min(minY, y);\n }\n }\n });\n if (maxY === -Infinity || minY === Infinity) {\n console.warn(\"No valid vertices found in the mesh to calculate height.\");\n return 0;\n }\n return maxY - minY;\n}\n\nexport type CharacterModelConfig = {\n characterDescription: CharacterDescription;\n animationsPromise: Promise<LoadedAnimations>;\n characterModelLoader: CharacterModelLoader;\n cameraManager: ThreeJSCameraManager;\n characterId: number;\n isLocal: boolean;\n abortController?: AbortController;\n};\n\nconst remoteMaxTextureSize = 128;\nconst localMaxTextureSize = 1024;\n\nexport class CharacterModel {\n public mesh: Object3D | null = null;\n public headBone: Bone | null = null;\n public characterHeight: number | null = null;\n\n private materials: Map<string, CharacterMaterial> = new Map();\n\n public animations: Record<string, AnimationAction> = {};\n public animationMixer: AnimationMixer | null = null;\n public currentAnimation: AnimationState = AnimationState.idle;\n\n public mmlCharacterDescription: MMLCharacterDescription;\n\n private isPostDoubleJump = false;\n\n private colors: Array<[number, number, number]> | null = null;\n\n constructor(private config: CharacterModelConfig) {}\n\n public async init(): Promise<void> {\n // Check if operation was canceled before starting\n if (this.config.abortController?.signal.aborted) {\n console.log(`CharacterModel init canceled for ${this.config.characterId}`);\n return;\n }\n\n let mainMesh: Object3D | null = null;\n try {\n mainMesh = await this.loadCharacterFromDescription();\n } catch (error) {\n if (this.config.abortController?.signal.aborted) {\n return;\n }\n console.error(\"Failed to load character from description\", error);\n }\n if (this.config.abortController?.signal.aborted) {\n return;\n }\n\n if (mainMesh) {\n this.mesh = mainMesh;\n this.mesh.position.set(0, -0.01, 0);\n this.mesh.traverse((child: Object3D) => {\n if (child.type === \"SkinnedMesh\") {\n child.castShadow = true;\n child.receiveShadow = true;\n }\n });\n this.animationMixer = new AnimationMixer(this.mesh);\n }\n\n // Check if operation was canceled after mesh loading\n if (this.config.abortController?.signal.aborted) {\n console.log(`CharacterModel init canceled after mesh loading for ${this.config.characterId}`);\n return;\n }\n\n if (this.mesh) {\n const animationConfig = await this.config.animationsPromise;\n\n // Check if operation was canceled after animation loading\n if (this.config.abortController?.signal.aborted) {\n return;\n }\n\n this.setAnimationFromFile(animationConfig.idleAnimation, AnimationState.idle, true);\n this.setAnimationFromFile(animationConfig.jogAnimation, AnimationState.walking, true);\n this.setAnimationFromFile(animationConfig.sprintAnimation, AnimationState.running, true);\n this.setAnimationFromFile(animationConfig.airAnimation, AnimationState.air, true);\n this.setAnimationFromFile(\n animationConfig.doubleJumpAnimation,\n AnimationState.doubleJump,\n false,\n 1.45,\n );\n this.characterHeight = getSimpleHeight(this.mesh);\n if (this.config.isLocal) {\n // Capture the colors before applying custom materials\n this.getColors();\n }\n this.applyCustomMaterials();\n }\n }\n\n private applyCustomMaterials(): void {\n if (!this.mesh) {\n return;\n }\n\n const originalMaterialsToDispose: MeshStandardMaterial[] = [];\n\n this.mesh.traverse((child: Object3D) => {\n const asBone = child as Bone;\n if (asBone.isBone) {\n if (child.name === \"head\") {\n const worldPosition = new Vector3();\n this.headBone = child as Bone;\n this.headBone.getWorldPosition(worldPosition);\n }\n }\n const asMesh = child as SkinnedMesh;\n if (asMesh.isMesh || asMesh.isSkinnedMesh) {\n const originalMaterial = asMesh.material as MeshStandardMaterial;\n if (this.materials.has(originalMaterial.name)) {\n asMesh.material = this.materials.get(originalMaterial.name)!;\n } else {\n const material = new CharacterMaterial({\n isLocal: this.config.isLocal,\n cameraManager: this.config.cameraManager,\n characterId: this.config.characterId,\n originalMaterial,\n colorOverride: originalMaterial.color,\n });\n\n originalMaterialsToDispose.push(originalMaterial);\n this.materials.set(originalMaterial.name, material);\n asMesh.material = material;\n }\n }\n });\n\n // Dispose original materials after replacing them\n // CharacterMaterial.copy() copies texture references (not clones), so textures are shared.\n // When we dispose the original material, it will try to dispose the textures, but that's okay\n // because texture.dispose() is safe to call multiple times. The textures will be disposed\n // again when CharacterMaterial is disposed, but Three.js handles that gracefully.\n for (const originalMaterial of originalMaterialsToDispose) {\n originalMaterial.dispose();\n }\n }\n\n public updateAnimation(targetAnimation: AnimationState) {\n if (this.isPostDoubleJump) {\n if (targetAnimation === AnimationState.doubleJump) {\n // Double jump is requested, but we're in the post double jump state so we play air instead\n targetAnimation = AnimationState.air;\n } else {\n // Reset the post double jump flag if something other than double jump is requested\n this.isPostDoubleJump = false;\n }\n }\n if (this.currentAnimation !== targetAnimation) {\n this.transitionToAnimation(targetAnimation);\n }\n }\n\n public applyAnimationWeights(weights: AnimationWeights): void {\n if (!this.mesh || !this.animationMixer) {\n return;\n }\n\n // Apply weights to all animation states\n // Iterate through all AnimationState enum values\n for (const stateValue of [\n AnimationState.idle,\n AnimationState.walking,\n AnimationState.running,\n AnimationState.jumpToAir,\n AnimationState.air,\n AnimationState.airToGround,\n AnimationState.doubleJump,\n ]) {\n const action = this.animations[stateValue];\n if (action) {\n const weight = weights[stateValue] || 0;\n action.setEffectiveWeight(weight);\n\n // Ensure action is playing if it has weight\n if (weight > 0 && !action.isRunning()) {\n action.play();\n }\n }\n }\n\n // Update current animation to the one with highest weight for tracking purposes\n let maxWeight = 0;\n let primaryState = this.currentAnimation;\n for (const stateValue of [\n AnimationState.idle,\n AnimationState.walking,\n AnimationState.running,\n AnimationState.jumpToAir,\n AnimationState.air,\n AnimationState.airToGround,\n AnimationState.doubleJump,\n ]) {\n const weight = weights[stateValue] || 0;\n if (weight > maxWeight) {\n maxWeight = weight;\n primaryState = stateValue;\n }\n }\n this.currentAnimation = primaryState;\n }\n\n public applyAnimationTimes(times: AnimationTimes): void {\n if (!this.animationMixer) {\n return;\n }\n\n // Set the time for each animation action based on its individual time\n for (const stateValue of [\n AnimationState.idle,\n AnimationState.walking,\n AnimationState.running,\n AnimationState.jumpToAir,\n AnimationState.air,\n AnimationState.airToGround,\n AnimationState.doubleJump,\n ]) {\n const action = this.animations[stateValue];\n if (action) {\n action.time = times[stateValue];\n }\n }\n }\n\n private async composeMMLCharacter(\n mmlCharacterDescription: MMLCharacterDescription,\n ): Promise<Object3D | null> {\n if (mmlCharacterDescription.base?.url.length === 0) {\n throw new Error(\n \"ERROR: An MML Character Description was provided, but it's not a valid <m-character> string, or a valid URL\",\n );\n }\n\n let mergedCharacter: Object3D | null = null;\n if (mmlCharacterDescription) {\n const characterBase = mmlCharacterDescription.base?.url || null;\n if (characterBase) {\n this.mmlCharacterDescription = mmlCharacterDescription;\n mergedCharacter = await MMLCharacter.load(\n characterBase,\n mmlCharacterDescription.parts,\n {\n load: async (url: string, abortController?: AbortController) => {\n const model = await this.config.characterModelLoader.loadModel(\n url,\n this.config.isLocal ? localMaxTextureSize : remoteMaxTextureSize,\n abortController,\n );\n if (this.config.abortController?.signal.aborted) {\n return null;\n }\n if (!model) {\n return null;\n }\n return {\n group: new Group().add(model),\n animations: [],\n };\n },\n },\n this.config.abortController,\n );\n if (mergedCharacter) {\n return mergedCharacter;\n }\n }\n }\n return null;\n }\n\n private async loadCharacterFromDescription(): Promise<Object3D | null> {\n if (this.config.characterDescription.meshFileUrl) {\n return (\n (await this.config.characterModelLoader.loadModel(\n this.config.characterDescription.meshFileUrl,\n this.config.isLocal ? localMaxTextureSize : remoteMaxTextureSize,\n this.config.abortController,\n )) || null\n );\n }\n\n let mmlCharacterSource: string;\n let mmlCharacterUrl: string | null = null;\n if (this.config.characterDescription.mmlCharacterUrl) {\n mmlCharacterUrl = this.config.characterDescription.mmlCharacterUrl;\n const res = await fetch(mmlCharacterUrl, {\n signal: this.config.abortController?.signal,\n });\n mmlCharacterSource = await res.text();\n } else if (this.config.characterDescription.mmlCharacterString) {\n mmlCharacterSource = this.config.characterDescription.mmlCharacterString;\n } else {\n throw new Error(\n \"ERROR: No Character Description was provided. Specify one of meshFileUrl, mmlCharacterUrl or mmlCharacterString\",\n );\n }\n\n const parsedMMLDescription = parseMMLDescription(mmlCharacterSource, mmlCharacterUrl);\n const mmlCharacterDescription = parsedMMLDescription[0];\n if (parsedMMLDescription[1].length > 0) {\n console.warn(\"Errors parsing MML Character Description: \", parsedMMLDescription[1]);\n }\n const mmlCharacterBody = await this.composeMMLCharacter(mmlCharacterDescription);\n if (mmlCharacterBody) {\n return mmlCharacterBody;\n }\n return null;\n }\n\n public getColors(): Array<[number, number, number]> {\n if (!this.mesh) {\n return [];\n }\n if (this.colors) {\n return this.colors;\n }\n const colors = captureCharacterColorsFromObject3D(this.mesh, {\n circularSamplingRadius: 12,\n topDownSamplingSize: { width: 5, height: 150 },\n debug: false, // Reduced debug spam\n });\n this.colors = colorsToColorArray(colors);\n return this.colors;\n }\n\n private cleanAnimationClips(\n skeletalMesh: Object3D | null,\n animationClip: AnimationClip,\n keepRootBonePositionAnimation: boolean,\n ): AnimationClip {\n const availableBones = new Set<string>();\n if (skeletalMesh) {\n skeletalMesh.traverse((child) => {\n const asBone = child as Bone;\n if (asBone.isBone) {\n availableBones.add(child.name);\n }\n });\n }\n animationClip.tracks = animationClip.tracks.filter((track) => {\n const [trackName, trackProperty] = track.name.split(\".\");\n if (keepRootBonePositionAnimation && trackName === \"root\" && trackProperty === \"position\") {\n return true;\n }\n const shouldAnimate =\n availableBones.has(trackName) && trackProperty !== \"position\" && trackProperty !== \"scale\";\n return shouldAnimate;\n });\n return animationClip;\n }\n\n private setAnimationFromFile(\n animation: AnimationClip,\n animationType: AnimationState,\n loop: boolean = true,\n playbackSpeed: number = 1.0,\n ) {\n const cleanAnimation = this.cleanAnimationClips(this.mesh, animation, true);\n this.animations[animationType] = this.animationMixer!.clipAction(cleanAnimation);\n this.animations[animationType].timeScale = playbackSpeed;\n\n // For weight-based blending, all animations should be playing simultaneously\n // The weight system will control which ones are visible\n this.animations[animationType].play();\n this.animations[animationType].enabled = true;\n\n // Set initial weight based on whether this is the idle animation\n if (animationType === AnimationState.idle) {\n this.animations[animationType].setEffectiveWeight(1.0);\n } else {\n this.animations[animationType].setEffectiveWeight(0.0);\n }\n\n if (!loop) {\n this.animations[animationType].setLoop(LoopRepeat, 1); // Ensure non-looping\n this.animations[animationType].clampWhenFinished = true;\n }\n }\n\n private transitionToAnimation(\n targetAnimation: AnimationState,\n transitionDuration: number = 0.15,\n ): void {\n if (!this.mesh) {\n return;\n }\n\n const currentAction = this.animations[this.currentAnimation];\n const targetAction = this.animations[targetAnimation];\n\n if (!targetAction) {\n return;\n }\n this.currentAnimation = targetAnimation;\n\n if (currentAction) {\n currentAction.fadeOut(transitionDuration);\n }\n\n targetAction.reset();\n if (!targetAction.isRunning()) {\n targetAction.play();\n }\n\n if (targetAnimation === AnimationState.doubleJump) {\n targetAction.getMixer().addEventListener(\"finished\", (_event) => {\n if (this.currentAnimation === AnimationState.doubleJump) {\n this.isPostDoubleJump = true;\n // This triggers the transition to the air animation because the double jump animation is done\n this.updateAnimation(AnimationState.doubleJump);\n }\n });\n }\n\n targetAction.enabled = true;\n targetAction.fadeIn(transitionDuration);\n }\n\n update(time: number) {\n if (this.animationMixer) {\n this.animationMixer.update(time);\n this.materials.forEach((material) => material.update());\n }\n }\n\n dispose() {\n if (this.animationMixer) {\n this.animationMixer.stopAllAction();\n this.animationMixer.uncacheRoot(this.mesh as SkinnedMesh);\n this.animationMixer = null;\n }\n const processedMaterials = new Set<Material>();\n\n this.materials.forEach((material) => {\n disposeMaterialTextures(material);\n material.dispose();\n processedMaterials.add(material);\n });\n this.materials.clear();\n\n const processedSkeletons = new Set<Skeleton>();\n\n this.mesh?.traverse((child: Object3D) => {\n const asMesh = child as Mesh;\n if (asMesh.isMesh) {\n if (asMesh.geometry) {\n asMesh.geometry.dispose();\n }\n if (asMesh.material) {\n if (Array.isArray(asMesh.material)) {\n asMesh.material.forEach((material) => {\n if (!processedMaterials.has(material)) {\n disposeMaterialTextures(material);\n processedMaterials.add(material);\n }\n material.dispose();\n });\n } else {\n if (!processedMaterials.has(asMesh.material)) {\n disposeMaterialTextures(asMesh.material);\n processedMaterials.add(asMesh.material);\n }\n asMesh.material.dispose();\n }\n }\n\n const asSkinnedMesh = child as SkinnedMesh;\n if (asSkinnedMesh.isSkinnedMesh) {\n const skeleton = asSkinnedMesh.skeleton;\n if (skeleton && !processedSkeletons.has(skeleton)) {\n processedSkeletons.add(skeleton);\n skeleton.dispose();\n }\n }\n }\n });\n\n this.mesh = null;\n this.headBone = null;\n this.characterHeight = null;\n this.animations = {};\n this.colors = null;\n }\n}\n", "import { ease } from \"@mml-io/3d-web-client-core\";\nimport { Color, MeshStandardMaterial, UniformsUtils } from \"three\";\n\nimport { ThreeJSCameraManager } from \"../camera/ThreeJSCameraManager\";\nimport { bayerDither } from \"../shaders/bayer-dither\";\nimport { injectBefore, injectBeforeMain, injectInsideMain } from \"../shaders/shader-helpers\";\n\ntype TUniform<TValue = any> = { value: TValue };\n\nexport type CharacterMaterialConfig = {\n isLocal: boolean;\n cameraManager: ThreeJSCameraManager;\n characterId: number;\n originalMaterial: MeshStandardMaterial;\n colorOverride?: Color;\n};\n\nexport class CharacterMaterial extends MeshStandardMaterial {\n private uniforms: Record<string, TUniform> = {\n discardAll: { value: 1 },\n diffuseColor: { value: new Color() },\n map: { value: null },\n };\n private colorsCube216: Color[] = [];\n private targetAlpha: number = 1;\n private currentAlpha: number = 1;\n\n constructor(private config: CharacterMaterialConfig) {\n super();\n this.copy(this.config.originalMaterial);\n this.generateColorCube();\n\n this.color = this.config.colorOverride || this.colorsCube216[this.config.characterId];\n this.transparent = true;\n this.side = this.config.originalMaterial.side;\n\n this.onBeforeCompile = (shader) => {\n this.uniforms = UniformsUtils.clone(shader.uniforms);\n this.uniforms.nearClip = { value: 0.01 };\n this.uniforms.farClip = { value: 1000.0 };\n this.uniforms.ditheringNear = { value: 0.3 };\n this.uniforms.ditheringRange = { value: 0.5 };\n this.uniforms.time = { value: 0.0 };\n this.uniforms.diffuseRandomColor = { value: new Color() };\n this.uniforms.discardAll = { value: 0 };\n shader.uniforms = this.uniforms;\n\n shader.vertexShader = \"varying vec3 vWorldPosition;\\n\" + shader.vertexShader;\n shader.vertexShader = shader.vertexShader.replace(\n \"#include <worldpos_vertex>\",\n \"vec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\nvWorldPosition = worldPosition.xyz;\",\n );\n shader.vertexShader = injectBeforeMain(shader.vertexShader, \"varying vec2 vUv;\");\n shader.vertexShader = injectInsideMain(shader.vertexShader, \"vUv = uv;\");\n\n shader.fragmentShader = injectBeforeMain(\n shader.fragmentShader,\n /* glsl */ `\n varying vec2 vUv;\n varying vec3 vWorldPosition;\n uniform float nearClip;\n uniform float farClip;\n uniform float ditheringNear;\n uniform float ditheringRange;\n uniform float time;\n uniform vec3 diffuseRandomColor;\n uniform int discardAll;\n ${bayerDither}\n `,\n );\n\n shader.fragmentShader = injectBefore(\n shader.fragmentShader,\n \"#include <dithering_fragment>\",\n /* glsl */ `\n if (discardAll == 1) {\n discard;\n } else {\n float distance = length(vWorldPosition - cameraPosition);\n float normalizedDistance = (distance - nearClip) / (farClip - nearClip);\n ivec2 p = ivec2(mod(gl_FragCoord.xy, 8.0));\n float d = 0.0;\n if (p.x <= 3 && p.y <= 3) {\n d = bayerDither(bayertl, p);\n } else if (p.x > 3 && p.y <= 3) {\n d = bayerDither(bayertr, p - ivec2(4, 0));\n } else if (p.x <= 3 && p.y > 3) {\n d = bayerDither(bayerbl, p - ivec2(0, 4));\n } else if (p.x > 3 && p.y > 3) {\n d = bayerDither(bayerbr, p - ivec2(4, 4));\n }\n if (distance <= ditheringNear + d * ditheringRange) discard; \n outgoingLight *= diffuseRandomColor; \n }\n `,\n );\n };\n this.needsUpdate = true;\n }\n\n private generateColorCube() {\n const saturation = 1.0;\n const lightness = 0.9;\n const goldenRatioConjugate = 0.618033988749895;\n let hue = 0;\n\n for (let i = 0; i < 216; i++) {\n const color = new Color();\n color.setHSL(hue, saturation, lightness);\n this.colorsCube216.push(color);\n hue = (hue + goldenRatioConjugate) % 1;\n }\n }\n\n public update() {\n if (this.config.isLocal) {\n this.targetAlpha = this.config.cameraManager.getDistance() < 0.4 ? 0.0 : 1.0;\n this.currentAlpha += ease(this.targetAlpha, this.currentAlpha, 0.07);\n if (this.currentAlpha > 0.999) {\n this.currentAlpha = 1;\n }\n if (this.currentAlpha < 0.001) {\n this.currentAlpha = 0;\n }\n this.uniforms.discardAll.value = this.currentAlpha === 0 ? 1 : 0;\n if (this.currentAlpha !== this.opacity) {\n this.opacity = this.currentAlpha;\n }\n }\n }\n}\n", "export const bayerDither: string = /* glsl */ `\nconst mat4 bayertl = mat4( \n 0.0 / 64.0, 32.0 / 64.0, 8.0 / 64.0, 40.0 / 64.0,\n 48.0 / 64.0, 16.0 / 64.0, 56.0 / 64.0, 24.0 / 64.0,\n 12.0 / 64.0, 44.0 / 64.0, 4.0 / 64.0, 36.0 / 64.0,\n 60.0 / 64.0, 28.0 / 64.0, 52.0 / 64.0, 20.0 / 64.0\n);\n\nconst mat4 bayertr = mat4( \n 2.0 / 64.0, 34.0 / 64.0, 10.0 / 64.0, 42.0 / 64.0,\n 50.0 / 64.0, 18.0 / 64.0, 58.0 / 64.0, 26.0 / 64.0,\n 14.0 / 64.0, 46.0 / 64.0, 6.0 / 64.0, 38.0 / 64.0,\n 62.0 / 64.0, 30.0 / 64.0, 54.0 / 64.0, 22.0 / 64.0\n);\n\nconst mat4 bayerbl = mat4( \n 3.0 / 64.0, 35.0 / 64.0, 11.0 / 64.0, 43.0 / 64.0,\n 51.0 / 64.0, 19.0 / 64.0, 59.0 / 64.0, 27.0 / 64.0,\n 15.0 / 64.0, 47.0 / 64.0, 7.0 / 64.0, 39.0 / 64.0,\n 63.0 / 64.0, 31.0 / 64.0, 55.0 / 64.0, 23.0 / 64.0\n);\n\nconst mat4 bayerbr = mat4( \n 1.0 / 64.0, 33.0 / 64.0, 9.0 / 64.0, 41.0 / 64.0,\n 49.0 / 64.0, 17.0 / 64.0, 57.0 / 64.0, 25.0 / 64.0,\n 13.0 / 64.0, 45.0 / 64.0, 5.0 / 64.0, 37.0 / 64.0,\n 61.0 / 64.0, 29.0 / 64.0, 53.0 / 64.0, 21.0 / 64.0\n);\n\nfloat bayerDither(mat4 m, ivec2 p) {\n if (p.y == 0) {\n if (p.x == 0) { return m[0][0]; }\n else if (p.x == 1) { return m[1][0]; }\n else if (p.x == 2) { return m[2][0]; }\n else { return m[3][0]; }\n } else if (p.y == 1) {\n if (p.x == 0) { return m[0][1]; }\n else if (p.x == 1) { return m[1][1]; }\n else if (p.x == 2) { return m[2][1]; }\n else { return m[3][1]; }\n } else if (p.y == 2) {\n if (p.x == 0) { return m[0][1]; }\n else if (p.x == 1) { return m[1][2]; }\n else if (p.x == 2) { return m[2][2]; }\n else { return m[3][2]; }\n } else {\n if (p.x == 0) { return m[0][3]; }\n else if (p.x == 1) { return m[1][3]; }\n else if (p.x == 2) { return m[2][3]; }\n else { return m[3][3]; }\n }\n}\n`;\n", "export function injectBeforeMain(shaderSource: string, codeToInject: string): string {\n return shaderSource.replace(\n \"void main() {\",\n `\n\n${codeToInject}\n\nvoid main() {`,\n );\n}\n\nexport function injectInsideMain(shaderSource: string, codeToInject: string): string {\n return shaderSource.replace(\n \"void main() {\",\n `void main() {\n\n${codeToInject}\n\n `,\n );\n}\n\nexport function injectBefore(shaderSource: string, before: string, codeToInject: string): string {\n return shaderSource.replace(\n before,\n `\n${codeToInject}\n\n${before}\n `,\n );\n}\n\nexport function injectAfter(shaderSource: string, after: string, codeToInject: string): string {\n return shaderSource.replace(\n after,\n `\n${after}\n\n${codeToInject}\n\n `,\n );\n}\n", "import {\n AmbientLight,\n Bone,\n Box3,\n Camera,\n Color,\n OrthographicCamera,\n Scene,\n SkinnedMesh,\n Vector2,\n Vector3,\n WebGLRenderer,\n WebGLRenderTarget,\n Object3D,\n} from \"three\";\nimport * as SkeletonUtils from \"three/examples/jsm/utils/SkeletonUtils.js\";\n\nimport { ColorPartName } from \"../CharacterModel\";\n\nimport { mergeSkinnedMeshes, validateAndCleanSkeleton } from \"./CharacterInstancingUtils\";\nimport { InstancedMesh2, SquareDataTexture } from \"./vendor/\";\n\nexport type ColorSamplingOptions = {\n circularSamplingRadius?: number;\n topDownSamplingSize?: { width: number; height: number };\n debug?: boolean;\n};\n\nfunction listAllBoneNames(obj: SkinnedMesh): string[] {\n const boneNames: string[] = [];\n if (!obj) {\n console.log(\"no main mesh available\");\n return boneNames;\n }\n for (const bone of obj.skeleton.bones) {\n boneNames.push(bone.name);\n }\n return boneNames;\n}\n\nexport function captureCharacterColors(\n characterMesh: Object3D,\n options: ColorSamplingOptions,\n): Map<ColorPartName, Color> {\n if (options.debug) {\n console.log(\"starting character color capture\");\n console.log(\"characterMesh provided:\", !!characterMesh);\n }\n\n // temporary scene for rendering the character\n const scene = new Scene();\n scene.add(characterMesh.clone());\n scene.add(new AmbientLight(0xffffff, 5));\n\n // camera in front of the character\n const camera = new OrthographicCamera(-1, 1, 1, -1, 0.1, 1000);\n const box = new Box3().setFromObject(characterMesh);\n const center = box.getCenter(new Vector3());\n const size = box.getSize(new Vector3());\n\n camera.position.set(center.x, center.y + size.y * 0.1, center.z + size.z * 2);\n camera.lookAt(center);\n\n // temporary renderer\n const canvas = document.createElement(\"canvas\");\n const renderer = new WebGLRenderer({\n canvas,\n preserveDrawingBuffer: true,\n alpha: true,\n });\n\n const renderSize = 512;\n renderer.setSize(renderSize, renderSize);\n\n // render target to capture pixels\n const renderTarget = new WebGLRenderTarget(renderSize, renderSize);\n\n const sampledColors = new Map<ColorPartName, Color>();\n try {\n renderer.setRenderTarget(renderTarget);\n renderer.render(scene, camera);\n const pixels = new Uint8Array(renderSize * renderSize * 4);\n renderer.readRenderTargetPixels(renderTarget, 0, 0, renderSize, renderSize, pixels);\n\n const flippedPixels = new Uint8Array(pixels.length);\n\n for (let y = 0; y < renderSize; y++) {\n for (let x = 0; x < renderSize; x++) {\n const srcIndex = (y * renderSize + x) * 4;\n const dstY = renderSize - y - 1;\n const dstIndex = (dstY * renderSize + x) * 4;\n\n flippedPixels[dstIndex] = pixels[srcIndex];\n flippedPixels[dstIndex + 1] = pixels[srcIndex + 1];\n flippedPixels[dstIndex + 2] = pixels[srcIndex + 2];\n flippedPixels[dstIndex + 3] = pixels[srcIndex + 3];\n }\n }\n\n pixels.set(flippedPixels);\n\n const boneRegions = getBoneRegionsForColorSampling(\n characterMesh,\n camera,\n renderSize,\n options.circularSamplingRadius,\n options.topDownSamplingSize,\n options.debug,\n );\n if (options.debug) {\n createDebugCanvas(pixels, renderSize, \"Character Screenshot\", boneRegions);\n console.log(`found ${boneRegions.length} bone regions to sample`);\n }\n\n for (const region of boneRegions) {\n let avgColor: { r: number; g: number; b: number };\n\n // top-down sampling for hair\n if (region.name === \"Hair/Head Top\" && region.width && region.height) {\n avgColor = sampleTopDown({\n pixels,\n center: region.screenPos,\n width: region.width,\n height: region.height,\n imageWidth: renderSize,\n debug: options.debug,\n });\n } else {\n if (region.name === \"Face/Chin\") {\n avgColor = sampleCircularRegion({\n regionName: region.name,\n pixels,\n center: region.screenPos,\n radius: region.radius!,\n imageWidth: renderSize,\n getMostCommonColor: true,\n debug: options.debug,\n });\n } else {\n avgColor = sampleCircularRegion({\n regionName: region.name,\n pixels,\n center: region.screenPos,\n radius: region.radius!,\n imageWidth: renderSize,\n debug: options.debug,\n });\n }\n }\n\n if (options.debug) {\n console.log(\n `${region.name} at (${region.screenPos.x}, ${region.screenPos.y}): rgb(${avgColor.r}, ${avgColor.g}, ${avgColor.b}) - #${avgColor.r.toString(16).padStart(2, \"0\")}${avgColor.g.toString(16).padStart(2, \"0\")}${avgColor.b.toString(16).padStart(2, \"0\")}`,\n );\n }\n\n const materialColor = new Color().setRGB(\n avgColor.r / 255,\n avgColor.g / 255,\n avgColor.b / 255,\n );\n\n if (region.name === \"Hair/Head Top\") {\n sampledColors.set(\"hair\", materialColor);\n } else if (region.name === \"Face/Chin\") {\n sampledColors.set(\"skin\", materialColor);\n sampledColors.set(\"lips\", materialColor.clone().multiplyScalar(0.8));\n } else if (region.name === \"Chest\") {\n sampledColors.set(\"shirt_short\", materialColor);\n sampledColors.set(\"shirt_long\", materialColor);\n } else if (region.name === \"Left Thigh\" || region.name === \"Right Thigh\") {\n if (!sampledColors.has(\"pants_short\")) {\n sampledColors.set(\"pants_short\", materialColor);\n }\n } else if (region.name === \"Left Shin\" || region.name === \"Right Shin\") {\n if (!sampledColors.has(\"pants_long\")) {\n sampledColors.set(\"pants_long\", materialColor);\n }\n } else if (region.name === \"Left Foot\" || region.name === \"Right Foot\") {\n if (!sampledColors.has(\"shoes\")) {\n sampledColors.set(\"shoes\", materialColor);\n }\n }\n }\n } catch (error) {\n console.error(\"error capturing character colors:\", error);\n } finally {\n renderer.setRenderTarget(null);\n renderTarget.dispose();\n renderer.dispose();\n scene.remove(characterMesh);\n }\n\n if (options.debug) {\n console.log(\"character color capture completed!\");\n }\n return sampledColors;\n}\n\nexport function captureCharacterColorsFromObject3D(\n object3D: Object3D,\n options: ColorSamplingOptions,\n): Map<ColorPartName, Color> {\n const clone = SkeletonUtils.clone(object3D);\n clone.position.set(0, 0, 0);\n clone.rotation.set(0, 0, 0);\n clone.scale.set(1, 1, 1);\n const skinnedMeshes: SkinnedMesh[] = [];\n clone.traverse((child) => {\n if (child instanceof SkinnedMesh || (child as SkinnedMesh).isSkinnedMesh) {\n const skinnedMesh = child as SkinnedMesh;\n skinnedMesh.skeleton.pose();\n skinnedMesh.skeleton.update();\n skinnedMesh.updateMatrixWorld(true);\n }\n });\n\n return captureCharacterColors(object3D, options);\n}\n\nfunction findBoneCenter(bone: Bone): Vector3 {\n const boneStart = new Vector3();\n bone.getWorldPosition(boneStart);\n\n // if bone has child bones we'll use the first child as the end point\n const childBones = bone.children.filter((child) => child instanceof Bone) as Bone[];\n if (childBones.length > 0) {\n const boneEnd = new Vector3();\n childBones[0].getWorldPosition(boneEnd);\n\n // midpoint between start and end\n return boneStart.clone().add(boneEnd).multiplyScalar(0.5);\n }\n\n // leaf bone, so all we can do is to return the start position\n return boneStart;\n}\n\nfunction getBoneRegionsForColorSampling(\n characterMesh: Object3D,\n camera: Camera,\n renderSize: number,\n circularSamplingRadius?: number,\n topDownSamplingSize?: { width: number; height: number },\n debug?: boolean,\n): Array<{\n name: string;\n screenPos: Vector2;\n radius?: number;\n width?: number;\n height?: number;\n shape: \"circle\" | \"rectangle\";\n}> {\n const regions: Array<{\n name: string;\n screenPos: Vector2;\n radius?: number;\n width?: number;\n height?: number;\n shape: \"circle\" | \"rectangle\";\n }> = [];\n\n let firstSkinnedMesh: SkinnedMesh | null = null;\n characterMesh.traverse((child) => {\n if (\n !firstSkinnedMesh &&\n (child instanceof SkinnedMesh || (child as SkinnedMesh).isSkinnedMesh)\n ) {\n firstSkinnedMesh = child as SkinnedMesh;\n }\n });\n if (!firstSkinnedMesh) {\n console.warn(\"No SkinnedMesh objects found in Object3D hierarchy\");\n return regions;\n }\n const skinnedMesh = firstSkinnedMesh as SkinnedMesh;\n\n if (debug) {\n console.log(\"Available bones:\");\n console.table(listAllBoneNames(skinnedMesh));\n }\n\n const boneTargets = [\n { name: \"Face/Chin\", boneName: \"neck_02\" },\n { name: \"Chest\", boneName: \"spine_04\" },\n { name: \"Left Forearm\", boneName: \"lowerarm_l\" },\n { name: \"Right Forearm\", boneName: \"lowerarm_r\" },\n { name: \"Left Thigh\", boneName: \"thigh_l\" },\n { name: \"Right Thigh\", boneName: \"thigh_r\" },\n { name: \"Left Shin\", boneName: \"calf_l\" },\n { name: \"Right Shin\", boneName: \"calf_r\" },\n { name: \"Left Hand\", boneName: \"hand_l\" },\n { name: \"Right Hand\", boneName: \"hand_r\" },\n { name: \"Left Foot\", boneName: \"foot_l\" },\n { name: \"Right Foot\", boneName: \"foot_r\" },\n { name: \"Hair/Head Top\", boneName: \"head\" },\n ];\n\n const screenPos = new Vector3();\n\n for (const target of boneTargets) {\n const bone: Bone | undefined = skinnedMesh.skeleton.bones.find(\n (child) => child.name === target.boneName,\n );\n\n if (bone) {\n const worldPos = findBoneCenter(bone);\n screenPos.copy(worldPos);\n screenPos.project(camera);\n\n const x = Math.round((screenPos.x * 0.5 + 0.5) * renderSize);\n const y = Math.round((screenPos.y * -0.5 + 0.5) * renderSize);\n\n if (x >= 0 && x < renderSize && y >= 0 && y < renderSize) {\n if (target.name === \"Hair/Head Top\") {\n regions.push({\n name: target.name,\n screenPos: new Vector2(x, y),\n width: topDownSamplingSize?.width ?? 10,\n height: topDownSamplingSize?.height ?? 100,\n shape: \"rectangle\",\n });\n } else {\n regions.push({\n name: target.name,\n screenPos: new Vector2(x, y),\n radius: circularSamplingRadius ?? 8,\n shape: \"circle\",\n });\n }\n }\n } else {\n console.warn(`Bone not found: ${target.boneName}`);\n }\n }\n\n return regions;\n}\n\nfunction sampleCircularRegion(params: {\n regionName: string;\n pixels: Uint8Array;\n center: Vector2;\n radius: number;\n imageWidth: number;\n getMostCommonColor?: boolean;\n debug?: boolean;\n}): { r: number; g: number; b: number } {\n let totalR = 0,\n totalG = 0,\n totalB = 0;\n let sampleCount = 0;\n\n // Map to track color frequency for finding most common color\n const colorFrequency = new Map<string, { count: number; r: number; g: number; b: number }>();\n\n const radiusSquared = params.radius * params.radius;\n const minX = Math.max(0, Math.floor(params.center.x - params.radius));\n const maxX = Math.min(params.imageWidth - 1, Math.ceil(params.center.x + params.radius));\n const minY = Math.max(0, Math.floor(params.center.y - params.radius));\n const maxY = Math.min(params.imageWidth - 1, Math.ceil(params.center.y + params.radius));\n\n for (let y = minY; y <= maxY; y++) {\n for (let x = minX; x <= maxX; x++) {\n const dx = x - params.center.x;\n const dy = y - params.center.y;\n const distSquared = dx * dx + dy * dy;\n\n if (distSquared <= radiusSquared) {\n const pixelIndex = (y * params.imageWidth + x) * 4;\n const r = params.pixels[pixelIndex];\n const g = params.pixels[pixelIndex + 1];\n const b = params.pixels[pixelIndex + 2];\n\n totalR += r;\n totalG += g;\n totalB += b;\n sampleCount++;\n\n // track color frequency (round to nearest 5 to group similar colors)\n const roundedR = Math.round(r / 5) * 5;\n const roundedG = Math.round(g / 5) * 5;\n const roundedB = Math.round(b / 5) * 5;\n const colorKey = `${roundedR},${roundedG},${roundedB}`;\n\n if (colorFrequency.has(colorKey)) {\n colorFrequency.get(colorKey)!.count++;\n } else {\n colorFrequency.set(colorKey, { count: 1, r: roundedR, g: roundedG, b: roundedB });\n }\n }\n }\n }\n\n if (sampleCount === 0) {\n return { r: 0, g: 0, b: 0 };\n }\n\n // find most common color\n let mostCommonColor = { r: 0, g: 0, b: 0, count: 0 };\n for (const [, colorData] of colorFrequency.entries()) {\n if (colorData.count > mostCommonColor.count) {\n mostCommonColor = { ...colorData };\n }\n }\n\n const commonColor = {\n r: Math.round(mostCommonColor.r),\n g: Math.round(mostCommonColor.g),\n b: Math.round(mostCommonColor.b),\n };\n\n const avgColor = {\n r: Math.round(totalR / sampleCount),\n g: Math.round(totalG / sampleCount),\n b: Math.round(totalB / sampleCount),\n };\n\n if (params.debug) {\n console.log(`\n Circular region analysis for ${params.regionName}:\n - Most common color: rgb(${mostCommonColor.r}, ${mostCommonColor.g}, ${mostCommonColor.b}) (${mostCommonColor.count}/${sampleCount} pixels)\n - Average color: rgb(${avgColor.r}, ${avgColor.g}, ${avgColor.b})\n - Total unique colors: ${colorFrequency.size}`);\n }\n\n return params.getMostCommonColor ? commonColor : avgColor;\n}\n\nfunction sampleTopDown(params: {\n pixels: Uint8Array;\n center: Vector2;\n width: number;\n height: number;\n imageWidth: number;\n debug?: boolean;\n}): { r: number; g: number; b: number } {\n let totalR = 0,\n totalG = 0,\n totalB = 0;\n let sampleCount = 0;\n\n const halfWidth = Math.floor(params.width / 2);\n const minX = Math.max(0, params.center.x - halfWidth);\n const maxX = Math.min(params.imageWidth - 1, params.center.x + halfWidth);\n const startY = Math.max(0, params.center.y - Math.floor(params.height / 2));\n const endY = Math.min(params.imageWidth - 1, params.center.y + Math.floor(params.height / 2));\n\n let consecutiveLines = 0;\n let foundHair = false;\n\n // scan from top to bottom\n for (let y = startY; y <= endY && !foundHair; y++) {\n let lineHasPixels = false;\n let lineR = 0,\n lineG = 0,\n lineB = 0,\n lineCount = 0;\n\n // check this horizontal line for non-transparent pixels\n for (let x = minX; x <= maxX; x++) {\n const pixelIndex = (y * params.imageWidth + x) * 4;\n const alpha = params.pixels[pixelIndex + 3];\n\n if (alpha > 200) {\n lineHasPixels = true;\n lineR += params.pixels[pixelIndex];\n lineG += params.pixels[pixelIndex + 1];\n lineB += params.pixels[pixelIndex + 2];\n lineCount++;\n }\n }\n\n if (lineHasPixels && lineCount > 0) {\n consecutiveLines++;\n totalR += lineR;\n totalG += lineG;\n totalB += lineB;\n sampleCount += lineCount;\n\n // If we found 3 consecutive lines with pixels, we've found the hair\n if (consecutiveLines >= 3) {\n foundHair = true;\n }\n } else {\n // reset counter if we hit a transparent line\n if (consecutiveLines > 0) {\n // we had some lines but hit transparency, decide if we have enough\n if (consecutiveLines >= 2) {\n foundHair = true;\n } else {\n // not enough, reset and continue\n consecutiveLines = 0;\n totalR = totalG = totalB = sampleCount = 0;\n }\n }\n }\n }\n\n if (sampleCount === 0) {\n console.warn(\"No hair pixels found in top-down sampling, falling back to center pixel\");\n // fallback to center pixel if no hair found\n const centerPixelIndex = (params.center.y * params.imageWidth + params.center.x) * 4;\n return {\n r: params.pixels[centerPixelIndex],\n g: params.pixels[centerPixelIndex + 1],\n b: params.pixels[centerPixelIndex + 2],\n };\n }\n\n if (params.debug) {\n console.log(\n `hair color: rgb(${totalR / sampleCount}, ${totalG / sampleCount}, ${totalB / sampleCount})`,\n );\n }\n\n return {\n r: Math.round(totalR / sampleCount),\n g: Math.round(totalG / sampleCount),\n b: Math.round(totalB / sampleCount),\n };\n}\n\nfunction createDebugCanvas(\n pixels: Uint8Array,\n size: number,\n title: string,\n boneRegions?: Array<{\n name: string;\n screenPos: Vector2;\n radius?: number;\n width?: number;\n height?: number;\n shape: \"circle\" | \"rectangle\";\n }>,\n): void {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n\n if (!ctx) {\n console.error(\"Could not get canvas context for debug display\");\n return;\n }\n\n canvas.width = size;\n canvas.height = size;\n\n const imageData = ctx.createImageData(size, size);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n\n if (boneRegions) {\n boneRegions.forEach((region, index) => {\n ctx.strokeStyle = index % 2 === 0 ? \"#ff0000\" : \"#00ff00\"; // Alternate red/green\n ctx.lineWidth = 2;\n\n if (region.shape === \"circle\" && region.radius !== undefined) {\n // draw circular region\n ctx.beginPath();\n ctx.arc(region.screenPos.x, region.screenPos.y, region.radius, 0, 2 * Math.PI);\n ctx.stroke();\n\n // center point\n ctx.beginPath();\n ctx.arc(region.screenPos.x, region.screenPos.y, 2, 0, 2 * Math.PI);\n ctx.fillStyle = ctx.strokeStyle;\n ctx.fill();\n\n // label\n ctx.fillStyle = \"#ffffff\";\n ctx.font = \"10px monospace\";\n ctx.strokeStyle = \"#000000\";\n ctx.lineWidth = 3;\n const labelX = region.screenPos.x + region.radius + 5;\n const labelY = region.screenPos.y;\n ctx.strokeText(region.name, labelX, labelY);\n ctx.fillText(region.name, labelX, labelY);\n } else if (\n region.shape === \"rectangle\" &&\n region.width !== undefined &&\n region.height !== undefined\n ) {\n // draw rectangular region\n const halfWidth = region.width / 2;\n const halfHeight = region.height / 2;\n const rectX = region.screenPos.x - halfWidth;\n const rectY = region.screenPos.y - halfHeight;\n\n ctx.strokeRect(rectX, rectY, region.width, region.height);\n\n // center point\n ctx.beginPath();\n ctx.arc(region.screenPos.x, region.screenPos.y, 2, 0, 2 * Math.PI);\n ctx.fillStyle = ctx.strokeStyle;\n ctx.fill();\n\n // label\n ctx.fillStyle = \"#ffffff\";\n ctx.font = \"10px monospace\";\n ctx.strokeStyle = \"#000000\";\n ctx.lineWidth = 3;\n const labelX = region.screenPos.x + halfWidth + 5;\n const labelY = region.screenPos.y;\n ctx.strokeText(region.name, labelX, labelY);\n ctx.fillText(region.name, labelX, labelY);\n }\n });\n }\n\n const container = document.createElement(\"div\");\n container.style.position = \"fixed\";\n container.style.top = \"10px\";\n container.style.right = \"10px\";\n container.style.zIndex = \"99999999\";\n container.style.background = \"rgba(0,0,0,0.8)\";\n container.style.padding = \"10px\";\n container.style.borderRadius = \"5px\";\n\n const titleElement = document.createElement(\"div\");\n titleElement.textContent = title;\n titleElement.style.color = \"white\";\n titleElement.style.fontSize = \"12px\";\n titleElement.style.marginBottom = \"5px\";\n titleElement.style.fontFamily = \"monospace\";\n\n canvas.style.imageRendering = \"pixelated\";\n canvas.style.width = `${size}px`;\n canvas.style.height = `${size}px`;\n canvas.style.border = \"1px solid #666\";\n\n const closeBtn = document.createElement(\"button\");\n closeBtn.textContent = \"\u2715\";\n closeBtn.style.position = \"absolute\";\n closeBtn.style.top = \"5px\";\n closeBtn.style.right = \"5px\";\n closeBtn.style.background = \"#ff0000\";\n closeBtn.style.color = \"white\";\n closeBtn.style.border = \"none\";\n closeBtn.style.borderRadius = \"3px\";\n closeBtn.style.cursor = \"pointer\";\n closeBtn.style.fontSize = \"12px\";\n closeBtn.style.width = \"20px\";\n closeBtn.style.height = \"20px\";\n closeBtn.onclick = () => container.remove();\n\n container.appendChild(titleElement);\n container.appendChild(canvas);\n container.appendChild(closeBtn);\n document.body.appendChild(container);\n\n console.log(`Debug canvas created: ${title} (${size}x${size})`);\n}\n\nexport function updateDebugTextureCanvas(instancedMesh: InstancedMesh2): void {\n if (!instancedMesh?.materialColorsTexture) {\n console.warn(\"No material colors texture to update debug canvas\");\n return;\n }\n\n // Find existing debug texture canvas container\n const existingContainer = document.querySelector(\n '[data-debug-texture=\"material-colors\"]',\n ) as HTMLElement;\n if (!existingContainer) {\n console.warn(\"No existing debug texture canvas found to update\");\n return;\n }\n\n // Find the canvas inside the container\n const canvas = existingContainer.querySelector(\"canvas\") as HTMLCanvasElement;\n if (!canvas) {\n console.warn(\"No canvas found in debug texture container\");\n return;\n }\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) {\n console.error(\"Could not get canvas context for texture update\");\n return;\n }\n\n const texture = instancedMesh.materialColorsTexture;\n const size = texture.image.width;\n\n // Update canvas size if needed\n if (canvas.width !== size || canvas.height !== size) {\n canvas.width = size;\n canvas.height = size;\n }\n\n const imageData = ctx.createImageData(size, size);\n const data = texture._data;\n\n // Update the image data with new texture data\n for (let i = 0; i < data.length; i += 4) {\n const pixelIndex = i;\n imageData.data[pixelIndex] = Math.floor(data[i] * 255); // R\n imageData.data[pixelIndex + 1] = Math.floor(data[i + 1] * 255); // G\n imageData.data[pixelIndex + 2] = Math.floor(data[i + 2] * 255); // B\n imageData.data[pixelIndex + 3] = Math.floor(data[i + 3] * 255); // A\n }\n\n ctx.putImageData(imageData, 0, 0);\n console.log(\"Debug texture canvas updated with new material colors\");\n}\n", "import { Color, FrontSide, LinearFilter, Sprite, SpriteMaterial } from \"three\";\n\nimport { THREECanvasTextTexture } from \"./CanvasText\";\n\nenum LabelAlignment {\n left = \"left\",\n center = \"center\",\n right = \"right\",\n}\n\nconst fontScale = 5;\nconst defaultLabelColor = new Color(0x000000);\nconst defaultFontColor = new Color(0xffffff);\nconst defaultLabelAlignment = LabelAlignment.center;\nconst defaultLabelFontSize = 10;\nconst defaultLabelPadding = 10;\nconst defaultVisibleOpacity = 0.85;\nconst defaultSecondsToFadeOut = null;\n\nexport type CharacterTooltipConfig = {\n alignment: LabelAlignment;\n fontSize: number;\n padding: number;\n color: Color;\n fontColor: Color;\n visibleOpacity: number;\n maxWidth?: number;\n secondsToFadeOut: number | null;\n};\n\nexport class CharacterTooltip extends Sprite {\n private targetOpacity: number = 0;\n private fadingSpeed: number = 0.02;\n private config: CharacterTooltipConfig;\n private content: string | null = null;\n private hideTimeout: NodeJS.Timeout | null = null;\n\n constructor(configArg?: Partial<CharacterTooltipConfig>) {\n super();\n this.config = {\n alignment: defaultLabelAlignment,\n fontSize: defaultLabelFontSize,\n padding: defaultLabelPadding,\n color: defaultLabelColor,\n fontColor: defaultFontColor,\n visibleOpacity: defaultVisibleOpacity,\n secondsToFadeOut: defaultSecondsToFadeOut,\n ...configArg,\n };\n\n this.material = new SpriteMaterial({\n map: null,\n transparent: true,\n opacity: this.config.visibleOpacity,\n side: FrontSide,\n });\n\n this.position.set(0, 1.6, 0);\n this.visible = false;\n }\n\n public setHeightOffset(height: number) {\n this.position.y = height + this.scale.y / 2;\n }\n\n private redrawText(content: string) {\n if (content === this.content) {\n // No need to redraw if the content is the same\n return;\n }\n this.content = content;\n\n // Dispose old texture before creating new one\n const oldTexture = this.material.map;\n if (oldTexture) {\n oldTexture.dispose();\n this.material.map = null;\n }\n\n const { texture, width, height } = THREECanvasTextTexture(content, {\n bold: true,\n fontSize: this.config.fontSize * fontScale,\n paddingPx: this.config.padding,\n textColorRGB255A1: {\n r: this.config.fontColor.r * 255,\n g: this.config.fontColor.g * 255,\n b: this.config.fontColor.b * 255,\n a: 1.0,\n },\n backgroundColorRGB255A1: {\n r: this.config.color.r * 255,\n g: this.config.color.g * 255,\n b: this.config.color.b * 255,\n a: 1.0,\n },\n alignment: this.config.alignment,\n dimensions:\n this.config.maxWidth !== undefined\n ? {\n maxWidth: this.config.maxWidth,\n }\n : undefined,\n });\n\n this.material.map = texture;\n this.material.map.magFilter = LinearFilter;\n this.material.map.minFilter = LinearFilter;\n this.material.needsUpdate = true;\n\n this.scale.x = width / (100 * fontScale);\n this.scale.y = height / (100 * fontScale);\n }\n\n setText(text: string, onRemove?: () => void) {\n const sanitizedText = text.replace(/(\\r\\n|\\n|\\r)/gm, \"\");\n this.visible = true;\n this.targetOpacity = this.config.visibleOpacity;\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n if (this.config.secondsToFadeOut !== null) {\n this.hideTimeout = setTimeout(() => {\n this.hideTimeout = null;\n this.hide();\n if (onRemove) {\n onRemove();\n }\n }, this.config.secondsToFadeOut * 1000);\n }\n this.redrawText(sanitizedText);\n }\n\n hide() {\n this.targetOpacity = 0;\n }\n\n show() {\n this.setText(this.content || \"\");\n }\n\n update() {\n const opacity = this.material.opacity;\n if (opacity < this.targetOpacity) {\n this.material.opacity = Math.min(\n this.material.opacity + this.fadingSpeed,\n this.targetOpacity,\n );\n } else if (opacity > this.targetOpacity) {\n this.material.opacity = Math.max(\n this.material.opacity - this.fadingSpeed,\n this.targetOpacity,\n );\n if (opacity >= 1 && this.material.transparent) {\n this.material.transparent = false;\n this.material.needsUpdate = true;\n } else if (opacity > 0 && opacity < 1 && !this.material.transparent) {\n this.material.transparent = true;\n this.material.needsUpdate = true;\n }\n if (this.material.opacity <= 0) {\n this.visible = false;\n }\n }\n }\n\n dispose() {\n // Clear timeout to prevent callback from running after disposal\n if (this.hideTimeout) {\n clearTimeout(this.hideTimeout);\n this.hideTimeout = null;\n }\n\n // Dispose texture\n const texture = this.material.map;\n if (texture) {\n texture.dispose();\n this.material.map = null;\n }\n\n // Dispose material\n this.material.dispose();\n\n // Clear content reference\n this.content = null;\n }\n}\n", "import { Texture, LinearFilter, RGBAFormat } from \"three\";\n\nexport type RGBA = {\n r: number;\n g: number;\n b: number;\n a: number;\n};\n\nexport type CanvasTextOptions = {\n fontSize: number;\n textColorRGB255A1: RGBA;\n backgroundColorRGB255A1?: RGBA;\n font?: string;\n bold?: boolean;\n paddingPx?: number;\n alignment?: string;\n dimensions?:\n | {\n maxWidth?: undefined;\n width: number;\n height: number;\n }\n | {\n maxWidth: number;\n };\n};\n\nfunction getTextAlignOffset(textAlign: CanvasTextAlign, width: number) {\n switch (textAlign) {\n case \"center\":\n return width / 2;\n case \"right\":\n return width;\n default:\n return 0;\n }\n}\n\nfunction printAtWordWrap(\n context: CanvasRenderingContext2D,\n fullText: string,\n textAlign: CanvasTextAlign,\n y: number,\n lineHeight: number,\n fitWidth: number,\n padding: number,\n) {\n const x = getTextAlignOffset(textAlign, fitWidth - padding * 2);\n const lines = fullText.split(\"\\n\");\n let currentLine = 0;\n for (const text of lines) {\n fitWidth = fitWidth || 0;\n\n if (fitWidth <= 0) {\n context.fillText(text, x, y + lineHeight * currentLine);\n currentLine++;\n continue;\n }\n let words = text.split(\" \");\n let lastWordIndex = 1;\n while (words.length > 0 && lastWordIndex <= words.length) {\n const str = words.slice(0, lastWordIndex).join(\" \");\n const textWidth = context.measureText(str).width;\n if (textWidth + padding * 2 > fitWidth) {\n if (lastWordIndex === 1) {\n // Handle case where single word is too long\n const word = words[0];\n let charIndex = 1;\n while (charIndex < word.length) {\n const substring = word.substring(0, charIndex);\n const subWidth = context.measureText(substring).width;\n if (subWidth + padding * 2 > fitWidth) {\n if (charIndex === 1) charIndex = 2;\n context.fillText(\n word.substring(0, charIndex - 1),\n x + padding,\n y + lineHeight * currentLine + padding,\n );\n currentLine++;\n words[0] = word.substring(charIndex - 1);\n break;\n }\n charIndex++;\n }\n if (charIndex >= word.length) {\n lastWordIndex = 2;\n } else {\n continue;\n }\n }\n context.fillText(\n words.slice(0, lastWordIndex - 1).join(\" \"),\n x + padding,\n y + lineHeight * currentLine + padding,\n );\n currentLine++;\n words = words.splice(lastWordIndex - 1);\n lastWordIndex = 1;\n } else {\n lastWordIndex++;\n }\n }\n if (lastWordIndex > 0 && words.length > 0) {\n context.fillText(words.join(\" \"), x + padding, y + lineHeight * currentLine + padding);\n currentLine++;\n }\n }\n}\n\nexport class CanvasText {\n private canvas: HTMLCanvasElement;\n private context: CanvasRenderingContext2D;\n\n constructor() {\n this.canvas = document.createElement(\"canvas\");\n this.context = this.canvas.getContext(\"2d\") as CanvasRenderingContext2D;\n }\n\n public renderText(message: string, options: CanvasTextOptions): HTMLCanvasElement {\n const fontsize = options.fontSize;\n const textColor = options.textColorRGB255A1;\n const backgroundColor = options.backgroundColorRGB255A1 || { r: 255, g: 255, b: 255, a: 1 };\n const padding = options.paddingPx || 0;\n const font = options.font || \"Arial\";\n const fontString = (options.bold ? \"bold \" : \"\") + fontsize + \"px \" + font;\n\n // calculate text alignment offset\n const textAlign = (options.alignment as CanvasTextAlign) ?? \"left\";\n\n if (options.dimensions && options.dimensions.maxWidth === undefined) {\n // NOTE: setting the canvas dimensions resets the context properties, so\n // we always do it first\n this.canvas.width = options.dimensions.width;\n this.canvas.height = options.dimensions.height;\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.font = fontString;\n this.context.textAlign = textAlign;\n this.context.fillStyle = `rgba(${backgroundColor.r}, ${backgroundColor.g}, ${backgroundColor.b}, ${backgroundColor.a})`;\n this.context.lineWidth = 0;\n this.context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.fillStyle = `rgba(${textColor.r}, ${textColor.g}, ${textColor.b}, ${textColor.a})`;\n printAtWordWrap(\n this.context,\n message,\n textAlign,\n fontsize,\n fontsize,\n this.canvas.width,\n padding,\n );\n return this.canvas;\n } else {\n this.context.font = fontString;\n this.context.textAlign = textAlign;\n const metrics = this.context.measureText(message);\n const textWidth = metrics.width;\n const textHeight = metrics.fontBoundingBoxAscent + metrics.fontBoundingBoxDescent;\n\n if (options.dimensions && options.dimensions.maxWidth !== undefined) {\n const maxWidthWithoutPadding = options.dimensions.maxWidth - padding * 2;\n if (textWidth > maxWidthWithoutPadding) {\n // This is multiple lines - estimate the lines\n const lineCount = Math.ceil(textWidth / maxWidthWithoutPadding);\n this.canvas.width = options.dimensions.maxWidth;\n this.canvas.height = textHeight * lineCount + padding * 2;\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.font = fontString;\n this.context.textAlign = textAlign;\n this.context.fillStyle = `rgba(${backgroundColor.r}, ${backgroundColor.g}, ${backgroundColor.b}, ${backgroundColor.a})`;\n this.context.lineWidth = 0;\n this.context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.fillStyle = `rgba(${textColor.r}, ${textColor.g}, ${textColor.b}, ${textColor.a})`;\n printAtWordWrap(\n this.context,\n message,\n textAlign,\n fontsize,\n fontsize,\n this.canvas.width,\n padding,\n );\n return this.canvas;\n } else {\n // Allow the text to be rendered as a single line (below)\n }\n }\n\n // NOTE: setting the this.canvas dimensions resets the context properties, so\n // we always do it first. However, we also need to take into account the\n // font size to measure the text in the first place.\n this.canvas.width = textWidth + padding * 2;\n this.canvas.height = textHeight + padding * 2;\n this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.font = fontString;\n this.context.textAlign = textAlign;\n this.context.fillStyle = `rgba(${backgroundColor.r}, ${backgroundColor.g}, ${backgroundColor.b}, ${backgroundColor.a})`;\n this.context.lineWidth = 0;\n this.context.fillRect(0, 0, this.canvas.width, this.canvas.height);\n this.context.fillStyle = `rgba(${textColor.r}, ${textColor.g}, ${textColor.b}, ${textColor.a})`;\n this.context.fillText(\n message,\n padding + getTextAlignOffset(textAlign, textWidth),\n textHeight,\n );\n }\n\n return this.canvas;\n }\n}\n\nexport function THREECanvasTextTexture(\n text: string,\n options: CanvasTextOptions,\n): { texture: Texture; width: number; height: number } {\n const canvas = new CanvasText().renderText(text, options);\n const texture = new Texture(canvas);\n texture.minFilter = LinearFilter;\n texture.magFilter = LinearFilter;\n texture.format = RGBAFormat;\n texture.needsUpdate = true;\n\n return { texture, width: canvas.width, height: canvas.height };\n}\n", "import lowPolyLoDModelUrlImport from \"../assets/low-poly-humanoid.glb\";\n\nexport const lowPolyLoDModelURL = lowPolyLoDModelUrlImport;\n", "import { ModelLoader, ModelLoadResult } from \"@mml-io/model-loader\";\nimport { AnimationClip, Object3D } from \"three\";\n\nimport { GLTFLoadingWorkerPool } from \"./GLTFLoadingWorkerPool\";\n\nexport class CharacterModelLoader {\n private readonly modelLoader: ModelLoader = new ModelLoader();\n private workerPool: GLTFLoadingWorkerPool;\n\n constructor(private debug: boolean = false) {\n this.workerPool = new GLTFLoadingWorkerPool();\n }\n\n async loadModel(\n fileUrl: string,\n maxTextureSize: number,\n abortController?: AbortController,\n ): Promise<Object3D | null> {\n if (this.debug) {\n console.log(`Loading and processing ${fileUrl} with max texture size ${maxTextureSize}`);\n }\n\n try {\n const processedBuffer = await this.processGLTFInWorker(\n fileUrl,\n maxTextureSize,\n abortController,\n );\n return await this.loadFromBuffer(processedBuffer, fileUrl);\n } catch (error) {\n // Check if the error is due to cancellation\n if (abortController?.signal.aborted) {\n console.log(`Loading canceled for ${fileUrl}`);\n return null;\n }\n console.error(`Error loading model from ${fileUrl}:`, error);\n throw error;\n }\n }\n\n async loadAnimation(\n fileUrl: string,\n abortController?: AbortController,\n ): Promise<AnimationClip | null> {\n const animationResult = await this.modelLoader.load(fileUrl);\n if (abortController?.signal.aborted) {\n console.log(`Loading animation canceled for ${fileUrl}`);\n return null;\n }\n return animationResult.animations[0] as AnimationClip;\n }\n\n private async processGLTFInWorker(\n fileUrl: string,\n maxTextureSize: number,\n abortController?: AbortController,\n ): Promise<ArrayBuffer> {\n if (this.debug) {\n console.log(`Processing gLTF in worker: ${fileUrl}`);\n }\n\n const startTime = performance.now();\n\n try {\n const absoluteFileUrl = new URL(fileUrl, window.location.href).href;\n const processedBuffer = await this.workerPool.processGLTF(\n absoluteFileUrl,\n maxTextureSize,\n abortController,\n );\n const endTime = performance.now();\n\n if (this.debug) {\n console.log(`gLTF processing completed in ${(endTime - startTime).toFixed(2)}ms`);\n }\n\n return processedBuffer;\n } catch (error) {\n if (this.debug) {\n console.warn(\n `Worker processing failed for ${fileUrl}, falling back to regular loading:`,\n error,\n );\n }\n\n // Check if cancellation was requested\n if (abortController?.signal.aborted) {\n throw new Error(\"Operation canceled\");\n }\n\n throw error;\n }\n }\n\n private async loadFromBuffer(buffer: ArrayBuffer, pathName: string): Promise<Object3D | null> {\n const modelLoadResult: ModelLoadResult = await this.modelLoader.loadFromBuffer(\n buffer,\n pathName,\n );\n\n return modelLoadResult.group as Object3D;\n }\n}\n", "\n const workerCode = \"(()=>{var ii=Object.create;var cE=Object.defineProperty;var oi=Object.getOwnPropertyDescriptor;var ti=Object.getOwnPropertyNames;var Di=Object.getPrototypeOf,ei=Object.prototype.hasOwnProperty;var mC=(B=>typeof require<\\\"u\\\"?require:typeof Proxy<\\\"u\\\"?new Proxy(B,{get:(A,I)=>(typeof require<\\\"u\\\"?require:A)[I]}):B)(function(B){if(typeof require<\\\"u\\\")return require.apply(this,arguments);throw Error('Dynamic require of \\\"'+B+'\\\" is not supported')});var IQ=(B,A)=>()=>(A||B((A={exports:{}}).exports,A),A.exports);var si=(B,A,I,C)=>{if(A&&typeof A==\\\"object\\\"||typeof A==\\\"function\\\")for(let g of ti(A))!ei.call(B,g)&&g!==I&&cE(B,g,{get:()=>A[g],enumerable:!(C=oi(A,g))||C.enumerable});return B};var ai=(B,A,I)=>(I=B!=null?ii(Di(B)):{},si(A||!B||!B.__esModule?cE(I,\\\"default\\\",{value:B,enumerable:!0}):I,B));var $E=IQ((fC,cQ)=>{var x=x||{};x.scope={};x.arrayIteratorImpl=function(B){var A=0;return function(){return A<B.length?{done:!1,value:B[A++]}:{done:!0}}};x.arrayIterator=function(B){return{next:x.arrayIteratorImpl(B)}};x.makeIterator=function(B){var A=typeof Symbol<\\\"u\\\"&&Symbol.iterator&&B[Symbol.iterator];return A?A.call(B):x.arrayIterator(B)};x.ASSUME_ES5=!1;x.ASSUME_NO_NATIVE_MAP=!1;x.ASSUME_NO_NATIVE_SET=!1;x.SIMPLE_FROUND_POLYFILL=!1;x.ISOLATE_POLYFILLS=!1;x.FORCE_POLYFILL_PROMISE=!1;x.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;x.getGlobal=function(B){B=[typeof globalThis==\\\"object\\\"&&globalThis,B,typeof window==\\\"object\\\"&&window,typeof self==\\\"object\\\"&&self,typeof global==\\\"object\\\"&&global];for(var A=0;A<B.length;++A){var I=B[A];if(I&&I.Math==Math)return I}throw Error(\\\"Cannot find global object\\\")};x.global=x.getGlobal(fC);x.defineProperty=x.ASSUME_ES5||typeof Object.defineProperties==\\\"function\\\"?Object.defineProperty:function(B,A,I){return B==Array.prototype||B==Object.prototype||(B[A]=I.value),B};x.IS_SYMBOL_NATIVE=typeof Symbol==\\\"function\\\"&&typeof Symbol(\\\"x\\\")==\\\"symbol\\\";x.TRUST_ES6_POLYFILLS=!x.ISOLATE_POLYFILLS||x.IS_SYMBOL_NATIVE;x.polyfills={};x.propertyToPolyfillSymbol={};x.POLYFILL_PREFIX=\\\"$jscp$\\\";x.polyfill=function(B,A,I,C){A&&(x.ISOLATE_POLYFILLS?x.polyfillIsolated(B,A,I,C):x.polyfillUnisolated(B,A,I,C))};x.polyfillUnisolated=function(B,A,I,C){for(I=x.global,B=B.split(\\\".\\\"),C=0;C<B.length-1;C++){var g=B[C];if(!(g in I))return;I=I[g]}B=B[B.length-1],C=I[B],A=A(C),A!=C&&A!=null&&x.defineProperty(I,B,{configurable:!0,writable:!0,value:A})};x.polyfillIsolated=function(B,A,I,C){var g=B.split(\\\".\\\");B=g.length===1,C=g[0],C=!B&&C in x.polyfills?x.polyfills:x.global;for(var E=0;E<g.length-1;E++){var Q=g[E];if(!(Q in C))return;C=C[Q]}g=g[g.length-1],I=x.IS_SYMBOL_NATIVE&&I===\\\"es6\\\"?C[g]:null,A=A(I),A!=null&&(B?x.defineProperty(x.polyfills,g,{configurable:!0,writable:!0,value:A}):A!==I&&(x.propertyToPolyfillSymbol[g]===void 0&&(I=1e9*Math.random()>>>0,x.propertyToPolyfillSymbol[g]=x.IS_SYMBOL_NATIVE?x.global.Symbol(g):x.POLYFILL_PREFIX+I+\\\"$\\\"+g),x.defineProperty(C,x.propertyToPolyfillSymbol[g],{configurable:!0,writable:!0,value:A})))};x.polyfill(\\\"Promise\\\",function(B){function A(){this.batch_=null}function I(Q){return Q instanceof g?Q:new g(function(o,s){o(Q)})}if(B&&(!(x.FORCE_POLYFILL_PROMISE||x.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof x.global.PromiseRejectionEvent>\\\"u\\\")||!x.global.Promise||x.global.Promise.toString().indexOf(\\\"[native code]\\\")===-1))return B;A.prototype.asyncExecute=function(Q){if(this.batch_==null){this.batch_=[];var o=this;this.asyncExecuteFunction(function(){o.executeBatch_()})}this.batch_.push(Q)};var C=x.global.setTimeout;A.prototype.asyncExecuteFunction=function(Q){C(Q,0)},A.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var Q=this.batch_;this.batch_=[];for(var o=0;o<Q.length;++o){var s=Q[o];Q[o]=null;try{s()}catch(y){this.asyncThrow_(y)}}}this.batch_=null},A.prototype.asyncThrow_=function(Q){this.asyncExecuteFunction(function(){throw Q})};var g=function(Q){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var o=this.createResolveAndReject_();try{Q(o.resolve,o.reject)}catch(s){o.reject(s)}};g.prototype.createResolveAndReject_=function(){function Q(y){return function(G){s||(s=!0,y.call(o,G))}}var o=this,s=!1;return{resolve:Q(this.resolveTo_),reject:Q(this.reject_)}},g.prototype.resolveTo_=function(Q){if(Q===this)this.reject_(new TypeError(\\\"A Promise cannot resolve to itself\\\"));else if(Q instanceof g)this.settleSameAsPromise_(Q);else{A:switch(typeof Q){case\\\"object\\\":var o=Q!=null;break A;case\\\"function\\\":o=!0;break A;default:o=!1}o?this.resolveToNonPromiseObj_(Q):this.fulfill_(Q)}},g.prototype.resolveToNonPromiseObj_=function(Q){var o=void 0;try{o=Q.then}catch(s){this.reject_(s);return}typeof o==\\\"function\\\"?this.settleSameAsThenable_(o,Q):this.fulfill_(Q)},g.prototype.reject_=function(Q){this.settle_(2,Q)},g.prototype.fulfill_=function(Q){this.settle_(1,Q)},g.prototype.settle_=function(Q,o){if(this.state_!=0)throw Error(\\\"Cannot settle(\\\"+Q+\\\", \\\"+o+\\\"): Promise already settled in state\\\"+this.state_);this.state_=Q,this.result_=o,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},g.prototype.scheduleUnhandledRejectionCheck_=function(){var Q=this;C(function(){if(Q.notifyUnhandledRejection_()){var o=x.global.console;typeof o<\\\"u\\\"&&o.error(Q.result_)}},1)},g.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var Q=x.global.CustomEvent,o=x.global.Event,s=x.global.dispatchEvent;return typeof s>\\\"u\\\"?!0:(typeof Q==\\\"function\\\"?Q=new Q(\\\"unhandledrejection\\\",{cancelable:!0}):typeof o==\\\"function\\\"?Q=new o(\\\"unhandledrejection\\\",{cancelable:!0}):(Q=x.global.document.createEvent(\\\"CustomEvent\\\"),Q.initCustomEvent(\\\"unhandledrejection\\\",!1,!0,Q)),Q.promise=this,Q.reason=this.result_,s(Q))},g.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var Q=0;Q<this.onSettledCallbacks_.length;++Q)E.asyncExecute(this.onSettledCallbacks_[Q]);this.onSettledCallbacks_=null}};var E=new A;return g.prototype.settleSameAsPromise_=function(Q){var o=this.createResolveAndReject_();Q.callWhenSettled_(o.resolve,o.reject)},g.prototype.settleSameAsThenable_=function(Q,o){var s=this.createResolveAndReject_();try{Q.call(o,s.resolve,s.reject)}catch(y){s.reject(y)}},g.prototype.then=function(Q,o){function s(r,N){return typeof r==\\\"function\\\"?function(w){try{y(r(w))}catch(U){G(U)}}:N}var y,G,M=new g(function(r,N){y=r,G=N});return this.callWhenSettled_(s(Q,y),s(o,G)),M},g.prototype.catch=function(Q){return this.then(void 0,Q)},g.prototype.callWhenSettled_=function(Q,o){function s(){switch(y.state_){case 1:Q(y.result_);break;case 2:o(y.result_);break;default:throw Error(\\\"Unexpected state: \\\"+y.state_)}}var y=this;this.onSettledCallbacks_==null?E.asyncExecute(s):this.onSettledCallbacks_.push(s),this.isRejectionHandled_=!0},g.resolve=I,g.reject=function(Q){return new g(function(o,s){s(Q)})},g.race=function(Q){return new g(function(o,s){for(var y=x.makeIterator(Q),G=y.next();!G.done;G=y.next())I(G.value).callWhenSettled_(o,s)})},g.all=function(Q){var o=x.makeIterator(Q),s=o.next();return s.done?I([]):new g(function(y,G){function M(w){return function(U){r[w]=U,N--,N==0&&y(r)}}var r=[],N=0;do r.push(void 0),N++,I(s.value).callWhenSettled_(M(r.length-1),G),s=o.next();while(!s.done)})},g},\\\"es6\\\",\\\"es3\\\");x.owns=function(B,A){return Object.prototype.hasOwnProperty.call(B,A)};x.assign=x.TRUST_ES6_POLYFILLS&&typeof Object.assign==\\\"function\\\"?Object.assign:function(B,A){for(var I=1;I<arguments.length;I++){var C=arguments[I];if(C)for(var g in C)x.owns(C,g)&&(B[g]=C[g])}return B};x.polyfill(\\\"Object.assign\\\",function(B){return B||x.assign},\\\"es6\\\",\\\"es3\\\");x.checkStringArgs=function(B,A,I){if(B==null)throw new TypeError(\\\"The 'this' value for String.prototype.\\\"+I+\\\" must not be null or undefined\\\");if(A instanceof RegExp)throw new TypeError(\\\"First argument to String.prototype.\\\"+I+\\\" must not be a regular expression\\\");return B+\\\"\\\"};x.polyfill(\\\"String.prototype.startsWith\\\",function(B){return B||function(A,I){var C=x.checkStringArgs(this,A,\\\"startsWith\\\");A+=\\\"\\\";var g=C.length,E=A.length;I=Math.max(0,Math.min(I|0,C.length));for(var Q=0;Q<E&&I<g;)if(C[I++]!=A[Q++])return!1;return Q>=E}},\\\"es6\\\",\\\"es3\\\");x.polyfill(\\\"Array.prototype.copyWithin\\\",function(B){function A(I){return I=Number(I),I===1/0||I===-1/0?I:I|0}return B||function(I,C,g){var E=this.length;if(I=A(I),C=A(C),g=g===void 0?E:A(g),I=0>I?Math.max(E+I,0):Math.min(I,E),C=0>C?Math.max(E+C,0):Math.min(C,E),g=0>g?Math.max(E+g,0):Math.min(g,E),I<C)for(;C<g;)C in this?this[I++]=this[C++]:(delete this[I++],C++);else for(g=Math.min(g,E+C-I),I+=g-C;g>C;)--g in this?this[--I]=this[g]:delete this[--I];return this}},\\\"es6\\\",\\\"es3\\\");x.typedArrayCopyWithin=function(B){return B||Array.prototype.copyWithin};x.polyfill(\\\"Int8Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Uint8Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Uint8ClampedArray.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Int16Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Uint16Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Int32Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Uint32Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Float32Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");x.polyfill(\\\"Float64Array.prototype.copyWithin\\\",x.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");var FQ=function(){var B=typeof document<\\\"u\\\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<\\\"u\\\"&&(B=B||__filename),function(A){function I(e){return t.locateFile?t.locateFile(e,sA):sA+e}function C(){var e=aA.buffer;t.HEAP8=KA=new Int8Array(e),t.HEAP16=cI=new Int16Array(e),t.HEAP32=PA=new Int32Array(e),t.HEAPU8=VA=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAPU32=GA=new Uint32Array(e),t.HEAPF32=XA=new Float32Array(e),t.HEAPF64=new Float64Array(e)}function g(e){throw t.onAbort&&t.onAbort(e),e=\\\"Aborted(\\\"+e+\\\")\\\",bA(e),mA=!0,e=new WebAssembly.RuntimeError(e+\\\". Build with -sASSERTIONS for more info.\\\"),X(e),e}function E(e){try{if(e==RA&&CA)return new Uint8Array(CA);if(sI)return sI(e);throw\\\"both async and sync fetching of the wasm failed\\\"}catch(a){g(a)}}function Q(){if(!CA&&(V||i)){if(typeof fetch==\\\"function\\\"&&!RA.startsWith(\\\"file://\\\"))return fetch(RA,{credentials:\\\"same-origin\\\"}).then(function(e){if(!e.ok)throw\\\"failed to load wasm binary file at '\\\"+RA+\\\"'\\\";return e.arrayBuffer()}).catch(function(){return E(RA)});if(_A)return new Promise(function(e,a){_A(RA,function(F){e(new Uint8Array(F))},a)})}return Promise.resolve().then(function(){return E(RA)})}function o(e){for(;0<e.length;)e.shift()(t)}function s(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(a){GA[this.ptr+4>>2]=a},this.get_type=function(){return GA[this.ptr+4>>2]},this.set_destructor=function(a){GA[this.ptr+8>>2]=a},this.get_destructor=function(){return GA[this.ptr+8>>2]},this.set_refcount=function(a){PA[this.ptr>>2]=a},this.set_caught=function(a){KA[this.ptr+12>>0]=a?1:0},this.get_caught=function(){return KA[this.ptr+12>>0]!=0},this.set_rethrown=function(a){KA[this.ptr+13>>0]=a?1:0},this.get_rethrown=function(){return KA[this.ptr+13>>0]!=0},this.init=function(a,F){this.set_adjusted_ptr(0),this.set_type(a),this.set_destructor(F),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){PA[this.ptr>>2]+=1},this.release_ref=function(){var a=PA[this.ptr>>2];return PA[this.ptr>>2]=a-1,a===1},this.set_adjusted_ptr=function(a){GA[this.ptr+16>>2]=a},this.get_adjusted_ptr=function(){return GA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(RC(this.get_type()))return GA[this.excPtr>>2];var a=this.get_adjusted_ptr();return a!==0?a:this.excPtr}}function y(){function e(){if(!GI&&(GI=!0,t.calledRun=!0,!mA)){if(pA=!0,o(LI),O(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun==\\\"function\\\"&&(t.postRun=[t.postRun]);t.postRun.length;)uI.unshift(t.postRun.shift());o(uI)}}if(!(0<UA)){if(t.preRun)for(typeof t.preRun==\\\"function\\\"&&(t.preRun=[t.preRun]);t.preRun.length;)wI.unshift(t.preRun.shift());o(wI),0<UA||(t.setStatus?(t.setStatus(\\\"Running...\\\"),setTimeout(function(){setTimeout(function(){t.setStatus(\\\"\\\")},1),e()},1)):e())}}function G(){}function M(e){return(e||G).__cache__}function r(e,a){var F=M(a),S=F[e];return S||(S=Object.create((a||G).prototype),S.ptr=e,F[e]=S)}function N(e){if(typeof e==\\\"string\\\"){for(var a=0,F=0;F<e.length;++F){var S=e.charCodeAt(F);127>=S?a++:2047>=S?a+=2:55296<=S&&57343>=S?(a+=4,++F):a+=3}if(a=Array(a+1),F=0,S=a.length,0<S){S=F+S-1;for(var u=0;u<e.length;++u){var W=e.charCodeAt(u);if(55296<=W&&57343>=W){var FC=e.charCodeAt(++u);W=65536+((W&1023)<<10)|FC&1023}if(127>=W){if(F>=S)break;a[F++]=W}else{if(2047>=W){if(F+1>=S)break;a[F++]=192|W>>6}else{if(65535>=W){if(F+2>=S)break;a[F++]=224|W>>12}else{if(F+3>=S)break;a[F++]=240|W>>18,a[F++]=128|W>>12&63}a[F++]=128|W>>6&63}a[F++]=128|W&63}}a[F]=0}return e=P.alloc(a,KA),P.copy(a,KA,e),e}return e}function w(e){if(typeof e==\\\"object\\\"){var a=P.alloc(e,KA);return P.copy(e,KA,a),a}return e}function U(e){if(typeof e==\\\"object\\\"){var a=P.alloc(e,cI);return P.copy(e,cI,a),a}return e}function H(e){if(typeof e==\\\"object\\\"){var a=P.alloc(e,PA);return P.copy(e,PA,a),a}return e}function R(e){if(typeof e==\\\"object\\\"){var a=P.alloc(e,XA);return P.copy(e,XA,a),a}return e}function q(){throw\\\"cannot construct a VoidPtr, no constructor in IDL\\\"}function J(){this.ptr=WA(),M(J)[this.ptr]=this}function k(){this.ptr=aI(),M(k)[this.ptr]=this}function K(){this.ptr=VI(),M(K)[this.ptr]=this}function L(){this.ptr=XI(),M(L)[this.ptr]=this}function c(){this.ptr=Ag(),M(c)[this.ptr]=this}function Y(){this.ptr=gg(),M(Y)[this.ptr]=this}function p(){this.ptr=Eg(),M(p)[this.ptr]=this}function f(){this.ptr=sg(),M(f)[this.ptr]=this}function l(){this.ptr=Sg(),M(l)[this.ptr]=this}function _(){this.ptr=_g(),M(_)[this.ptr]=this}function T(e){e&&typeof e==\\\"object\\\"&&(e=e.ptr),this.ptr=zg(e),M(T)[this.ptr]=this}A=A===void 0?{}:A;var t=typeof A<\\\"u\\\"?A:{},O,X;t.ready=new Promise(function(e,a){O=e,X=a});var v=!1,gA=!1;t.onRuntimeInitialized=function(){v=!0,gA&&typeof t.onModuleLoaded==\\\"function\\\"&&t.onModuleLoaded(t)},t.onModuleParsed=function(){gA=!0,v&&typeof t.onModuleLoaded==\\\"function\\\"&&t.onModuleLoaded(t)},t.isVersionSupported=function(e){return typeof e!=\\\"string\\\"?!1:(e=e.split(\\\".\\\"),2>e.length||3<e.length?!1:e[0]==1&&0<=e[1]&&5>=e[1]?!0:!(e[0]!=0||10<e[1]))};var $=Object.assign({},t),V=typeof window==\\\"object\\\",i=typeof importScripts==\\\"function\\\",dA=typeof process==\\\"object\\\"&&typeof process.versions==\\\"object\\\"&&typeof process.versions.node==\\\"string\\\",sA=\\\"\\\";if(dA){var MA=mC(\\\"fs\\\"),xA=mC(\\\"path\\\");sA=i?xA.dirname(sA)+\\\"/\\\":__dirname+\\\"/\\\";var TA=function(e,a){return e=e.startsWith(\\\"file://\\\")?new URL(e):xA.normalize(e),MA.readFileSync(e,a?void 0:\\\"utf8\\\")},sI=function(e){return e=TA(e,!0),e.buffer||(e=new Uint8Array(e)),e},_A=function(e,a,F){e=e.startsWith(\\\"file://\\\")?new URL(e):xA.normalize(e),MA.readFile(e,function(S,u){S?F(S):a(u.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\\\\\/g,\\\"/\\\"),process.argv.slice(2),t.inspect=function(){return\\\"[Emscripten Module object]\\\"}}else(V||i)&&(i?sA=self.location.href:typeof document<\\\"u\\\"&&document.currentScript&&(sA=document.currentScript.src),B&&(sA=B),sA=sA.indexOf(\\\"blob:\\\")!==0?sA.substr(0,sA.replace(/[?#].*/,\\\"\\\").lastIndexOf(\\\"/\\\")+1):\\\"\\\",TA=function(e){var a=new XMLHttpRequest;return a.open(\\\"GET\\\",e,!1),a.send(null),a.responseText},i&&(sI=function(e){var a=new XMLHttpRequest;return a.open(\\\"GET\\\",e,!1),a.responseType=\\\"arraybuffer\\\",a.send(null),new Uint8Array(a.response)}),_A=function(e,a,F){var S=new XMLHttpRequest;S.open(\\\"GET\\\",e,!0),S.responseType=\\\"arraybuffer\\\",S.onload=function(){S.status==200||S.status==0&&S.response?a(S.response):F()},S.onerror=F,S.send(null)});t.print||console.log.bind(console);var bA=t.printErr||console.warn.bind(console);Object.assign(t,$),$=null;var CA;t.wasmBinary&&(CA=t.wasmBinary),typeof WebAssembly!=\\\"object\\\"&&g(\\\"no native wasm support detected\\\");var aA,mA=!1,KA,VA,cI,PA,GA,XA,wI=[],LI=[],uI=[],pA=!1,UA=0,ZA=null,rA=null,RA=\\\"draco_encoder.wasm\\\";RA.startsWith(\\\"data:application/octet-stream;base64,\\\")||(RA=I(RA));var lI=0,uC={b:function(e,a,F){throw new s(e).init(a,F),lI++,e},a:function(){g(\\\"\\\")},d:function(e,a,F){VA.copyWithin(e,a,a+F)},c:function(e){var a=VA.length;if(e>>>=0,2147483648<e)return!1;for(var F=1;4>=F;F*=2){var S=a*(1+.2/F);S=Math.min(S,e+100663296);var u=Math;S=Math.max(e,S),u=u.min.call(u,2147483648,S+(65536-S%65536)%65536);A:{S=aA.buffer;try{aA.grow(u-S.byteLength+65535>>>16),C();var W=1;break A}catch{}W=void 0}if(W)return!0}return!1}};(function(){function e(u,W){t.asm=u.exports,aA=t.asm.e,C(),LI.unshift(t.asm.f),UA--,t.monitorRunDependencies&&t.monitorRunDependencies(UA),UA==0&&(ZA!==null&&(clearInterval(ZA),ZA=null),rA&&(u=rA,rA=null,u()))}function a(u){e(u.instance)}function F(u){return Q().then(function(W){return WebAssembly.instantiate(W,S)}).then(function(W){return W}).then(u,function(W){bA(\\\"failed to asynchronously prepare wasm: \\\"+W),g(W)})}var S={a:uC};if(UA++,t.monitorRunDependencies&&t.monitorRunDependencies(UA),t.instantiateWasm)try{return t.instantiateWasm(S,e)}catch(u){bA(\\\"Module.instantiateWasm callback failed with error: \\\"+u),X(u)}return function(){return CA||typeof WebAssembly.instantiateStreaming!=\\\"function\\\"||RA.startsWith(\\\"data:application/octet-stream;base64,\\\")||RA.startsWith(\\\"file://\\\")||dA||typeof fetch!=\\\"function\\\"?F(a):fetch(RA,{credentials:\\\"same-origin\\\"}).then(function(u){return WebAssembly.instantiateStreaming(u,S).then(a,function(W){return bA(\\\"wasm streaming compile failed: \\\"+W),bA(\\\"falling back to ArrayBuffer instantiation\\\"),F(a)})})}().catch(X),{}})();var qI=t._emscripten_bind_VoidPtr___destroy___0=function(){return(qI=t._emscripten_bind_VoidPtr___destroy___0=t.asm.h).apply(null,arguments)},WA=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(WA=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=t.asm.i).apply(null,arguments)},dI=t._emscripten_bind_GeometryAttribute___destroy___0=function(){return(dI=t._emscripten_bind_GeometryAttribute___destroy___0=t.asm.j).apply(null,arguments)},aI=t._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(aI=t._emscripten_bind_PointAttribute_PointAttribute_0=t.asm.k).apply(null,arguments)},FA=t._emscripten_bind_PointAttribute_size_0=function(){return(FA=t._emscripten_bind_PointAttribute_size_0=t.asm.l).apply(null,arguments)},lC=t._emscripten_bind_PointAttribute_attribute_type_0=function(){return(lC=t._emscripten_bind_PointAttribute_attribute_type_0=t.asm.m).apply(null,arguments)},qC=t._emscripten_bind_PointAttribute_data_type_0=function(){return(qC=t._emscripten_bind_PointAttribute_data_type_0=t.asm.n).apply(null,arguments)},TC=t._emscripten_bind_PointAttribute_num_components_0=function(){return(TC=t._emscripten_bind_PointAttribute_num_components_0=t.asm.o).apply(null,arguments)},TI=t._emscripten_bind_PointAttribute_normalized_0=function(){return(TI=t._emscripten_bind_PointAttribute_normalized_0=t.asm.p).apply(null,arguments)},_I=t._emscripten_bind_PointAttribute_byte_stride_0=function(){return(_I=t._emscripten_bind_PointAttribute_byte_stride_0=t.asm.q).apply(null,arguments)},mI=t._emscripten_bind_PointAttribute_byte_offset_0=function(){return(mI=t._emscripten_bind_PointAttribute_byte_offset_0=t.asm.r).apply(null,arguments)},xI=t._emscripten_bind_PointAttribute_unique_id_0=function(){return(xI=t._emscripten_bind_PointAttribute_unique_id_0=t.asm.s).apply(null,arguments)},bI=t._emscripten_bind_PointAttribute___destroy___0=function(){return(bI=t._emscripten_bind_PointAttribute___destroy___0=t.asm.t).apply(null,arguments)},VI=t._emscripten_bind_PointCloud_PointCloud_0=function(){return(VI=t._emscripten_bind_PointCloud_PointCloud_0=t.asm.u).apply(null,arguments)},WI=t._emscripten_bind_PointCloud_num_attributes_0=function(){return(WI=t._emscripten_bind_PointCloud_num_attributes_0=t.asm.v).apply(null,arguments)},OI=t._emscripten_bind_PointCloud_num_points_0=function(){return(OI=t._emscripten_bind_PointCloud_num_points_0=t.asm.w).apply(null,arguments)},PI=t._emscripten_bind_PointCloud___destroy___0=function(){return(PI=t._emscripten_bind_PointCloud___destroy___0=t.asm.x).apply(null,arguments)},XI=t._emscripten_bind_Mesh_Mesh_0=function(){return(XI=t._emscripten_bind_Mesh_Mesh_0=t.asm.y).apply(null,arguments)},ZI=t._emscripten_bind_Mesh_num_faces_0=function(){return(ZI=t._emscripten_bind_Mesh_num_faces_0=t.asm.z).apply(null,arguments)},jI=t._emscripten_bind_Mesh_num_attributes_0=function(){return(jI=t._emscripten_bind_Mesh_num_attributes_0=t.asm.A).apply(null,arguments)},zI=t._emscripten_bind_Mesh_num_points_0=function(){return(zI=t._emscripten_bind_Mesh_num_points_0=t.asm.B).apply(null,arguments)},vI=t._emscripten_bind_Mesh_set_num_points_1=function(){return(vI=t._emscripten_bind_Mesh_set_num_points_1=t.asm.C).apply(null,arguments)},$I=t._emscripten_bind_Mesh___destroy___0=function(){return($I=t._emscripten_bind_Mesh___destroy___0=t.asm.D).apply(null,arguments)},Ag=t._emscripten_bind_Metadata_Metadata_0=function(){return(Ag=t._emscripten_bind_Metadata_Metadata_0=t.asm.E).apply(null,arguments)},Ig=t._emscripten_bind_Metadata___destroy___0=function(){return(Ig=t._emscripten_bind_Metadata___destroy___0=t.asm.F).apply(null,arguments)},gg=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(gg=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=t.asm.G).apply(null,arguments)},Cg=t._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Cg=t._emscripten_bind_DracoInt8Array_GetValue_1=t.asm.H).apply(null,arguments)},Bg=t._emscripten_bind_DracoInt8Array_size_0=function(){return(Bg=t._emscripten_bind_DracoInt8Array_size_0=t.asm.I).apply(null,arguments)},Qg=t._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Qg=t._emscripten_bind_DracoInt8Array___destroy___0=t.asm.J).apply(null,arguments)},Eg=t._emscripten_bind_MetadataBuilder_MetadataBuilder_0=function(){return(Eg=t._emscripten_bind_MetadataBuilder_MetadataBuilder_0=t.asm.K).apply(null,arguments)},ig=t._emscripten_bind_MetadataBuilder_AddStringEntry_3=function(){return(ig=t._emscripten_bind_MetadataBuilder_AddStringEntry_3=t.asm.L).apply(null,arguments)},og=t._emscripten_bind_MetadataBuilder_AddIntEntry_3=function(){return(og=t._emscripten_bind_MetadataBuilder_AddIntEntry_3=t.asm.M).apply(null,arguments)},tg=t._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=function(){return(tg=t._emscripten_bind_MetadataBuilder_AddIntEntryArray_4=t.asm.N).apply(null,arguments)},Dg=t._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=function(){return(Dg=t._emscripten_bind_MetadataBuilder_AddDoubleEntry_3=t.asm.O).apply(null,arguments)},eg=t._emscripten_bind_MetadataBuilder___destroy___0=function(){return(eg=t._emscripten_bind_MetadataBuilder___destroy___0=t.asm.P).apply(null,arguments)},sg=t._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=function(){return(sg=t._emscripten_bind_PointCloudBuilder_PointCloudBuilder_0=t.asm.Q).apply(null,arguments)},ag=t._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=function(){return(ag=t._emscripten_bind_PointCloudBuilder_AddFloatAttribute_5=t.asm.R).apply(null,arguments)},ng=t._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=function(){return(ng=t._emscripten_bind_PointCloudBuilder_AddInt8Attribute_5=t.asm.S).apply(null,arguments)},rg=t._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=function(){return(rg=t._emscripten_bind_PointCloudBuilder_AddUInt8Attribute_5=t.asm.T).apply(null,arguments)},Ng=t._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=function(){return(Ng=t._emscripten_bind_PointCloudBuilder_AddInt16Attribute_5=t.asm.U).apply(null,arguments)},yg=t._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=function(){return(yg=t._emscripten_bind_PointCloudBuilder_AddUInt16Attribute_5=t.asm.V).apply(null,arguments)},Rg=t._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=function(){return(Rg=t._emscripten_bind_PointCloudBuilder_AddInt32Attribute_5=t.asm.W).apply(null,arguments)},Fg=t._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=function(){return(Fg=t._emscripten_bind_PointCloudBuilder_AddUInt32Attribute_5=t.asm.X).apply(null,arguments)},cg=t._emscripten_bind_PointCloudBuilder_AddMetadata_2=function(){return(cg=t._emscripten_bind_PointCloudBuilder_AddMetadata_2=t.asm.Y).apply(null,arguments)},wg=t._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=function(){return(wg=t._emscripten_bind_PointCloudBuilder_SetMetadataForAttribute_3=t.asm.Z).apply(null,arguments)},Gg=t._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=function(){return(Gg=t._emscripten_bind_PointCloudBuilder_SetNormalizedFlagForAttribute_3=t.asm._).apply(null,arguments)},hg=t._emscripten_bind_PointCloudBuilder___destroy___0=function(){return(hg=t._emscripten_bind_PointCloudBuilder___destroy___0=t.asm.$).apply(null,arguments)},Sg=t._emscripten_bind_MeshBuilder_MeshBuilder_0=function(){return(Sg=t._emscripten_bind_MeshBuilder_MeshBuilder_0=t.asm.aa).apply(null,arguments)},Mg=t._emscripten_bind_MeshBuilder_AddFacesToMesh_3=function(){return(Mg=t._emscripten_bind_MeshBuilder_AddFacesToMesh_3=t.asm.ba).apply(null,arguments)},Kg=t._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=function(){return(Kg=t._emscripten_bind_MeshBuilder_AddFloatAttributeToMesh_5=t.asm.ca).apply(null,arguments)},Ug=t._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=function(){return(Ug=t._emscripten_bind_MeshBuilder_AddInt32AttributeToMesh_5=t.asm.da).apply(null,arguments)},Jg=t._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=function(){return(Jg=t._emscripten_bind_MeshBuilder_AddMetadataToMesh_2=t.asm.ea).apply(null,arguments)},Yg=t._emscripten_bind_MeshBuilder_AddFloatAttribute_5=function(){return(Yg=t._emscripten_bind_MeshBuilder_AddFloatAttribute_5=t.asm.fa).apply(null,arguments)},kg=t._emscripten_bind_MeshBuilder_AddInt8Attribute_5=function(){return(kg=t._emscripten_bind_MeshBuilder_AddInt8Attribute_5=t.asm.ga).apply(null,arguments)},Lg=t._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=function(){return(Lg=t._emscripten_bind_MeshBuilder_AddUInt8Attribute_5=t.asm.ha).apply(null,arguments)},dg=t._emscripten_bind_MeshBuilder_AddInt16Attribute_5=function(){return(dg=t._emscripten_bind_MeshBuilder_AddInt16Attribute_5=t.asm.ia).apply(null,arguments)},pg=t._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=function(){return(pg=t._emscripten_bind_MeshBuilder_AddUInt16Attribute_5=t.asm.ja).apply(null,arguments)},fg=t._emscripten_bind_MeshBuilder_AddInt32Attribute_5=function(){return(fg=t._emscripten_bind_MeshBuilder_AddInt32Attribute_5=t.asm.ka).apply(null,arguments)},Hg=t._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=function(){return(Hg=t._emscripten_bind_MeshBuilder_AddUInt32Attribute_5=t.asm.la).apply(null,arguments)},ug=t._emscripten_bind_MeshBuilder_AddMetadata_2=function(){return(ug=t._emscripten_bind_MeshBuilder_AddMetadata_2=t.asm.ma).apply(null,arguments)},lg=t._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=function(){return(lg=t._emscripten_bind_MeshBuilder_SetMetadataForAttribute_3=t.asm.na).apply(null,arguments)},qg=t._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=function(){return(qg=t._emscripten_bind_MeshBuilder_SetNormalizedFlagForAttribute_3=t.asm.oa).apply(null,arguments)},Tg=t._emscripten_bind_MeshBuilder___destroy___0=function(){return(Tg=t._emscripten_bind_MeshBuilder___destroy___0=t.asm.pa).apply(null,arguments)},_g=t._emscripten_bind_Encoder_Encoder_0=function(){return(_g=t._emscripten_bind_Encoder_Encoder_0=t.asm.qa).apply(null,arguments)},mg=t._emscripten_bind_Encoder_SetEncodingMethod_1=function(){return(mg=t._emscripten_bind_Encoder_SetEncodingMethod_1=t.asm.ra).apply(null,arguments)},xg=t._emscripten_bind_Encoder_SetAttributeQuantization_2=function(){return(xg=t._emscripten_bind_Encoder_SetAttributeQuantization_2=t.asm.sa).apply(null,arguments)},bg=t._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=function(){return(bg=t._emscripten_bind_Encoder_SetAttributeExplicitQuantization_5=t.asm.ta).apply(null,arguments)},Vg=t._emscripten_bind_Encoder_SetSpeedOptions_2=function(){return(Vg=t._emscripten_bind_Encoder_SetSpeedOptions_2=t.asm.ua).apply(null,arguments)},Wg=t._emscripten_bind_Encoder_SetTrackEncodedProperties_1=function(){return(Wg=t._emscripten_bind_Encoder_SetTrackEncodedProperties_1=t.asm.va).apply(null,arguments)},Og=t._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=function(){return(Og=t._emscripten_bind_Encoder_EncodeMeshToDracoBuffer_2=t.asm.wa).apply(null,arguments)},Pg=t._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=function(){return(Pg=t._emscripten_bind_Encoder_EncodePointCloudToDracoBuffer_3=t.asm.xa).apply(null,arguments)},Xg=t._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=function(){return(Xg=t._emscripten_bind_Encoder_GetNumberOfEncodedPoints_0=t.asm.ya).apply(null,arguments)},Zg=t._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=function(){return(Zg=t._emscripten_bind_Encoder_GetNumberOfEncodedFaces_0=t.asm.za).apply(null,arguments)},jg=t._emscripten_bind_Encoder___destroy___0=function(){return(jg=t._emscripten_bind_Encoder___destroy___0=t.asm.Aa).apply(null,arguments)},zg=t._emscripten_bind_ExpertEncoder_ExpertEncoder_1=function(){return(zg=t._emscripten_bind_ExpertEncoder_ExpertEncoder_1=t.asm.Ba).apply(null,arguments)},vg=t._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=function(){return(vg=t._emscripten_bind_ExpertEncoder_SetEncodingMethod_1=t.asm.Ca).apply(null,arguments)},$g=t._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=function(){return($g=t._emscripten_bind_ExpertEncoder_SetAttributeQuantization_2=t.asm.Da).apply(null,arguments)},AC=t._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=function(){return(AC=t._emscripten_bind_ExpertEncoder_SetAttributeExplicitQuantization_5=t.asm.Ea).apply(null,arguments)},IC=t._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=function(){return(IC=t._emscripten_bind_ExpertEncoder_SetSpeedOptions_2=t.asm.Fa).apply(null,arguments)},gC=t._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=function(){return(gC=t._emscripten_bind_ExpertEncoder_SetTrackEncodedProperties_1=t.asm.Ga).apply(null,arguments)},CC=t._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=function(){return(CC=t._emscripten_bind_ExpertEncoder_EncodeToDracoBuffer_2=t.asm.Ha).apply(null,arguments)},BC=t._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=function(){return(BC=t._emscripten_bind_ExpertEncoder_GetNumberOfEncodedPoints_0=t.asm.Ia).apply(null,arguments)},QC=t._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=function(){return(QC=t._emscripten_bind_ExpertEncoder_GetNumberOfEncodedFaces_0=t.asm.Ja).apply(null,arguments)},EC=t._emscripten_bind_ExpertEncoder___destroy___0=function(){return(EC=t._emscripten_bind_ExpertEncoder___destroy___0=t.asm.Ka).apply(null,arguments)},iC=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(iC=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=t.asm.La).apply(null,arguments)},oC=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(oC=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=t.asm.Ma).apply(null,arguments)},tC=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(tC=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=t.asm.Na).apply(null,arguments)},DC=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(DC=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=t.asm.Oa).apply(null,arguments)},eC=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(eC=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=t.asm.Pa).apply(null,arguments)},sC=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(sC=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=t.asm.Qa).apply(null,arguments)},aC=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(aC=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=t.asm.Ra).apply(null,arguments)},nC=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(nC=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=t.asm.Sa).apply(null,arguments)},rC=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(rC=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=t.asm.Ta).apply(null,arguments)},NC=t._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=function(){return(NC=t._emscripten_enum_draco_MeshEncoderMethod_MESH_SEQUENTIAL_ENCODING=t.asm.Ua).apply(null,arguments)},yC=t._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=function(){return(yC=t._emscripten_enum_draco_MeshEncoderMethod_MESH_EDGEBREAKER_ENCODING=t.asm.Va).apply(null,arguments)};t._malloc=function(){return(t._malloc=t.asm.Wa).apply(null,arguments)},t._free=function(){return(t._free=t.asm.Xa).apply(null,arguments)};var RC=function(){return(RC=t.asm.Ya).apply(null,arguments)};t.___start_em_js=19116,t.___stop_em_js=19214;var GI;if(rA=function e(){GI||y(),GI||(rA=e)},t.preInit)for(typeof t.preInit==\\\"function\\\"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();y(),G.prototype=Object.create(G.prototype),G.prototype.constructor=G,G.prototype.__class__=G,G.__cache__={},t.WrapperObject=G,t.getCache=M,t.wrapPointer=r,t.castObject=function(e,a){return r(e.ptr,a)},t.NULL=r(0),t.destroy=function(e){if(!e.__destroy__)throw\\\"Error: Cannot destroy object. (Did you create it yourself?)\\\";e.__destroy__(),delete M(e.__class__)[e.ptr]},t.compare=function(e,a){return e.ptr===a.ptr},t.getPointer=function(e){return e.ptr},t.getClass=function(e){return e.__class__};var P={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(P.needed){for(var e=0;e<P.temps.length;e++)t._free(P.temps[e]);P.temps.length=0,t._free(P.buffer),P.buffer=0,P.size+=P.needed,P.needed=0}P.buffer||(P.size+=128,P.buffer=t._malloc(P.size),P.buffer||g(void 0)),P.pos=0},alloc:function(e,a){return P.buffer||g(void 0),e=e.length*a.BYTES_PER_ELEMENT,e=e+7&-8,P.pos+e>=P.size?(0<e||g(void 0),P.needed+=e,a=t._malloc(e),P.temps.push(a)):(a=P.buffer+P.pos,P.pos+=e),a},copy:function(e,a,F){switch(F>>>=0,a.BYTES_PER_ELEMENT){case 2:F>>>=1;break;case 4:F>>>=2;break;case 8:F>>>=3}for(var S=0;S<e.length;S++)a[F+S]=e[S]}};return q.prototype=Object.create(G.prototype),q.prototype.constructor=q,q.prototype.__class__=q,q.__cache__={},t.VoidPtr=q,q.prototype.__destroy__=q.prototype.__destroy__=function(){qI(this.ptr)},J.prototype=Object.create(G.prototype),J.prototype.constructor=J,J.prototype.__class__=J,J.__cache__={},t.GeometryAttribute=J,J.prototype.__destroy__=J.prototype.__destroy__=function(){dI(this.ptr)},k.prototype=Object.create(G.prototype),k.prototype.constructor=k,k.prototype.__class__=k,k.__cache__={},t.PointAttribute=k,k.prototype.size=k.prototype.size=function(){return FA(this.ptr)},k.prototype.attribute_type=k.prototype.attribute_type=function(){return lC(this.ptr)},k.prototype.data_type=k.prototype.data_type=function(){return qC(this.ptr)},k.prototype.num_components=k.prototype.num_components=function(){return TC(this.ptr)},k.prototype.normalized=k.prototype.normalized=function(){return!!TI(this.ptr)},k.prototype.byte_stride=k.prototype.byte_stride=function(){return _I(this.ptr)},k.prototype.byte_offset=k.prototype.byte_offset=function(){return mI(this.ptr)},k.prototype.unique_id=k.prototype.unique_id=function(){return xI(this.ptr)},k.prototype.__destroy__=k.prototype.__destroy__=function(){bI(this.ptr)},K.prototype=Object.create(G.prototype),K.prototype.constructor=K,K.prototype.__class__=K,K.__cache__={},t.PointCloud=K,K.prototype.num_attributes=K.prototype.num_attributes=function(){return WI(this.ptr)},K.prototype.num_points=K.prototype.num_points=function(){return OI(this.ptr)},K.prototype.__destroy__=K.prototype.__destroy__=function(){PI(this.ptr)},L.prototype=Object.create(G.prototype),L.prototype.constructor=L,L.prototype.__class__=L,L.__cache__={},t.Mesh=L,L.prototype.num_faces=L.prototype.num_faces=function(){return ZI(this.ptr)},L.prototype.num_attributes=L.prototype.num_attributes=function(){return jI(this.ptr)},L.prototype.num_points=L.prototype.num_points=function(){return zI(this.ptr)},L.prototype.set_num_points=L.prototype.set_num_points=function(e){var a=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),vI(a,e)},L.prototype.__destroy__=L.prototype.__destroy__=function(){$I(this.ptr)},c.prototype=Object.create(G.prototype),c.prototype.constructor=c,c.prototype.__class__=c,c.__cache__={},t.Metadata=c,c.prototype.__destroy__=c.prototype.__destroy__=function(){Ig(this.ptr)},Y.prototype=Object.create(G.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},t.DracoInt8Array=Y,Y.prototype.GetValue=Y.prototype.GetValue=function(e){var a=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),Cg(a,e)},Y.prototype.size=Y.prototype.size=function(){return Bg(this.ptr)},Y.prototype.__destroy__=Y.prototype.__destroy__=function(){Qg(this.ptr)},p.prototype=Object.create(G.prototype),p.prototype.constructor=p,p.prototype.__class__=p,p.__cache__={},t.MetadataBuilder=p,p.prototype.AddStringEntry=p.prototype.AddStringEntry=function(e,a,F){var S=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a=a&&typeof a==\\\"object\\\"?a.ptr:N(a),F=F&&typeof F==\\\"object\\\"?F.ptr:N(F),!!ig(S,e,a,F)},p.prototype.AddIntEntry=p.prototype.AddIntEntry=function(e,a,F){var S=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a=a&&typeof a==\\\"object\\\"?a.ptr:N(a),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!og(S,e,a,F)},p.prototype.AddIntEntryArray=p.prototype.AddIntEntryArray=function(e,a,F,S){var u=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a=a&&typeof a==\\\"object\\\"?a.ptr:N(a),typeof F==\\\"object\\\"&&(F=H(F)),S&&typeof S==\\\"object\\\"&&(S=S.ptr),!!tg(u,e,a,F,S)},p.prototype.AddDoubleEntry=p.prototype.AddDoubleEntry=function(e,a,F){var S=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a=a&&typeof a==\\\"object\\\"?a.ptr:N(a),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!Dg(S,e,a,F)},p.prototype.__destroy__=p.prototype.__destroy__=function(){eg(this.ptr)},f.prototype=Object.create(G.prototype),f.prototype.constructor=f,f.prototype.__class__=f,f.__cache__={},t.PointCloudBuilder=f,f.prototype.AddFloatAttribute=f.prototype.AddFloatAttribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=R(u)),ag(W,e,a,F,S,u)},f.prototype.AddInt8Attribute=f.prototype.AddInt8Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=w(u)),ng(W,e,a,F,S,u)},f.prototype.AddUInt8Attribute=f.prototype.AddUInt8Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=w(u)),rg(W,e,a,F,S,u)},f.prototype.AddInt16Attribute=f.prototype.AddInt16Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=U(u)),Ng(W,e,a,F,S,u)},f.prototype.AddUInt16Attribute=f.prototype.AddUInt16Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=U(u)),yg(W,e,a,F,S,u)},f.prototype.AddInt32Attribute=f.prototype.AddInt32Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=H(u)),Rg(W,e,a,F,S,u)},f.prototype.AddUInt32Attribute=f.prototype.AddUInt32Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=H(u)),Fg(W,e,a,F,S,u)},f.prototype.AddMetadata=f.prototype.AddMetadata=function(e,a){var F=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),!!cg(F,e,a)},f.prototype.SetMetadataForAttribute=f.prototype.SetMetadataForAttribute=function(e,a,F){var S=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!wg(S,e,a,F)},f.prototype.SetNormalizedFlagForAttribute=f.prototype.SetNormalizedFlagForAttribute=function(e,a,F){var S=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!Gg(S,e,a,F)},f.prototype.__destroy__=f.prototype.__destroy__=function(){hg(this.ptr)},l.prototype=Object.create(G.prototype),l.prototype.constructor=l,l.prototype.__class__=l,l.__cache__={},t.MeshBuilder=l,l.prototype.AddFacesToMesh=l.prototype.AddFacesToMesh=function(e,a,F){var S=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),typeof F==\\\"object\\\"&&(F=H(F)),!!Mg(S,e,a,F)},l.prototype.AddFloatAttributeToMesh=l.prototype.AddFloatAttributeToMesh=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=R(u)),Kg(W,e,a,F,S,u)},l.prototype.AddInt32AttributeToMesh=l.prototype.AddInt32AttributeToMesh=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=H(u)),Ug(W,e,a,F,S,u)},l.prototype.AddMetadataToMesh=l.prototype.AddMetadataToMesh=function(e,a){var F=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),!!Jg(F,e,a)},l.prototype.AddFloatAttribute=l.prototype.AddFloatAttribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=R(u)),Yg(W,e,a,F,S,u)},l.prototype.AddInt8Attribute=l.prototype.AddInt8Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=w(u)),kg(W,e,a,F,S,u)},l.prototype.AddUInt8Attribute=l.prototype.AddUInt8Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=w(u)),Lg(W,e,a,F,S,u)},l.prototype.AddInt16Attribute=l.prototype.AddInt16Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=U(u)),dg(W,e,a,F,S,u)},l.prototype.AddUInt16Attribute=l.prototype.AddUInt16Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=U(u)),pg(W,e,a,F,S,u)},l.prototype.AddInt32Attribute=l.prototype.AddInt32Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=H(u)),fg(W,e,a,F,S,u)},l.prototype.AddUInt32Attribute=l.prototype.AddUInt32Attribute=function(e,a,F,S,u){var W=this.ptr;return P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),S&&typeof S==\\\"object\\\"&&(S=S.ptr),typeof u==\\\"object\\\"&&(u=H(u)),Hg(W,e,a,F,S,u)},l.prototype.AddMetadata=l.prototype.AddMetadata=function(e,a){var F=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),!!ug(F,e,a)},l.prototype.SetMetadataForAttribute=l.prototype.SetMetadataForAttribute=function(e,a,F){var S=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!lg(S,e,a,F)},l.prototype.SetNormalizedFlagForAttribute=l.prototype.SetNormalizedFlagForAttribute=function(e,a,F){var S=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),!!qg(S,e,a,F)},l.prototype.__destroy__=l.prototype.__destroy__=function(){Tg(this.ptr)},_.prototype=Object.create(G.prototype),_.prototype.constructor=_,_.prototype.__class__=_,_.__cache__={},t.Encoder=_,_.prototype.SetEncodingMethod=_.prototype.SetEncodingMethod=function(e){var a=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),mg(a,e)},_.prototype.SetAttributeQuantization=_.prototype.SetAttributeQuantization=function(e,a){var F=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),xg(F,e,a)},_.prototype.SetAttributeExplicitQuantization=_.prototype.SetAttributeExplicitQuantization=function(e,a,F,S,u){var W=this.ptr;P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),typeof S==\\\"object\\\"&&(S=R(S)),u&&typeof u==\\\"object\\\"&&(u=u.ptr),bg(W,e,a,F,S,u)},_.prototype.SetSpeedOptions=_.prototype.SetSpeedOptions=function(e,a){var F=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),Vg(F,e,a)},_.prototype.SetTrackEncodedProperties=_.prototype.SetTrackEncodedProperties=function(e){var a=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),Wg(a,e)},_.prototype.EncodeMeshToDracoBuffer=_.prototype.EncodeMeshToDracoBuffer=function(e,a){var F=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),Og(F,e,a)},_.prototype.EncodePointCloudToDracoBuffer=_.prototype.EncodePointCloudToDracoBuffer=function(e,a,F){var S=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),Pg(S,e,a,F)},_.prototype.GetNumberOfEncodedPoints=_.prototype.GetNumberOfEncodedPoints=function(){return Xg(this.ptr)},_.prototype.GetNumberOfEncodedFaces=_.prototype.GetNumberOfEncodedFaces=function(){return Zg(this.ptr)},_.prototype.__destroy__=_.prototype.__destroy__=function(){jg(this.ptr)},T.prototype=Object.create(G.prototype),T.prototype.constructor=T,T.prototype.__class__=T,T.__cache__={},t.ExpertEncoder=T,T.prototype.SetEncodingMethod=T.prototype.SetEncodingMethod=function(e){var a=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),vg(a,e)},T.prototype.SetAttributeQuantization=T.prototype.SetAttributeQuantization=function(e,a){var F=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),$g(F,e,a)},T.prototype.SetAttributeExplicitQuantization=T.prototype.SetAttributeExplicitQuantization=function(e,a,F,S,u){var W=this.ptr;P.prepare(),e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),F&&typeof F==\\\"object\\\"&&(F=F.ptr),typeof S==\\\"object\\\"&&(S=R(S)),u&&typeof u==\\\"object\\\"&&(u=u.ptr),AC(W,e,a,F,S,u)},T.prototype.SetSpeedOptions=T.prototype.SetSpeedOptions=function(e,a){var F=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),IC(F,e,a)},T.prototype.SetTrackEncodedProperties=T.prototype.SetTrackEncodedProperties=function(e){var a=this.ptr;e&&typeof e==\\\"object\\\"&&(e=e.ptr),gC(a,e)},T.prototype.EncodeToDracoBuffer=T.prototype.EncodeToDracoBuffer=function(e,a){var F=this.ptr;return e&&typeof e==\\\"object\\\"&&(e=e.ptr),a&&typeof a==\\\"object\\\"&&(a=a.ptr),CC(F,e,a)},T.prototype.GetNumberOfEncodedPoints=T.prototype.GetNumberOfEncodedPoints=function(){return BC(this.ptr)},T.prototype.GetNumberOfEncodedFaces=T.prototype.GetNumberOfEncodedFaces=function(){return QC(this.ptr)},T.prototype.__destroy__=T.prototype.__destroy__=function(){EC(this.ptr)},function(){function e(){t.INVALID=iC(),t.POSITION=oC(),t.NORMAL=tC(),t.COLOR=DC(),t.TEX_COORD=eC(),t.GENERIC=sC(),t.INVALID_GEOMETRY_TYPE=aC(),t.POINT_CLOUD=nC(),t.TRIANGULAR_MESH=rC(),t.MESH_SEQUENTIAL_ENCODING=NC(),t.MESH_EDGEBREAKER_ENCODING=yC()}pA?e():LI.unshift(e)}(),typeof t.onModuleParsed==\\\"function\\\"&&t.onModuleParsed(),A.ready}}();typeof fC==\\\"object\\\"&&typeof cQ==\\\"object\\\"?cQ.exports=FQ:typeof define==\\\"function\\\"&&define.amd?define([],function(){return FQ}):typeof fC==\\\"object\\\"&&(fC.DracoEncoderModule=FQ)});var Ai=IQ((HC,GQ)=>{var b=b||{};b.scope={};b.arrayIteratorImpl=function(B){var A=0;return function(){return A<B.length?{done:!1,value:B[A++]}:{done:!0}}};b.arrayIterator=function(B){return{next:b.arrayIteratorImpl(B)}};b.makeIterator=function(B){var A=typeof Symbol<\\\"u\\\"&&Symbol.iterator&&B[Symbol.iterator];return A?A.call(B):b.arrayIterator(B)};b.ASSUME_ES5=!1;b.ASSUME_NO_NATIVE_MAP=!1;b.ASSUME_NO_NATIVE_SET=!1;b.SIMPLE_FROUND_POLYFILL=!1;b.ISOLATE_POLYFILLS=!1;b.FORCE_POLYFILL_PROMISE=!1;b.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;b.getGlobal=function(B){B=[typeof globalThis==\\\"object\\\"&&globalThis,B,typeof window==\\\"object\\\"&&window,typeof self==\\\"object\\\"&&self,typeof global==\\\"object\\\"&&global];for(var A=0;A<B.length;++A){var I=B[A];if(I&&I.Math==Math)return I}throw Error(\\\"Cannot find global object\\\")};b.global=b.getGlobal(HC);b.defineProperty=b.ASSUME_ES5||typeof Object.defineProperties==\\\"function\\\"?Object.defineProperty:function(B,A,I){return B==Array.prototype||B==Object.prototype||(B[A]=I.value),B};b.IS_SYMBOL_NATIVE=typeof Symbol==\\\"function\\\"&&typeof Symbol(\\\"x\\\")==\\\"symbol\\\";b.TRUST_ES6_POLYFILLS=!b.ISOLATE_POLYFILLS||b.IS_SYMBOL_NATIVE;b.polyfills={};b.propertyToPolyfillSymbol={};b.POLYFILL_PREFIX=\\\"$jscp$\\\";b.polyfill=function(B,A,I,C){A&&(b.ISOLATE_POLYFILLS?b.polyfillIsolated(B,A,I,C):b.polyfillUnisolated(B,A,I,C))};b.polyfillUnisolated=function(B,A,I,C){for(I=b.global,B=B.split(\\\".\\\"),C=0;C<B.length-1;C++){var g=B[C];if(!(g in I))return;I=I[g]}B=B[B.length-1],C=I[B],A=A(C),A!=C&&A!=null&&b.defineProperty(I,B,{configurable:!0,writable:!0,value:A})};b.polyfillIsolated=function(B,A,I,C){var g=B.split(\\\".\\\");B=g.length===1,C=g[0],C=!B&&C in b.polyfills?b.polyfills:b.global;for(var E=0;E<g.length-1;E++){var Q=g[E];if(!(Q in C))return;C=C[Q]}g=g[g.length-1],I=b.IS_SYMBOL_NATIVE&&I===\\\"es6\\\"?C[g]:null,A=A(I),A!=null&&(B?b.defineProperty(b.polyfills,g,{configurable:!0,writable:!0,value:A}):A!==I&&(b.propertyToPolyfillSymbol[g]===void 0&&(I=1e9*Math.random()>>>0,b.propertyToPolyfillSymbol[g]=b.IS_SYMBOL_NATIVE?b.global.Symbol(g):b.POLYFILL_PREFIX+I+\\\"$\\\"+g),b.defineProperty(C,b.propertyToPolyfillSymbol[g],{configurable:!0,writable:!0,value:A})))};b.polyfill(\\\"Promise\\\",function(B){function A(){this.batch_=null}function I(Q){return Q instanceof g?Q:new g(function(o,s){o(Q)})}if(B&&(!(b.FORCE_POLYFILL_PROMISE||b.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof b.global.PromiseRejectionEvent>\\\"u\\\")||!b.global.Promise||b.global.Promise.toString().indexOf(\\\"[native code]\\\")===-1))return B;A.prototype.asyncExecute=function(Q){if(this.batch_==null){this.batch_=[];var o=this;this.asyncExecuteFunction(function(){o.executeBatch_()})}this.batch_.push(Q)};var C=b.global.setTimeout;A.prototype.asyncExecuteFunction=function(Q){C(Q,0)},A.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var Q=this.batch_;this.batch_=[];for(var o=0;o<Q.length;++o){var s=Q[o];Q[o]=null;try{s()}catch(y){this.asyncThrow_(y)}}}this.batch_=null},A.prototype.asyncThrow_=function(Q){this.asyncExecuteFunction(function(){throw Q})};var g=function(Q){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var o=this.createResolveAndReject_();try{Q(o.resolve,o.reject)}catch(s){o.reject(s)}};g.prototype.createResolveAndReject_=function(){function Q(y){return function(G){s||(s=!0,y.call(o,G))}}var o=this,s=!1;return{resolve:Q(this.resolveTo_),reject:Q(this.reject_)}},g.prototype.resolveTo_=function(Q){if(Q===this)this.reject_(new TypeError(\\\"A Promise cannot resolve to itself\\\"));else if(Q instanceof g)this.settleSameAsPromise_(Q);else{A:switch(typeof Q){case\\\"object\\\":var o=Q!=null;break A;case\\\"function\\\":o=!0;break A;default:o=!1}o?this.resolveToNonPromiseObj_(Q):this.fulfill_(Q)}},g.prototype.resolveToNonPromiseObj_=function(Q){var o=void 0;try{o=Q.then}catch(s){this.reject_(s);return}typeof o==\\\"function\\\"?this.settleSameAsThenable_(o,Q):this.fulfill_(Q)},g.prototype.reject_=function(Q){this.settle_(2,Q)},g.prototype.fulfill_=function(Q){this.settle_(1,Q)},g.prototype.settle_=function(Q,o){if(this.state_!=0)throw Error(\\\"Cannot settle(\\\"+Q+\\\", \\\"+o+\\\"): Promise already settled in state\\\"+this.state_);this.state_=Q,this.result_=o,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},g.prototype.scheduleUnhandledRejectionCheck_=function(){var Q=this;C(function(){if(Q.notifyUnhandledRejection_()){var o=b.global.console;typeof o<\\\"u\\\"&&o.error(Q.result_)}},1)},g.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var Q=b.global.CustomEvent,o=b.global.Event,s=b.global.dispatchEvent;return typeof s>\\\"u\\\"?!0:(typeof Q==\\\"function\\\"?Q=new Q(\\\"unhandledrejection\\\",{cancelable:!0}):typeof o==\\\"function\\\"?Q=new o(\\\"unhandledrejection\\\",{cancelable:!0}):(Q=b.global.document.createEvent(\\\"CustomEvent\\\"),Q.initCustomEvent(\\\"unhandledrejection\\\",!1,!0,Q)),Q.promise=this,Q.reason=this.result_,s(Q))},g.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var Q=0;Q<this.onSettledCallbacks_.length;++Q)E.asyncExecute(this.onSettledCallbacks_[Q]);this.onSettledCallbacks_=null}};var E=new A;return g.prototype.settleSameAsPromise_=function(Q){var o=this.createResolveAndReject_();Q.callWhenSettled_(o.resolve,o.reject)},g.prototype.settleSameAsThenable_=function(Q,o){var s=this.createResolveAndReject_();try{Q.call(o,s.resolve,s.reject)}catch(y){s.reject(y)}},g.prototype.then=function(Q,o){function s(r,N){return typeof r==\\\"function\\\"?function(w){try{y(r(w))}catch(U){G(U)}}:N}var y,G,M=new g(function(r,N){y=r,G=N});return this.callWhenSettled_(s(Q,y),s(o,G)),M},g.prototype.catch=function(Q){return this.then(void 0,Q)},g.prototype.callWhenSettled_=function(Q,o){function s(){switch(y.state_){case 1:Q(y.result_);break;case 2:o(y.result_);break;default:throw Error(\\\"Unexpected state: \\\"+y.state_)}}var y=this;this.onSettledCallbacks_==null?E.asyncExecute(s):this.onSettledCallbacks_.push(s),this.isRejectionHandled_=!0},g.resolve=I,g.reject=function(Q){return new g(function(o,s){s(Q)})},g.race=function(Q){return new g(function(o,s){for(var y=b.makeIterator(Q),G=y.next();!G.done;G=y.next())I(G.value).callWhenSettled_(o,s)})},g.all=function(Q){var o=b.makeIterator(Q),s=o.next();return s.done?I([]):new g(function(y,G){function M(w){return function(U){r[w]=U,N--,N==0&&y(r)}}var r=[],N=0;do r.push(void 0),N++,I(s.value).callWhenSettled_(M(r.length-1),G),s=o.next();while(!s.done)})},g},\\\"es6\\\",\\\"es3\\\");b.owns=function(B,A){return Object.prototype.hasOwnProperty.call(B,A)};b.assign=b.TRUST_ES6_POLYFILLS&&typeof Object.assign==\\\"function\\\"?Object.assign:function(B,A){for(var I=1;I<arguments.length;I++){var C=arguments[I];if(C)for(var g in C)b.owns(C,g)&&(B[g]=C[g])}return B};b.polyfill(\\\"Object.assign\\\",function(B){return B||b.assign},\\\"es6\\\",\\\"es3\\\");b.checkStringArgs=function(B,A,I){if(B==null)throw new TypeError(\\\"The 'this' value for String.prototype.\\\"+I+\\\" must not be null or undefined\\\");if(A instanceof RegExp)throw new TypeError(\\\"First argument to String.prototype.\\\"+I+\\\" must not be a regular expression\\\");return B+\\\"\\\"};b.polyfill(\\\"String.prototype.startsWith\\\",function(B){return B||function(A,I){var C=b.checkStringArgs(this,A,\\\"startsWith\\\");A+=\\\"\\\";var g=C.length,E=A.length;I=Math.max(0,Math.min(I|0,C.length));for(var Q=0;Q<E&&I<g;)if(C[I++]!=A[Q++])return!1;return Q>=E}},\\\"es6\\\",\\\"es3\\\");b.polyfill(\\\"Array.prototype.copyWithin\\\",function(B){function A(I){return I=Number(I),I===1/0||I===-1/0?I:I|0}return B||function(I,C,g){var E=this.length;if(I=A(I),C=A(C),g=g===void 0?E:A(g),I=0>I?Math.max(E+I,0):Math.min(I,E),C=0>C?Math.max(E+C,0):Math.min(C,E),g=0>g?Math.max(E+g,0):Math.min(g,E),I<C)for(;C<g;)C in this?this[I++]=this[C++]:(delete this[I++],C++);else for(g=Math.min(g,E+C-I),I+=g-C;g>C;)--g in this?this[--I]=this[g]:delete this[--I];return this}},\\\"es6\\\",\\\"es3\\\");b.typedArrayCopyWithin=function(B){return B||Array.prototype.copyWithin};b.polyfill(\\\"Int8Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Uint8Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Uint8ClampedArray.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Int16Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Uint16Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Int32Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Uint32Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Float32Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");b.polyfill(\\\"Float64Array.prototype.copyWithin\\\",b.typedArrayCopyWithin,\\\"es6\\\",\\\"es5\\\");var wQ=function(){var B=typeof document<\\\"u\\\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<\\\"u\\\"&&(B=B||__filename),function(A){function I(D){return i.locateFile?i.locateFile(D,CA):CA+D}function C(D,n,h){var m=n+h;for(h=n;D[h]&&!(h>=m);)++h;if(16<h-n&&D.buffer&&uI)return uI.decode(D.subarray(n,h));for(m=\\\"\\\";n<h;){var j=D[n++];if(j&128){var IA=D[n++]&63;if((j&224)==192)m+=String.fromCharCode((j&31)<<6|IA);else{var hI=D[n++]&63;j=(j&240)==224?(j&15)<<12|IA<<6|hI:(j&7)<<18|IA<<12|hI<<6|D[n++]&63,65536>j?m+=String.fromCharCode(j):(j-=65536,m+=String.fromCharCode(55296|j>>10,56320|j&1023))}}else m+=String.fromCharCode(j)}return m}function g(D,n){return D?C(UA,D,n):\\\"\\\"}function E(){var D=wI.buffer;i.HEAP8=pA=new Int8Array(D),i.HEAP16=new Int16Array(D),i.HEAP32=ZA=new Int32Array(D),i.HEAPU8=UA=new Uint8Array(D),i.HEAPU16=new Uint16Array(D),i.HEAPU32=rA=new Uint32Array(D),i.HEAPF32=new Float32Array(D),i.HEAPF64=new Float64Array(D)}function Q(D){throw i.onAbort&&i.onAbort(D),D=\\\"Aborted(\\\"+D+\\\")\\\",GA(D),LI=!0,D=new WebAssembly.RuntimeError(D+\\\". Build with -sASSERTIONS for more info.\\\"),sA(D),D}function o(D){try{if(D==FA&&XA)return new Uint8Array(XA);if(VA)return VA(D);throw\\\"both async and sync fetching of the wasm failed\\\"}catch(n){Q(n)}}function s(){if(!XA&&(sI||_A)){if(typeof fetch==\\\"function\\\"&&!FA.startsWith(\\\"file://\\\"))return fetch(FA,{credentials:\\\"same-origin\\\"}).then(function(D){if(!D.ok)throw\\\"failed to load wasm binary file at '\\\"+FA+\\\"'\\\";return D.arrayBuffer()}).catch(function(){return o(FA)});if(cI)return new Promise(function(D,n){cI(FA,function(h){D(new Uint8Array(h))},n)})}return Promise.resolve().then(function(){return o(FA)})}function y(D){for(;0<D.length;)D.shift()(i)}function G(D){this.excPtr=D,this.ptr=D-24,this.set_type=function(n){rA[this.ptr+4>>2]=n},this.get_type=function(){return rA[this.ptr+4>>2]},this.set_destructor=function(n){rA[this.ptr+8>>2]=n},this.get_destructor=function(){return rA[this.ptr+8>>2]},this.set_refcount=function(n){ZA[this.ptr>>2]=n},this.set_caught=function(n){pA[this.ptr+12>>0]=n?1:0},this.get_caught=function(){return pA[this.ptr+12>>0]!=0},this.set_rethrown=function(n){pA[this.ptr+13>>0]=n?1:0},this.get_rethrown=function(){return pA[this.ptr+13>>0]!=0},this.init=function(n,h){this.set_adjusted_ptr(0),this.set_type(n),this.set_destructor(h),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){ZA[this.ptr>>2]+=1},this.release_ref=function(){var n=ZA[this.ptr>>2];return ZA[this.ptr>>2]=n-1,n===1},this.set_adjusted_ptr=function(n){rA[this.ptr+16>>2]=n},this.get_adjusted_ptr=function(){return rA[this.ptr+16>>2]},this.get_exception_ptr=function(){if(RE(this.get_type()))return rA[this.excPtr>>2];var n=this.get_adjusted_ptr();return n!==0?n:this.excPtr}}function M(){function D(){if(!_C&&(_C=!0,i.calledRun=!0,!LI)){if(qI=!0,y(lI),dA(i),i.onRuntimeInitialized&&i.onRuntimeInitialized(),i.postRun)for(typeof i.postRun==\\\"function\\\"&&(i.postRun=[i.postRun]);i.postRun.length;)uC.unshift(i.postRun.shift());y(uC)}}if(!(0<WA)){if(i.preRun)for(typeof i.preRun==\\\"function\\\"&&(i.preRun=[i.preRun]);i.preRun.length;)RA.unshift(i.preRun.shift());y(RA),0<WA||(i.setStatus?(i.setStatus(\\\"Running...\\\"),setTimeout(function(){setTimeout(function(){i.setStatus(\\\"\\\")},1),D()},1)):D())}}function r(){}function N(D){return(D||r).__cache__}function w(D,n){var h=N(n),m=h[D];return m||(m=Object.create((n||r).prototype),m.ptr=D,h[D]=m)}function U(D){if(typeof D==\\\"string\\\"){for(var n=0,h=0;h<D.length;++h){var m=D.charCodeAt(h);127>=m?n++:2047>=m?n+=2:55296<=m&&57343>=m?(n+=4,++h):n+=3}if(n=Array(n+1),h=0,m=n.length,0<m){m=h+m-1;for(var j=0;j<D.length;++j){var IA=D.charCodeAt(j);if(55296<=IA&&57343>=IA){var hI=D.charCodeAt(++j);IA=65536+((IA&1023)<<10)|hI&1023}if(127>=IA){if(h>=m)break;n[h++]=IA}else{if(2047>=IA){if(h+1>=m)break;n[h++]=192|IA>>6}else{if(65535>=IA){if(h+2>=m)break;n[h++]=224|IA>>12}else{if(h+3>=m)break;n[h++]=240|IA>>18,n[h++]=128|IA>>12&63}n[h++]=128|IA>>6&63}n[h++]=128|IA&63}}n[h]=0}return D=AA.alloc(n,pA),AA.copy(n,pA,D),D}return D}function H(D){if(typeof D==\\\"object\\\"){var n=AA.alloc(D,pA);return AA.copy(D,pA,n),n}return D}function R(){throw\\\"cannot construct a VoidPtr, no constructor in IDL\\\"}function q(){this.ptr=_I(),N(q)[this.ptr]=this}function J(){this.ptr=bI(),N(J)[this.ptr]=this}function k(){this.ptr=OI(),N(k)[this.ptr]=this}function K(){this.ptr=XI(),N(K)[this.ptr]=this}function L(){this.ptr=Qg(),N(L)[this.ptr]=this}function c(){this.ptr=eg(),N(c)[this.ptr]=this}function Y(){this.ptr=rg(),N(Y)[this.ptr]=this}function p(){this.ptr=Fg(),N(p)[this.ptr]=this}function f(){this.ptr=Sg(),N(f)[this.ptr]=this}function l(){throw\\\"cannot construct a Status, no constructor in IDL\\\"}function _(){this.ptr=kg(),N(_)[this.ptr]=this}function T(){this.ptr=fg(),N(T)[this.ptr]=this}function t(){this.ptr=qg(),N(t)[this.ptr]=this}function O(){this.ptr=xg(),N(O)[this.ptr]=this}function X(){this.ptr=Og(),N(X)[this.ptr]=this}function v(){this.ptr=jg(),N(v)[this.ptr]=this}function gA(){this.ptr=AC(),N(gA)[this.ptr]=this}function $(){this.ptr=BC(),N($)[this.ptr]=this}function V(){this.ptr=aC(),N(V)[this.ptr]=this}A=A===void 0?{}:A;var i=typeof A<\\\"u\\\"?A:{},dA,sA;i.ready=new Promise(function(D,n){dA=D,sA=n});var MA=!1,xA=!1;i.onRuntimeInitialized=function(){MA=!0,xA&&typeof i.onModuleLoaded==\\\"function\\\"&&i.onModuleLoaded(i)},i.onModuleParsed=function(){xA=!0,MA&&typeof i.onModuleLoaded==\\\"function\\\"&&i.onModuleLoaded(i)},i.isVersionSupported=function(D){return typeof D!=\\\"string\\\"?!1:(D=D.split(\\\".\\\"),2>D.length||3<D.length?!1:D[0]==1&&0<=D[1]&&5>=D[1]?!0:!(D[0]!=0||10<D[1]))};var TA=Object.assign({},i),sI=typeof window==\\\"object\\\",_A=typeof importScripts==\\\"function\\\",bA=typeof process==\\\"object\\\"&&typeof process.versions==\\\"object\\\"&&typeof process.versions.node==\\\"string\\\",CA=\\\"\\\";if(bA){var aA=mC(\\\"fs\\\"),mA=mC(\\\"path\\\");CA=_A?mA.dirname(CA)+\\\"/\\\":__dirname+\\\"/\\\";var KA=function(D,n){return D=D.startsWith(\\\"file://\\\")?new URL(D):mA.normalize(D),aA.readFileSync(D,n?void 0:\\\"utf8\\\")},VA=function(D){return D=KA(D,!0),D.buffer||(D=new Uint8Array(D)),D},cI=function(D,n,h){D=D.startsWith(\\\"file://\\\")?new URL(D):mA.normalize(D),aA.readFile(D,function(m,j){m?h(m):n(j.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\\\\\\\/g,\\\"/\\\"),process.argv.slice(2),i.inspect=function(){return\\\"[Emscripten Module object]\\\"}}else(sI||_A)&&(_A?CA=self.location.href:typeof document<\\\"u\\\"&&document.currentScript&&(CA=document.currentScript.src),B&&(CA=B),CA=CA.indexOf(\\\"blob:\\\")!==0?CA.substr(0,CA.replace(/[?#].*/,\\\"\\\").lastIndexOf(\\\"/\\\")+1):\\\"\\\",KA=function(D){var n=new XMLHttpRequest;return n.open(\\\"GET\\\",D,!1),n.send(null),n.responseText},_A&&(VA=function(D){var n=new XMLHttpRequest;return n.open(\\\"GET\\\",D,!1),n.responseType=\\\"arraybuffer\\\",n.send(null),new Uint8Array(n.response)}),cI=function(D,n,h){var m=new XMLHttpRequest;m.open(\\\"GET\\\",D,!0),m.responseType=\\\"arraybuffer\\\",m.onload=function(){m.status==200||m.status==0&&m.response?n(m.response):h()},m.onerror=h,m.send(null)});var PA=i.print||console.log.bind(console),GA=i.printErr||console.warn.bind(console);Object.assign(i,TA),TA=null;var XA;i.wasmBinary&&(XA=i.wasmBinary),typeof WebAssembly!=\\\"object\\\"&&Q(\\\"no native wasm support detected\\\");var wI,LI=!1,uI=typeof TextDecoder<\\\"u\\\"?new TextDecoder(\\\"utf8\\\"):void 0,pA,UA,ZA,rA,RA=[],lI=[],uC=[],qI=!1,WA=0,dI=null,aI=null,FA=\\\"draco_decoder.wasm\\\";FA.startsWith(\\\"data:application/octet-stream;base64,\\\")||(FA=I(FA));var lC=0,qC=[null,[],[]],TC={b:function(D,n,h){throw new G(D).init(n,h),lC++,D},a:function(){Q(\\\"\\\")},g:function(D,n,h){UA.copyWithin(D,n,n+h)},e:function(D){var n=UA.length;if(D>>>=0,2147483648<D)return!1;for(var h=1;4>=h;h*=2){var m=n*(1+.2/h);m=Math.min(m,D+100663296);var j=Math;m=Math.max(D,m),j=j.min.call(j,2147483648,m+(65536-m%65536)%65536);A:{m=wI.buffer;try{wI.grow(j-m.byteLength+65535>>>16),E();var IA=1;break A}catch{}IA=void 0}if(IA)return!0}return!1},f:function(D){return 52},d:function(D,n,h,m,j){return 70},c:function(D,n,h,m){for(var j=0,IA=0;IA<h;IA++){var hI=rA[n>>2],FE=rA[n+4>>2];n+=8;for(var vB=0;vB<FE;vB++){var $B=UA[hI+vB],AQ=qC[D];$B===0||$B===10?((D===1?PA:GA)(C(AQ,0)),AQ.length=0):AQ.push($B)}j+=FE}return rA[m>>2]=j,0}};(function(){function D(j,IA){i.asm=j.exports,wI=i.asm.h,E(),lI.unshift(i.asm.i),WA--,i.monitorRunDependencies&&i.monitorRunDependencies(WA),WA==0&&(dI!==null&&(clearInterval(dI),dI=null),aI&&(j=aI,aI=null,j()))}function n(j){D(j.instance)}function h(j){return s().then(function(IA){return WebAssembly.instantiate(IA,m)}).then(function(IA){return IA}).then(j,function(IA){GA(\\\"failed to asynchronously prepare wasm: \\\"+IA),Q(IA)})}var m={a:TC};if(WA++,i.monitorRunDependencies&&i.monitorRunDependencies(WA),i.instantiateWasm)try{return i.instantiateWasm(m,D)}catch(j){GA(\\\"Module.instantiateWasm callback failed with error: \\\"+j),sA(j)}return function(){return XA||typeof WebAssembly.instantiateStreaming!=\\\"function\\\"||FA.startsWith(\\\"data:application/octet-stream;base64,\\\")||FA.startsWith(\\\"file://\\\")||bA||typeof fetch!=\\\"function\\\"?h(n):fetch(FA,{credentials:\\\"same-origin\\\"}).then(function(j){return WebAssembly.instantiateStreaming(j,m).then(n,function(IA){return GA(\\\"wasm streaming compile failed: \\\"+IA),GA(\\\"falling back to ArrayBuffer instantiation\\\"),h(n)})})}().catch(sA),{}})();var TI=i._emscripten_bind_VoidPtr___destroy___0=function(){return(TI=i._emscripten_bind_VoidPtr___destroy___0=i.asm.k).apply(null,arguments)},_I=i._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(_I=i._emscripten_bind_DecoderBuffer_DecoderBuffer_0=i.asm.l).apply(null,arguments)},mI=i._emscripten_bind_DecoderBuffer_Init_2=function(){return(mI=i._emscripten_bind_DecoderBuffer_Init_2=i.asm.m).apply(null,arguments)},xI=i._emscripten_bind_DecoderBuffer___destroy___0=function(){return(xI=i._emscripten_bind_DecoderBuffer___destroy___0=i.asm.n).apply(null,arguments)},bI=i._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(bI=i._emscripten_bind_AttributeTransformData_AttributeTransformData_0=i.asm.o).apply(null,arguments)},VI=i._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(VI=i._emscripten_bind_AttributeTransformData_transform_type_0=i.asm.p).apply(null,arguments)},WI=i._emscripten_bind_AttributeTransformData___destroy___0=function(){return(WI=i._emscripten_bind_AttributeTransformData___destroy___0=i.asm.q).apply(null,arguments)},OI=i._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(OI=i._emscripten_bind_GeometryAttribute_GeometryAttribute_0=i.asm.r).apply(null,arguments)},PI=i._emscripten_bind_GeometryAttribute___destroy___0=function(){return(PI=i._emscripten_bind_GeometryAttribute___destroy___0=i.asm.s).apply(null,arguments)},XI=i._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(XI=i._emscripten_bind_PointAttribute_PointAttribute_0=i.asm.t).apply(null,arguments)},ZI=i._emscripten_bind_PointAttribute_size_0=function(){return(ZI=i._emscripten_bind_PointAttribute_size_0=i.asm.u).apply(null,arguments)},jI=i._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(jI=i._emscripten_bind_PointAttribute_GetAttributeTransformData_0=i.asm.v).apply(null,arguments)},zI=i._emscripten_bind_PointAttribute_attribute_type_0=function(){return(zI=i._emscripten_bind_PointAttribute_attribute_type_0=i.asm.w).apply(null,arguments)},vI=i._emscripten_bind_PointAttribute_data_type_0=function(){return(vI=i._emscripten_bind_PointAttribute_data_type_0=i.asm.x).apply(null,arguments)},$I=i._emscripten_bind_PointAttribute_num_components_0=function(){return($I=i._emscripten_bind_PointAttribute_num_components_0=i.asm.y).apply(null,arguments)},Ag=i._emscripten_bind_PointAttribute_normalized_0=function(){return(Ag=i._emscripten_bind_PointAttribute_normalized_0=i.asm.z).apply(null,arguments)},Ig=i._emscripten_bind_PointAttribute_byte_stride_0=function(){return(Ig=i._emscripten_bind_PointAttribute_byte_stride_0=i.asm.A).apply(null,arguments)},gg=i._emscripten_bind_PointAttribute_byte_offset_0=function(){return(gg=i._emscripten_bind_PointAttribute_byte_offset_0=i.asm.B).apply(null,arguments)},Cg=i._emscripten_bind_PointAttribute_unique_id_0=function(){return(Cg=i._emscripten_bind_PointAttribute_unique_id_0=i.asm.C).apply(null,arguments)},Bg=i._emscripten_bind_PointAttribute___destroy___0=function(){return(Bg=i._emscripten_bind_PointAttribute___destroy___0=i.asm.D).apply(null,arguments)},Qg=i._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Qg=i._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=i.asm.E).apply(null,arguments)},Eg=i._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return(Eg=i._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=i.asm.F).apply(null,arguments)},ig=i._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(ig=i._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=i.asm.G).apply(null,arguments)},og=i._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(og=i._emscripten_bind_AttributeQuantizationTransform_min_value_1=i.asm.H).apply(null,arguments)},tg=i._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(tg=i._emscripten_bind_AttributeQuantizationTransform_range_0=i.asm.I).apply(null,arguments)},Dg=i._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(Dg=i._emscripten_bind_AttributeQuantizationTransform___destroy___0=i.asm.J).apply(null,arguments)},eg=i._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(eg=i._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=i.asm.K).apply(null,arguments)},sg=i._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(sg=i._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=i.asm.L).apply(null,arguments)},ag=i._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(ag=i._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=i.asm.M).apply(null,arguments)},ng=i._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(ng=i._emscripten_bind_AttributeOctahedronTransform___destroy___0=i.asm.N).apply(null,arguments)},rg=i._emscripten_bind_PointCloud_PointCloud_0=function(){return(rg=i._emscripten_bind_PointCloud_PointCloud_0=i.asm.O).apply(null,arguments)},Ng=i._emscripten_bind_PointCloud_num_attributes_0=function(){return(Ng=i._emscripten_bind_PointCloud_num_attributes_0=i.asm.P).apply(null,arguments)},yg=i._emscripten_bind_PointCloud_num_points_0=function(){return(yg=i._emscripten_bind_PointCloud_num_points_0=i.asm.Q).apply(null,arguments)},Rg=i._emscripten_bind_PointCloud___destroy___0=function(){return(Rg=i._emscripten_bind_PointCloud___destroy___0=i.asm.R).apply(null,arguments)},Fg=i._emscripten_bind_Mesh_Mesh_0=function(){return(Fg=i._emscripten_bind_Mesh_Mesh_0=i.asm.S).apply(null,arguments)},cg=i._emscripten_bind_Mesh_num_faces_0=function(){return(cg=i._emscripten_bind_Mesh_num_faces_0=i.asm.T).apply(null,arguments)},wg=i._emscripten_bind_Mesh_num_attributes_0=function(){return(wg=i._emscripten_bind_Mesh_num_attributes_0=i.asm.U).apply(null,arguments)},Gg=i._emscripten_bind_Mesh_num_points_0=function(){return(Gg=i._emscripten_bind_Mesh_num_points_0=i.asm.V).apply(null,arguments)},hg=i._emscripten_bind_Mesh___destroy___0=function(){return(hg=i._emscripten_bind_Mesh___destroy___0=i.asm.W).apply(null,arguments)},Sg=i._emscripten_bind_Metadata_Metadata_0=function(){return(Sg=i._emscripten_bind_Metadata_Metadata_0=i.asm.X).apply(null,arguments)},Mg=i._emscripten_bind_Metadata___destroy___0=function(){return(Mg=i._emscripten_bind_Metadata___destroy___0=i.asm.Y).apply(null,arguments)},Kg=i._emscripten_bind_Status_code_0=function(){return(Kg=i._emscripten_bind_Status_code_0=i.asm.Z).apply(null,arguments)},Ug=i._emscripten_bind_Status_ok_0=function(){return(Ug=i._emscripten_bind_Status_ok_0=i.asm._).apply(null,arguments)},Jg=i._emscripten_bind_Status_error_msg_0=function(){return(Jg=i._emscripten_bind_Status_error_msg_0=i.asm.$).apply(null,arguments)},Yg=i._emscripten_bind_Status___destroy___0=function(){return(Yg=i._emscripten_bind_Status___destroy___0=i.asm.aa).apply(null,arguments)},kg=i._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(kg=i._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=i.asm.ba).apply(null,arguments)},Lg=i._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(Lg=i._emscripten_bind_DracoFloat32Array_GetValue_1=i.asm.ca).apply(null,arguments)},dg=i._emscripten_bind_DracoFloat32Array_size_0=function(){return(dg=i._emscripten_bind_DracoFloat32Array_size_0=i.asm.da).apply(null,arguments)},pg=i._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(pg=i._emscripten_bind_DracoFloat32Array___destroy___0=i.asm.ea).apply(null,arguments)},fg=i._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(fg=i._emscripten_bind_DracoInt8Array_DracoInt8Array_0=i.asm.fa).apply(null,arguments)},Hg=i._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Hg=i._emscripten_bind_DracoInt8Array_GetValue_1=i.asm.ga).apply(null,arguments)},ug=i._emscripten_bind_DracoInt8Array_size_0=function(){return(ug=i._emscripten_bind_DracoInt8Array_size_0=i.asm.ha).apply(null,arguments)},lg=i._emscripten_bind_DracoInt8Array___destroy___0=function(){return(lg=i._emscripten_bind_DracoInt8Array___destroy___0=i.asm.ia).apply(null,arguments)},qg=i._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(qg=i._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=i.asm.ja).apply(null,arguments)},Tg=i._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Tg=i._emscripten_bind_DracoUInt8Array_GetValue_1=i.asm.ka).apply(null,arguments)},_g=i._emscripten_bind_DracoUInt8Array_size_0=function(){return(_g=i._emscripten_bind_DracoUInt8Array_size_0=i.asm.la).apply(null,arguments)},mg=i._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(mg=i._emscripten_bind_DracoUInt8Array___destroy___0=i.asm.ma).apply(null,arguments)},xg=i._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(xg=i._emscripten_bind_DracoInt16Array_DracoInt16Array_0=i.asm.na).apply(null,arguments)},bg=i._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(bg=i._emscripten_bind_DracoInt16Array_GetValue_1=i.asm.oa).apply(null,arguments)},Vg=i._emscripten_bind_DracoInt16Array_size_0=function(){return(Vg=i._emscripten_bind_DracoInt16Array_size_0=i.asm.pa).apply(null,arguments)},Wg=i._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Wg=i._emscripten_bind_DracoInt16Array___destroy___0=i.asm.qa).apply(null,arguments)},Og=i._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(Og=i._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=i.asm.ra).apply(null,arguments)},Pg=i._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(Pg=i._emscripten_bind_DracoUInt16Array_GetValue_1=i.asm.sa).apply(null,arguments)},Xg=i._emscripten_bind_DracoUInt16Array_size_0=function(){return(Xg=i._emscripten_bind_DracoUInt16Array_size_0=i.asm.ta).apply(null,arguments)},Zg=i._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Zg=i._emscripten_bind_DracoUInt16Array___destroy___0=i.asm.ua).apply(null,arguments)},jg=i._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(jg=i._emscripten_bind_DracoInt32Array_DracoInt32Array_0=i.asm.va).apply(null,arguments)},zg=i._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(zg=i._emscripten_bind_DracoInt32Array_GetValue_1=i.asm.wa).apply(null,arguments)},vg=i._emscripten_bind_DracoInt32Array_size_0=function(){return(vg=i._emscripten_bind_DracoInt32Array_size_0=i.asm.xa).apply(null,arguments)},$g=i._emscripten_bind_DracoInt32Array___destroy___0=function(){return($g=i._emscripten_bind_DracoInt32Array___destroy___0=i.asm.ya).apply(null,arguments)},AC=i._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(AC=i._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=i.asm.za).apply(null,arguments)},IC=i._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(IC=i._emscripten_bind_DracoUInt32Array_GetValue_1=i.asm.Aa).apply(null,arguments)},gC=i._emscripten_bind_DracoUInt32Array_size_0=function(){return(gC=i._emscripten_bind_DracoUInt32Array_size_0=i.asm.Ba).apply(null,arguments)},CC=i._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(CC=i._emscripten_bind_DracoUInt32Array___destroy___0=i.asm.Ca).apply(null,arguments)},BC=i._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(BC=i._emscripten_bind_MetadataQuerier_MetadataQuerier_0=i.asm.Da).apply(null,arguments)},QC=i._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(QC=i._emscripten_bind_MetadataQuerier_HasEntry_2=i.asm.Ea).apply(null,arguments)},EC=i._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return(EC=i._emscripten_bind_MetadataQuerier_GetIntEntry_2=i.asm.Fa).apply(null,arguments)},iC=i._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(iC=i._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=i.asm.Ga).apply(null,arguments)},oC=i._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(oC=i._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=i.asm.Ha).apply(null,arguments)},tC=i._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(tC=i._emscripten_bind_MetadataQuerier_GetStringEntry_2=i.asm.Ia).apply(null,arguments)},DC=i._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(DC=i._emscripten_bind_MetadataQuerier_NumEntries_1=i.asm.Ja).apply(null,arguments)},eC=i._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(eC=i._emscripten_bind_MetadataQuerier_GetEntryName_2=i.asm.Ka).apply(null,arguments)},sC=i._emscripten_bind_MetadataQuerier___destroy___0=function(){return(sC=i._emscripten_bind_MetadataQuerier___destroy___0=i.asm.La).apply(null,arguments)},aC=i._emscripten_bind_Decoder_Decoder_0=function(){return(aC=i._emscripten_bind_Decoder_Decoder_0=i.asm.Ma).apply(null,arguments)},nC=i._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(nC=i._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=i.asm.Na).apply(null,arguments)},rC=i._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(rC=i._emscripten_bind_Decoder_DecodeArrayToMesh_3=i.asm.Oa).apply(null,arguments)},NC=i._emscripten_bind_Decoder_GetAttributeId_2=function(){return(NC=i._emscripten_bind_Decoder_GetAttributeId_2=i.asm.Pa).apply(null,arguments)},yC=i._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(yC=i._emscripten_bind_Decoder_GetAttributeIdByName_2=i.asm.Qa).apply(null,arguments)},RC=i._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(RC=i._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=i.asm.Ra).apply(null,arguments)},GI=i._emscripten_bind_Decoder_GetAttribute_2=function(){return(GI=i._emscripten_bind_Decoder_GetAttribute_2=i.asm.Sa).apply(null,arguments)},P=i._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(P=i._emscripten_bind_Decoder_GetAttributeByUniqueId_2=i.asm.Ta).apply(null,arguments)},e=i._emscripten_bind_Decoder_GetMetadata_1=function(){return(e=i._emscripten_bind_Decoder_GetMetadata_1=i.asm.Ua).apply(null,arguments)},a=i._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(a=i._emscripten_bind_Decoder_GetAttributeMetadata_2=i.asm.Va).apply(null,arguments)},F=i._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(F=i._emscripten_bind_Decoder_GetFaceFromMesh_3=i.asm.Wa).apply(null,arguments)},S=i._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(S=i._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=i.asm.Xa).apply(null,arguments)},u=i._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(u=i._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=i.asm.Ya).apply(null,arguments)},W=i._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(W=i._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=i.asm.Za).apply(null,arguments)},FC=i._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(FC=i._emscripten_bind_Decoder_GetAttributeFloat_3=i.asm._a).apply(null,arguments)},KQ=i._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(KQ=i._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=i.asm.$a).apply(null,arguments)},UQ=i._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(UQ=i._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=i.asm.ab).apply(null,arguments)},JQ=i._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(JQ=i._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=i.asm.bb).apply(null,arguments)},YQ=i._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(YQ=i._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=i.asm.cb).apply(null,arguments)},kQ=i._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(kQ=i._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=i.asm.db).apply(null,arguments)},LQ=i._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(LQ=i._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=i.asm.eb).apply(null,arguments)},dQ=i._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(dQ=i._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=i.asm.fb).apply(null,arguments)},pQ=i._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(pQ=i._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=i.asm.gb).apply(null,arguments)},fQ=i._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(fQ=i._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=i.asm.hb).apply(null,arguments)},HQ=i._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(HQ=i._emscripten_bind_Decoder_SkipAttributeTransform_1=i.asm.ib).apply(null,arguments)},uQ=i._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(uQ=i._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=i.asm.jb).apply(null,arguments)},lQ=i._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(lQ=i._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=i.asm.kb).apply(null,arguments)},qQ=i._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(qQ=i._emscripten_bind_Decoder_DecodeBufferToMesh_2=i.asm.lb).apply(null,arguments)},TQ=i._emscripten_bind_Decoder___destroy___0=function(){return(TQ=i._emscripten_bind_Decoder___destroy___0=i.asm.mb).apply(null,arguments)},_Q=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(_Q=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=i.asm.nb).apply(null,arguments)},mQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(mQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=i.asm.ob).apply(null,arguments)},xQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(xQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=i.asm.pb).apply(null,arguments)},bQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(bQ=i._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=i.asm.qb).apply(null,arguments)},VQ=i._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(VQ=i._emscripten_enum_draco_GeometryAttribute_Type_INVALID=i.asm.rb).apply(null,arguments)},WQ=i._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(WQ=i._emscripten_enum_draco_GeometryAttribute_Type_POSITION=i.asm.sb).apply(null,arguments)},OQ=i._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(OQ=i._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=i.asm.tb).apply(null,arguments)},PQ=i._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(PQ=i._emscripten_enum_draco_GeometryAttribute_Type_COLOR=i.asm.ub).apply(null,arguments)},XQ=i._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(XQ=i._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=i.asm.vb).apply(null,arguments)},ZQ=i._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(ZQ=i._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=i.asm.wb).apply(null,arguments)},jQ=i._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(jQ=i._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=i.asm.xb).apply(null,arguments)},zQ=i._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(zQ=i._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=i.asm.yb).apply(null,arguments)},vQ=i._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(vQ=i._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=i.asm.zb).apply(null,arguments)},$Q=i._emscripten_enum_draco_DataType_DT_INVALID=function(){return($Q=i._emscripten_enum_draco_DataType_DT_INVALID=i.asm.Ab).apply(null,arguments)},AE=i._emscripten_enum_draco_DataType_DT_INT8=function(){return(AE=i._emscripten_enum_draco_DataType_DT_INT8=i.asm.Bb).apply(null,arguments)},IE=i._emscripten_enum_draco_DataType_DT_UINT8=function(){return(IE=i._emscripten_enum_draco_DataType_DT_UINT8=i.asm.Cb).apply(null,arguments)},gE=i._emscripten_enum_draco_DataType_DT_INT16=function(){return(gE=i._emscripten_enum_draco_DataType_DT_INT16=i.asm.Db).apply(null,arguments)},CE=i._emscripten_enum_draco_DataType_DT_UINT16=function(){return(CE=i._emscripten_enum_draco_DataType_DT_UINT16=i.asm.Eb).apply(null,arguments)},BE=i._emscripten_enum_draco_DataType_DT_INT32=function(){return(BE=i._emscripten_enum_draco_DataType_DT_INT32=i.asm.Fb).apply(null,arguments)},QE=i._emscripten_enum_draco_DataType_DT_UINT32=function(){return(QE=i._emscripten_enum_draco_DataType_DT_UINT32=i.asm.Gb).apply(null,arguments)},EE=i._emscripten_enum_draco_DataType_DT_INT64=function(){return(EE=i._emscripten_enum_draco_DataType_DT_INT64=i.asm.Hb).apply(null,arguments)},iE=i._emscripten_enum_draco_DataType_DT_UINT64=function(){return(iE=i._emscripten_enum_draco_DataType_DT_UINT64=i.asm.Ib).apply(null,arguments)},oE=i._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(oE=i._emscripten_enum_draco_DataType_DT_FLOAT32=i.asm.Jb).apply(null,arguments)},tE=i._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(tE=i._emscripten_enum_draco_DataType_DT_FLOAT64=i.asm.Kb).apply(null,arguments)},DE=i._emscripten_enum_draco_DataType_DT_BOOL=function(){return(DE=i._emscripten_enum_draco_DataType_DT_BOOL=i.asm.Lb).apply(null,arguments)},eE=i._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(eE=i._emscripten_enum_draco_DataType_DT_TYPES_COUNT=i.asm.Mb).apply(null,arguments)},sE=i._emscripten_enum_draco_StatusCode_OK=function(){return(sE=i._emscripten_enum_draco_StatusCode_OK=i.asm.Nb).apply(null,arguments)},aE=i._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(aE=i._emscripten_enum_draco_StatusCode_DRACO_ERROR=i.asm.Ob).apply(null,arguments)},nE=i._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(nE=i._emscripten_enum_draco_StatusCode_IO_ERROR=i.asm.Pb).apply(null,arguments)},rE=i._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(rE=i._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=i.asm.Qb).apply(null,arguments)},NE=i._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(NE=i._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=i.asm.Rb).apply(null,arguments)},yE=i._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(yE=i._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=i.asm.Sb).apply(null,arguments)};i._malloc=function(){return(i._malloc=i.asm.Tb).apply(null,arguments)},i._free=function(){return(i._free=i.asm.Ub).apply(null,arguments)};var RE=function(){return(RE=i.asm.Vb).apply(null,arguments)};i.___start_em_js=15856,i.___stop_em_js=15954;var _C;if(aI=function D(){_C||M(),_C||(aI=D)},i.preInit)for(typeof i.preInit==\\\"function\\\"&&(i.preInit=[i.preInit]);0<i.preInit.length;)i.preInit.pop()();M(),r.prototype=Object.create(r.prototype),r.prototype.constructor=r,r.prototype.__class__=r,r.__cache__={},i.WrapperObject=r,i.getCache=N,i.wrapPointer=w,i.castObject=function(D,n){return w(D.ptr,n)},i.NULL=w(0),i.destroy=function(D){if(!D.__destroy__)throw\\\"Error: Cannot destroy object. (Did you create it yourself?)\\\";D.__destroy__(),delete N(D.__class__)[D.ptr]},i.compare=function(D,n){return D.ptr===n.ptr},i.getPointer=function(D){return D.ptr},i.getClass=function(D){return D.__class__};var AA={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(AA.needed){for(var D=0;D<AA.temps.length;D++)i._free(AA.temps[D]);AA.temps.length=0,i._free(AA.buffer),AA.buffer=0,AA.size+=AA.needed,AA.needed=0}AA.buffer||(AA.size+=128,AA.buffer=i._malloc(AA.size),AA.buffer||Q(void 0)),AA.pos=0},alloc:function(D,n){return AA.buffer||Q(void 0),D=D.length*n.BYTES_PER_ELEMENT,D=D+7&-8,AA.pos+D>=AA.size?(0<D||Q(void 0),AA.needed+=D,n=i._malloc(D),AA.temps.push(n)):(n=AA.buffer+AA.pos,AA.pos+=D),n},copy:function(D,n,h){switch(h>>>=0,n.BYTES_PER_ELEMENT){case 2:h>>>=1;break;case 4:h>>>=2;break;case 8:h>>>=3}for(var m=0;m<D.length;m++)n[h+m]=D[m]}};return R.prototype=Object.create(r.prototype),R.prototype.constructor=R,R.prototype.__class__=R,R.__cache__={},i.VoidPtr=R,R.prototype.__destroy__=R.prototype.__destroy__=function(){TI(this.ptr)},q.prototype=Object.create(r.prototype),q.prototype.constructor=q,q.prototype.__class__=q,q.__cache__={},i.DecoderBuffer=q,q.prototype.Init=q.prototype.Init=function(D,n){var h=this.ptr;AA.prepare(),typeof D==\\\"object\\\"&&(D=H(D)),n&&typeof n==\\\"object\\\"&&(n=n.ptr),mI(h,D,n)},q.prototype.__destroy__=q.prototype.__destroy__=function(){xI(this.ptr)},J.prototype=Object.create(r.prototype),J.prototype.constructor=J,J.prototype.__class__=J,J.__cache__={},i.AttributeTransformData=J,J.prototype.transform_type=J.prototype.transform_type=function(){return VI(this.ptr)},J.prototype.__destroy__=J.prototype.__destroy__=function(){WI(this.ptr)},k.prototype=Object.create(r.prototype),k.prototype.constructor=k,k.prototype.__class__=k,k.__cache__={},i.GeometryAttribute=k,k.prototype.__destroy__=k.prototype.__destroy__=function(){PI(this.ptr)},K.prototype=Object.create(r.prototype),K.prototype.constructor=K,K.prototype.__class__=K,K.__cache__={},i.PointAttribute=K,K.prototype.size=K.prototype.size=function(){return ZI(this.ptr)},K.prototype.GetAttributeTransformData=K.prototype.GetAttributeTransformData=function(){return w(jI(this.ptr),J)},K.prototype.attribute_type=K.prototype.attribute_type=function(){return zI(this.ptr)},K.prototype.data_type=K.prototype.data_type=function(){return vI(this.ptr)},K.prototype.num_components=K.prototype.num_components=function(){return $I(this.ptr)},K.prototype.normalized=K.prototype.normalized=function(){return!!Ag(this.ptr)},K.prototype.byte_stride=K.prototype.byte_stride=function(){return Ig(this.ptr)},K.prototype.byte_offset=K.prototype.byte_offset=function(){return gg(this.ptr)},K.prototype.unique_id=K.prototype.unique_id=function(){return Cg(this.ptr)},K.prototype.__destroy__=K.prototype.__destroy__=function(){Bg(this.ptr)},L.prototype=Object.create(r.prototype),L.prototype.constructor=L,L.prototype.__class__=L,L.__cache__={},i.AttributeQuantizationTransform=L,L.prototype.InitFromAttribute=L.prototype.InitFromAttribute=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),!!Eg(n,D)},L.prototype.quantization_bits=L.prototype.quantization_bits=function(){return ig(this.ptr)},L.prototype.min_value=L.prototype.min_value=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),og(n,D)},L.prototype.range=L.prototype.range=function(){return tg(this.ptr)},L.prototype.__destroy__=L.prototype.__destroy__=function(){Dg(this.ptr)},c.prototype=Object.create(r.prototype),c.prototype.constructor=c,c.prototype.__class__=c,c.__cache__={},i.AttributeOctahedronTransform=c,c.prototype.InitFromAttribute=c.prototype.InitFromAttribute=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),!!sg(n,D)},c.prototype.quantization_bits=c.prototype.quantization_bits=function(){return ag(this.ptr)},c.prototype.__destroy__=c.prototype.__destroy__=function(){ng(this.ptr)},Y.prototype=Object.create(r.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},i.PointCloud=Y,Y.prototype.num_attributes=Y.prototype.num_attributes=function(){return Ng(this.ptr)},Y.prototype.num_points=Y.prototype.num_points=function(){return yg(this.ptr)},Y.prototype.__destroy__=Y.prototype.__destroy__=function(){Rg(this.ptr)},p.prototype=Object.create(r.prototype),p.prototype.constructor=p,p.prototype.__class__=p,p.__cache__={},i.Mesh=p,p.prototype.num_faces=p.prototype.num_faces=function(){return cg(this.ptr)},p.prototype.num_attributes=p.prototype.num_attributes=function(){return wg(this.ptr)},p.prototype.num_points=p.prototype.num_points=function(){return Gg(this.ptr)},p.prototype.__destroy__=p.prototype.__destroy__=function(){hg(this.ptr)},f.prototype=Object.create(r.prototype),f.prototype.constructor=f,f.prototype.__class__=f,f.__cache__={},i.Metadata=f,f.prototype.__destroy__=f.prototype.__destroy__=function(){Mg(this.ptr)},l.prototype=Object.create(r.prototype),l.prototype.constructor=l,l.prototype.__class__=l,l.__cache__={},i.Status=l,l.prototype.code=l.prototype.code=function(){return Kg(this.ptr)},l.prototype.ok=l.prototype.ok=function(){return!!Ug(this.ptr)},l.prototype.error_msg=l.prototype.error_msg=function(){return g(Jg(this.ptr))},l.prototype.__destroy__=l.prototype.__destroy__=function(){Yg(this.ptr)},_.prototype=Object.create(r.prototype),_.prototype.constructor=_,_.prototype.__class__=_,_.__cache__={},i.DracoFloat32Array=_,_.prototype.GetValue=_.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),Lg(n,D)},_.prototype.size=_.prototype.size=function(){return dg(this.ptr)},_.prototype.__destroy__=_.prototype.__destroy__=function(){pg(this.ptr)},T.prototype=Object.create(r.prototype),T.prototype.constructor=T,T.prototype.__class__=T,T.__cache__={},i.DracoInt8Array=T,T.prototype.GetValue=T.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),Hg(n,D)},T.prototype.size=T.prototype.size=function(){return ug(this.ptr)},T.prototype.__destroy__=T.prototype.__destroy__=function(){lg(this.ptr)},t.prototype=Object.create(r.prototype),t.prototype.constructor=t,t.prototype.__class__=t,t.__cache__={},i.DracoUInt8Array=t,t.prototype.GetValue=t.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),Tg(n,D)},t.prototype.size=t.prototype.size=function(){return _g(this.ptr)},t.prototype.__destroy__=t.prototype.__destroy__=function(){mg(this.ptr)},O.prototype=Object.create(r.prototype),O.prototype.constructor=O,O.prototype.__class__=O,O.__cache__={},i.DracoInt16Array=O,O.prototype.GetValue=O.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),bg(n,D)},O.prototype.size=O.prototype.size=function(){return Vg(this.ptr)},O.prototype.__destroy__=O.prototype.__destroy__=function(){Wg(this.ptr)},X.prototype=Object.create(r.prototype),X.prototype.constructor=X,X.prototype.__class__=X,X.__cache__={},i.DracoUInt16Array=X,X.prototype.GetValue=X.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),Pg(n,D)},X.prototype.size=X.prototype.size=function(){return Xg(this.ptr)},X.prototype.__destroy__=X.prototype.__destroy__=function(){Zg(this.ptr)},v.prototype=Object.create(r.prototype),v.prototype.constructor=v,v.prototype.__class__=v,v.__cache__={},i.DracoInt32Array=v,v.prototype.GetValue=v.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),zg(n,D)},v.prototype.size=v.prototype.size=function(){return vg(this.ptr)},v.prototype.__destroy__=v.prototype.__destroy__=function(){$g(this.ptr)},gA.prototype=Object.create(r.prototype),gA.prototype.constructor=gA,gA.prototype.__class__=gA,gA.__cache__={},i.DracoUInt32Array=gA,gA.prototype.GetValue=gA.prototype.GetValue=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),IC(n,D)},gA.prototype.size=gA.prototype.size=function(){return gC(this.ptr)},gA.prototype.__destroy__=gA.prototype.__destroy__=function(){CC(this.ptr)},$.prototype=Object.create(r.prototype),$.prototype.constructor=$,$.prototype.__class__=$,$.__cache__={},i.MetadataQuerier=$,$.prototype.HasEntry=$.prototype.HasEntry=function(D,n){var h=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),!!QC(h,D,n)},$.prototype.GetIntEntry=$.prototype.GetIntEntry=function(D,n){var h=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),EC(h,D,n)},$.prototype.GetIntEntryArray=$.prototype.GetIntEntryArray=function(D,n,h){var m=this.ptr;AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),h&&typeof h==\\\"object\\\"&&(h=h.ptr),iC(m,D,n,h)},$.prototype.GetDoubleEntry=$.prototype.GetDoubleEntry=function(D,n){var h=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),oC(h,D,n)},$.prototype.GetStringEntry=$.prototype.GetStringEntry=function(D,n){var h=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),g(tC(h,D,n))},$.prototype.NumEntries=$.prototype.NumEntries=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),DC(n,D)},$.prototype.GetEntryName=$.prototype.GetEntryName=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),g(eC(h,D,n))},$.prototype.__destroy__=$.prototype.__destroy__=function(){sC(this.ptr)},V.prototype=Object.create(r.prototype),V.prototype.constructor=V,V.prototype.__class__=V,V.__cache__={},i.Decoder=V,V.prototype.DecodeArrayToPointCloud=V.prototype.DecodeArrayToPointCloud=function(D,n,h){var m=this.ptr;return AA.prepare(),typeof D==\\\"object\\\"&&(D=H(D)),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),w(nC(m,D,n,h),l)},V.prototype.DecodeArrayToMesh=V.prototype.DecodeArrayToMesh=function(D,n,h){var m=this.ptr;return AA.prepare(),typeof D==\\\"object\\\"&&(D=H(D)),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),w(rC(m,D,n,h),l)},V.prototype.GetAttributeId=V.prototype.GetAttributeId=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),NC(h,D,n)},V.prototype.GetAttributeIdByName=V.prototype.GetAttributeIdByName=function(D,n){var h=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),yC(h,D,n)},V.prototype.GetAttributeIdByMetadataEntry=V.prototype.GetAttributeIdByMetadataEntry=function(D,n,h){var m=this.ptr;return AA.prepare(),D&&typeof D==\\\"object\\\"&&(D=D.ptr),n=n&&typeof n==\\\"object\\\"?n.ptr:U(n),h=h&&typeof h==\\\"object\\\"?h.ptr:U(h),RC(m,D,n,h)},V.prototype.GetAttribute=V.prototype.GetAttribute=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),w(GI(h,D,n),K)},V.prototype.GetAttributeByUniqueId=V.prototype.GetAttributeByUniqueId=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),w(P(h,D,n),K)},V.prototype.GetMetadata=V.prototype.GetMetadata=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),w(e(n,D),f)},V.prototype.GetAttributeMetadata=V.prototype.GetAttributeMetadata=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),w(a(h,D,n),f)},V.prototype.GetFaceFromMesh=V.prototype.GetFaceFromMesh=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!F(m,D,n,h)},V.prototype.GetTriangleStripsFromMesh=V.prototype.GetTriangleStripsFromMesh=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),S(h,D,n)},V.prototype.GetTrianglesUInt16Array=V.prototype.GetTrianglesUInt16Array=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!u(m,D,n,h)},V.prototype.GetTrianglesUInt32Array=V.prototype.GetTrianglesUInt32Array=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!W(m,D,n,h)},V.prototype.GetAttributeFloat=V.prototype.GetAttributeFloat=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!FC(m,D,n,h)},V.prototype.GetAttributeFloatForAllPoints=V.prototype.GetAttributeFloatForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!KQ(m,D,n,h)},V.prototype.GetAttributeIntForAllPoints=V.prototype.GetAttributeIntForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!UQ(m,D,n,h)},V.prototype.GetAttributeInt8ForAllPoints=V.prototype.GetAttributeInt8ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!JQ(m,D,n,h)},V.prototype.GetAttributeUInt8ForAllPoints=V.prototype.GetAttributeUInt8ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!YQ(m,D,n,h)},V.prototype.GetAttributeInt16ForAllPoints=V.prototype.GetAttributeInt16ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!kQ(m,D,n,h)},V.prototype.GetAttributeUInt16ForAllPoints=V.prototype.GetAttributeUInt16ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!LQ(m,D,n,h)},V.prototype.GetAttributeInt32ForAllPoints=V.prototype.GetAttributeInt32ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!dQ(m,D,n,h)},V.prototype.GetAttributeUInt32ForAllPoints=V.prototype.GetAttributeUInt32ForAllPoints=function(D,n,h){var m=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),!!pQ(m,D,n,h)},V.prototype.GetAttributeDataArrayForAllPoints=V.prototype.GetAttributeDataArrayForAllPoints=function(D,n,h,m,j){var IA=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),h&&typeof h==\\\"object\\\"&&(h=h.ptr),m&&typeof m==\\\"object\\\"&&(m=m.ptr),j&&typeof j==\\\"object\\\"&&(j=j.ptr),!!fQ(IA,D,n,h,m,j)},V.prototype.SkipAttributeTransform=V.prototype.SkipAttributeTransform=function(D){var n=this.ptr;D&&typeof D==\\\"object\\\"&&(D=D.ptr),HQ(n,D)},V.prototype.GetEncodedGeometryType_Deprecated=V.prototype.GetEncodedGeometryType_Deprecated=function(D){var n=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),uQ(n,D)},V.prototype.DecodeBufferToPointCloud=V.prototype.DecodeBufferToPointCloud=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),w(lQ(h,D,n),l)},V.prototype.DecodeBufferToMesh=V.prototype.DecodeBufferToMesh=function(D,n){var h=this.ptr;return D&&typeof D==\\\"object\\\"&&(D=D.ptr),n&&typeof n==\\\"object\\\"&&(n=n.ptr),w(qQ(h,D,n),l)},V.prototype.__destroy__=V.prototype.__destroy__=function(){TQ(this.ptr)},function(){function D(){i.ATTRIBUTE_INVALID_TRANSFORM=_Q(),i.ATTRIBUTE_NO_TRANSFORM=mQ(),i.ATTRIBUTE_QUANTIZATION_TRANSFORM=xQ(),i.ATTRIBUTE_OCTAHEDRON_TRANSFORM=bQ(),i.INVALID=VQ(),i.POSITION=WQ(),i.NORMAL=OQ(),i.COLOR=PQ(),i.TEX_COORD=XQ(),i.GENERIC=ZQ(),i.INVALID_GEOMETRY_TYPE=jQ(),i.POINT_CLOUD=zQ(),i.TRIANGULAR_MESH=vQ(),i.DT_INVALID=$Q(),i.DT_INT8=AE(),i.DT_UINT8=IE(),i.DT_INT16=gE(),i.DT_UINT16=CE(),i.DT_INT32=BE(),i.DT_UINT32=QE(),i.DT_INT64=EE(),i.DT_UINT64=iE(),i.DT_FLOAT32=oE(),i.DT_FLOAT64=tE(),i.DT_BOOL=DE(),i.DT_TYPES_COUNT=eE(),i.OK=sE(),i.DRACO_ERROR=aE(),i.IO_ERROR=nE(),i.INVALID_PARAMETER=rE(),i.UNSUPPORTED_VERSION=NE(),i.UNKNOWN_VERSION=yE()}qI?D():lI.unshift(D)}(),typeof i.onModuleParsed==\\\"function\\\"&&i.onModuleParsed(),i.Decoder.prototype.GetEncodedGeometryType=function(D){if(D.__class__&&D.__class__===i.DecoderBuffer)return i.Decoder.prototype.GetEncodedGeometryType_Deprecated(D);if(8>D.byteLength)return i.INVALID_GEOMETRY_TYPE;switch(D[7]){case 0:return i.POINT_CLOUD;case 1:return i.TRIANGULAR_MESH;default:return i.INVALID_GEOMETRY_TYPE}},A.ready}}();typeof HC==\\\"object\\\"&&typeof GQ==\\\"object\\\"?GQ.exports=wQ:typeof define==\\\"function\\\"&&define.amd?define([],function(){return wQ}):typeof HC==\\\"object\\\"&&(HC.DracoDecoderModule=wQ)});var gi=IQ((At,Ii)=>{var Ho=$E(),uo=Ai();Ii.exports={createEncoderModule:Ho,createDecoderModule:uo}});var xC=class{constructor(){this._listeners={}}addEventListener(A,I){let C=this._listeners;return C[A]===void 0&&(C[A]=[]),C[A].indexOf(I)===-1&&C[A].push(I),this}removeEventListener(A,I){let g=this._listeners[A];if(g!==void 0){let E=g.indexOf(I);E!==-1&&g.splice(E,1)}return this}dispatchEvent(A){let C=this._listeners[A.type];if(C!==void 0){let g=C.slice(0);for(let E=0,Q=g.length;E<Q;E++)g[E].call(this,A)}return this}dispose(){for(let A in this._listeners)delete this._listeners[A]}},OA=class{constructor(A,I,C,g={}){if(this._name=void 0,this._parent=void 0,this._child=void 0,this._attributes=void 0,this._disposed=!1,this._name=A,this._parent=I,this._child=C,this._attributes=g,!I.isOnGraph(C))throw new Error(\\\"Cannot connect disconnected graphs.\\\")}getName(){return this._name}getParent(){return this._parent}getChild(){return this._child}setChild(A){return this._child=A,this}getAttributes(){return this._attributes}dispose(){this._disposed||(this._parent._destroyRef(this),this._disposed=!0)}isDisposed(){return this._disposed}},wC=class extends xC{constructor(...A){super(...A),this._emptySet=new Set,this._edges=new Set,this._parentEdges=new Map,this._childEdges=new Map}listEdges(){return Array.from(this._edges)}listParentEdges(A){return Array.from(this._childEdges.get(A)||this._emptySet)}listParents(A){let I=new Set;for(let C of this.listParentEdges(A))I.add(C.getParent());return Array.from(I)}listChildEdges(A){return Array.from(this._parentEdges.get(A)||this._emptySet)}listChildren(A){let I=new Set;for(let C of this.listChildEdges(A))I.add(C.getChild());return Array.from(I)}disconnectParents(A,I){for(let C of this.listParentEdges(A))(!I||I(C.getParent()))&&C.dispose();return this}_createEdge(A,I,C,g){let E=new OA(A,I,C,g);this._edges.add(E);let Q=E.getParent();this._parentEdges.has(Q)||this._parentEdges.set(Q,new Set),this._parentEdges.get(Q).add(E);let o=E.getChild();return this._childEdges.has(o)||this._childEdges.set(o,new Set),this._childEdges.get(o).add(E),E}_destroyEdge(A){return this._edges.delete(A),this._parentEdges.get(A.getParent()).delete(A),this._childEdges.get(A.getChild()).delete(A),this}};function cC(){return cC=Object.assign||function(B){for(var A=1;A<arguments.length;A++){var I=arguments[A];for(var C in I)Object.prototype.hasOwnProperty.call(I,C)&&(B[C]=I[C])}return B},cC.apply(this,arguments)}var fA=class{constructor(A){if(this.list=[],A)for(let I of A)this.list.push(I)}add(A){this.list.push(A)}remove(A){let I=this.list.indexOf(A);I>=0&&this.list.splice(I,1)}removeChild(A){let I=[];for(let C of this.list)C.getChild()===A&&I.push(C);for(let C of I)this.remove(C);return I}listRefsByChild(A){let I=[];for(let C of this.list)C.getChild()===A&&I.push(C);return I}values(){return this.list}},QA=class{constructor(A){if(this.set=new Set,this.map=new Map,A)for(let I of A)this.add(I)}add(A){let I=A.getChild();this.removeChild(I),this.set.add(A),this.map.set(I,A)}remove(A){this.set.delete(A),this.map.delete(A.getChild())}removeChild(A){let I=this.map.get(A)||null;return I&&this.remove(I),I}getRefByChild(A){return this.map.get(A)||null}values(){return Array.from(this.set)}},cA=class{constructor(A){this.map={},A&&Object.assign(this.map,A)}set(A,I){this.map[A]=I}delete(A){delete this.map[A]}get(A){return this.map[A]||null}keys(){return Object.keys(this.map)}values(){return Object.values(this.map)}},BA=Symbol(\\\"attributes\\\"),nI=Symbol(\\\"immutableKeys\\\"),bC=class B extends xC{constructor(A){super(),this._disposed=!1,this.graph=void 0,this[BA]=void 0,this[nI]=void 0,this.graph=A,this[nI]=new Set,this[BA]=this._createAttributes()}getDefaults(){return{}}_createAttributes(){let A=this.getDefaults(),I={};for(let C in A){let g=A[C];if(g instanceof B){let E=this.graph._createEdge(C,this,g);this[nI].add(C),I[C]=E}else I[C]=g}return I}isOnGraph(A){return this.graph===A.graph}isDisposed(){return this._disposed}dispose(){this._disposed||(this.graph.listChildEdges(this).forEach(A=>A.dispose()),this.graph.disconnectParents(this),this._disposed=!0,this.dispatchEvent({type:\\\"dispose\\\"}))}detach(){return this.graph.disconnectParents(this),this}swap(A,I){for(let C in this[BA]){let g=this[BA][C];if(g instanceof OA){let E=g;E.getChild()===A&&this.setRef(C,I,E.getAttributes())}else if(g instanceof fA)for(let E of g.listRefsByChild(A)){let Q=E.getAttributes();this.removeRef(C,A),this.addRef(C,I,Q)}else if(g instanceof QA){let E=g.getRefByChild(A);if(E){let Q=E.getAttributes();this.removeRef(C,A),this.addRef(C,I,Q)}}else if(g instanceof cA)for(let E of g.keys()){let Q=g.get(E);Q.getChild()===A&&this.setRefMap(C,E,I,Q.getAttributes())}}return this}get(A){return this[BA][A]}set(A,I){return this[BA][A]=I,this.dispatchEvent({type:\\\"change\\\",attribute:A})}getRef(A){let I=this[BA][A];return I?I.getChild():null}setRef(A,I,C){if(this[nI].has(A))throw new Error(`Cannot overwrite immutable attribute, \\\"${A}\\\".`);let g=this[BA][A];if(g&&g.dispose(),!I)return this;let E=this.graph._createEdge(A,this,I,C);return this[BA][A]=E,this.dispatchEvent({type:\\\"change\\\",attribute:A})}listRefs(A){return this.assertRefList(A).values().map(C=>C.getChild())}addRef(A,I,C){let g=this.graph._createEdge(A,this,I,C);return this.assertRefList(A).add(g),this.dispatchEvent({type:\\\"change\\\",attribute:A})}removeRef(A,I){let C=this.assertRefList(A);if(C instanceof fA)for(let g of C.listRefsByChild(I))g.dispose();else{let g=C.getRefByChild(I);g&&g.dispose()}return this}assertRefList(A){let I=this[BA][A];if(I instanceof fA||I instanceof QA)return I;throw new Error(`Expected RefList or RefSet for attribute \\\"${A}\\\"`)}listRefMapKeys(A){return this.assertRefMap(A).keys()}listRefMapValues(A){return this.assertRefMap(A).values().map(I=>I.getChild())}getRefMap(A,I){let g=this.assertRefMap(A).get(I);return g?g.getChild():null}setRefMap(A,I,C,g){let E=this.assertRefMap(A),Q=E.get(I);if(Q&&Q.dispose(),!C)return this;g=Object.assign(g||{},{key:I});let o=this.graph._createEdge(A,this,C,cC({},g,{key:I}));return E.set(I,o),this.dispatchEvent({type:\\\"change\\\",attribute:A,key:I})}assertRefMap(A){let I=this[BA][A];if(I instanceof cA)return I;throw new Error(`Expected RefMap for attribute \\\"${A}\\\"`)}dispatchEvent(A){return super.dispatchEvent(cC({},A,{target:this})),this.graph.dispatchEvent(cC({},A,{target:this,type:`node:${A.type}`})),this}_destroyRef(A){let I=A.getName();if(this[BA][I]===A)this[BA][I]=null,this[nI].has(I)&&A.getChild().dispose();else if(this[BA][I]instanceof fA)this[BA][I].remove(A);else if(this[BA][I]instanceof QA)this[BA][I].remove(A);else if(this[BA][I]instanceof cA){let C=this[BA][I];for(let g of C.keys())C.get(g)===A&&C.delete(g)}else return;this.graph._destroyEdge(A),this.dispatchEvent({type:\\\"change\\\",attribute:I})}};var UE=\\\"v4.2.1\\\",KI=\\\"@glb.bin\\\",d;(function(B){B.ACCESSOR=\\\"Accessor\\\",B.ANIMATION=\\\"Animation\\\",B.ANIMATION_CHANNEL=\\\"AnimationChannel\\\",B.ANIMATION_SAMPLER=\\\"AnimationSampler\\\",B.BUFFER=\\\"Buffer\\\",B.CAMERA=\\\"Camera\\\",B.MATERIAL=\\\"Material\\\",B.MESH=\\\"Mesh\\\",B.PRIMITIVE=\\\"Primitive\\\",B.PRIMITIVE_TARGET=\\\"PrimitiveTarget\\\",B.NODE=\\\"Node\\\",B.ROOT=\\\"Root\\\",B.SCENE=\\\"Scene\\\",B.SKIN=\\\"Skin\\\",B.TEXTURE=\\\"Texture\\\",B.TEXTURE_INFO=\\\"TextureInfo\\\"})(d||(d={}));var ZC;(function(B){B.INTERLEAVED=\\\"interleaved\\\",B.SEPARATE=\\\"separate\\\"})(ZC||(ZC={}));var kA;(function(B){B.ARRAY_BUFFER=\\\"ARRAY_BUFFER\\\",B.ELEMENT_ARRAY_BUFFER=\\\"ELEMENT_ARRAY_BUFFER\\\",B.INVERSE_BIND_MATRICES=\\\"INVERSE_BIND_MATRICES\\\",B.OTHER=\\\"OTHER\\\",B.SPARSE=\\\"SPARSE\\\"})(kA||(kA={}));var LA;(function(B){B[B.R=4096]=\\\"R\\\",B[B.G=256]=\\\"G\\\",B[B.B=16]=\\\"B\\\",B[B.A=1]=\\\"A\\\"})(LA||(LA={}));var rI;(function(B){B.GLTF=\\\"GLTF\\\",B.GLB=\\\"GLB\\\"})(rI||(rI={}));var tB={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},z=class{static createBufferFromDataURI(A){if(typeof Buffer>\\\"u\\\"){let I=atob(A.split(\\\",\\\")[1]),C=new Uint8Array(I.length);for(let g=0;g<I.length;g++)C[g]=I.charCodeAt(g);return C}else{let I=A.split(\\\",\\\")[1],C=A.indexOf(\\\"base64\\\")>=0;return Buffer.from(I,C?\\\"base64\\\":\\\"utf8\\\")}}static encodeText(A){return new TextEncoder().encode(A)}static decodeText(A){return new TextDecoder().decode(A)}static concat(A){let I=0;for(let E of A)I+=E.byteLength;let C=new Uint8Array(I),g=0;for(let E of A)C.set(E,g),g+=E.byteLength;return C}static pad(A,I=0){let C=this.padNumber(A.byteLength);if(C===A.byteLength)return A;let g=new Uint8Array(C);if(g.set(A),I!==0)for(let E=A.byteLength;E<C;E++)g[E]=I;return g}static padNumber(A){return Math.ceil(A/4)*4}static equals(A,I){if(A===I)return!0;if(A.byteLength!==I.byteLength)return!1;let C=A.byteLength;for(;C--;)if(A[C]!==I[C])return!1;return!0}static toView(A,I=0,C=1/0){return new Uint8Array(A.buffer,A.byteOffset+I,Math.min(A.byteLength,C))}static assertView(A){if(A&&!ArrayBuffer.isView(A))throw new Error(`Method requires Uint8Array parameter; received \\\"${typeof A}\\\".`);return A}};var CQ=class{match(A){return A.length>=3&&A[0]===255&&A[1]===216&&A[2]===255}getSize(A){let I=new DataView(A.buffer,A.byteOffset+4),C,g;for(;I.byteLength;){if(C=I.getUint16(0,!1),ni(I,C),g=I.getUint8(C+1),g===192||g===193||g===194)return[I.getUint16(C+7,!1),I.getUint16(C+5,!1)];I=new DataView(A.buffer,I.byteOffset+C+2)}throw new TypeError(\\\"Invalid JPG, no size found\\\")}getChannels(A){return 3}},jC=class B{match(A){return A.length>=8&&A[0]===137&&A[1]===80&&A[2]===78&&A[3]===71&&A[4]===13&&A[5]===10&&A[6]===26&&A[7]===10}getSize(A){let I=new DataView(A.buffer,A.byteOffset);return z.decodeText(A.slice(12,16))===B.PNG_FRIED_CHUNK_NAME?[I.getUint32(32,!1),I.getUint32(36,!1)]:[I.getUint32(16,!1),I.getUint32(20,!1)]}getChannels(A){return 4}};jC.PNG_FRIED_CHUNK_NAME=\\\"CgBI\\\";var JA=class{static registerFormat(A,I){this.impls[A]=I}static getMimeType(A){for(let I in this.impls)if(this.impls[I].match(A))return I;return null}static getSize(A,I){return this.impls[I]?this.impls[I].getSize(A):null}static getChannels(A,I){return this.impls[I]?this.impls[I].getChannels(A):null}static getVRAMByteLength(A,I){if(!this.impls[I])return null;if(this.impls[I].getVRAMByteLength)return this.impls[I].getVRAMByteLength(A);let C=0,g=4,E=this.getSize(A,I);if(!E)return null;for(;E[0]>1||E[1]>1;)C+=E[0]*E[1]*g,E[0]=Math.max(Math.floor(E[0]/2),1),E[1]=Math.max(Math.floor(E[1]/2),1);return C+=1*1*g,C}static mimeTypeToExtension(A){return A===\\\"image/jpeg\\\"?\\\"jpg\\\":A.split(\\\"/\\\").pop()}static extensionToMimeType(A){return A===\\\"jpg\\\"?\\\"image/jpeg\\\":A?`image/${A}`:\\\"\\\"}};JA.impls={\\\"image/jpeg\\\":new CQ,\\\"image/png\\\":new jC};function ni(B,A){if(A>B.byteLength)throw new TypeError(\\\"Corrupt JPG, exceeded buffer limits\\\");if(B.getUint8(A)!==255)throw new TypeError(\\\"Invalid JPG, marker table corrupted\\\");return B}var NI=class{static basename(A){let I=A.split(/[\\\\\\\\/]/).pop();return I.substring(0,I.lastIndexOf(\\\".\\\"))}static extension(A){if(A.startsWith(\\\"data:image/\\\")){let I=A.match(/data:(image\\\\/\\\\w+)/)[1];return JA.mimeTypeToExtension(I)}else{if(A.startsWith(\\\"data:model/gltf+json\\\"))return\\\"gltf\\\";if(A.startsWith(\\\"data:model/gltf-binary\\\"))return\\\"glb\\\";if(A.startsWith(\\\"data:application/\\\"))return\\\"bin\\\"}return A.split(/[\\\\\\\\/]/).pop().split(/[.]/).pop()}},BQ=typeof Float32Array<\\\"u\\\"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var B=0,A=arguments.length;A--;)B+=arguments[A]*arguments[A];return Math.sqrt(B)});function ri(){var B=new BQ(3);return BQ!=Float32Array&&(B[0]=0,B[1]=0,B[2]=0),B}function gQ(B){var A=B[0],I=B[1],C=B[2];return Math.hypot(A,I,C)}function Ni(B,A,I){var C=A[0],g=A[1],E=A[2],Q=I[3]*C+I[7]*g+I[11]*E+I[15];return Q=Q||1,B[0]=(I[0]*C+I[4]*g+I[8]*E+I[12])/Q,B[1]=(I[1]*C+I[5]*g+I[9]*E+I[13])/Q,B[2]=(I[2]*C+I[6]*g+I[10]*E+I[14])/Q,B}(function(){var B=ri();return function(A,I,C,g,E,Q){var o,s;for(I||(I=3),C||(C=0),g?s=Math.min(g*I+C,A.length):s=A.length,o=C;o<s;o+=I)B[0]=A[o],B[1]=A[o+1],B[2]=A[o+2],E(B,B,Q),A[o]=B[0],A[o+1]=B[1],A[o+2]=B[2];return A}})();function JE(B){let A=YE(),I=B.propertyType===d.NODE?[B]:B.listChildren();for(let C of I)C.traverse(g=>{let E=g.getMesh();if(!E)return;let Q=yi(E,g.getWorldMatrix());Q.min.every(isFinite)&&Q.max.every(isFinite)&&(QQ(Q.min,A),QQ(Q.max,A))});return A}function yi(B,A){let I=YE();for(let C of B.listPrimitives()){let g=C.getAttribute(\\\"POSITION\\\"),E=C.getIndices();if(!g)continue;let Q=[0,0,0],o=[0,0,0];for(let s=0,y=E?E.getCount():g.getCount();s<y;s++){let G=E?E.getScalar(s):s;Q=g.getElement(G,Q),o=Ni(o,Q,A),QQ(o,I)}}return I}function QQ(B,A){for(let I=0;I<3;I++)A.min[I]=Math.min(B[I],A.min[I]),A.max[I]=Math.max(B[I],A.max[I])}function YE(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}var wE=\\\"https://null.example\\\",MI=class{static dirname(A){let I=A.lastIndexOf(\\\"/\\\");return I===-1?\\\"./\\\":A.substring(0,I+1)}static basename(A){return NI.basename(new URL(A,wE).pathname)}static extension(A){return NI.extension(new URL(A,wE).pathname)}static resolve(A,I){if(!this.isRelativePath(I))return I;let C=A.split(\\\"/\\\"),g=I.split(\\\"/\\\");C.pop();for(let E=0;E<g.length;E++)g[E]!==\\\".\\\"&&(g[E]===\\\"..\\\"?C.pop():C.push(g[E]));return C.join(\\\"/\\\")}static isAbsoluteURL(A){return this.PROTOCOL_REGEXP.test(A)}static isRelativePath(A){return!/^(?:[a-zA-Z]+:)?\\\\//.test(A)}};MI.DEFAULT_INIT={};MI.PROTOCOL_REGEXP=/^[a-zA-Z]+:\\\\/\\\\//;function GE(B){return Object.prototype.toString.call(B)===\\\"[object Object]\\\"}function SI(B){if(GE(B)===!1)return!1;let A=B.constructor;if(A===void 0)return!0;let I=A.prototype;return!(GE(I)===!1||Object.hasOwn(I,\\\"isPrototypeOf\\\")===!1)}var EQ,iQ;(function(B){B[B.SILENT=4]=\\\"SILENT\\\",B[B.ERROR=3]=\\\"ERROR\\\",B[B.WARN=2]=\\\"WARN\\\",B[B.INFO=1]=\\\"INFO\\\",B[B.DEBUG=0]=\\\"DEBUG\\\"})(iQ||(iQ={}));var jA=class B{constructor(A){this.verbosity=void 0,this.verbosity=A}debug(A){this.verbosity<=B.Verbosity.DEBUG&&console.debug(A)}info(A){this.verbosity<=B.Verbosity.INFO&&console.info(A)}warn(A){this.verbosity<=B.Verbosity.WARN&&console.warn(A)}error(A){this.verbosity<=B.Verbosity.ERROR&&console.error(A)}};EQ=jA;jA.Verbosity=iQ;jA.DEFAULT_INSTANCE=new EQ(EQ.Verbosity.INFO);function Ri(B){var A=B[0],I=B[1],C=B[2],g=B[3],E=B[4],Q=B[5],o=B[6],s=B[7],y=B[8],G=B[9],M=B[10],r=B[11],N=B[12],w=B[13],U=B[14],H=B[15],R=A*Q-I*E,q=A*o-C*E,J=A*s-g*E,k=I*o-C*Q,K=I*s-g*Q,L=C*s-g*o,c=y*w-G*N,Y=y*U-M*N,p=y*H-r*N,f=G*U-M*w,l=G*H-r*w,_=M*H-r*U;return R*_-q*l+J*f+k*p-K*Y+L*c}function Fi(B,A,I){var C=A[0],g=A[1],E=A[2],Q=A[3],o=A[4],s=A[5],y=A[6],G=A[7],M=A[8],r=A[9],N=A[10],w=A[11],U=A[12],H=A[13],R=A[14],q=A[15],J=I[0],k=I[1],K=I[2],L=I[3];return B[0]=J*C+k*o+K*M+L*U,B[1]=J*g+k*s+K*r+L*H,B[2]=J*E+k*y+K*N+L*R,B[3]=J*Q+k*G+K*w+L*q,J=I[4],k=I[5],K=I[6],L=I[7],B[4]=J*C+k*o+K*M+L*U,B[5]=J*g+k*s+K*r+L*H,B[6]=J*E+k*y+K*N+L*R,B[7]=J*Q+k*G+K*w+L*q,J=I[8],k=I[9],K=I[10],L=I[11],B[8]=J*C+k*o+K*M+L*U,B[9]=J*g+k*s+K*r+L*H,B[10]=J*E+k*y+K*N+L*R,B[11]=J*Q+k*G+K*w+L*q,J=I[12],k=I[13],K=I[14],L=I[15],B[12]=J*C+k*o+K*M+L*U,B[13]=J*g+k*s+K*r+L*H,B[14]=J*E+k*y+K*N+L*R,B[15]=J*Q+k*G+K*w+L*q,B}function ci(B,A){var I=A[0],C=A[1],g=A[2],E=A[4],Q=A[5],o=A[6],s=A[8],y=A[9],G=A[10];return B[0]=Math.hypot(I,C,g),B[1]=Math.hypot(E,Q,o),B[2]=Math.hypot(s,y,G),B}function wi(B,A){var I=new BQ(3);ci(I,A);var C=1/I[0],g=1/I[1],E=1/I[2],Q=A[0]*C,o=A[1]*g,s=A[2]*E,y=A[4]*C,G=A[5]*g,M=A[6]*E,r=A[8]*C,N=A[9]*g,w=A[10]*E,U=Q+G+w,H=0;return U>0?(H=Math.sqrt(U+1)*2,B[3]=.25*H,B[0]=(M-N)/H,B[1]=(r-s)/H,B[2]=(o-y)/H):Q>G&&Q>w?(H=Math.sqrt(1+Q-G-w)*2,B[3]=(M-N)/H,B[0]=.25*H,B[1]=(o+y)/H,B[2]=(r+s)/H):G>w?(H=Math.sqrt(1+G-Q-w)*2,B[3]=(r-s)/H,B[0]=(o+y)/H,B[1]=.25*H,B[2]=(M+N)/H):(H=Math.sqrt(1+w-Q-G)*2,B[3]=(o-y)/H,B[0]=(r+s)/H,B[1]=(M+N)/H,B[2]=.25*H),B}var oA=class B{static identity(A){return A}static eq(A,I,C=1e-5){if(A.length!==I.length)return!1;for(let g=0;g<A.length;g++)if(Math.abs(A[g]-I[g])>C)return!1;return!0}static clamp(A,I,C){return A<I?I:A>C?C:A}static decodeNormalizedInt(A,I){switch(I){case 5126:return A;case 5123:return A/65535;case 5121:return A/255;case 5122:return Math.max(A/32767,-1);case 5120:return Math.max(A/127,-1);default:throw new Error(\\\"Invalid component type.\\\")}}static encodeNormalizedInt(A,I){switch(I){case 5126:return A;case 5123:return Math.round(B.clamp(A,0,1)*65535);case 5121:return Math.round(B.clamp(A,0,1)*255);case 5122:return Math.round(B.clamp(A,-1,1)*32767);case 5120:return Math.round(B.clamp(A,-1,1)*127);default:throw new Error(\\\"Invalid component type.\\\")}}static decompose(A,I,C,g){let E=gQ([A[0],A[1],A[2]]),Q=gQ([A[4],A[5],A[6]]),o=gQ([A[8],A[9],A[10]]);Ri(A)<0&&(E=-E),I[0]=A[12],I[1]=A[13],I[2]=A[14];let y=A.slice(),G=1/E,M=1/Q,r=1/o;y[0]*=G,y[1]*=G,y[2]*=G,y[4]*=M,y[5]*=M,y[6]*=M,y[8]*=r,y[9]*=r,y[10]*=r,wi(C,y),g[0]=E,g[1]=Q,g[2]=o}static compose(A,I,C,g){let E=g,Q=I[0],o=I[1],s=I[2],y=I[3],G=Q+Q,M=o+o,r=s+s,N=Q*G,w=Q*M,U=Q*r,H=o*M,R=o*r,q=s*r,J=y*G,k=y*M,K=y*r,L=C[0],c=C[1],Y=C[2];return E[0]=(1-(H+q))*L,E[1]=(w+K)*L,E[2]=(U-k)*L,E[3]=0,E[4]=(w-K)*c,E[5]=(1-(N+q))*c,E[6]=(R+J)*c,E[7]=0,E[8]=(U+k)*Y,E[9]=(R-J)*Y,E[10]=(1-(N+H))*Y,E[11]=0,E[12]=A[0],E[13]=A[1],E[14]=A[2],E[15]=1,E}};function Gi(B,A){if(!!B!=!!A)return!1;let I=B.getChild(),C=A.getChild();return I===C||I.equals(C)}function hi(B,A){if(!!B!=!!A)return!1;let I=B.values(),C=A.values();if(I.length!==C.length)return!1;for(let g=0;g<I.length;g++){let E=I[g],Q=C[g];if(E.getChild()!==Q.getChild()&&!E.getChild().equals(Q.getChild()))return!1}return!0}function Si(B,A){if(!!B!=!!A)return!1;let I=B.keys(),C=A.keys();if(I.length!==C.length)return!1;for(let g of I){let E=B.get(g),Q=A.get(g);if(!!E!=!!Q)return!1;let o=E.getChild(),s=Q.getChild();if(o!==s&&!o.equals(s))return!1}return!0}function kE(B,A){if(B===A)return!0;if(!!B!=!!A||!B||!A||B.length!==A.length)return!1;for(let I=0;I<B.length;I++)if(B[I]!==A[I])return!1;return!0}function LE(B,A){if(B===A)return!0;if(!!B!=!!A)return!1;if(!SI(B)||!SI(A))return B===A;let I=B,C=A,g=0,E=0,Q;for(Q in I)g++;for(Q in C)E++;if(g!==E)return!1;for(Q in I){let o=I[Q],s=C[Q];if(zC(o)&&zC(s)){if(!kE(o,s))return!1}else if(SI(o)&&SI(s)){if(!LE(o,s))return!1}else if(o!==s)return!1}return!0}function zC(B){return Array.isArray(B)||ArrayBuffer.isView(B)}var hE=\\\"23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ\\\",Mi=999,Ki=6,SE=new Set,Ui=function(){let A=\\\"\\\";for(let I=0;I<Ki;I++)A+=hE.charAt(Math.floor(Math.random()*hE.length));return A},Ji=function(){for(let A=0;A<Mi;A++){let I=Ui();if(!SE.has(I))return SE.add(I),I}return\\\"\\\"},yI=B=>B,Yi=new Set,GC=class extends bC{constructor(A,I=\\\"\\\"){super(A),this[BA].name=I,this.init(),this.dispatchEvent({type:\\\"create\\\"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:\\\"\\\",extras:{}})}set(A,I){return Array.isArray(I)&&(I=I.slice()),super.set(A,I)}getName(){return this.get(\\\"name\\\")}setName(A){return this.set(\\\"name\\\",A)}getExtras(){return this.get(\\\"extras\\\")}setExtras(A){return this.set(\\\"extras\\\",A)}clone(){let A=this.constructor;return new A(this.graph).copy(this,yI)}copy(A,I=yI){for(let C in this[BA]){let g=this[BA][C];if(g instanceof OA)this[nI].has(C)||g.dispose();else if(g instanceof fA||g instanceof QA)for(let E of g.values())E.dispose();else if(g instanceof cA)for(let E of g.values())E.dispose()}for(let C in A[BA]){let g=this[BA][C],E=A[BA][C];if(E instanceof OA)this[nI].has(C)?g.getChild().copy(I(E.getChild()),I):this.setRef(C,I(E.getChild()),E.getAttributes());else if(E instanceof QA||E instanceof fA)for(let Q of E.values())this.addRef(C,I(Q.getChild()),Q.getAttributes());else if(E instanceof cA)for(let Q of E.keys()){let o=E.get(Q);this.setRefMap(C,Q,I(o.getChild()),o.getAttributes())}else SI(E)?this[BA][C]=JSON.parse(JSON.stringify(E)):Array.isArray(E)||E instanceof ArrayBuffer||ArrayBuffer.isView(E)?this[BA][C]=E.slice():this[BA][C]=E}return this}equals(A,I=Yi){if(this===A)return!0;if(this.propertyType!==A.propertyType)return!1;for(let C in this[BA]){if(I.has(C))continue;let g=this[BA][C],E=A[BA][C];if(g instanceof OA||E instanceof OA){if(!Gi(g,E))return!1}else if(g instanceof QA||E instanceof QA||g instanceof fA||E instanceof fA){if(!hi(g,E))return!1}else if(g instanceof cA||E instanceof cA){if(!Si(g,E))return!1}else if(SI(g)||SI(E)){if(!LE(g,E))return!1}else if(zC(g)||zC(E)){if(!kE(g,E))return!1}else if(g!==E)return!1}return!0}detach(){return this.graph.disconnectParents(this,A=>A.propertyType!==\\\"Root\\\"),this}listParents(){return this.graph.listParents(this)}},NA=class extends GC{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new cA})}getExtension(A){return this.getRefMap(\\\"extensions\\\",A)}setExtension(A,I){return I&&I._validateParent(this),this.setRefMap(\\\"extensions\\\",A,I)}listExtensions(){return this.listRefMapValues(\\\"extensions\\\")}},Z=class B extends NA{init(){this.propertyType=d.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:B.Type.SCALAR,componentType:B.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(A){switch(A){case B.Type.SCALAR:return 1;case B.Type.VEC2:return 2;case B.Type.VEC3:return 3;case B.Type.VEC4:return 4;case B.Type.MAT2:return 4;case B.Type.MAT3:return 9;case B.Type.MAT4:return 16;default:throw new Error(\\\"Unexpected type: \\\"+A)}}static getComponentSize(A){switch(A){case B.ComponentType.BYTE:return 1;case B.ComponentType.UNSIGNED_BYTE:return 1;case B.ComponentType.SHORT:return 2;case B.ComponentType.UNSIGNED_SHORT:return 2;case B.ComponentType.UNSIGNED_INT:return 4;case B.ComponentType.FLOAT:return 4;default:throw new Error(\\\"Unexpected component type: \\\"+A)}}getMinNormalized(A){let I=this.getNormalized(),C=this.getElementSize(),g=this.getComponentType();if(this.getMin(A),I)for(let E=0;E<C;E++)A[E]=oA.decodeNormalizedInt(A[E],g);return A}getMin(A){let I=this.getArray(),C=this.getCount(),g=this.getElementSize();for(let E=0;E<g;E++)A[E]=1/0;for(let E=0;E<C*g;E+=g)for(let Q=0;Q<g;Q++){let o=I[E+Q];Number.isFinite(o)&&(A[Q]=Math.min(A[Q],o))}return A}getMaxNormalized(A){let I=this.getNormalized(),C=this.getElementSize(),g=this.getComponentType();if(this.getMax(A),I)for(let E=0;E<C;E++)A[E]=oA.decodeNormalizedInt(A[E],g);return A}getMax(A){let I=this.get(\\\"array\\\"),C=this.getCount(),g=this.getElementSize();for(let E=0;E<g;E++)A[E]=-1/0;for(let E=0;E<C*g;E+=g)for(let Q=0;Q<g;Q++){let o=I[E+Q];Number.isFinite(o)&&(A[Q]=Math.max(A[Q],o))}return A}getCount(){let A=this.get(\\\"array\\\");return A?A.length/this.getElementSize():0}getType(){return this.get(\\\"type\\\")}setType(A){return this.set(\\\"type\\\",A)}getElementSize(){return B.getElementSize(this.get(\\\"type\\\"))}getComponentSize(){return this.get(\\\"array\\\").BYTES_PER_ELEMENT}getComponentType(){return this.get(\\\"componentType\\\")}getNormalized(){return this.get(\\\"normalized\\\")}setNormalized(A){return this.set(\\\"normalized\\\",A)}getScalar(A){let I=this.getElementSize(),C=this.getComponentType(),g=this.getArray();return this.getNormalized()?oA.decodeNormalizedInt(g[A*I],C):g[A*I]}setScalar(A,I){let C=this.getElementSize(),g=this.getComponentType(),E=this.getArray();return this.getNormalized()?E[A*C]=oA.encodeNormalizedInt(I,g):E[A*C]=I,this}getElement(A,I){let C=this.getNormalized(),g=this.getElementSize(),E=this.getComponentType(),Q=this.getArray();for(let o=0;o<g;o++)C?I[o]=oA.decodeNormalizedInt(Q[A*g+o],E):I[o]=Q[A*g+o];return I}setElement(A,I){let C=this.getNormalized(),g=this.getElementSize(),E=this.getComponentType(),Q=this.getArray();for(let o=0;o<g;o++)C?Q[A*g+o]=oA.encodeNormalizedInt(I[o],E):Q[A*g+o]=I[o];return this}getSparse(){return this.get(\\\"sparse\\\")}setSparse(A){return this.set(\\\"sparse\\\",A)}getBuffer(){return this.getRef(\\\"buffer\\\")}setBuffer(A){return this.setRef(\\\"buffer\\\",A)}getArray(){return this.get(\\\"array\\\")}setArray(A){return this.set(\\\"componentType\\\",A?ki(A):B.ComponentType.FLOAT),this.set(\\\"array\\\",A),this}getByteLength(){let A=this.get(\\\"array\\\");return A?A.byteLength:0}};Z.Type={SCALAR:\\\"SCALAR\\\",VEC2:\\\"VEC2\\\",VEC3:\\\"VEC3\\\",VEC4:\\\"VEC4\\\",MAT2:\\\"MAT2\\\",MAT3:\\\"MAT3\\\",MAT4:\\\"MAT4\\\"};Z.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function ki(B){switch(B.constructor){case Float32Array:return Z.ComponentType.FLOAT;case Uint32Array:return Z.ComponentType.UNSIGNED_INT;case Uint16Array:return Z.ComponentType.UNSIGNED_SHORT;case Uint8Array:return Z.ComponentType.UNSIGNED_BYTE;case Int16Array:return Z.ComponentType.SHORT;case Int8Array:return Z.ComponentType.BYTE;default:throw new Error(\\\"Unknown accessor componentType.\\\")}}var vC=class extends NA{init(){this.propertyType=d.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new QA,samplers:new QA})}addChannel(A){return this.addRef(\\\"channels\\\",A)}removeChannel(A){return this.removeRef(\\\"channels\\\",A)}listChannels(){return this.listRefs(\\\"channels\\\")}addSampler(A){return this.addRef(\\\"samplers\\\",A)}removeSampler(A){return this.removeRef(\\\"samplers\\\",A)}listSamplers(){return this.listRefs(\\\"samplers\\\")}},pI=class extends NA{init(){this.propertyType=d.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get(\\\"targetPath\\\")}setTargetPath(A){return this.set(\\\"targetPath\\\",A)}getTargetNode(){return this.getRef(\\\"targetNode\\\")}setTargetNode(A){return this.setRef(\\\"targetNode\\\",A)}getSampler(){return this.getRef(\\\"sampler\\\")}setSampler(A){return this.setRef(\\\"sampler\\\",A)}};pI.TargetPath={TRANSLATION:\\\"translation\\\",ROTATION:\\\"rotation\\\",SCALE:\\\"scale\\\",WEIGHTS:\\\"weights\\\"};var UI=class B extends NA{init(){this.propertyType=d.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:B.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get(\\\"interpolation\\\")}setInterpolation(A){return this.set(\\\"interpolation\\\",A)}getInput(){return this.getRef(\\\"input\\\")}setInput(A){return this.setRef(\\\"input\\\",A,{usage:kA.OTHER})}getOutput(){return this.getRef(\\\"output\\\")}setOutput(A){return this.setRef(\\\"output\\\",A,{usage:kA.OTHER})}};UI.Interpolation={LINEAR:\\\"LINEAR\\\",STEP:\\\"STEP\\\",CUBICSPLINE:\\\"CUBICSPLINE\\\"};var $C=class extends NA{init(){this.propertyType=d.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:\\\"\\\"})}getURI(){return this.get(\\\"uri\\\")}setURI(A){return this.set(\\\"uri\\\",A)}},JI=class B extends NA{init(){this.propertyType=d.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:B.Type.PERSPECTIVE,znear:.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get(\\\"type\\\")}setType(A){return this.set(\\\"type\\\",A)}getZNear(){return this.get(\\\"znear\\\")}setZNear(A){return this.set(\\\"znear\\\",A)}getZFar(){return this.get(\\\"zfar\\\")}setZFar(A){return this.set(\\\"zfar\\\",A)}getAspectRatio(){return this.get(\\\"aspectRatio\\\")}setAspectRatio(A){return this.set(\\\"aspectRatio\\\",A)}getYFov(){return this.get(\\\"yfov\\\")}setYFov(A){return this.set(\\\"yfov\\\",A)}getXMag(){return this.get(\\\"xmag\\\")}setXMag(A){return this.set(\\\"xmag\\\",A)}getYMag(){return this.get(\\\"ymag\\\")}setYMag(A){return this.set(\\\"ymag\\\",A)}};JI.Type={PERSPECTIVE:\\\"perspective\\\",ORTHOGRAPHIC:\\\"orthographic\\\"};var tA=class extends GC{_validateParent(A){if(!this.parentTypes.includes(A.propertyType))throw new Error(`Parent \\\"${A.propertyType}\\\" invalid for child \\\"${this.propertyType}\\\".`)}};tA.EXTENSION_NAME=void 0;var iA=class B extends NA{init(){this.propertyType=d.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:B.WrapMode.REPEAT,wrapT:B.WrapMode.REPEAT})}getTexCoord(){return this.get(\\\"texCoord\\\")}setTexCoord(A){return this.set(\\\"texCoord\\\",A)}getMagFilter(){return this.get(\\\"magFilter\\\")}setMagFilter(A){return this.set(\\\"magFilter\\\",A)}getMinFilter(){return this.get(\\\"minFilter\\\")}setMinFilter(A){return this.set(\\\"minFilter\\\",A)}getWrapS(){return this.get(\\\"wrapS\\\")}setWrapS(A){return this.set(\\\"wrapS\\\",A)}getWrapT(){return this.get(\\\"wrapT\\\")}setWrapT(A){return this.set(\\\"wrapT\\\",A)}};iA.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};iA.MagFilter={NEAREST:9728,LINEAR:9729};iA.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:VC,G:WC,B:OC,A:Li}=LA,YI=class B extends NA{init(){this.propertyType=d.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:B.AlphaMode.OPAQUE,alphaCutoff:.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new iA(this.graph,\\\"baseColorTextureInfo\\\"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new iA(this.graph,\\\"emissiveTextureInfo\\\"),normalScale:1,normalTexture:null,normalTextureInfo:new iA(this.graph,\\\"normalTextureInfo\\\"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new iA(this.graph,\\\"occlusionTextureInfo\\\"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new iA(this.graph,\\\"metallicRoughnessTextureInfo\\\")})}getDoubleSided(){return this.get(\\\"doubleSided\\\")}setDoubleSided(A){return this.set(\\\"doubleSided\\\",A)}getAlpha(){return this.get(\\\"baseColorFactor\\\")[3]}setAlpha(A){let I=this.get(\\\"baseColorFactor\\\").slice();return I[3]=A,this.set(\\\"baseColorFactor\\\",I)}getAlphaMode(){return this.get(\\\"alphaMode\\\")}setAlphaMode(A){return this.set(\\\"alphaMode\\\",A)}getAlphaCutoff(){return this.get(\\\"alphaCutoff\\\")}setAlphaCutoff(A){return this.set(\\\"alphaCutoff\\\",A)}getBaseColorFactor(){return this.get(\\\"baseColorFactor\\\")}setBaseColorFactor(A){return this.set(\\\"baseColorFactor\\\",A)}getBaseColorTexture(){return this.getRef(\\\"baseColorTexture\\\")}getBaseColorTextureInfo(){return this.getRef(\\\"baseColorTexture\\\")?this.getRef(\\\"baseColorTextureInfo\\\"):null}setBaseColorTexture(A){return this.setRef(\\\"baseColorTexture\\\",A,{channels:VC|WC|OC|Li,isColor:!0})}getEmissiveFactor(){return this.get(\\\"emissiveFactor\\\")}setEmissiveFactor(A){return this.set(\\\"emissiveFactor\\\",A)}getEmissiveTexture(){return this.getRef(\\\"emissiveTexture\\\")}getEmissiveTextureInfo(){return this.getRef(\\\"emissiveTexture\\\")?this.getRef(\\\"emissiveTextureInfo\\\"):null}setEmissiveTexture(A){return this.setRef(\\\"emissiveTexture\\\",A,{channels:VC|WC|OC,isColor:!0})}getNormalScale(){return this.get(\\\"normalScale\\\")}setNormalScale(A){return this.set(\\\"normalScale\\\",A)}getNormalTexture(){return this.getRef(\\\"normalTexture\\\")}getNormalTextureInfo(){return this.getRef(\\\"normalTexture\\\")?this.getRef(\\\"normalTextureInfo\\\"):null}setNormalTexture(A){return this.setRef(\\\"normalTexture\\\",A,{channels:VC|WC|OC})}getOcclusionStrength(){return this.get(\\\"occlusionStrength\\\")}setOcclusionStrength(A){return this.set(\\\"occlusionStrength\\\",A)}getOcclusionTexture(){return this.getRef(\\\"occlusionTexture\\\")}getOcclusionTextureInfo(){return this.getRef(\\\"occlusionTexture\\\")?this.getRef(\\\"occlusionTextureInfo\\\"):null}setOcclusionTexture(A){return this.setRef(\\\"occlusionTexture\\\",A,{channels:VC})}getRoughnessFactor(){return this.get(\\\"roughnessFactor\\\")}setRoughnessFactor(A){return this.set(\\\"roughnessFactor\\\",A)}getMetallicFactor(){return this.get(\\\"metallicFactor\\\")}setMetallicFactor(A){return this.set(\\\"metallicFactor\\\",A)}getMetallicRoughnessTexture(){return this.getRef(\\\"metallicRoughnessTexture\\\")}getMetallicRoughnessTextureInfo(){return this.getRef(\\\"metallicRoughnessTexture\\\")?this.getRef(\\\"metallicRoughnessTextureInfo\\\"):null}setMetallicRoughnessTexture(A){return this.setRef(\\\"metallicRoughnessTexture\\\",A,{channels:WC|OC})}};YI.AlphaMode={OPAQUE:\\\"OPAQUE\\\",MASK:\\\"MASK\\\",BLEND:\\\"BLEND\\\"};var AB=class extends NA{init(){this.propertyType=d.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new QA})}addPrimitive(A){return this.addRef(\\\"primitives\\\",A)}removePrimitive(A){return this.removeRef(\\\"primitives\\\",A)}listPrimitives(){return this.listRefs(\\\"primitives\\\")}getWeights(){return this.get(\\\"weights\\\")}setWeights(A){return this.set(\\\"weights\\\",A)}},IB=class extends NA{init(){this.propertyType=d.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new QA})}copy(A,I=yI){if(I===yI)throw new Error(\\\"Node cannot be copied.\\\");return super.copy(A,I)}getTranslation(){return this.get(\\\"translation\\\")}getRotation(){return this.get(\\\"rotation\\\")}getScale(){return this.get(\\\"scale\\\")}setTranslation(A){return this.set(\\\"translation\\\",A)}setRotation(A){return this.set(\\\"rotation\\\",A)}setScale(A){return this.set(\\\"scale\\\",A)}getMatrix(){return oA.compose(this.get(\\\"translation\\\"),this.get(\\\"rotation\\\"),this.get(\\\"scale\\\"),[])}setMatrix(A){let I=this.get(\\\"translation\\\").slice(),C=this.get(\\\"rotation\\\").slice(),g=this.get(\\\"scale\\\").slice();return oA.decompose(A,I,C,g),this.set(\\\"translation\\\",I).set(\\\"rotation\\\",C).set(\\\"scale\\\",g)}getWorldTranslation(){let A=[0,0,0];return oA.decompose(this.getWorldMatrix(),A,[0,0,0,1],[1,1,1]),A}getWorldRotation(){let A=[0,0,0,1];return oA.decompose(this.getWorldMatrix(),[0,0,0],A,[1,1,1]),A}getWorldScale(){let A=[1,1,1];return oA.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],A),A}getWorldMatrix(){let A=[];for(let g=this;g!=null;g=g.getParentNode())A.push(g);let I,C=A.pop().getMatrix();for(;I=A.pop();)Fi(C,C,I.getMatrix());return C}addChild(A){let I=A.getParentNode();I&&I.removeChild(A);for(let C of A.listParents())C.propertyType===d.SCENE&&C.removeChild(A);return this.addRef(\\\"children\\\",A)}removeChild(A){return this.removeRef(\\\"children\\\",A)}listChildren(){return this.listRefs(\\\"children\\\")}getParentNode(){for(let A of this.listParents())if(A.propertyType===d.NODE)return A;return null}getMesh(){return this.getRef(\\\"mesh\\\")}setMesh(A){return this.setRef(\\\"mesh\\\",A)}getCamera(){return this.getRef(\\\"camera\\\")}setCamera(A){return this.setRef(\\\"camera\\\",A)}getSkin(){return this.getRef(\\\"skin\\\")}setSkin(A){return this.setRef(\\\"skin\\\",A)}getWeights(){return this.get(\\\"weights\\\")}setWeights(A){return this.set(\\\"weights\\\",A)}traverse(A){A(this);for(let I of this.listChildren())I.traverse(A);return this}},RI=class B extends NA{init(){this.propertyType=d.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:B.Mode.TRIANGLES,material:null,indices:null,attributes:new cA,targets:new QA})}getIndices(){return this.getRef(\\\"indices\\\")}setIndices(A){return this.setRef(\\\"indices\\\",A,{usage:kA.ELEMENT_ARRAY_BUFFER})}getAttribute(A){return this.getRefMap(\\\"attributes\\\",A)}setAttribute(A,I){return this.setRefMap(\\\"attributes\\\",A,I,{usage:kA.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\\\"attributes\\\")}listSemantics(){return this.listRefMapKeys(\\\"attributes\\\")}getMaterial(){return this.getRef(\\\"material\\\")}setMaterial(A){return this.setRef(\\\"material\\\",A)}getMode(){return this.get(\\\"mode\\\")}setMode(A){return this.set(\\\"mode\\\",A)}listTargets(){return this.listRefs(\\\"targets\\\")}addTarget(A){return this.addRef(\\\"targets\\\",A)}removeTarget(A){return this.removeRef(\\\"targets\\\",A)}};RI.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};var oQ=class extends GC{init(){this.propertyType=d.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new cA})}getAttribute(A){return this.getRefMap(\\\"attributes\\\",A)}setAttribute(A,I){return this.setRefMap(\\\"attributes\\\",A,I,{usage:kA.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues(\\\"attributes\\\")}listSemantics(){return this.listRefMapKeys(\\\"attributes\\\")}};function hA(){return hA=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var I=arguments[A];for(var C in I)({}).hasOwnProperty.call(I,C)&&(B[C]=I[C])}return B},hA.apply(null,arguments)}var gB=class extends NA{init(){this.propertyType=d.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new QA})}copy(A,I=yI){if(I===yI)throw new Error(\\\"Scene cannot be copied.\\\");return super.copy(A,I)}addChild(A){let I=A.getParentNode();return I&&I.removeChild(A),this.addRef(\\\"children\\\",A)}removeChild(A){return this.removeRef(\\\"children\\\",A)}listChildren(){return this.listRefs(\\\"children\\\")}traverse(A){for(let I of this.listChildren())I.traverse(A);return this}},CB=class extends NA{init(){this.propertyType=d.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new QA})}getSkeleton(){return this.getRef(\\\"skeleton\\\")}setSkeleton(A){return this.setRef(\\\"skeleton\\\",A)}getInverseBindMatrices(){return this.getRef(\\\"inverseBindMatrices\\\")}setInverseBindMatrices(A){return this.setRef(\\\"inverseBindMatrices\\\",A,{usage:kA.INVERSE_BIND_MATRICES})}addJoint(A){return this.addRef(\\\"joints\\\",A)}removeJoint(A){return this.removeRef(\\\"joints\\\",A)}listJoints(){return this.listRefs(\\\"joints\\\")}},BB=class extends NA{init(){this.propertyType=d.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:\\\"\\\",uri:\\\"\\\"})}getMimeType(){return this.get(\\\"mimeType\\\")||JA.extensionToMimeType(NI.extension(this.get(\\\"uri\\\")))}setMimeType(A){return this.set(\\\"mimeType\\\",A)}getURI(){return this.get(\\\"uri\\\")}setURI(A){this.set(\\\"uri\\\",A);let I=JA.extensionToMimeType(NI.extension(A));return I&&this.set(\\\"mimeType\\\",I),this}getImage(){return this.get(\\\"image\\\")}setImage(A){return this.set(\\\"image\\\",z.assertView(A))}getSize(){let A=this.get(\\\"image\\\");return A?JA.getSize(A,this.getMimeType()):null}},hC=class extends NA{init(){this.propertyType=d.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${UE}`,version:\\\"2.0\\\"},defaultScene:null,accessors:new QA,animations:new QA,buffers:new QA,cameras:new QA,materials:new QA,meshes:new QA,nodes:new QA,scenes:new QA,skins:new QA,textures:new QA})}constructor(A){super(A),this._extensions=new Set,A.addEventListener(\\\"node:create\\\",I=>{this._addChildOfRoot(I.target)})}clone(){throw new Error(\\\"Root cannot be cloned.\\\")}copy(A,I=yI){if(I===yI)throw new Error(\\\"Root cannot be copied.\\\");this.set(\\\"asset\\\",hA({},A.get(\\\"asset\\\"))),this.setName(A.getName()),this.setExtras(hA({},A.getExtras())),this.setDefaultScene(A.getDefaultScene()?I(A.getDefaultScene()):null);for(let C of A.listRefMapKeys(\\\"extensions\\\")){let g=A.getExtension(C);this.setExtension(C,I(g))}return this}_addChildOfRoot(A){return A instanceof gB?this.addRef(\\\"scenes\\\",A):A instanceof IB?this.addRef(\\\"nodes\\\",A):A instanceof JI?this.addRef(\\\"cameras\\\",A):A instanceof CB?this.addRef(\\\"skins\\\",A):A instanceof AB?this.addRef(\\\"meshes\\\",A):A instanceof YI?this.addRef(\\\"materials\\\",A):A instanceof BB?this.addRef(\\\"textures\\\",A):A instanceof vC?this.addRef(\\\"animations\\\",A):A instanceof Z?this.addRef(\\\"accessors\\\",A):A instanceof $C&&this.addRef(\\\"buffers\\\",A),this}getAsset(){return this.get(\\\"asset\\\")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter(A=>A.isRequired())}_enableExtension(A){return this._extensions.add(A),this}_disableExtension(A){return this._extensions.delete(A),this}listScenes(){return this.listRefs(\\\"scenes\\\")}setDefaultScene(A){return this.setRef(\\\"defaultScene\\\",A)}getDefaultScene(){return this.getRef(\\\"defaultScene\\\")}listNodes(){return this.listRefs(\\\"nodes\\\")}listCameras(){return this.listRefs(\\\"cameras\\\")}listSkins(){return this.listRefs(\\\"skins\\\")}listMeshes(){return this.listRefs(\\\"meshes\\\")}listMaterials(){return this.listRefs(\\\"materials\\\")}listTextures(){return this.listRefs(\\\"textures\\\")}listAnimations(){return this.listRefs(\\\"animations\\\")}listAccessors(){return this.listRefs(\\\"accessors\\\")}listBuffers(){return this.listRefs(\\\"buffers\\\")}},QB=class B{static fromGraph(A){return B._GRAPH_DOCUMENTS.get(A)||null}constructor(){this._graph=new wC,this._root=new hC(this._graph),this._logger=jA.DEFAULT_INSTANCE,B._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(A){return this._logger=A,this}clone(){throw new Error(\\\"Use 'cloneDocument(source)' from '@gltf-transform/functions'.\\\")}merge(A){throw new Error(\\\"Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.\\\")}async transform(...A){let I=A.map(C=>C.name);for(let C of A)await C(this,{stack:I});return this}createExtension(A){let I=A.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find(g=>g.extensionName===I)||new A(this)}createScene(A=\\\"\\\"){return new gB(this._graph,A)}createNode(A=\\\"\\\"){return new IB(this._graph,A)}createCamera(A=\\\"\\\"){return new JI(this._graph,A)}createSkin(A=\\\"\\\"){return new CB(this._graph,A)}createMesh(A=\\\"\\\"){return new AB(this._graph,A)}createPrimitive(){return new RI(this._graph)}createPrimitiveTarget(A=\\\"\\\"){return new oQ(this._graph,A)}createMaterial(A=\\\"\\\"){return new YI(this._graph,A)}createTexture(A=\\\"\\\"){return new BB(this._graph,A)}createAnimation(A=\\\"\\\"){return new vC(this._graph,A)}createAnimationChannel(A=\\\"\\\"){return new pI(this._graph,A)}createAnimationSampler(A=\\\"\\\"){return new UI(this._graph,A)}createAccessor(A=\\\"\\\",I=null){return I||(I=this.getRoot().listBuffers()[0]),new Z(this._graph,A).setBuffer(I)}createBuffer(A=\\\"\\\"){return new $C(this._graph,A)}};QB._GRAPH_DOCUMENTS=new WeakMap;var EA=class{constructor(A){this.extensionName=\\\"\\\",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=A,A.getRoot()._enableExtension(this),this._listener=C=>{let g=C,E=g.target;E instanceof tA&&E.extensionName===this.extensionName&&(g.type===\\\"node:create\\\"&&this._addExtensionProperty(E),g.type===\\\"node:dispose\\\"&&this._removeExtensionProperty(E))};let I=A.getGraph();I.addEventListener(\\\"node:create\\\",this._listener),I.addEventListener(\\\"node:dispose\\\",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let A=this.document.getGraph();A.removeEventListener(\\\"node:create\\\",this._listener),A.removeEventListener(\\\"node:dispose\\\",this._listener);for(let I of this.properties)I.dispose()}static register(){}isRequired(){return this.required}setRequired(A){return this.required=A,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(A){return this.properties.add(A),this}_removeExtensionProperty(A){return this.properties.delete(A),this}install(A,I){return this}preread(A,I){return this}prewrite(A,I){return this}};EA.EXTENSION_NAME=void 0;var tQ=class{constructor(A){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=A}setTextureInfo(A,I){this.textureInfos.set(A,I),I.texCoord!==void 0&&A.setTexCoord(I.texCoord),I.extras!==void 0&&A.setExtras(I.extras);let C=this.jsonDoc.json.textures[I.index];if(C.sampler===void 0)return;let g=this.jsonDoc.json.samplers[C.sampler];g.magFilter!==void 0&&A.setMagFilter(g.magFilter),g.minFilter!==void 0&&A.setMinFilter(g.minFilter),g.wrapS!==void 0&&A.setWrapS(g.wrapS),g.wrapT!==void 0&&A.setWrapT(g.wrapT)}},ME={logger:jA.DEFAULT_INSTANCE,extensions:[],dependencies:{}},di=new Set([d.BUFFER,d.TEXTURE,d.MATERIAL,d.MESH,d.PRIMITIVE,d.NODE,d.SCENE]),DQ=class{static read(A,I=ME){let C=hA({},ME,I),{json:g}=A,E=new QB().setLogger(C.logger);this.validate(A,C);let Q=new tQ(A),o=g.asset,s=E.getRoot().getAsset();o.copyright&&(s.copyright=o.copyright),o.extras&&(s.extras=o.extras),g.extras!==void 0&&E.getRoot().setExtras(hA({},g.extras));let y=g.extensionsUsed||[],G=g.extensionsRequired||[];C.extensions.sort((c,Y)=>c.EXTENSION_NAME>Y.EXTENSION_NAME?1:-1);for(let c of C.extensions)if(y.includes(c.EXTENSION_NAME)){let Y=E.createExtension(c).setRequired(G.includes(c.EXTENSION_NAME)),p=Y.prereadTypes.filter(f=>!di.has(f));p.length&&C.logger.warn(`Preread hooks for some types (${p.join()}), requested by extension ${Y.extensionName}, are unsupported. Please file an issue or a PR.`);for(let f of Y.readDependencies)Y.install(f,C.dependencies[f])}let M=g.buffers||[];E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.BUFFER)).forEach(c=>c.preread(Q,d.BUFFER)),Q.buffers=M.map(c=>{let Y=E.createBuffer(c.name);return c.extras&&Y.setExtras(c.extras),c.uri&&c.uri.indexOf(\\\"__\\\")!==0&&Y.setURI(c.uri),Y});let r=g.bufferViews||[];Q.bufferViewBuffers=r.map((c,Y)=>{if(!Q.bufferViews[Y]){let p=A.json.buffers[c.buffer],f=p.uri?A.resources[p.uri]:A.resources[KI],l=c.byteOffset||0;Q.bufferViews[Y]=z.toView(f,l,c.byteLength)}return Q.buffers[c.buffer]});let N=g.accessors||[];Q.accessors=N.map(c=>{let Y=Q.bufferViewBuffers[c.bufferView],p=E.createAccessor(c.name,Y).setType(c.type);return c.extras&&p.setExtras(c.extras),c.normalized!==void 0&&p.setNormalized(c.normalized),c.bufferView===void 0||p.setArray(XC(c,Q)),p});let w=g.images||[],U=g.textures||[];E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.TEXTURE)).forEach(c=>c.preread(Q,d.TEXTURE)),Q.textures=w.map(c=>{let Y=E.createTexture(c.name);if(c.extras&&Y.setExtras(c.extras),c.bufferView!==void 0){let p=g.bufferViews[c.bufferView],f=A.json.buffers[p.buffer],l=f.uri?A.resources[f.uri]:A.resources[KI],_=p.byteOffset||0,T=p.byteLength,t=l.slice(_,_+T);Y.setImage(t)}else c.uri!==void 0&&(Y.setImage(A.resources[c.uri]),c.uri.indexOf(\\\"__\\\")!==0&&Y.setURI(c.uri));if(c.mimeType!==void 0)Y.setMimeType(c.mimeType);else if(c.uri){let p=NI.extension(c.uri);Y.setMimeType(JA.extensionToMimeType(p))}return Y}),E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.MATERIAL)).forEach(c=>c.preread(Q,d.MATERIAL));let H=g.materials||[];Q.materials=H.map(c=>{let Y=E.createMaterial(c.name);c.extras&&Y.setExtras(c.extras),c.alphaMode!==void 0&&Y.setAlphaMode(c.alphaMode),c.alphaCutoff!==void 0&&Y.setAlphaCutoff(c.alphaCutoff),c.doubleSided!==void 0&&Y.setDoubleSided(c.doubleSided);let p=c.pbrMetallicRoughness||{};if(p.baseColorFactor!==void 0&&Y.setBaseColorFactor(p.baseColorFactor),c.emissiveFactor!==void 0&&Y.setEmissiveFactor(c.emissiveFactor),p.metallicFactor!==void 0&&Y.setMetallicFactor(p.metallicFactor),p.roughnessFactor!==void 0&&Y.setRoughnessFactor(p.roughnessFactor),p.baseColorTexture!==void 0){let f=p.baseColorTexture,l=Q.textures[U[f.index].source];Y.setBaseColorTexture(l),Q.setTextureInfo(Y.getBaseColorTextureInfo(),f)}if(c.emissiveTexture!==void 0){let f=c.emissiveTexture,l=Q.textures[U[f.index].source];Y.setEmissiveTexture(l),Q.setTextureInfo(Y.getEmissiveTextureInfo(),f)}if(c.normalTexture!==void 0){let f=c.normalTexture,l=Q.textures[U[f.index].source];Y.setNormalTexture(l),Q.setTextureInfo(Y.getNormalTextureInfo(),f),c.normalTexture.scale!==void 0&&Y.setNormalScale(c.normalTexture.scale)}if(c.occlusionTexture!==void 0){let f=c.occlusionTexture,l=Q.textures[U[f.index].source];Y.setOcclusionTexture(l),Q.setTextureInfo(Y.getOcclusionTextureInfo(),f),c.occlusionTexture.strength!==void 0&&Y.setOcclusionStrength(c.occlusionTexture.strength)}if(p.metallicRoughnessTexture!==void 0){let f=p.metallicRoughnessTexture,l=Q.textures[U[f.index].source];Y.setMetallicRoughnessTexture(l),Q.setTextureInfo(Y.getMetallicRoughnessTextureInfo(),f)}return Y}),E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.MESH)).forEach(c=>c.preread(Q,d.MESH));let R=g.meshes||[];E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.PRIMITIVE)).forEach(c=>c.preread(Q,d.PRIMITIVE)),Q.meshes=R.map(c=>{let Y=E.createMesh(c.name);return c.extras&&Y.setExtras(c.extras),c.weights!==void 0&&Y.setWeights(c.weights),(c.primitives||[]).forEach(f=>{let l=E.createPrimitive();f.extras&&l.setExtras(f.extras),f.material!==void 0&&l.setMaterial(Q.materials[f.material]),f.mode!==void 0&&l.setMode(f.mode);for(let[t,O]of Object.entries(f.attributes||{}))l.setAttribute(t,Q.accessors[O]);f.indices!==void 0&&l.setIndices(Q.accessors[f.indices]);let _=c.extras&&c.extras.targetNames||[];(f.targets||[]).forEach((t,O)=>{let X=_[O]||O.toString(),v=E.createPrimitiveTarget(X);for(let[gA,$]of Object.entries(t))v.setAttribute(gA,Q.accessors[$]);l.addTarget(v)}),Y.addPrimitive(l)}),Y});let q=g.cameras||[];Q.cameras=q.map(c=>{let Y=E.createCamera(c.name).setType(c.type);if(c.extras&&Y.setExtras(c.extras),c.type===JI.Type.PERSPECTIVE){let p=c.perspective;Y.setYFov(p.yfov),Y.setZNear(p.znear),p.zfar!==void 0&&Y.setZFar(p.zfar),p.aspectRatio!==void 0&&Y.setAspectRatio(p.aspectRatio)}else{let p=c.orthographic;Y.setZNear(p.znear).setZFar(p.zfar).setXMag(p.xmag).setYMag(p.ymag)}return Y});let J=g.nodes||[];E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.NODE)).forEach(c=>c.preread(Q,d.NODE)),Q.nodes=J.map(c=>{let Y=E.createNode(c.name);if(c.extras&&Y.setExtras(c.extras),c.translation!==void 0&&Y.setTranslation(c.translation),c.rotation!==void 0&&Y.setRotation(c.rotation),c.scale!==void 0&&Y.setScale(c.scale),c.matrix!==void 0){let p=[0,0,0],f=[0,0,0,1],l=[1,1,1];oA.decompose(c.matrix,p,f,l),Y.setTranslation(p),Y.setRotation(f),Y.setScale(l)}return c.weights!==void 0&&Y.setWeights(c.weights),Y});let k=g.skins||[];Q.skins=k.map(c=>{let Y=E.createSkin(c.name);c.extras&&Y.setExtras(c.extras),c.inverseBindMatrices!==void 0&&Y.setInverseBindMatrices(Q.accessors[c.inverseBindMatrices]),c.skeleton!==void 0&&Y.setSkeleton(Q.nodes[c.skeleton]);for(let p of c.joints)Y.addJoint(Q.nodes[p]);return Y}),J.map((c,Y)=>{let p=Q.nodes[Y];(c.children||[]).forEach(l=>p.addChild(Q.nodes[l])),c.mesh!==void 0&&p.setMesh(Q.meshes[c.mesh]),c.camera!==void 0&&p.setCamera(Q.cameras[c.camera]),c.skin!==void 0&&p.setSkin(Q.skins[c.skin])});let K=g.animations||[];Q.animations=K.map(c=>{let Y=E.createAnimation(c.name);c.extras&&Y.setExtras(c.extras);let f=(c.samplers||[]).map(_=>{let T=E.createAnimationSampler().setInput(Q.accessors[_.input]).setOutput(Q.accessors[_.output]).setInterpolation(_.interpolation||UI.Interpolation.LINEAR);return _.extras&&T.setExtras(_.extras),Y.addSampler(T),T});return(c.channels||[]).forEach(_=>{let T=E.createAnimationChannel().setSampler(f[_.sampler]).setTargetPath(_.target.path);_.target.node!==void 0&&T.setTargetNode(Q.nodes[_.target.node]),_.extras&&T.setExtras(_.extras),Y.addChannel(T)}),Y});let L=g.scenes||[];return E.getRoot().listExtensionsUsed().filter(c=>c.prereadTypes.includes(d.SCENE)).forEach(c=>c.preread(Q,d.SCENE)),Q.scenes=L.map(c=>{let Y=E.createScene(c.name);return c.extras&&Y.setExtras(c.extras),(c.nodes||[]).map(f=>Q.nodes[f]).forEach(f=>Y.addChild(f)),Y}),g.scene!==void 0&&E.getRoot().setDefaultScene(Q.scenes[g.scene]),E.getRoot().listExtensionsUsed().forEach(c=>c.read(Q)),N.forEach((c,Y)=>{let p=Q.accessors[Y],f=!!c.sparse,l=!c.bufferView&&!p.getArray();(f||l)&&p.setSparse(!0).setArray(fi(c,Q))}),E}static validate(A,I){let C=A.json;if(C.asset.version!==\\\"2.0\\\")throw new Error(`Unsupported glTF version, \\\"${C.asset.version}\\\".`);if(C.extensionsRequired){for(let g of C.extensionsRequired)if(!I.extensions.find(E=>E.EXTENSION_NAME===g))throw new Error(`Missing required extension, \\\"${g}\\\".`)}if(C.extensionsUsed)for(let g of C.extensionsUsed)I.extensions.find(E=>E.EXTENSION_NAME===g)||I.logger.warn(`Missing optional extension, \\\"${g}\\\".`)}};function pi(B,A){let I=A.jsonDoc,C=A.bufferViews[B.bufferView],g=I.json.bufferViews[B.bufferView],E=tB[B.componentType],Q=Z.getElementSize(B.type),o=E.BYTES_PER_ELEMENT,s=B.byteOffset||0,y=new E(B.count*Q),G=new DataView(C.buffer,C.byteOffset,C.byteLength),M=g.byteStride;for(let r=0;r<B.count;r++)for(let N=0;N<Q;N++){let w=s+r*M+N*o,U;switch(B.componentType){case Z.ComponentType.FLOAT:U=G.getFloat32(w,!0);break;case Z.ComponentType.UNSIGNED_INT:U=G.getUint32(w,!0);break;case Z.ComponentType.UNSIGNED_SHORT:U=G.getUint16(w,!0);break;case Z.ComponentType.UNSIGNED_BYTE:U=G.getUint8(w);break;case Z.ComponentType.SHORT:U=G.getInt16(w,!0);break;case Z.ComponentType.BYTE:U=G.getInt8(w);break;default:throw new Error(`Unexpected componentType \\\"${B.componentType}\\\".`)}y[r*Q+N]=U}return y}function XC(B,A){let I=A.jsonDoc,C=A.bufferViews[B.bufferView],g=I.json.bufferViews[B.bufferView],E=tB[B.componentType],Q=Z.getElementSize(B.type),o=E.BYTES_PER_ELEMENT,s=Q*o;if(g.byteStride!==void 0&&g.byteStride!==s)return pi(B,A);let y=C.byteOffset+(B.byteOffset||0),G=B.count*Q*o;return new E(C.buffer.slice(y,y+G))}function fi(B,A){let I=tB[B.componentType],C=Z.getElementSize(B.type),g;B.bufferView!==void 0?g=XC(B,A):g=new I(B.count*C);let E=B.sparse;if(!E)return g;let Q=E.count,o=hA({},B,E.indices,{count:Q,type:\\\"SCALAR\\\"}),s=hA({},B,E.values,{count:Q}),y=XC(o,A),G=XC(s,A);for(let M=0;M<o.count;M++)for(let r=0;r<C;r++)g[y[M]*C+r]=G[M*C+r];return g}var SC;(function(B){B[B.ARRAY_BUFFER=34962]=\\\"ARRAY_BUFFER\\\",B[B.ELEMENT_ARRAY_BUFFER=34963]=\\\"ELEMENT_ARRAY_BUFFER\\\"})(SC||(SC={}));var YA=class{constructor(A,I,C){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set([\\\"ARRAY_BUFFER\\\"]),this.accessorParents=new Map,this._doc=A,this.jsonDoc=I,this.options=C;let g=A.getRoot(),E=g.listBuffers().length,Q=g.listTextures().length;this.bufferURIGenerator=new EB(E>1,()=>C.basename||\\\"buffer\\\"),this.imageURIGenerator=new EB(Q>1,o=>Hi(A,o)||C.basename||\\\"texture\\\"),this.logger=A.getLogger()}createTextureInfoDef(A,I){let C={magFilter:I.getMagFilter()||void 0,minFilter:I.getMinFilter()||void 0,wrapS:I.getWrapS(),wrapT:I.getWrapT()},g=JSON.stringify(C);this.samplerDefIndexMap.has(g)||(this.samplerDefIndexMap.set(g,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(C));let E={source:this.imageIndexMap.get(A),sampler:this.samplerDefIndexMap.get(g)},Q=JSON.stringify(E);this.textureDefIndexMap.has(Q)||(this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push(E));let o={index:this.textureDefIndexMap.get(Q)};return I.getTexCoord()!==0&&(o.texCoord=I.getTexCoord()),Object.keys(I.getExtras()).length>0&&(o.extras=I.getExtras()),this.textureInfoDefMap.set(I,o),o}createPropertyDef(A){let I={};return A.getName()&&(I.name=A.getName()),Object.keys(A.getExtras()).length>0&&(I.extras=A.getExtras()),I}createAccessorDef(A){let I=this.createPropertyDef(A);return I.type=A.getType(),I.componentType=A.getComponentType(),I.count=A.getCount(),this._doc.getGraph().listParentEdges(A).some(g=>g.getName()===\\\"attributes\\\"&&g.getAttributes().key===\\\"POSITION\\\"||g.getName()===\\\"input\\\")&&(I.max=A.getMax([]).map(Math.fround),I.min=A.getMin([]).map(Math.fround)),A.getNormalized()&&(I.normalized=A.getNormalized()),I}createImageData(A,I,C){if(this.options.format===rI.GLB)this.imageBufferViews.push(I),A.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:I.byteLength});else{let g=JA.mimeTypeToExtension(C.getMimeType());A.uri=this.imageURIGenerator.createURI(C,g),this.assignResourceURI(A.uri,I,!1)}}assignResourceURI(A,I,C){let g=this.jsonDoc.resources;if(!(A in g)){g[A]=I;return}if(I===g[A]){this.logger.warn(`Duplicate resource URI, \\\"${A}\\\".`);return}let E=`Resource URI \\\"${A}\\\" already assigned to different data.`;if(!C){this.logger.warn(E);return}throw new Error(E)}getAccessorUsage(A){let I=this._accessorUsageMap.get(A);if(I)return I;if(A.getSparse())return kA.SPARSE;for(let C of this._doc.getGraph().listParentEdges(A)){let{usage:g}=C.getAttributes();if(g)return g;C.getParent().propertyType!==d.ROOT&&this.logger.warn(`Missing attribute \\\".usage\\\" on edge, \\\"${C.getName()}\\\".`)}return kA.OTHER}addAccessorToUsageGroup(A,I){let C=this._accessorUsageMap.get(A);if(C&&C!==I)throw new Error(`Accessor with usage \\\"${C}\\\" cannot be reused as \\\"${I}\\\".`);return this._accessorUsageMap.set(A,I),this}};YA.BufferViewTarget=SC;YA.BufferViewUsage=kA;YA.USAGE_TO_TARGET={[kA.ARRAY_BUFFER]:SC.ARRAY_BUFFER,[kA.ELEMENT_ARRAY_BUFFER]:SC.ELEMENT_ARRAY_BUFFER};var EB=class{constructor(A,I){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=A,this.basename=I}createURI(A,I){if(A.getURI())return A.getURI();if(this.multiple){let C=this.basename(A);return this.counter[C]=this.counter[C]||1,`${C}_${this.counter[C]++}.${I}`}else return`${this.basename(A)}.${I}`}};function Hi(B,A){let I=B.getGraph().listParentEdges(A).find(C=>C.getParent()!==B.getRoot());return I?I.getName().replace(/texture$/i,\\\"\\\"):\\\"\\\"}var{BufferViewUsage:PC}=YA,{UNSIGNED_INT:ui,UNSIGNED_SHORT:li,UNSIGNED_BYTE:qi}=Z.ComponentType,Ti=new Set([d.ACCESSOR,d.BUFFER,d.MATERIAL,d.MESH]),eQ=class{static write(A,I){let C=A.getGraph(),g=A.getRoot(),E={asset:hA({generator:`glTF-Transform ${UE}`},g.getAsset()),extras:hA({},g.getExtras())},Q={json:E,resources:{}},o=new YA(A,Q,I),s=I.logger||jA.DEFAULT_INSTANCE,y=new Set(I.extensions.map(R=>R.EXTENSION_NAME)),G=A.getRoot().listExtensionsUsed().filter(R=>y.has(R.extensionName)).sort((R,q)=>R.extensionName>q.extensionName?1:-1),M=A.getRoot().listExtensionsRequired().filter(R=>y.has(R.extensionName)).sort((R,q)=>R.extensionName>q.extensionName?1:-1);G.length<A.getRoot().listExtensionsUsed().length&&s.warn(\\\"Some extensions were not registered for I/O, and will not be written.\\\");for(let R of G){let q=R.prewriteTypes.filter(J=>!Ti.has(J));q.length&&s.warn(`Prewrite hooks for some types (${q.join()}), requested by extension ${R.extensionName}, are unsupported. Please file an issue or a PR.`);for(let J of R.writeDependencies)R.install(J,I.dependencies[J])}function r(R,q,J,k){let K=[],L=0;for(let p of R){let f=o.createAccessorDef(p);f.bufferView=E.bufferViews.length;let l=p.getArray(),_=z.pad(z.toView(l));f.byteOffset=L,L+=_.byteLength,K.push(_),o.accessorIndexMap.set(p,E.accessors.length),E.accessors.push(f)}let c=z.concat(K),Y={buffer:q,byteOffset:J,byteLength:c.byteLength};return k&&(Y.target=k),E.bufferViews.push(Y),{buffers:K,byteLength:L}}function N(R,q,J){let k=R[0].getCount(),K=0;for(let f of R){let l=o.createAccessorDef(f);l.bufferView=E.bufferViews.length,l.byteOffset=K;let _=f.getElementSize(),T=f.getComponentSize();K+=z.padNumber(_*T),o.accessorIndexMap.set(f,E.accessors.length),E.accessors.push(l)}let L=k*K,c=new ArrayBuffer(L),Y=new DataView(c);for(let f=0;f<k;f++){let l=0;for(let _ of R){let T=_.getElementSize(),t=_.getComponentSize(),O=_.getComponentType(),X=_.getArray();for(let v=0;v<T;v++){let gA=f*K+l+v*t,$=X[f*T+v];switch(O){case Z.ComponentType.FLOAT:Y.setFloat32(gA,$,!0);break;case Z.ComponentType.BYTE:Y.setInt8(gA,$);break;case Z.ComponentType.SHORT:Y.setInt16(gA,$,!0);break;case Z.ComponentType.UNSIGNED_BYTE:Y.setUint8(gA,$);break;case Z.ComponentType.UNSIGNED_SHORT:Y.setUint16(gA,$,!0);break;case Z.ComponentType.UNSIGNED_INT:Y.setUint32(gA,$,!0);break;default:throw new Error(\\\"Unexpected component type: \\\"+O)}}l+=z.padNumber(T*t)}}let p={buffer:q,byteOffset:J,byteLength:L,byteStride:K,target:YA.BufferViewTarget.ARRAY_BUFFER};return E.bufferViews.push(p),{byteLength:L,buffers:[new Uint8Array(c)]}}function w(R,q,J){let k=[],K=0,L=new Map,c=-1/0,Y=!1;for(let O of R){let X=o.createAccessorDef(O);E.accessors.push(X),o.accessorIndexMap.set(O,E.accessors.length-1);let v=[],gA=[],$=[],V=new Array(O.getElementSize()).fill(0);for(let MA=0,xA=O.getCount();MA<xA;MA++)if(O.getElement(MA,$),!oA.eq($,V,0)){c=Math.max(MA,c),v.push(MA);for(let TA=0;TA<$.length;TA++)gA.push($[TA])}let i=v.length,dA={accessorDef:X,count:i};if(L.set(O,dA),i===0)continue;i>O.getCount()/2&&(Y=!0);let sA=tB[O.getComponentType()];dA.indices=v,dA.values=new sA(gA)}if(!Number.isFinite(c))return{buffers:k,byteLength:K};Y&&s.warn(\\\"Some sparse accessors have >50% non-zero elements, which may increase file size.\\\");let p=c<255?Uint8Array:c<65535?Uint16Array:Uint32Array,f=c<255?qi:c<65535?li:ui,l={buffer:q,byteOffset:J+K,byteLength:0};for(let O of R){let X=L.get(O);if(X.count===0)continue;X.indicesByteOffset=l.byteLength;let v=z.pad(z.toView(new p(X.indices)));k.push(v),K+=v.byteLength,l.byteLength+=v.byteLength}E.bufferViews.push(l);let _=E.bufferViews.length-1,T={buffer:q,byteOffset:J+K,byteLength:0};for(let O of R){let X=L.get(O);if(X.count===0)continue;X.valuesByteOffset=T.byteLength;let v=z.pad(z.toView(X.values));k.push(v),K+=v.byteLength,T.byteLength+=v.byteLength}E.bufferViews.push(T);let t=E.bufferViews.length-1;for(let O of R){let X=L.get(O);X.count!==0&&(X.accessorDef.sparse={count:X.count,indices:{bufferView:_,byteOffset:X.indicesByteOffset,componentType:f},values:{bufferView:t,byteOffset:X.valuesByteOffset}})}return{buffers:k,byteLength:K}}if(E.accessors=[],E.bufferViews=[],E.samplers=[],E.textures=[],E.images=g.listTextures().map((R,q)=>{let J=o.createPropertyDef(R);R.getMimeType()&&(J.mimeType=R.getMimeType());let k=R.getImage();return k&&o.createImageData(J,k,R),o.imageIndexMap.set(R,q),J}),G.filter(R=>R.prewriteTypes.includes(d.ACCESSOR)).forEach(R=>R.prewrite(o,d.ACCESSOR)),g.listAccessors().forEach(R=>{let q=o.accessorUsageGroupedByParent,J=o.accessorParents;if(o.accessorIndexMap.has(R))return;let k=o.getAccessorUsage(R);if(o.addAccessorToUsageGroup(R,k),q.has(k)){let K=C.listParents(R).find(L=>L.propertyType!==d.ROOT);J.set(R,K)}}),G.filter(R=>R.prewriteTypes.includes(d.BUFFER)).forEach(R=>R.prewrite(o,d.BUFFER)),(g.listAccessors().length>0||o.otherBufferViews.size>0||g.listTextures().length>0&&I.format===rI.GLB)&&g.listBuffers().length===0)throw new Error(\\\"Buffer required for Document resources, but none was found.\\\");E.buffers=[],g.listBuffers().forEach((R,q)=>{let J=o.createPropertyDef(R),k=o.accessorUsageGroupedByParent,K=R.listParents().filter(T=>T instanceof Z),L=new Set(K.map(T=>o.accessorParents.get(T))),c=new Map(Array.from(L).map((T,t)=>[T,t])),Y={};for(let T of K){var p;if(o.accessorIndexMap.has(T))continue;let t=o.getAccessorUsage(T),O=t;if(k.has(t)){let X=o.accessorParents.get(T);O+=`:${c.get(X)}`}Y[p=O]||(Y[p]={usage:t,accessors:[]}),Y[O].accessors.push(T)}let f=[],l=E.buffers.length,_=0;for(let{usage:T,accessors:t}of Object.values(Y))if(T===PC.ARRAY_BUFFER&&I.vertexLayout===ZC.INTERLEAVED){let O=N(t,l,_);_+=O.byteLength;for(let X of O.buffers)f.push(X)}else if(T===PC.ARRAY_BUFFER)for(let O of t){let X=N([O],l,_);_+=X.byteLength;for(let v of X.buffers)f.push(v)}else if(T===PC.SPARSE){let O=w(t,l,_);_+=O.byteLength;for(let X of O.buffers)f.push(X)}else if(T===PC.ELEMENT_ARRAY_BUFFER){let O=YA.BufferViewTarget.ELEMENT_ARRAY_BUFFER,X=r(t,l,_,O);_+=X.byteLength;for(let v of X.buffers)f.push(v)}else{let O=r(t,l,_);_+=O.byteLength;for(let X of O.buffers)f.push(X)}if(o.imageBufferViews.length&&q===0){for(let T=0;T<o.imageBufferViews.length;T++)if(E.bufferViews[E.images[T].bufferView].byteOffset=_,_+=o.imageBufferViews[T].byteLength,f.push(o.imageBufferViews[T]),_%8){let t=8-_%8;_+=t,f.push(new Uint8Array(t))}}if(o.otherBufferViews.has(R))for(let T of o.otherBufferViews.get(R))E.bufferViews.push({buffer:l,byteOffset:_,byteLength:T.byteLength}),o.otherBufferViewsIndexMap.set(T,E.bufferViews.length-1),_+=T.byteLength,f.push(T);if(_){let T;I.format===rI.GLB?T=KI:(T=o.bufferURIGenerator.createURI(R,\\\"bin\\\"),J.uri=T),J.byteLength=_,o.assignResourceURI(T,z.concat(f),!0)}E.buffers.push(J),o.bufferIndexMap.set(R,q)}),g.listAccessors().find(R=>!R.getBuffer())&&s.warn(\\\"Skipped writing one or more Accessors: no Buffer assigned.\\\"),G.filter(R=>R.prewriteTypes.includes(d.MATERIAL)).forEach(R=>R.prewrite(o,d.MATERIAL)),E.materials=g.listMaterials().map((R,q)=>{let J=o.createPropertyDef(R);if(R.getAlphaMode()!==YI.AlphaMode.OPAQUE&&(J.alphaMode=R.getAlphaMode()),R.getAlphaMode()===YI.AlphaMode.MASK&&(J.alphaCutoff=R.getAlphaCutoff()),R.getDoubleSided()&&(J.doubleSided=!0),J.pbrMetallicRoughness={},oA.eq(R.getBaseColorFactor(),[1,1,1,1])||(J.pbrMetallicRoughness.baseColorFactor=R.getBaseColorFactor()),oA.eq(R.getEmissiveFactor(),[0,0,0])||(J.emissiveFactor=R.getEmissiveFactor()),R.getRoughnessFactor()!==1&&(J.pbrMetallicRoughness.roughnessFactor=R.getRoughnessFactor()),R.getMetallicFactor()!==1&&(J.pbrMetallicRoughness.metallicFactor=R.getMetallicFactor()),R.getBaseColorTexture()){let k=R.getBaseColorTexture(),K=R.getBaseColorTextureInfo();J.pbrMetallicRoughness.baseColorTexture=o.createTextureInfoDef(k,K)}if(R.getEmissiveTexture()){let k=R.getEmissiveTexture(),K=R.getEmissiveTextureInfo();J.emissiveTexture=o.createTextureInfoDef(k,K)}if(R.getNormalTexture()){let k=R.getNormalTexture(),K=R.getNormalTextureInfo(),L=o.createTextureInfoDef(k,K);R.getNormalScale()!==1&&(L.scale=R.getNormalScale()),J.normalTexture=L}if(R.getOcclusionTexture()){let k=R.getOcclusionTexture(),K=R.getOcclusionTextureInfo(),L=o.createTextureInfoDef(k,K);R.getOcclusionStrength()!==1&&(L.strength=R.getOcclusionStrength()),J.occlusionTexture=L}if(R.getMetallicRoughnessTexture()){let k=R.getMetallicRoughnessTexture(),K=R.getMetallicRoughnessTextureInfo();J.pbrMetallicRoughness.metallicRoughnessTexture=o.createTextureInfoDef(k,K)}return o.materialIndexMap.set(R,q),J}),G.filter(R=>R.prewriteTypes.includes(d.MESH)).forEach(R=>R.prewrite(o,d.MESH)),E.meshes=g.listMeshes().map((R,q)=>{let J=o.createPropertyDef(R),k=null;return J.primitives=R.listPrimitives().map(K=>{let L={attributes:{}};L.mode=K.getMode();let c=K.getMaterial();c&&(L.material=o.materialIndexMap.get(c)),Object.keys(K.getExtras()).length&&(L.extras=K.getExtras());let Y=K.getIndices();Y&&(L.indices=o.accessorIndexMap.get(Y));for(let p of K.listSemantics())L.attributes[p]=o.accessorIndexMap.get(K.getAttribute(p));for(let p of K.listTargets()){let f={};for(let l of p.listSemantics())f[l]=o.accessorIndexMap.get(p.getAttribute(l));L.targets=L.targets||[],L.targets.push(f)}return K.listTargets().length&&!k&&(k=K.listTargets().map(p=>p.getName())),L}),R.getWeights().length&&(J.weights=R.getWeights()),k&&(J.extras=J.extras||{},J.extras.targetNames=k),o.meshIndexMap.set(R,q),J}),E.cameras=g.listCameras().map((R,q)=>{let J=o.createPropertyDef(R);if(J.type=R.getType(),J.type===JI.Type.PERSPECTIVE){J.perspective={znear:R.getZNear(),zfar:R.getZFar(),yfov:R.getYFov()};let k=R.getAspectRatio();k!==null&&(J.perspective.aspectRatio=k)}else J.orthographic={znear:R.getZNear(),zfar:R.getZFar(),xmag:R.getXMag(),ymag:R.getYMag()};return o.cameraIndexMap.set(R,q),J}),E.nodes=g.listNodes().map((R,q)=>{let J=o.createPropertyDef(R);return oA.eq(R.getTranslation(),[0,0,0])||(J.translation=R.getTranslation()),oA.eq(R.getRotation(),[0,0,0,1])||(J.rotation=R.getRotation()),oA.eq(R.getScale(),[1,1,1])||(J.scale=R.getScale()),R.getWeights().length&&(J.weights=R.getWeights()),o.nodeIndexMap.set(R,q),J}),E.skins=g.listSkins().map((R,q)=>{let J=o.createPropertyDef(R),k=R.getInverseBindMatrices();k&&(J.inverseBindMatrices=o.accessorIndexMap.get(k));let K=R.getSkeleton();return K&&(J.skeleton=o.nodeIndexMap.get(K)),J.joints=R.listJoints().map(L=>o.nodeIndexMap.get(L)),o.skinIndexMap.set(R,q),J}),g.listNodes().forEach((R,q)=>{let J=E.nodes[q],k=R.getMesh();k&&(J.mesh=o.meshIndexMap.get(k));let K=R.getCamera();K&&(J.camera=o.cameraIndexMap.get(K));let L=R.getSkin();L&&(J.skin=o.skinIndexMap.get(L)),R.listChildren().length>0&&(J.children=R.listChildren().map(c=>o.nodeIndexMap.get(c)))}),E.animations=g.listAnimations().map((R,q)=>{let J=o.createPropertyDef(R),k=new Map;return J.samplers=R.listSamplers().map((K,L)=>{let c=o.createPropertyDef(K);return c.input=o.accessorIndexMap.get(K.getInput()),c.output=o.accessorIndexMap.get(K.getOutput()),c.interpolation=K.getInterpolation(),k.set(K,L),c}),J.channels=R.listChannels().map(K=>{let L=o.createPropertyDef(K);return L.sampler=k.get(K.getSampler()),L.target={node:o.nodeIndexMap.get(K.getTargetNode()),path:K.getTargetPath()},L}),o.animationIndexMap.set(R,q),J}),E.scenes=g.listScenes().map((R,q)=>{let J=o.createPropertyDef(R);return J.nodes=R.listChildren().map(k=>o.nodeIndexMap.get(k)),o.sceneIndexMap.set(R,q),J});let H=g.getDefaultScene();return H&&(E.scene=g.listScenes().indexOf(H)),E.extensionsUsed=G.map(R=>R.extensionName),E.extensionsRequired=M.map(R=>R.extensionName),G.forEach(R=>R.write(o)),_i(E),Q}};function _i(B){let A=[];for(let I in B){let C=B[I];(Array.isArray(C)&&C.length===0||C===null||C===\\\"\\\"||C&&typeof C==\\\"object\\\"&&Object.keys(C).length===0)&&A.push(I)}for(let I of A)delete B[I]}var iB;(function(B){B[B.JSON=1313821514]=\\\"JSON\\\",B[B.BIN=5130562]=\\\"BIN\\\"})(iB||(iB={}));var sQ=class{constructor(){this._logger=jA.DEFAULT_INSTANCE,this._extensions=new Set,this._dependencies={},this._vertexLayout=ZC.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(A){return this._logger=A,this}registerExtensions(A){for(let I of A)this._extensions.add(I),I.register();return this}registerDependencies(A){return Object.assign(this._dependencies,A),this}setVertexLayout(A){return this._vertexLayout=A,this}async read(A){return await this.readJSON(await this.readAsJSON(A))}async readAsJSON(A){let I=await this.readURI(A,\\\"view\\\");this.lastReadBytes=I.byteLength;let C=KE(I)?this._binaryToJSON(I):{json:JSON.parse(z.decodeText(I)),resources:{}};return await this._readResourcesExternal(C,this.dirname(A)),this._readResourcesInternal(C),C}async readJSON(A){return A=this._copyJSON(A),this._readResourcesInternal(A),DQ.read(A,{extensions:Array.from(this._extensions),dependencies:this._dependencies,logger:this._logger})}async binaryToJSON(A){let I=this._binaryToJSON(z.assertView(A));this._readResourcesInternal(I);let C=I.json;if(C.buffers&&C.buffers.some(g=>mi(I,g)))throw new Error(\\\"Cannot resolve external buffers with binaryToJSON().\\\");if(C.images&&C.images.some(g=>xi(I,g)))throw new Error(\\\"Cannot resolve external images with binaryToJSON().\\\");return I}async readBinary(A){return this.readJSON(await this.binaryToJSON(z.assertView(A)))}async writeJSON(A,I={}){if(I.format===rI.GLB&&A.getRoot().listBuffers().length>1)throw new Error(\\\"GLB must have 0\\\\u20131 buffers.\\\");return eQ.write(A,{format:I.format||rI.GLTF,basename:I.basename||\\\"\\\",logger:this._logger,vertexLayout:this._vertexLayout,dependencies:hA({},this._dependencies),extensions:Array.from(this._extensions)})}async writeBinary(A){let{json:I,resources:C}=await this.writeJSON(A,{format:rI.GLB}),g=new Uint32Array([1179937895,2,12]),E=JSON.stringify(I),Q=z.pad(z.encodeText(E),32),o=z.toView(new Uint32Array([Q.byteLength,1313821514])),s=z.concat([o,Q]);g[g.length-1]+=s.byteLength;let y=Object.values(C)[0];if(!y||!y.byteLength)return z.concat([z.toView(g),s]);let G=z.pad(y,0),M=z.toView(new Uint32Array([G.byteLength,5130562])),r=z.concat([M,G]);return g[g.length-1]+=r.byteLength,z.concat([z.toView(g),s,r])}async _readResourcesExternal(A,I){var C=this;let g=A.json.images||[],E=A.json.buffers||[],Q=[...g,...E].map(async function(o){let s=o.uri;if(!s||s.match(/data:/))return Promise.resolve();A.resources[s]=await C.readURI(C.resolve(I,s),\\\"view\\\"),C.lastReadBytes+=A.resources[s].byteLength});await Promise.all(Q)}_readResourcesInternal(A){function I(E){if(E.uri){if(E.uri in A.resources){z.assertView(A.resources[E.uri]);return}if(E.uri.match(/data:/)){let Q=`__${Ji()}.${NI.extension(E.uri)}`;A.resources[Q]=z.createBufferFromDataURI(E.uri),E.uri=Q}}}(A.json.images||[]).forEach(E=>{if(E.bufferView===void 0&&E.uri===void 0)throw new Error(\\\"Missing resource URI or buffer view.\\\");I(E)}),(A.json.buffers||[]).forEach(I)}_copyJSON(A){let{images:I,buffers:C}=A.json;return A={json:hA({},A.json),resources:hA({},A.resources)},I&&(A.json.images=I.map(g=>hA({},g))),C&&(A.json.buffers=C.map(g=>hA({},g))),A}_binaryToJSON(A){if(!KE(A))throw new Error(\\\"Invalid glTF 2.0 binary.\\\");let I=new Uint32Array(A.buffer,A.byteOffset+12,2);if(I[1]!==iB.JSON)throw new Error(\\\"Missing required GLB JSON chunk.\\\");let C=20,g=I[0],E=z.decodeText(z.toView(A,C,g)),Q=JSON.parse(E),o=C+g;if(A.byteLength<=o)return{json:Q,resources:{}};let s=new Uint32Array(A.buffer,A.byteOffset+o,2);if(s[1]!==iB.BIN)return{json:Q,resources:{}};let y=s[0],G=z.toView(A,o+8,y);return{json:Q,resources:{[KI]:G}}}};function mi(B,A){return A.uri!==void 0&&!(A.uri in B.resources)}function xi(B,A){return A.uri!==void 0&&!(A.uri in B.resources)&&A.bufferView===void 0}function KE(B){if(B.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;let A=new Uint32Array(B.buffer,B.byteOffset,3);return A[0]===1179937895&&A[1]===2}var oB=class extends sQ{constructor(A=MI.DEFAULT_INIT){super(),this._fetchConfig=void 0,this._fetchConfig=A}async readURI(A,I){let C=await fetch(A,this._fetchConfig);switch(I){case\\\"view\\\":return new Uint8Array(await C.arrayBuffer());case\\\"text\\\":return C.text()}}resolve(A,I){return MI.resolve(A,I)}dirname(A){return MI.dirname(A)}};function bi(){return{vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,levelCount:0,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null}}var kI=class{constructor(A,I,C,g){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(A.buffer,A.byteOffset+I,C),this._littleEndian=g,this._offset=0}_nextUint8(){let A=this._dataView.getUint8(this._offset);return this._offset+=1,A}_nextUint16(){let A=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,A}_nextUint32(){let A=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint64(){let A=this._dataView.getUint32(this._offset,this._littleEndian),I=this._dataView.getUint32(this._offset+4,this._littleEndian),C=A+2**32*I;return this._offset+=8,C}_nextInt32(){let A=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,A}_nextUint8Array(A){let I=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,A);return this._offset+=A,I}_skip(A){return this._offset+=A,this}_scan(A,I=0){let C=this._offset,g=0;for(;this._dataView.getUint8(this._offset)!==I&&g<A;)g++,this._offset++;return g<A&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+C,g)}};var Po=new Uint8Array([0]),SA=[171,75,84,88,32,50,48,187,13,10,26,10];function dE(B){return new TextDecoder().decode(B)}function DB(B){let A=new Uint8Array(B.buffer,B.byteOffset,SA.length);if(A[0]!==SA[0]||A[1]!==SA[1]||A[2]!==SA[2]||A[3]!==SA[3]||A[4]!==SA[4]||A[5]!==SA[5]||A[6]!==SA[6]||A[7]!==SA[7]||A[8]!==SA[8]||A[9]!==SA[9]||A[10]!==SA[10]||A[11]!==SA[11])throw new Error(\\\"Missing KTX 2.0 identifier.\\\");let I=bi(),C=17*Uint32Array.BYTES_PER_ELEMENT,g=new kI(B,SA.length,C,!0);I.vkFormat=g._nextUint32(),I.typeSize=g._nextUint32(),I.pixelWidth=g._nextUint32(),I.pixelHeight=g._nextUint32(),I.pixelDepth=g._nextUint32(),I.layerCount=g._nextUint32(),I.faceCount=g._nextUint32(),I.levelCount=g._nextUint32(),I.supercompressionScheme=g._nextUint32();let E=g._nextUint32(),Q=g._nextUint32(),o=g._nextUint32(),s=g._nextUint32(),y=g._nextUint64(),G=g._nextUint64(),M=Math.max(I.levelCount,1)*3*8,r=new kI(B,SA.length+C,M,!0);for(let CA=0,aA=Math.max(I.levelCount,1);CA<aA;CA++)I.levels.push({levelData:new Uint8Array(B.buffer,B.byteOffset+r._nextUint64(),r._nextUint64()),uncompressedByteLength:r._nextUint64()});let N=new kI(B,E,Q,!0);N._skip(4);let w=N._nextUint16(),U=N._nextUint16(),H=N._nextUint16(),R=N._nextUint16(),q=N._nextUint8(),J=N._nextUint8(),k=N._nextUint8(),K=N._nextUint8(),L=[N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8()],c=[N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8()],p={vendorId:w,descriptorType:U,versionNumber:H,colorModel:q,colorPrimaries:J,transferFunction:k,flags:K,texelBlockDimension:L,bytesPlane:c,samples:[]},_=(R/4-6)/4;for(let CA=0;CA<_;CA++){let aA={bitOffset:N._nextUint16(),bitLength:N._nextUint8(),channelType:N._nextUint8(),samplePosition:[N._nextUint8(),N._nextUint8(),N._nextUint8(),N._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};aA.channelType&64?(aA.sampleLower=N._nextInt32(),aA.sampleUpper=N._nextInt32()):(aA.sampleLower=N._nextUint32(),aA.sampleUpper=N._nextUint32()),p.samples[CA]=aA}I.dataFormatDescriptor.length=0,I.dataFormatDescriptor.push(p);let T=new kI(B,o,s,!0);for(;T._offset<s;){let CA=T._nextUint32(),aA=T._scan(CA),mA=dE(aA);if(I.keyValue[mA]=T._nextUint8Array(CA-aA.byteLength-1),mA.match(/^ktx/i)){let VA=dE(I.keyValue[mA]);I.keyValue[mA]=VA.substring(0,VA.lastIndexOf(\\\"\\\\0\\\"))}let KA=CA%4?4-CA%4:0;T._skip(KA)}if(G<=0)return I;let t=new kI(B,y,G,!0),O=t._nextUint16(),X=t._nextUint16(),v=t._nextUint32(),gA=t._nextUint32(),$=t._nextUint32(),V=t._nextUint32(),i=[];for(let CA=0,aA=Math.max(I.levelCount,1);CA<aA;CA++)i.push({imageFlags:t._nextUint32(),rgbSliceByteOffset:t._nextUint32(),rgbSliceByteLength:t._nextUint32(),alphaSliceByteOffset:t._nextUint32(),alphaSliceByteLength:t._nextUint32()});let dA=y+t._offset,sA=dA+v,MA=sA+gA,xA=MA+$,TA=new Uint8Array(B.buffer,B.byteOffset+dA,v),sI=new Uint8Array(B.buffer,B.byteOffset+sA,gA),_A=new Uint8Array(B.buffer,B.byteOffset+MA,$),bA=new Uint8Array(B.buffer,B.byteOffset+xA,V);return I.globalData={endpointCount:O,selectorCount:X,imageDescs:i,endpointsData:TA,selectorsData:sI,tablesData:_A,extendedData:bA},I}var zA=\\\"EXT_mesh_gpu_instancing\\\",yA=\\\"EXT_meshopt_compression\\\",MC=\\\"EXT_texture_webp\\\",KC=\\\"EXT_texture_avif\\\",DA=\\\"KHR_draco_mesh_compression\\\",uA=\\\"KHR_lights_punctual\\\",vA=\\\"KHR_materials_anisotropy\\\",$A=\\\"KHR_materials_clearcoat\\\",AI=\\\"KHR_materials_diffuse_transmission\\\",II=\\\"KHR_materials_dispersion\\\",gI=\\\"KHR_materials_emissive_strength\\\",CI=\\\"KHR_materials_ior\\\",BI=\\\"KHR_materials_iridescence\\\",QI=\\\"KHR_materials_pbrSpecularGlossiness\\\",EI=\\\"KHR_materials_sheen\\\",iI=\\\"KHR_materials_specular\\\",oI=\\\"KHR_materials_transmission\\\",FI=\\\"KHR_materials_unlit\\\",tI=\\\"KHR_materials_volume\\\",wA=\\\"KHR_materials_variants\\\",WE=\\\"KHR_mesh_quantization\\\",UC=\\\"KHR_texture_basisu\\\",DI=\\\"KHR_texture_transform\\\",lA=\\\"KHR_xmp_json_ld\\\",nQ=\\\"INSTANCE_ATTRIBUTE\\\",eB=class extends tA{init(){this.extensionName=zA,this.propertyType=\\\"InstancedMesh\\\",this.parentTypes=[d.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new cA})}getAttribute(A){return this.getRefMap(\\\"attributes\\\",A)}setAttribute(A,I){return this.setRefMap(\\\"attributes\\\",A,I,{usage:nQ})}listAttributes(){return this.listRefMapValues(\\\"attributes\\\")}listSemantics(){return this.listRefMapKeys(\\\"attributes\\\")}};eB.EXTENSION_NAME=zA;var sB=class extends EA{constructor(...A){super(...A),this.extensionName=zA,this.provideTypes=[d.NODE],this.prewriteTypes=[d.ACCESSOR]}createInstancedMesh(){return new eB(this.document.getGraph())}read(A){return(A.jsonDoc.json.nodes||[]).forEach((g,E)=>{if(!g.extensions||!g.extensions[zA])return;let Q=g.extensions[zA],o=this.createInstancedMesh();for(let s in Q.attributes)o.setAttribute(s,A.accessors[Q.attributes[s]]);A.nodes[E].setExtension(zA,o)}),this}prewrite(A){A.accessorUsageGroupedByParent.add(nQ);for(let I of this.properties)for(let C of I.listAttributes())A.addAccessorToUsageGroup(C,nQ);return this}write(A){let I=A.jsonDoc;return this.document.getRoot().listNodes().forEach(C=>{let g=C.getExtension(zA);if(g){let E=A.nodeIndexMap.get(C),Q=I.json.nodes[E],o={attributes:{}};g.listSemantics().forEach(s=>{let y=g.getAttribute(s);o.attributes[s]=A.accessorIndexMap.get(y)}),Q.extensions=Q.extensions||{},Q.extensions[zA]=o}}),this}};sB.EXTENSION_NAME=zA;function eI(){return eI=Object.assign?Object.assign.bind():function(B){for(var A=1;A<arguments.length;A++){var I=arguments[A];for(var C in I)({}).hasOwnProperty.call(I,C)&&(B[C]=I[C])}return B},eI.apply(null,arguments)}var JC;(function(B){B.QUANTIZE=\\\"quantize\\\",B.FILTER=\\\"filter\\\"})(JC||(JC={}));var fI;(function(B){B.ATTRIBUTES=\\\"ATTRIBUTES\\\",B.TRIANGLES=\\\"TRIANGLES\\\",B.INDICES=\\\"INDICES\\\"})(fI||(fI={}));var eA;(function(B){B.NONE=\\\"NONE\\\",B.OCTAHEDRAL=\\\"OCTAHEDRAL\\\",B.QUATERNION=\\\"QUATERNION\\\",B.EXPONENTIAL=\\\"EXPONENTIAL\\\"})(eA||(eA={}));function Oi(B){return!B.extensions||!B.extensions[yA]?!1:!!B.extensions[yA].fallback}var{BYTE:Pi,SHORT:pE,FLOAT:Xi}=Z.ComponentType,{encodeNormalizedInt:fE,decodeNormalizedInt:rQ}=oA;function Zi(B,A,I,C){let{filter:g,bits:E}=C,Q={array:B.getArray(),byteStride:B.getElementSize()*B.getComponentSize(),componentType:B.getComponentType(),normalized:B.getNormalized()};if(I!==fI.ATTRIBUTES)return Q;if(g!==eA.NONE){let o=B.getNormalized()?ji(B):new Float32Array(Q.array);switch(g){case eA.EXPONENTIAL:Q.byteStride=B.getElementSize()*4,Q.componentType=Xi,Q.normalized=!1,Q.array=A.encodeFilterExp(o,B.getCount(),Q.byteStride,E);break;case eA.OCTAHEDRAL:Q.byteStride=E>8?8:4,Q.componentType=E>8?pE:Pi,Q.normalized=!0,o=B.getElementSize()===3?vi(o):o,Q.array=A.encodeFilterOct(o,B.getCount(),Q.byteStride,E);break;case eA.QUATERNION:Q.byteStride=8,Q.componentType=pE,Q.normalized=!0,Q.array=A.encodeFilterQuat(o,B.getCount(),Q.byteStride,E);break;default:throw new Error(\\\"Invalid filter.\\\")}Q.min=B.getMin([]),Q.max=B.getMax([]),B.getNormalized()&&(Q.min=Q.min.map(s=>rQ(s,B.getComponentType())),Q.max=Q.max.map(s=>rQ(s,B.getComponentType()))),Q.normalized&&(Q.min=Q.min.map(s=>fE(s,Q.componentType)),Q.max=Q.max.map(s=>fE(s,Q.componentType)))}else Q.byteStride%4&&(Q.array=zi(Q.array,B.getElementSize()),Q.byteStride=Q.array.byteLength/B.getCount());return Q}function ji(B){let A=B.getComponentType(),I=B.getArray(),C=new Float32Array(I.length);for(let g=0;g<I.length;g++)C[g]=rQ(I[g],A);return C}function zi(B,A){let C=z.padNumber(B.BYTES_PER_ELEMENT*A)/B.BYTES_PER_ELEMENT,g=B.length/A,E=new B.constructor(g*C);for(let Q=0;Q*A<B.length;Q++)for(let o=0;o<A;o++)E[Q*C+o]=B[Q*A+o];return E}function vi(B){let A=new Float32Array(B.length*4/3);for(let I=0,C=B.length/3;I<C;I++)A[I*4]=B[I*3],A[I*4+1]=B[I*3+1],A[I*4+2]=B[I*3+2];return A}function $i(B,A){return A===YA.BufferViewUsage.ELEMENT_ARRAY_BUFFER?B.listParents().some(C=>C instanceof RI&&C.getMode()===RI.Mode.TRIANGLES)?fI.TRIANGLES:fI.INDICES:fI.ATTRIBUTES}function Ao(B,A){let I=A.getGraph().listParentEdges(B).filter(C=>!(C.getParent()instanceof hC));for(let C of I){let g=C.getName(),E=C.getAttributes().key||\\\"\\\",Q=C.getParent().propertyType===d.PRIMITIVE_TARGET;if(g===\\\"indices\\\")return{filter:eA.NONE};if(g===\\\"attributes\\\"){if(E===\\\"POSITION\\\")return{filter:eA.NONE};if(E===\\\"TEXCOORD_0\\\")return{filter:eA.NONE};if(E.startsWith(\\\"JOINTS_\\\"))return{filter:eA.NONE};if(E.startsWith(\\\"WEIGHTS_\\\"))return{filter:eA.NONE};if(E===\\\"NORMAL\\\"||E===\\\"TANGENT\\\")return Q?{filter:eA.NONE}:{filter:eA.OCTAHEDRAL,bits:8}}if(g===\\\"output\\\"){let o=OE(B);return o===\\\"rotation\\\"?{filter:eA.QUATERNION,bits:16}:o===\\\"translation\\\"?{filter:eA.EXPONENTIAL,bits:12}:o===\\\"scale\\\"?{filter:eA.EXPONENTIAL,bits:12}:{filter:eA.NONE}}if(g===\\\"input\\\")return{filter:eA.NONE};if(g===\\\"inverseBindMatrices\\\")return{filter:eA.NONE}}return{filter:eA.NONE}}function OE(B){for(let A of B.listParents())if(A instanceof UI){for(let I of A.listParents())if(I instanceof pI)return I.getTargetPath()}return null}var HE={method:JC.QUANTIZE},YC=class extends EA{constructor(...A){super(...A),this.extensionName=yA,this.prereadTypes=[d.BUFFER,d.PRIMITIVE],this.prewriteTypes=[d.BUFFER,d.ACCESSOR],this.readDependencies=[\\\"meshopt.decoder\\\"],this.writeDependencies=[\\\"meshopt.encoder\\\"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=HE,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(A,I){return A===\\\"meshopt.decoder\\\"&&(this._decoder=I),A===\\\"meshopt.encoder\\\"&&(this._encoder=I),this}setEncoderOptions(A){return this._encoderOptions=eI({},HE,A),this}preread(A,I){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${yA}] Please install extension dependency, \\\"meshopt.decoder\\\".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${yA}]: Missing WASM support.`)}return I===d.BUFFER?this._prereadBuffers(A):I===d.PRIMITIVE&&this._prereadPrimitives(A),this}_prereadBuffers(A){let I=A.jsonDoc;(I.json.bufferViews||[]).forEach((g,E)=>{if(!g.extensions||!g.extensions[yA])return;let Q=g.extensions[yA],o=Q.byteOffset||0,s=Q.byteLength||0,y=Q.count,G=Q.byteStride,M=new Uint8Array(y*G),r=I.json.buffers[Q.buffer],N=r.uri?I.resources[r.uri]:I.resources[KI],w=z.toView(N,o,s);this._decoder.decodeGltfBuffer(M,y,G,w,Q.mode,Q.filter),A.bufferViews[E]=M})}_prereadPrimitives(A){let I=A.jsonDoc;(I.json.bufferViews||[]).forEach(g=>{if(!g.extensions||!g.extensions[yA])return;let E=g.extensions[yA],Q=A.buffers[E.buffer],o=A.buffers[g.buffer],s=I.json.buffers[g.buffer];Oi(s)&&this._decoderFallbackBufferMap.set(o,Q)})}read(A){if(!this.isRequired())return this;for(let[I,C]of this._decoderFallbackBufferMap){for(let g of I.listParents())g instanceof Z&&g.swap(I,C);I.dispose()}return this}prewrite(A,I){return I===d.ACCESSOR?this._prewriteAccessors(A):I===d.BUFFER&&this._prewriteBuffers(A),this}_prewriteAccessors(A){let I=A.jsonDoc.json,C=this._encoder,g=this._encoderOptions,E=this.document.getGraph(),Q=this.document.createBuffer(),o=this.document.getRoot().listBuffers().indexOf(Q),s=1,y=new Map,G=M=>{for(let r of E.listParents(M)){if(r.propertyType===d.ROOT)continue;let N=y.get(M);return N===void 0&&y.set(M,N=s++),N}return-1};this._encoderFallbackBuffer=Q,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(let M of this.document.getRoot().listAccessors()){if(OE(M)===\\\"weights\\\"||M.getSparse())continue;let r=A.getAccessorUsage(M),N=A.accessorUsageGroupedByParent.has(r)?G(M):null,w=$i(M,r),U=g.method===JC.FILTER?Ao(M,this.document):{filter:eA.NONE},H=Zi(M,C,w,U),{array:R,byteStride:q}=H,J=M.getBuffer();if(!J)throw new Error(`${yA}: Missing buffer for accessor.`);let k=this.document.getRoot().listBuffers().indexOf(J),K=[r,N,w,U.filter,q,k].join(\\\":\\\"),L=this._encoderBufferViews[K],c=this._encoderBufferViewData[K],Y=this._encoderBufferViewAccessors[K];(!L||!c)&&(Y=this._encoderBufferViewAccessors[K]=[],c=this._encoderBufferViewData[K]=[],L=this._encoderBufferViews[K]={buffer:o,target:YA.USAGE_TO_TARGET[r],byteOffset:0,byteLength:0,byteStride:r===YA.BufferViewUsage.ARRAY_BUFFER?q:void 0,extensions:{[yA]:{buffer:k,byteOffset:0,byteLength:0,mode:w,filter:U.filter!==eA.NONE?U.filter:void 0,byteStride:q,count:0}}});let p=A.createAccessorDef(M);p.componentType=H.componentType,p.normalized=H.normalized,p.byteOffset=L.byteLength,p.min&&H.min&&(p.min=H.min),p.max&&H.max&&(p.max=H.max),A.accessorIndexMap.set(M,I.accessors.length),I.accessors.push(p),Y.push(p),c.push(new Uint8Array(R.buffer,R.byteOffset,R.byteLength)),L.byteLength+=R.byteLength,L.extensions.EXT_meshopt_compression.count+=M.getCount()}}_prewriteBuffers(A){let I=this._encoder;for(let C in this._encoderBufferViews){let g=this._encoderBufferViews[C],E=this._encoderBufferViewData[C],Q=this.document.getRoot().listBuffers()[g.extensions[yA].buffer],o=A.otherBufferViews.get(Q)||[],{count:s,byteStride:y,mode:G}=g.extensions[yA],M=z.concat(E),r=I.encodeGltfBuffer(M,s,y,G),N=z.pad(r);g.extensions[yA].byteLength=r.byteLength,E.length=0,E.push(N),o.push(N),A.otherBufferViews.set(Q,o)}}write(A){let I=0;for(let Q in this._encoderBufferViews){let o=this._encoderBufferViews[Q],s=this._encoderBufferViewData[Q][0],y=A.otherBufferViewsIndexMap.get(s),G=this._encoderBufferViewAccessors[Q];for(let w of G)w.bufferView=y;let M=A.jsonDoc.json.bufferViews[y],r=M.byteOffset||0;Object.assign(M,o),M.byteOffset=I;let N=M.extensions[yA];N.byteOffset=r,I+=z.padNumber(o.byteLength)}let C=this._encoderFallbackBuffer,g=A.bufferIndexMap.get(C),E=A.jsonDoc.json.buffers[g];return E.byteLength=I,E.extensions={[yA]:{fallback:!0}},C.dispose(),this}};YC.EXTENSION_NAME=yA;YC.EncoderMethod=JC;var NQ=class{match(A){return A.length>=12&&z.decodeText(A.slice(4,12))===\\\"ftypavif\\\"}getSize(A){if(!this.match(A))return null;let I=new DataView(A.buffer,A.byteOffset,A.byteLength),C=uE(I,0);if(!C)return null;let g=C.end;for(;C=uE(I,g);)if(C.type===\\\"meta\\\")g=C.start+4;else if(C.type===\\\"iprp\\\"||C.type===\\\"ipco\\\")g=C.start;else{if(C.type===\\\"ispe\\\")return[I.getUint32(C.start+4),I.getUint32(C.start+8)];if(C.type===\\\"mdat\\\")break;g=C.end}return null}getChannels(A){return 4}},aB=class extends EA{constructor(...A){super(...A),this.extensionName=KC,this.prereadTypes=[d.TEXTURE]}static register(){JA.registerFormat(\\\"image/avif\\\",new NQ)}preread(A){return(A.jsonDoc.json.textures||[]).forEach(C=>{C.extensions&&C.extensions[KC]&&(C.source=C.extensions[KC].source)}),this}read(A){return this}write(A){let I=A.jsonDoc;return this.document.getRoot().listTextures().forEach(C=>{if(C.getMimeType()===\\\"image/avif\\\"){let g=A.imageIndexMap.get(C);(I.json.textures||[]).forEach(Q=>{Q.source===g&&(Q.extensions=Q.extensions||{},Q.extensions[KC]={source:Q.source},delete Q.source)})}}),this}};aB.EXTENSION_NAME=KC;function uE(B,A){if(B.byteLength<4+A)return null;let I=B.getUint32(A);return B.byteLength<I+A||I<8?null:{type:z.decodeText(new Uint8Array(B.buffer,B.byteOffset+A+4,4)),start:A+8,end:A+I}}var yQ=class{match(A){return A.length>=12&&A[8]===87&&A[9]===69&&A[10]===66&&A[11]===80}getSize(A){let I=z.decodeText(A.slice(0,4)),C=z.decodeText(A.slice(8,12));if(I!==\\\"RIFF\\\"||C!==\\\"WEBP\\\")return null;let g=new DataView(A.buffer,A.byteOffset),E=12;for(;E<g.byteLength;){let Q=z.decodeText(new Uint8Array([g.getUint8(E),g.getUint8(E+1),g.getUint8(E+2),g.getUint8(E+3)])),o=g.getUint32(E+4,!0);if(Q===\\\"VP8 \\\"){let s=g.getInt16(E+14,!0)&16383,y=g.getInt16(E+16,!0)&16383;return[s,y]}else if(Q===\\\"VP8L\\\"){let s=g.getUint8(E+9),y=g.getUint8(E+10),G=g.getUint8(E+11),M=g.getUint8(E+12),r=1+((y&63)<<8|s),N=1+((M&15)<<10|G<<2|(y&192)>>6);return[r,N]}E+=8+o+o%2}return null}getChannels(A){return 4}},nB=class extends EA{constructor(...A){super(...A),this.extensionName=MC,this.prereadTypes=[d.TEXTURE]}static register(){JA.registerFormat(\\\"image/webp\\\",new yQ)}preread(A){return(A.jsonDoc.json.textures||[]).forEach(C=>{C.extensions&&C.extensions[MC]&&(C.source=C.extensions[MC].source)}),this}read(A){return this}write(A){let I=A.jsonDoc;return this.document.getRoot().listTextures().forEach(C=>{if(C.getMimeType()===\\\"image/webp\\\"){let g=A.imageIndexMap.get(C);(I.json.textures||[]).forEach(Q=>{Q.source===g&&(Q.extensions=Q.extensions||{},Q.extensions[MC]={source:Q.source},delete Q.source)})}}),this}};nB.EXTENSION_NAME=MC;var nA,PE,XE;function Io(B,A){let I=new nA.DecoderBuffer;try{if(I.Init(A,A.length),B.GetEncodedGeometryType(I)!==nA.TRIANGULAR_MESH)throw new Error(`[${DA}] Unknown geometry type.`);let g=new nA.Mesh;if(!B.DecodeBufferToMesh(I,g).ok()||g.ptr===0)throw new Error(`[${DA}] Decoding failure.`);return g}finally{nA.destroy(I)}}function go(B,A){let C=A.num_faces()*3,g,E;if(A.num_points()<=65534){let Q=C*Uint16Array.BYTES_PER_ELEMENT;g=nA._malloc(Q),B.GetTrianglesUInt16Array(A,Q,g),E=new Uint16Array(nA.HEAPU16.buffer,g,C).slice()}else{let Q=C*Uint32Array.BYTES_PER_ELEMENT;g=nA._malloc(Q),B.GetTrianglesUInt32Array(A,Q,g),E=new Uint32Array(nA.HEAPU32.buffer,g,C).slice()}return nA._free(g),E}function Co(B,A,I,C){let g=XE[C.componentType],E=PE[C.componentType],Q=I.num_components(),s=A.num_points()*Q,y=s*E.BYTES_PER_ELEMENT,G=nA._malloc(y);B.GetAttributeDataArrayForAllPoints(A,I,g,y,G);let M=new E(nA.HEAPF32.buffer,G,s).slice();return nA._free(G),M}function Bo(B){nA=B,PE={[Z.ComponentType.FLOAT]:Float32Array,[Z.ComponentType.UNSIGNED_INT]:Uint32Array,[Z.ComponentType.UNSIGNED_SHORT]:Uint16Array,[Z.ComponentType.UNSIGNED_BYTE]:Uint8Array,[Z.ComponentType.SHORT]:Int16Array,[Z.ComponentType.BYTE]:Int8Array},XE={[Z.ComponentType.FLOAT]:nA.DT_FLOAT32,[Z.ComponentType.UNSIGNED_INT]:nA.DT_UINT32,[Z.ComponentType.UNSIGNED_SHORT]:nA.DT_UINT16,[Z.ComponentType.UNSIGNED_BYTE]:nA.DT_UINT8,[Z.ComponentType.SHORT]:nA.DT_INT16,[Z.ComponentType.BYTE]:nA.DT_INT8}}var HA,kC;(function(B){B[B.EDGEBREAKER=1]=\\\"EDGEBREAKER\\\",B[B.SEQUENTIAL=0]=\\\"SEQUENTIAL\\\"})(kC||(kC={}));var qA;(function(B){B.POSITION=\\\"POSITION\\\",B.NORMAL=\\\"NORMAL\\\",B.COLOR=\\\"COLOR\\\",B.TEX_COORD=\\\"TEX_COORD\\\",B.GENERIC=\\\"GENERIC\\\"})(qA||(qA={}));var ZE={[qA.POSITION]:14,[qA.NORMAL]:10,[qA.COLOR]:8,[qA.TEX_COORD]:12,[qA.GENERIC]:12},lE={decodeSpeed:5,encodeSpeed:5,method:kC.EDGEBREAKER,quantizationBits:ZE,quantizationVolume:\\\"mesh\\\"};function Qo(B){HA=B}function Eo(B,A=lE){let I=eI({},lE,A);I.quantizationBits=eI({},ZE,A.quantizationBits);let C=new HA.MeshBuilder,g=new HA.Mesh,E=new HA.ExpertEncoder(g),Q={},o=new HA.DracoInt8Array,s=B.listTargets().length>0,y=!1;for(let U of B.listSemantics()){let H=B.getAttribute(U);if(H.getSparse()){y=!0;continue}let R=io(U),q=oo(C,H.getComponentType(),g,HA[R],H.getCount(),H.getElementSize(),H.getArray());if(q===-1)throw new Error(`Error compressing \\\"${U}\\\" attribute.`);if(Q[U]=q,I.quantizationVolume===\\\"mesh\\\"||U!==\\\"POSITION\\\")E.SetAttributeQuantization(q,I.quantizationBits[R]);else if(typeof I.quantizationVolume==\\\"object\\\"){let{quantizationVolume:J}=I,k=Math.max(J.max[0]-J.min[0],J.max[1]-J.min[1],J.max[2]-J.min[2]);E.SetAttributeExplicitQuantization(q,I.quantizationBits[R],H.getElementSize(),J.min,k)}else throw new Error(\\\"Invalid quantization volume state.\\\")}let G=B.getIndices();if(!G)throw new LC(\\\"Primitive must have indices.\\\");C.AddFacesToMesh(g,G.getCount()/3,G.getArray()),E.SetSpeedOptions(I.encodeSpeed,I.decodeSpeed),E.SetTrackEncodedProperties(!0),I.method===kC.SEQUENTIAL||s||y?E.SetEncodingMethod(HA.MESH_SEQUENTIAL_ENCODING):E.SetEncodingMethod(HA.MESH_EDGEBREAKER_ENCODING);let M=E.EncodeToDracoBuffer(!(s||y),o);if(M<=0)throw new LC(\\\"Error applying Draco compression.\\\");let r=new Uint8Array(M);for(let U=0;U<M;++U)r[U]=o.GetValue(U);let N=E.GetNumberOfEncodedPoints(),w=E.GetNumberOfEncodedFaces()*3;return HA.destroy(o),HA.destroy(g),HA.destroy(C),HA.destroy(E),{numVertices:N,numIndices:w,data:r,attributeIDs:Q}}function io(B){return B===\\\"POSITION\\\"?qA.POSITION:B===\\\"NORMAL\\\"?qA.NORMAL:B.startsWith(\\\"COLOR_\\\")?qA.COLOR:B.startsWith(\\\"TEXCOORD_\\\")?qA.TEX_COORD:qA.GENERIC}function oo(B,A,I,C,g,E,Q){switch(A){case Z.ComponentType.UNSIGNED_BYTE:return B.AddUInt8Attribute(I,C,g,E,Q);case Z.ComponentType.BYTE:return B.AddInt8Attribute(I,C,g,E,Q);case Z.ComponentType.UNSIGNED_SHORT:return B.AddUInt16Attribute(I,C,g,E,Q);case Z.ComponentType.SHORT:return B.AddInt16Attribute(I,C,g,E,Q);case Z.ComponentType.UNSIGNED_INT:return B.AddUInt32Attribute(I,C,g,E,Q);case Z.ComponentType.FLOAT:return B.AddFloatAttribute(I,C,g,E,Q);default:throw new Error(`Unexpected component type, \\\"${A}\\\".`)}}var LC=class extends Error{},dC=class extends EA{constructor(...A){super(...A),this.extensionName=DA,this.prereadTypes=[d.PRIMITIVE],this.prewriteTypes=[d.ACCESSOR],this.readDependencies=[\\\"draco3d.decoder\\\"],this.writeDependencies=[\\\"draco3d.encoder\\\"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(A,I){return A===\\\"draco3d.decoder\\\"&&(this._decoderModule=I,Bo(this._decoderModule)),A===\\\"draco3d.encoder\\\"&&(this._encoderModule=I,Qo(this._encoderModule)),this}setEncoderOptions(A){return this._encoderOptions=A,this}preread(A){if(!this._decoderModule)throw new Error(`[${DA}] Please install extension dependency, \\\"draco3d.decoder\\\".`);let I=this.document.getLogger(),C=A.jsonDoc,g=new Map;try{let E=C.json.meshes||[];for(let Q of E)for(let o of Q.primitives){if(!o.extensions||!o.extensions[DA])continue;let s=o.extensions[DA],[y,G]=g.get(s.bufferView)||[];if(!G||!y){let M=C.json.bufferViews[s.bufferView],r=C.json.buffers[M.buffer],N=r.uri?C.resources[r.uri]:C.resources[KI],w=M.byteOffset||0,U=M.byteLength,H=z.toView(N,w,U);y=new this._decoderModule.Decoder,G=Io(y,H),g.set(s.bufferView,[y,G]),I.debug(`[${DA}] Decompressed ${H.byteLength} bytes.`)}for(let M in s.attributes){let r=A.jsonDoc.json.accessors[o.attributes[M]],N=y.GetAttributeByUniqueId(G,s.attributes[M]),w=Co(y,G,N,r);A.accessors[o.attributes[M]].setArray(w)}o.indices!==void 0&&A.accessors[o.indices].setArray(go(y,G))}}finally{for(let[E,Q]of Array.from(g.values()))this._decoderModule.destroy(E),this._decoderModule.destroy(Q)}return this}read(A){return this}prewrite(A,I){if(!this._encoderModule)throw new Error(`[${DA}] Please install extension dependency, \\\"draco3d.encoder\\\".`);let C=this.document.getLogger();C.debug(`[${DA}] Compression options: ${JSON.stringify(this._encoderOptions)}`);let g=to(this.document),E=new Map,Q=\\\"mesh\\\";this._encoderOptions.quantizationVolume===\\\"scene\\\"&&(this.document.getRoot().listScenes().length!==1?C.warn(`[${DA}]: quantizationVolume=scene requires exactly 1 scene.`):Q=JE(this.document.getRoot().listScenes().pop()));for(let o of Array.from(g.keys())){let s=g.get(o);if(!s)throw new Error(\\\"Unexpected primitive.\\\");if(E.has(s)){E.set(s,E.get(s));continue}let y=o.getIndices(),G=A.jsonDoc.json.accessors,M;try{M=Eo(o,eI({},this._encoderOptions,{quantizationVolume:Q}))}catch(w){if(w instanceof LC){C.warn(`[${DA}]: ${w.message} Skipping primitive compression.`);continue}throw w}E.set(s,M);let r=A.createAccessorDef(y);r.count=M.numIndices,A.accessorIndexMap.set(y,G.length),G.push(r),M.numVertices>65534&&Z.getComponentSize(r.componentType)<=2?r.componentType=Z.ComponentType.UNSIGNED_INT:M.numVertices>254&&Z.getComponentSize(r.componentType)<=1&&(r.componentType=Z.ComponentType.UNSIGNED_SHORT);for(let w of o.listSemantics()){let U=o.getAttribute(w);if(M.attributeIDs[w]===void 0)continue;let H=A.createAccessorDef(U);H.count=M.numVertices,A.accessorIndexMap.set(U,G.length),G.push(H)}let N=o.getAttribute(\\\"POSITION\\\").getBuffer()||this.document.getRoot().listBuffers()[0];A.otherBufferViews.has(N)||A.otherBufferViews.set(N,[]),A.otherBufferViews.get(N).push(M.data)}return C.debug(`[${DA}] Compressed ${g.size} primitives.`),A.extensionData[DA]={primitiveHashMap:g,primitiveEncodingMap:E},this}write(A){let I=A.extensionData[DA];for(let C of this.document.getRoot().listMeshes()){let g=A.jsonDoc.json.meshes[A.meshIndexMap.get(C)];for(let E=0;E<C.listPrimitives().length;E++){let Q=C.listPrimitives()[E],o=g.primitives[E],s=I.primitiveHashMap.get(Q);if(!s)continue;let y=I.primitiveEncodingMap.get(s);y&&(o.extensions=o.extensions||{},o.extensions[DA]={bufferView:A.otherBufferViewsIndexMap.get(y.data),attributes:y.attributeIDs})}}if(!I.primitiveHashMap.size){let C=A.jsonDoc.json;C.extensionsUsed=(C.extensionsUsed||[]).filter(g=>g!==DA),C.extensionsRequired=(C.extensionsRequired||[]).filter(g=>g!==DA)}return this}};dC.EXTENSION_NAME=DA;dC.EncoderMethod=kC;function to(B){let A=B.getLogger(),I=new Set,C=new Set,g=0,E=0;for(let M of B.getRoot().listMeshes())for(let r of M.listPrimitives())r.getIndices()?r.getMode()!==RI.Mode.TRIANGLES?(C.add(r),E++):I.add(r):(C.add(r),g++);g>0&&A.warn(`[${DA}] Skipping Draco compression of ${g} non-indexed primitives.`),E>0&&A.warn(`[${DA}] Skipping Draco compression of ${E} non-TRIANGLES primitives.`);let Q=B.getRoot().listAccessors(),o=new Map;for(let M=0;M<Q.length;M++)o.set(Q[M],M);let s=new Map,y=new Set,G=new Map;for(let M of Array.from(I)){let r=qE(M,o);if(y.has(r)){G.set(M,r);continue}if(s.has(M.getIndices())){let N=M.getIndices(),w=N.clone();o.set(w,B.getRoot().listAccessors().length-1),M.swap(N,w)}for(let N of M.listAttributes())if(s.has(N)){let w=N.clone();o.set(w,B.getRoot().listAccessors().length-1),M.swap(N,w)}r=qE(M,o),y.add(r),G.set(M,r),s.set(M.getIndices(),r);for(let N of M.listAttributes())s.set(N,r)}for(let M of Array.from(s.keys())){let r=new Set(M.listParents().map(N=>N.propertyType));if(r.size!==2||!r.has(d.PRIMITIVE)||!r.has(d.ROOT))throw new Error(`[${DA}] Compressed accessors must only be used as indices or vertex attributes.`)}for(let M of Array.from(I)){let r=G.get(M),N=M.getIndices();if(s.get(N)!==r||M.listAttributes().some(w=>s.get(w)!==r))throw new Error(`[${DA}] Draco primitives must share all, or no, accessors.`)}for(let M of Array.from(C)){let r=M.getIndices();if(s.has(r)||M.listAttributes().some(N=>s.has(N)))throw new Error(`[${DA}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return G}function qE(B,A){let I=[],C=B.getIndices();I.push(A.get(C));for(let g of B.listAttributes())I.push(A.get(g));return I.sort().join(\\\"|\\\")}var HI=class B extends tA{init(){this.extensionName=uA,this.propertyType=\\\"Light\\\",this.parentTypes=[d.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:B.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get(\\\"color\\\")}setColor(A){return this.set(\\\"color\\\",A)}getIntensity(){return this.get(\\\"intensity\\\")}setIntensity(A){return this.set(\\\"intensity\\\",A)}getType(){return this.get(\\\"type\\\")}setType(A){return this.set(\\\"type\\\",A)}getRange(){return this.get(\\\"range\\\")}setRange(A){return this.set(\\\"range\\\",A)}getInnerConeAngle(){return this.get(\\\"innerConeAngle\\\")}setInnerConeAngle(A){return this.set(\\\"innerConeAngle\\\",A)}getOuterConeAngle(){return this.get(\\\"outerConeAngle\\\")}setOuterConeAngle(A){return this.set(\\\"outerConeAngle\\\",A)}};HI.EXTENSION_NAME=uA;HI.Type={POINT:\\\"point\\\",SPOT:\\\"spot\\\",DIRECTIONAL:\\\"directional\\\"};var rB=class extends EA{constructor(...A){super(...A),this.extensionName=uA}createLight(A=\\\"\\\"){return new HI(this.document.getGraph(),A)}read(A){let I=A.jsonDoc;if(!I.json.extensions||!I.json.extensions[uA])return this;let E=(I.json.extensions[uA].lights||[]).map(Q=>{var o,s;let y=this.createLight().setName(Q.name||\\\"\\\").setType(Q.type);return Q.color!==void 0&&y.setColor(Q.color),Q.intensity!==void 0&&y.setIntensity(Q.intensity),Q.range!==void 0&&y.setRange(Q.range),((o=Q.spot)==null?void 0:o.innerConeAngle)!==void 0&&y.setInnerConeAngle(Q.spot.innerConeAngle),((s=Q.spot)==null?void 0:s.outerConeAngle)!==void 0&&y.setOuterConeAngle(Q.spot.outerConeAngle),y});return I.json.nodes.forEach((Q,o)=>{if(!Q.extensions||!Q.extensions[uA])return;let s=Q.extensions[uA];A.nodes[o].setExtension(uA,E[s.light])}),this}write(A){let I=A.jsonDoc;if(this.properties.size===0)return this;let C=[],g=new Map;for(let E of this.properties){let Q=E,o={type:Q.getType()};oA.eq(Q.getColor(),[1,1,1])||(o.color=Q.getColor()),Q.getIntensity()!==1&&(o.intensity=Q.getIntensity()),Q.getRange()!=null&&(o.range=Q.getRange()),Q.getName()&&(o.name=Q.getName()),Q.getType()===HI.Type.SPOT&&(o.spot={innerConeAngle:Q.getInnerConeAngle(),outerConeAngle:Q.getOuterConeAngle()}),C.push(o),g.set(Q,C.length-1)}return this.document.getRoot().listNodes().forEach(E=>{let Q=E.getExtension(uA);if(Q){let o=A.nodeIndexMap.get(E),s=I.json.nodes[o];s.extensions=s.extensions||{},s.extensions[uA]={light:g.get(Q)}}}),I.json.extensions=I.json.extensions||{},I.json.extensions[uA]={lights:C},this}};rB.EXTENSION_NAME=uA;var{R:Do,G:eo,B:so}=LA,NB=class extends tA{init(){this.extensionName=vA,this.propertyType=\\\"Anisotropy\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new iA(this.graph,\\\"anisotropyTextureInfo\\\")})}getAnisotropyStrength(){return this.get(\\\"anisotropyStrength\\\")}setAnisotropyStrength(A){return this.set(\\\"anisotropyStrength\\\",A)}getAnisotropyRotation(){return this.get(\\\"anisotropyRotation\\\")}setAnisotropyRotation(A){return this.set(\\\"anisotropyRotation\\\",A)}getAnisotropyTexture(){return this.getRef(\\\"anisotropyTexture\\\")}getAnisotropyTextureInfo(){return this.getRef(\\\"anisotropyTexture\\\")?this.getRef(\\\"anisotropyTextureInfo\\\"):null}setAnisotropyTexture(A){return this.setRef(\\\"anisotropyTexture\\\",A,{channels:Do|eo|so})}};NB.EXTENSION_NAME=vA;var yB=class extends EA{constructor(...A){super(...A),this.extensionName=vA,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createAnisotropy(){return new NB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[vA]){let o=this.createAnisotropy();A.materials[Q].setExtension(vA,o);let s=E.extensions[vA];if(s.anisotropyStrength!==void 0&&o.setAnisotropyStrength(s.anisotropyStrength),s.anisotropyRotation!==void 0&&o.setAnisotropyRotation(s.anisotropyRotation),s.anisotropyTexture!==void 0){let y=s.anisotropyTexture,G=A.textures[g[y.index].source];o.setAnisotropyTexture(G),A.setTextureInfo(o.getAnisotropyTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(vA);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[vA]={};if(g.getAnisotropyStrength()>0&&(o.anisotropyStrength=g.getAnisotropyStrength()),g.getAnisotropyRotation()!==0&&(o.anisotropyRotation=g.getAnisotropyRotation()),g.getAnisotropyTexture()){let s=g.getAnisotropyTexture(),y=g.getAnisotropyTextureInfo();o.anisotropyTexture=A.createTextureInfoDef(s,y)}}}),this}};yB.EXTENSION_NAME=vA;var{R:TE,G:_E,B:ao}=LA,RB=class extends tA{init(){this.extensionName=$A,this.propertyType=\\\"Clearcoat\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new iA(this.graph,\\\"clearcoatTextureInfo\\\"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new iA(this.graph,\\\"clearcoatRoughnessTextureInfo\\\"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new iA(this.graph,\\\"clearcoatNormalTextureInfo\\\")})}getClearcoatFactor(){return this.get(\\\"clearcoatFactor\\\")}setClearcoatFactor(A){return this.set(\\\"clearcoatFactor\\\",A)}getClearcoatTexture(){return this.getRef(\\\"clearcoatTexture\\\")}getClearcoatTextureInfo(){return this.getRef(\\\"clearcoatTexture\\\")?this.getRef(\\\"clearcoatTextureInfo\\\"):null}setClearcoatTexture(A){return this.setRef(\\\"clearcoatTexture\\\",A,{channels:TE})}getClearcoatRoughnessFactor(){return this.get(\\\"clearcoatRoughnessFactor\\\")}setClearcoatRoughnessFactor(A){return this.set(\\\"clearcoatRoughnessFactor\\\",A)}getClearcoatRoughnessTexture(){return this.getRef(\\\"clearcoatRoughnessTexture\\\")}getClearcoatRoughnessTextureInfo(){return this.getRef(\\\"clearcoatRoughnessTexture\\\")?this.getRef(\\\"clearcoatRoughnessTextureInfo\\\"):null}setClearcoatRoughnessTexture(A){return this.setRef(\\\"clearcoatRoughnessTexture\\\",A,{channels:_E})}getClearcoatNormalScale(){return this.get(\\\"clearcoatNormalScale\\\")}setClearcoatNormalScale(A){return this.set(\\\"clearcoatNormalScale\\\",A)}getClearcoatNormalTexture(){return this.getRef(\\\"clearcoatNormalTexture\\\")}getClearcoatNormalTextureInfo(){return this.getRef(\\\"clearcoatNormalTexture\\\")?this.getRef(\\\"clearcoatNormalTextureInfo\\\"):null}setClearcoatNormalTexture(A){return this.setRef(\\\"clearcoatNormalTexture\\\",A,{channels:TE|_E|ao})}};RB.EXTENSION_NAME=$A;var FB=class extends EA{constructor(...A){super(...A),this.extensionName=$A,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createClearcoat(){return new RB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[$A]){let o=this.createClearcoat();A.materials[Q].setExtension($A,o);let s=E.extensions[$A];if(s.clearcoatFactor!==void 0&&o.setClearcoatFactor(s.clearcoatFactor),s.clearcoatRoughnessFactor!==void 0&&o.setClearcoatRoughnessFactor(s.clearcoatRoughnessFactor),s.clearcoatTexture!==void 0){let y=s.clearcoatTexture,G=A.textures[g[y.index].source];o.setClearcoatTexture(G),A.setTextureInfo(o.getClearcoatTextureInfo(),y)}if(s.clearcoatRoughnessTexture!==void 0){let y=s.clearcoatRoughnessTexture,G=A.textures[g[y.index].source];o.setClearcoatRoughnessTexture(G),A.setTextureInfo(o.getClearcoatRoughnessTextureInfo(),y)}if(s.clearcoatNormalTexture!==void 0){let y=s.clearcoatNormalTexture,G=A.textures[g[y.index].source];o.setClearcoatNormalTexture(G),A.setTextureInfo(o.getClearcoatNormalTextureInfo(),y),y.scale!==void 0&&o.setClearcoatNormalScale(y.scale)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension($A);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[$A]={clearcoatFactor:g.getClearcoatFactor(),clearcoatRoughnessFactor:g.getClearcoatRoughnessFactor()};if(g.getClearcoatTexture()){let s=g.getClearcoatTexture(),y=g.getClearcoatTextureInfo();o.clearcoatTexture=A.createTextureInfoDef(s,y)}if(g.getClearcoatRoughnessTexture()){let s=g.getClearcoatRoughnessTexture(),y=g.getClearcoatRoughnessTextureInfo();o.clearcoatRoughnessTexture=A.createTextureInfoDef(s,y)}if(g.getClearcoatNormalTexture()){let s=g.getClearcoatNormalTexture(),y=g.getClearcoatNormalTextureInfo();o.clearcoatNormalTexture=A.createTextureInfoDef(s,y),g.getClearcoatNormalScale()!==1&&(o.clearcoatNormalTexture.scale=g.getClearcoatNormalScale())}}}),this}};FB.EXTENSION_NAME=$A;var{R:no,G:ro,B:No,A:yo}=LA,cB=class extends tA{init(){this.extensionName=AI,this.propertyType=\\\"DiffuseTransmission\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseTransmissionFactor:0,diffuseTransmissionTexture:null,diffuseTransmissionTextureInfo:new iA(this.graph,\\\"diffuseTransmissionTextureInfo\\\"),diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorTexture:null,diffuseTransmissionColorTextureInfo:new iA(this.graph,\\\"diffuseTransmissionColorTextureInfo\\\")})}getDiffuseTransmissionFactor(){return this.get(\\\"diffuseTransmissionFactor\\\")}setDiffuseTransmissionFactor(A){return this.set(\\\"diffuseTransmissionFactor\\\",A)}getDiffuseTransmissionTexture(){return this.getRef(\\\"diffuseTransmissionTexture\\\")}getDiffuseTransmissionTextureInfo(){return this.getRef(\\\"diffuseTransmissionTexture\\\")?this.getRef(\\\"diffuseTransmissionTextureInfo\\\"):null}setDiffuseTransmissionTexture(A){return this.setRef(\\\"diffuseTransmissionTexture\\\",A,{channels:yo})}getDiffuseTransmissionColorFactor(){return this.get(\\\"diffuseTransmissionColorFactor\\\")}setDiffuseTransmissionColorFactor(A){return this.set(\\\"diffuseTransmissionColorFactor\\\",A)}getDiffuseTransmissionColorTexture(){return this.getRef(\\\"diffuseTransmissionColorTexture\\\")}getDiffuseTransmissionColorTextureInfo(){return this.getRef(\\\"diffuseTransmissionColorTexture\\\")?this.getRef(\\\"diffuseTransmissionColorTextureInfo\\\"):null}setDiffuseTransmissionColorTexture(A){return this.setRef(\\\"diffuseTransmissionColorTexture\\\",A,{channels:no|ro|No})}};cB.EXTENSION_NAME=AI;var wB=class extends EA{constructor(...A){super(...A),this.extensionName=AI}createDiffuseTransmission(){return new cB(this.document.getGraph())}read(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[AI]){let o=this.createDiffuseTransmission();A.materials[Q].setExtension(AI,o);let s=E.extensions[AI];if(s.diffuseTransmissionFactor!==void 0&&o.setDiffuseTransmissionFactor(s.diffuseTransmissionFactor),s.diffuseTransmissionColorFactor!==void 0&&o.setDiffuseTransmissionColorFactor(s.diffuseTransmissionColorFactor),s.diffuseTransmissionTexture!==void 0){let y=s.diffuseTransmissionTexture,G=A.textures[g[y.index].source];o.setDiffuseTransmissionTexture(G),A.setTextureInfo(o.getDiffuseTransmissionTextureInfo(),y)}if(s.diffuseTransmissionColorTexture!==void 0){let y=s.diffuseTransmissionColorTexture,G=A.textures[g[y.index].source];o.setDiffuseTransmissionColorTexture(G),A.setTextureInfo(o.getDiffuseTransmissionColorTextureInfo(),y)}}}),this}write(A){let I=A.jsonDoc;for(let C of this.document.getRoot().listMaterials()){let g=C.getExtension(AI);if(!g)continue;let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[AI]={diffuseTransmissionFactor:g.getDiffuseTransmissionFactor(),diffuseTransmissionColorFactor:g.getDiffuseTransmissionColorFactor()};if(g.getDiffuseTransmissionTexture()){let s=g.getDiffuseTransmissionTexture(),y=g.getDiffuseTransmissionTextureInfo();o.diffuseTransmissionTexture=A.createTextureInfoDef(s,y)}if(g.getDiffuseTransmissionColorTexture()){let s=g.getDiffuseTransmissionColorTexture(),y=g.getDiffuseTransmissionColorTextureInfo();o.diffuseTransmissionColorTexture=A.createTextureInfoDef(s,y)}}return this}};wB.EXTENSION_NAME=AI;var GB=class extends tA{init(){this.extensionName=II,this.propertyType=\\\"Dispersion\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{dispersion:0})}getDispersion(){return this.get(\\\"dispersion\\\")}setDispersion(A){return this.set(\\\"dispersion\\\",A)}};GB.EXTENSION_NAME=II;var hB=class extends EA{constructor(...A){super(...A),this.extensionName=II,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createDispersion(){return new GB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){return(A.jsonDoc.json.materials||[]).forEach((g,E)=>{if(g.extensions&&g.extensions[II]){let Q=this.createDispersion();A.materials[E].setExtension(II,Q);let o=g.extensions[II];o.dispersion!==void 0&&Q.setDispersion(o.dispersion)}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(II);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{},Q.extensions[II]={dispersion:g.getDispersion()}}}),this}};hB.EXTENSION_NAME=II;var SB=class extends tA{init(){this.extensionName=gI,this.propertyType=\\\"EmissiveStrength\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get(\\\"emissiveStrength\\\")}setEmissiveStrength(A){return this.set(\\\"emissiveStrength\\\",A)}};SB.EXTENSION_NAME=gI;var MB=class extends EA{constructor(...A){super(...A),this.extensionName=gI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createEmissiveStrength(){return new SB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){return(A.jsonDoc.json.materials||[]).forEach((g,E)=>{if(g.extensions&&g.extensions[gI]){let Q=this.createEmissiveStrength();A.materials[E].setExtension(gI,Q);let o=g.extensions[gI];o.emissiveStrength!==void 0&&Q.setEmissiveStrength(o.emissiveStrength)}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(gI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{},Q.extensions[gI]={emissiveStrength:g.getEmissiveStrength()}}}),this}};MB.EXTENSION_NAME=gI;var KB=class extends tA{init(){this.extensionName=CI,this.propertyType=\\\"IOR\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get(\\\"ior\\\")}setIOR(A){return this.set(\\\"ior\\\",A)}};KB.EXTENSION_NAME=CI;var UB=class extends EA{constructor(...A){super(...A),this.extensionName=CI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createIOR(){return new KB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){return(A.jsonDoc.json.materials||[]).forEach((g,E)=>{if(g.extensions&&g.extensions[CI]){let Q=this.createIOR();A.materials[E].setExtension(CI,Q);let o=g.extensions[CI];o.ior!==void 0&&Q.setIOR(o.ior)}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(CI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{},Q.extensions[CI]={ior:g.getIOR()}}}),this}};UB.EXTENSION_NAME=CI;var{R:Ro,G:Fo}=LA,JB=class extends tA{init(){this.extensionName=BI,this.propertyType=\\\"Iridescence\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new iA(this.graph,\\\"iridescenceTextureInfo\\\"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new iA(this.graph,\\\"iridescenceThicknessTextureInfo\\\")})}getIridescenceFactor(){return this.get(\\\"iridescenceFactor\\\")}setIridescenceFactor(A){return this.set(\\\"iridescenceFactor\\\",A)}getIridescenceTexture(){return this.getRef(\\\"iridescenceTexture\\\")}getIridescenceTextureInfo(){return this.getRef(\\\"iridescenceTexture\\\")?this.getRef(\\\"iridescenceTextureInfo\\\"):null}setIridescenceTexture(A){return this.setRef(\\\"iridescenceTexture\\\",A,{channels:Ro})}getIridescenceIOR(){return this.get(\\\"iridescenceIOR\\\")}setIridescenceIOR(A){return this.set(\\\"iridescenceIOR\\\",A)}getIridescenceThicknessMinimum(){return this.get(\\\"iridescenceThicknessMinimum\\\")}setIridescenceThicknessMinimum(A){return this.set(\\\"iridescenceThicknessMinimum\\\",A)}getIridescenceThicknessMaximum(){return this.get(\\\"iridescenceThicknessMaximum\\\")}setIridescenceThicknessMaximum(A){return this.set(\\\"iridescenceThicknessMaximum\\\",A)}getIridescenceThicknessTexture(){return this.getRef(\\\"iridescenceThicknessTexture\\\")}getIridescenceThicknessTextureInfo(){return this.getRef(\\\"iridescenceThicknessTexture\\\")?this.getRef(\\\"iridescenceThicknessTextureInfo\\\"):null}setIridescenceThicknessTexture(A){return this.setRef(\\\"iridescenceThicknessTexture\\\",A,{channels:Fo})}};JB.EXTENSION_NAME=BI;var YB=class extends EA{constructor(...A){super(...A),this.extensionName=BI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createIridescence(){return new JB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[BI]){let o=this.createIridescence();A.materials[Q].setExtension(BI,o);let s=E.extensions[BI];if(s.iridescenceFactor!==void 0&&o.setIridescenceFactor(s.iridescenceFactor),s.iridescenceIor!==void 0&&o.setIridescenceIOR(s.iridescenceIor),s.iridescenceThicknessMinimum!==void 0&&o.setIridescenceThicknessMinimum(s.iridescenceThicknessMinimum),s.iridescenceThicknessMaximum!==void 0&&o.setIridescenceThicknessMaximum(s.iridescenceThicknessMaximum),s.iridescenceTexture!==void 0){let y=s.iridescenceTexture,G=A.textures[g[y.index].source];o.setIridescenceTexture(G),A.setTextureInfo(o.getIridescenceTextureInfo(),y)}if(s.iridescenceThicknessTexture!==void 0){let y=s.iridescenceThicknessTexture,G=A.textures[g[y.index].source];o.setIridescenceThicknessTexture(G),A.setTextureInfo(o.getIridescenceThicknessTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(BI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[BI]={};if(g.getIridescenceFactor()>0&&(o.iridescenceFactor=g.getIridescenceFactor()),g.getIridescenceIOR()!==1.3&&(o.iridescenceIor=g.getIridescenceIOR()),g.getIridescenceThicknessMinimum()!==100&&(o.iridescenceThicknessMinimum=g.getIridescenceThicknessMinimum()),g.getIridescenceThicknessMaximum()!==400&&(o.iridescenceThicknessMaximum=g.getIridescenceThicknessMaximum()),g.getIridescenceTexture()){let s=g.getIridescenceTexture(),y=g.getIridescenceTextureInfo();o.iridescenceTexture=A.createTextureInfoDef(s,y)}if(g.getIridescenceThicknessTexture()){let s=g.getIridescenceThicknessTexture(),y=g.getIridescenceThicknessTextureInfo();o.iridescenceThicknessTexture=A.createTextureInfoDef(s,y)}}}),this}};YB.EXTENSION_NAME=BI;var{R:mE,G:xE,B:bE,A:VE}=LA,kB=class extends tA{init(){this.extensionName=QI,this.propertyType=\\\"PBRSpecularGlossiness\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new iA(this.graph,\\\"diffuseTextureInfo\\\"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new iA(this.graph,\\\"specularGlossinessTextureInfo\\\")})}getDiffuseFactor(){return this.get(\\\"diffuseFactor\\\")}setDiffuseFactor(A){return this.set(\\\"diffuseFactor\\\",A)}getDiffuseTexture(){return this.getRef(\\\"diffuseTexture\\\")}getDiffuseTextureInfo(){return this.getRef(\\\"diffuseTexture\\\")?this.getRef(\\\"diffuseTextureInfo\\\"):null}setDiffuseTexture(A){return this.setRef(\\\"diffuseTexture\\\",A,{channels:mE|xE|bE|VE,isColor:!0})}getSpecularFactor(){return this.get(\\\"specularFactor\\\")}setSpecularFactor(A){return this.set(\\\"specularFactor\\\",A)}getGlossinessFactor(){return this.get(\\\"glossinessFactor\\\")}setGlossinessFactor(A){return this.set(\\\"glossinessFactor\\\",A)}getSpecularGlossinessTexture(){return this.getRef(\\\"specularGlossinessTexture\\\")}getSpecularGlossinessTextureInfo(){return this.getRef(\\\"specularGlossinessTexture\\\")?this.getRef(\\\"specularGlossinessTextureInfo\\\"):null}setSpecularGlossinessTexture(A){return this.setRef(\\\"specularGlossinessTexture\\\",A,{channels:mE|xE|bE|VE})}};kB.EXTENSION_NAME=QI;var LB=class extends EA{constructor(...A){super(...A),this.extensionName=QI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createPBRSpecularGlossiness(){return new kB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[QI]){let o=this.createPBRSpecularGlossiness();A.materials[Q].setExtension(QI,o);let s=E.extensions[QI];if(s.diffuseFactor!==void 0&&o.setDiffuseFactor(s.diffuseFactor),s.specularFactor!==void 0&&o.setSpecularFactor(s.specularFactor),s.glossinessFactor!==void 0&&o.setGlossinessFactor(s.glossinessFactor),s.diffuseTexture!==void 0){let y=s.diffuseTexture,G=A.textures[g[y.index].source];o.setDiffuseTexture(G),A.setTextureInfo(o.getDiffuseTextureInfo(),y)}if(s.specularGlossinessTexture!==void 0){let y=s.specularGlossinessTexture,G=A.textures[g[y.index].source];o.setSpecularGlossinessTexture(G),A.setTextureInfo(o.getSpecularGlossinessTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(QI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[QI]={diffuseFactor:g.getDiffuseFactor(),specularFactor:g.getSpecularFactor(),glossinessFactor:g.getGlossinessFactor()};if(g.getDiffuseTexture()){let s=g.getDiffuseTexture(),y=g.getDiffuseTextureInfo();o.diffuseTexture=A.createTextureInfoDef(s,y)}if(g.getSpecularGlossinessTexture()){let s=g.getSpecularGlossinessTexture(),y=g.getSpecularGlossinessTextureInfo();o.specularGlossinessTexture=A.createTextureInfoDef(s,y)}}}),this}};LB.EXTENSION_NAME=QI;var{R:co,G:wo,B:Go,A:ho}=LA,dB=class extends tA{init(){this.extensionName=EI,this.propertyType=\\\"Sheen\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new iA(this.graph,\\\"sheenColorTextureInfo\\\"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new iA(this.graph,\\\"sheenRoughnessTextureInfo\\\")})}getSheenColorFactor(){return this.get(\\\"sheenColorFactor\\\")}setSheenColorFactor(A){return this.set(\\\"sheenColorFactor\\\",A)}getSheenColorTexture(){return this.getRef(\\\"sheenColorTexture\\\")}getSheenColorTextureInfo(){return this.getRef(\\\"sheenColorTexture\\\")?this.getRef(\\\"sheenColorTextureInfo\\\"):null}setSheenColorTexture(A){return this.setRef(\\\"sheenColorTexture\\\",A,{channels:co|wo|Go,isColor:!0})}getSheenRoughnessFactor(){return this.get(\\\"sheenRoughnessFactor\\\")}setSheenRoughnessFactor(A){return this.set(\\\"sheenRoughnessFactor\\\",A)}getSheenRoughnessTexture(){return this.getRef(\\\"sheenRoughnessTexture\\\")}getSheenRoughnessTextureInfo(){return this.getRef(\\\"sheenRoughnessTexture\\\")?this.getRef(\\\"sheenRoughnessTextureInfo\\\"):null}setSheenRoughnessTexture(A){return this.setRef(\\\"sheenRoughnessTexture\\\",A,{channels:ho})}};dB.EXTENSION_NAME=EI;var pB=class extends EA{constructor(...A){super(...A),this.extensionName=EI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createSheen(){return new dB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[EI]){let o=this.createSheen();A.materials[Q].setExtension(EI,o);let s=E.extensions[EI];if(s.sheenColorFactor!==void 0&&o.setSheenColorFactor(s.sheenColorFactor),s.sheenRoughnessFactor!==void 0&&o.setSheenRoughnessFactor(s.sheenRoughnessFactor),s.sheenColorTexture!==void 0){let y=s.sheenColorTexture,G=A.textures[g[y.index].source];o.setSheenColorTexture(G),A.setTextureInfo(o.getSheenColorTextureInfo(),y)}if(s.sheenRoughnessTexture!==void 0){let y=s.sheenRoughnessTexture,G=A.textures[g[y.index].source];o.setSheenRoughnessTexture(G),A.setTextureInfo(o.getSheenRoughnessTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(EI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[EI]={sheenColorFactor:g.getSheenColorFactor(),sheenRoughnessFactor:g.getSheenRoughnessFactor()};if(g.getSheenColorTexture()){let s=g.getSheenColorTexture(),y=g.getSheenColorTextureInfo();o.sheenColorTexture=A.createTextureInfoDef(s,y)}if(g.getSheenRoughnessTexture()){let s=g.getSheenRoughnessTexture(),y=g.getSheenRoughnessTextureInfo();o.sheenRoughnessTexture=A.createTextureInfoDef(s,y)}}}),this}};pB.EXTENSION_NAME=EI;var{R:So,G:Mo,B:Ko,A:Uo}=LA,fB=class extends tA{init(){this.extensionName=iI,this.propertyType=\\\"Specular\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new iA(this.graph,\\\"specularTextureInfo\\\"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new iA(this.graph,\\\"specularColorTextureInfo\\\")})}getSpecularFactor(){return this.get(\\\"specularFactor\\\")}setSpecularFactor(A){return this.set(\\\"specularFactor\\\",A)}getSpecularColorFactor(){return this.get(\\\"specularColorFactor\\\")}setSpecularColorFactor(A){return this.set(\\\"specularColorFactor\\\",A)}getSpecularTexture(){return this.getRef(\\\"specularTexture\\\")}getSpecularTextureInfo(){return this.getRef(\\\"specularTexture\\\")?this.getRef(\\\"specularTextureInfo\\\"):null}setSpecularTexture(A){return this.setRef(\\\"specularTexture\\\",A,{channels:Uo})}getSpecularColorTexture(){return this.getRef(\\\"specularColorTexture\\\")}getSpecularColorTextureInfo(){return this.getRef(\\\"specularColorTexture\\\")?this.getRef(\\\"specularColorTextureInfo\\\"):null}setSpecularColorTexture(A){return this.setRef(\\\"specularColorTexture\\\",A,{channels:So|Mo|Ko,isColor:!0})}};fB.EXTENSION_NAME=iI;var HB=class extends EA{constructor(...A){super(...A),this.extensionName=iI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createSpecular(){return new fB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[iI]){let o=this.createSpecular();A.materials[Q].setExtension(iI,o);let s=E.extensions[iI];if(s.specularFactor!==void 0&&o.setSpecularFactor(s.specularFactor),s.specularColorFactor!==void 0&&o.setSpecularColorFactor(s.specularColorFactor),s.specularTexture!==void 0){let y=s.specularTexture,G=A.textures[g[y.index].source];o.setSpecularTexture(G),A.setTextureInfo(o.getSpecularTextureInfo(),y)}if(s.specularColorTexture!==void 0){let y=s.specularColorTexture,G=A.textures[g[y.index].source];o.setSpecularColorTexture(G),A.setTextureInfo(o.getSpecularColorTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(iI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[iI]={};if(g.getSpecularFactor()!==1&&(o.specularFactor=g.getSpecularFactor()),oA.eq(g.getSpecularColorFactor(),[1,1,1])||(o.specularColorFactor=g.getSpecularColorFactor()),g.getSpecularTexture()){let s=g.getSpecularTexture(),y=g.getSpecularTextureInfo();o.specularTexture=A.createTextureInfoDef(s,y)}if(g.getSpecularColorTexture()){let s=g.getSpecularColorTexture(),y=g.getSpecularColorTextureInfo();o.specularColorTexture=A.createTextureInfoDef(s,y)}}}),this}};HB.EXTENSION_NAME=iI;var{R:Jo}=LA,uB=class extends tA{init(){this.extensionName=oI,this.propertyType=\\\"Transmission\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new iA(this.graph,\\\"transmissionTextureInfo\\\")})}getTransmissionFactor(){return this.get(\\\"transmissionFactor\\\")}setTransmissionFactor(A){return this.set(\\\"transmissionFactor\\\",A)}getTransmissionTexture(){return this.getRef(\\\"transmissionTexture\\\")}getTransmissionTextureInfo(){return this.getRef(\\\"transmissionTexture\\\")?this.getRef(\\\"transmissionTextureInfo\\\"):null}setTransmissionTexture(A){return this.setRef(\\\"transmissionTexture\\\",A,{channels:Jo})}};uB.EXTENSION_NAME=oI;var lB=class extends EA{constructor(...A){super(...A),this.extensionName=oI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createTransmission(){return new uB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[oI]){let o=this.createTransmission();A.materials[Q].setExtension(oI,o);let s=E.extensions[oI];if(s.transmissionFactor!==void 0&&o.setTransmissionFactor(s.transmissionFactor),s.transmissionTexture!==void 0){let y=s.transmissionTexture,G=A.textures[g[y.index].source];o.setTransmissionTexture(G),A.setTextureInfo(o.getTransmissionTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(oI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[oI]={transmissionFactor:g.getTransmissionFactor()};if(g.getTransmissionTexture()){let s=g.getTransmissionTexture(),y=g.getTransmissionTextureInfo();o.transmissionTexture=A.createTextureInfoDef(s,y)}}}),this}};lB.EXTENSION_NAME=oI;var qB=class extends tA{init(){this.extensionName=FI,this.propertyType=\\\"Unlit\\\",this.parentTypes=[d.MATERIAL]}};qB.EXTENSION_NAME=FI;var TB=class extends EA{constructor(...A){super(...A),this.extensionName=FI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createUnlit(){return new qB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){return(A.jsonDoc.json.materials||[]).forEach((C,g)=>{C.extensions&&C.extensions[FI]&&A.materials[g].setExtension(FI,this.createUnlit())}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{if(C.getExtension(FI)){let g=A.materialIndexMap.get(C),E=I.json.materials[g];E.extensions=E.extensions||{},E.extensions[FI]={}}}),this}};TB.EXTENSION_NAME=FI;var _B=class extends tA{init(){this.extensionName=wA,this.propertyType=\\\"Mapping\\\",this.parentTypes=[\\\"MappingList\\\"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:new QA})}getMaterial(){return this.getRef(\\\"material\\\")}setMaterial(A){return this.setRef(\\\"material\\\",A)}addVariant(A){return this.addRef(\\\"variants\\\",A)}removeVariant(A){return this.removeRef(\\\"variants\\\",A)}listVariants(){return this.listRefs(\\\"variants\\\")}};_B.EXTENSION_NAME=wA;var mB=class extends tA{init(){this.extensionName=wA,this.propertyType=\\\"MappingList\\\",this.parentTypes=[d.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:new QA})}addMapping(A){return this.addRef(\\\"mappings\\\",A)}removeMapping(A){return this.removeRef(\\\"mappings\\\",A)}listMappings(){return this.listRefs(\\\"mappings\\\")}};mB.EXTENSION_NAME=wA;var pC=class extends tA{init(){this.extensionName=wA,this.propertyType=\\\"Variant\\\",this.parentTypes=[\\\"MappingList\\\"]}};pC.EXTENSION_NAME=wA;var xB=class extends EA{constructor(...A){super(...A),this.extensionName=wA}createMappingList(){return new mB(this.document.getGraph())}createVariant(A=\\\"\\\"){return new pC(this.document.getGraph(),A)}createMapping(){return new _B(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter(A=>A instanceof pC)}read(A){let I=A.jsonDoc;if(!I.json.extensions||!I.json.extensions[wA])return this;let E=(I.json.extensions[wA].variants||[]).map(o=>this.createVariant().setName(o.name||\\\"\\\"));return(I.json.meshes||[]).forEach((o,s)=>{let y=A.meshes[s];(o.primitives||[]).forEach((M,r)=>{if(!M.extensions||!M.extensions[wA])return;let N=this.createMappingList(),w=M.extensions[wA];for(let U of w.mappings){let H=this.createMapping();U.material!==void 0&&H.setMaterial(A.materials[U.material]);for(let R of U.variants||[])H.addVariant(E[R]);N.addMapping(H)}y.listPrimitives()[r].setExtension(wA,N)})}),this}write(A){let I=A.jsonDoc,C=this.listVariants();if(!C.length)return this;let g=[],E=new Map;for(let Q of C)E.set(Q,g.length),g.push(A.createPropertyDef(Q));for(let Q of this.document.getRoot().listMeshes()){let o=A.meshIndexMap.get(Q);Q.listPrimitives().forEach((s,y)=>{let G=s.getExtension(wA);if(!G)return;let M=A.jsonDoc.json.meshes[o].primitives[y],r=G.listMappings().map(N=>{let w=A.createPropertyDef(N),U=N.getMaterial();return U&&(w.material=A.materialIndexMap.get(U)),w.variants=N.listVariants().map(H=>E.get(H)),w});M.extensions=M.extensions||{},M.extensions[wA]={mappings:r}})}return I.json.extensions=I.json.extensions||{},I.json.extensions[wA]={variants:g},this}};xB.EXTENSION_NAME=wA;var{G:Yo}=LA,bB=class extends tA{init(){this.extensionName=tI,this.propertyType=\\\"Volume\\\",this.parentTypes=[d.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new iA(this.graph,\\\"thicknessTexture\\\"),attenuationDistance:1/0,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get(\\\"thicknessFactor\\\")}setThicknessFactor(A){return this.set(\\\"thicknessFactor\\\",A)}getThicknessTexture(){return this.getRef(\\\"thicknessTexture\\\")}getThicknessTextureInfo(){return this.getRef(\\\"thicknessTexture\\\")?this.getRef(\\\"thicknessTextureInfo\\\"):null}setThicknessTexture(A){return this.setRef(\\\"thicknessTexture\\\",A,{channels:Yo})}getAttenuationDistance(){return this.get(\\\"attenuationDistance\\\")}setAttenuationDistance(A){return this.set(\\\"attenuationDistance\\\",A)}getAttenuationColor(){return this.get(\\\"attenuationColor\\\")}setAttenuationColor(A){return this.set(\\\"attenuationColor\\\",A)}};bB.EXTENSION_NAME=tI;var VB=class extends EA{constructor(...A){super(...A),this.extensionName=tI,this.prereadTypes=[d.MESH],this.prewriteTypes=[d.MESH]}createVolume(){return new bB(this.document.getGraph())}read(A){return this}write(A){return this}preread(A){let I=A.jsonDoc,C=I.json.materials||[],g=I.json.textures||[];return C.forEach((E,Q)=>{if(E.extensions&&E.extensions[tI]){let o=this.createVolume();A.materials[Q].setExtension(tI,o);let s=E.extensions[tI];if(s.thicknessFactor!==void 0&&o.setThicknessFactor(s.thicknessFactor),s.attenuationDistance!==void 0&&o.setAttenuationDistance(s.attenuationDistance),s.attenuationColor!==void 0&&o.setAttenuationColor(s.attenuationColor),s.thicknessTexture!==void 0){let y=s.thicknessTexture,G=A.textures[g[y.index].source];o.setThicknessTexture(G),A.setTextureInfo(o.getThicknessTextureInfo(),y)}}}),this}prewrite(A){let I=A.jsonDoc;return this.document.getRoot().listMaterials().forEach(C=>{let g=C.getExtension(tI);if(g){let E=A.materialIndexMap.get(C),Q=I.json.materials[E];Q.extensions=Q.extensions||{};let o=Q.extensions[tI]={};if(g.getThicknessFactor()>0&&(o.thicknessFactor=g.getThicknessFactor()),Number.isFinite(g.getAttenuationDistance())&&(o.attenuationDistance=g.getAttenuationDistance()),oA.eq(g.getAttenuationColor(),[1,1,1])||(o.attenuationColor=g.getAttenuationColor()),g.getThicknessTexture()){let s=g.getThicknessTexture(),y=g.getThicknessTextureInfo();o.thicknessTexture=A.createTextureInfoDef(s,y)}}}),this}};VB.EXTENSION_NAME=tI;var WB=class extends EA{constructor(...A){super(...A),this.extensionName=WE}read(A){return this}write(A){return this}};WB.EXTENSION_NAME=WE;var RQ=class{match(A){return A[0]===171&&A[1]===75&&A[2]===84&&A[3]===88&&A[4]===32&&A[5]===50&&A[6]===48&&A[7]===187&&A[8]===13&&A[9]===10&&A[10]===26&&A[11]===10}getSize(A){let I=DB(A);return[I.pixelWidth,I.pixelHeight]}getChannels(A){let C=DB(A).dataFormatDescriptor[0];if(C.colorModel===163)return C.samples.length===2&&(C.samples[1].channelType&15)===15?4:3;if(C.colorModel===166)return(C.samples[0].channelType&15)===3?4:3;throw new Error(`Unexpected KTX2 colorModel, \\\"${C.colorModel}\\\".`)}getVRAMByteLength(A){let I=DB(A),C=this.getChannels(A)>3,g=0;for(let E=0;E<I.levels.length;E++){let Q=I.levels[E];if(Q.uncompressedByteLength)g+=Q.uncompressedByteLength;else{let o=Math.max(1,Math.floor(I.pixelWidth/Math.pow(2,E))),s=Math.max(1,Math.floor(I.pixelHeight/Math.pow(2,E))),y=C?16:8;g+=o/4*(s/4)*y}}return g}},OB=class extends EA{constructor(...A){super(...A),this.extensionName=UC,this.prereadTypes=[d.TEXTURE]}static register(){JA.registerFormat(\\\"image/ktx2\\\",new RQ)}preread(A){return A.jsonDoc.json.textures.forEach(I=>{if(I.extensions&&I.extensions[UC]){let C=I.extensions[UC];I.source=C.source}}),this}read(A){return this}write(A){let I=A.jsonDoc;return this.document.getRoot().listTextures().forEach(C=>{if(C.getMimeType()===\\\"image/ktx2\\\"){let g=A.imageIndexMap.get(C);I.json.textures.forEach(E=>{E.source===g&&(E.extensions=E.extensions||{},E.extensions[UC]={source:E.source},delete E.source)})}}),this}};OB.EXTENSION_NAME=UC;var PB=class extends tA{init(){this.extensionName=DI,this.propertyType=\\\"Transform\\\",this.parentTypes=[d.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get(\\\"offset\\\")}setOffset(A){return this.set(\\\"offset\\\",A)}getRotation(){return this.get(\\\"rotation\\\")}setRotation(A){return this.set(\\\"rotation\\\",A)}getScale(){return this.get(\\\"scale\\\")}setScale(A){return this.set(\\\"scale\\\",A)}getTexCoord(){return this.get(\\\"texCoord\\\")}setTexCoord(A){return this.set(\\\"texCoord\\\",A)}};PB.EXTENSION_NAME=DI;var XB=class extends EA{constructor(...A){super(...A),this.extensionName=DI}createTransform(){return new PB(this.document.getGraph())}read(A){for(let[I,C]of Array.from(A.textureInfos.entries())){if(!C.extensions||!C.extensions[DI])continue;let g=this.createTransform(),E=C.extensions[DI];E.offset!==void 0&&g.setOffset(E.offset),E.rotation!==void 0&&g.setRotation(E.rotation),E.scale!==void 0&&g.setScale(E.scale),E.texCoord!==void 0&&g.setTexCoord(E.texCoord),I.setExtension(DI,g)}return this}write(A){let I=Array.from(A.textureInfoDefMap.entries());for(let[C,g]of I){let E=C.getExtension(DI);if(!E)continue;g.extensions=g.extensions||{};let Q={},o=oA.eq;o(E.getOffset(),[0,0])||(Q.offset=E.getOffset()),E.getRotation()!==0&&(Q.rotation=E.getRotation()),o(E.getScale(),[1,1])||(Q.scale=E.getScale()),E.getTexCoord()!=null&&(Q.texCoord=E.getTexCoord()),g.extensions[DI]=Q}return this}};XB.EXTENSION_NAME=DI;var ko=[d.ROOT,d.SCENE,d.NODE,d.MESH,d.MATERIAL,d.TEXTURE,d.ANIMATION],ZB=class extends tA{init(){this.extensionName=lA,this.propertyType=\\\"Packet\\\",this.parentTypes=ko}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get(\\\"context\\\")}setContext(A){return this.set(\\\"context\\\",eI({},A))}listProperties(){return Object.keys(this.get(\\\"properties\\\"))}getProperty(A){let I=this.get(\\\"properties\\\");return A in I?I[A]:null}setProperty(A,I){this._assertContext(A);let C=eI({},this.get(\\\"properties\\\"));return I?C[A]=I:delete C[A],this.set(\\\"properties\\\",C)}toJSONLD(){let A=aQ(this.get(\\\"context\\\")),I=aQ(this.get(\\\"properties\\\"));return eI({\\\"@context\\\":A},I)}fromJSONLD(A){A=aQ(A);let I=A[\\\"@context\\\"];return I&&this.set(\\\"context\\\",I),delete A[\\\"@context\\\"],this.set(\\\"properties\\\",A)}_assertContext(A){if(!(A.split(\\\":\\\")[0]in this.get(\\\"context\\\")))throw new Error(`${lA}: Missing context for term, \\\"${A}\\\".`)}};ZB.EXTENSION_NAME=lA;function aQ(B){return JSON.parse(JSON.stringify(B))}var jB=class extends EA{constructor(...A){super(...A),this.extensionName=lA}createPacket(){return new ZB(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(A){var I;let C=(I=A.jsonDoc.json.extensions)==null?void 0:I[lA];if(!C||!C.packets)return this;let g=A.jsonDoc.json,E=this.document.getRoot(),Q=C.packets.map(y=>this.createPacket().fromJSONLD(y)),o=[[g.asset],g.scenes,g.nodes,g.meshes,g.materials,g.images,g.animations],s=[[E],E.listScenes(),E.listNodes(),E.listMeshes(),E.listMaterials(),E.listTextures(),E.listAnimations()];for(let y=0;y<o.length;y++){let G=o[y]||[];for(let M=0;M<G.length;M++){let r=G[M];if(r.extensions&&r.extensions[lA]){let N=r.extensions[lA];s[y][M].setExtension(lA,Q[N.packet])}}}return this}write(A){let{json:I}=A.jsonDoc,C=[];for(let g of this.properties){C.push(g.toJSONLD());for(let E of g.listParents()){let Q;switch(E.propertyType){case d.ROOT:Q=I.asset;break;case d.SCENE:Q=I.scenes[A.sceneIndexMap.get(E)];break;case d.NODE:Q=I.nodes[A.nodeIndexMap.get(E)];break;case d.MESH:Q=I.meshes[A.meshIndexMap.get(E)];break;case d.MATERIAL:Q=I.materials[A.materialIndexMap.get(E)];break;case d.TEXTURE:Q=I.images[A.imageIndexMap.get(E)];break;case d.ANIMATION:Q=I.animations[A.animationIndexMap.get(E)];break;default:Q=null,this.document.getLogger().warn(`[${lA}]: Unsupported parent property, \\\"${E.propertyType}\\\"`);break}Q&&(Q.extensions=Q.extensions||{},Q.extensions[lA]={packet:C.length-1})}}return C.length>0&&(I.extensions=I.extensions||{},I.extensions[lA]={packets:C}),this}};jB.EXTENSION_NAME=lA;var Lo=[dC,rB,yB,FB,wB,hB,MB,UB,YB,LB,HB,pB,lB,TB,xB,VB,WB,OB,XB,jB],jE=[sB,YC,aB,nB,...Lo];var zE=\\\"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IARBEGokAA8LECAAC74CAQZ/IAIgAWsiBUECdSIGIAAoAggiAyAAKAIAIgRrQQJ1TQRAIAEgACgCBCAEayIFaiIDIAIgBiAFQQJ1IghLGyIFIAFrIQcgASAFRwRAIAQgASAHEA4aCyAGIAhLBEAgACgCBCEBIAIgBUcEQANAIAEgAygCADYCACABQQRqIQEgA0EEaiIDIAJHDQALCyAAIAE2AgQPCyAAIAQgB2o2AgQPCyAEBEAgACAENgIEIAQQByAAQQA2AgggAEIANwIAQQAhAwsCQCAFQQBIDQBB/////wMgA0EBdiIEIAYgBCAGSxsgA0H8////B08bIgNBgICAgARPDQAgACADQQJ0IgQQCCIDNgIAIAAgAyAEajYCCCAAIAEgAkcEfyADIAEgBUEEa0F8cUEEaiIAEAkgAGoFIAMLNgIEDwsQCwALeQEDfyAALQAMIQMCQCAAKAIIIgFB/x9LDQAgACgCBCICQQBMDQAgACACQQFrIgI2AgQgACgCACACai0AACABQQh0ciEBCyAAQQAgA2tB/wFxIgAgAUEIdmwiAyABQf8BcSICaiABIAAgA2prIAAgAksiABs2AgggAAsJAEGMCRCIAgALBABBAQttAgN/AX4CQCAAQQVLDQAgAikDECIGIAIpAwhZDQAgAigCACAGp2otAAAhBCACIAZCAXw3AxAgASAEwCIFQQBIBH8gAEEBaiABIAIQF0UNASAFQf8AcSABKAIAQQd0cgUgBAs2AgBBASEDCyADC4EBAQJ/AkACQCACQQRPBEAgACABckEDcQ0BA0AgACgCACABKAIARw0CIAFBBGohASAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0BCwNAIAAtAAAiAyABLQAAIgRGBEAgAUEBaiEBIABBAWohACACQQFrIgINAQwCCwsgAyAEaw8LQQALegECfyAABEAgACgCWCEBIABBADYCWCABBEAgASgCCCICBEAgASACNgIMIAIQBwsgARAHCyAAKAJEIgEEQCAAIAE2AkggARAHCyAAKAJAIQEgAEEANgJAIAEEQCABKAIAIgIEQCABIAI2AgQgAhAHCyABEAcLIAAQBwsLNQAgAEIANwMIIABBADYCACAAQgA3AxAgAEEANgIgIABCADcCGCAAQQA7ASYgAEEAOgAkIAALkwEAIABBfzYCACAAQgA3AgQgAEIANwIgIABBAToAHCAAQgA3AhQgAEIANwIMIABCADcCKCAAQgA3AjAgAEIANwI4IABCADcCQCAAQgA3AkwgAEIANwJUIABCADcCXCAAIABBBGo2AkggAEIANwJoIABBAToAZCAAQgA3AnAgAEIANwJ4IABCADcCgAEgAEIANwKIAQsEAEEAC+8BAQZ/IAAoAgQiAiAAKAIIRwRAIAIgASgCADYCACAAIAJBBGo2AgQPCwJAIAIgACgCACIFayIDQQJ1IgdBAWoiBEGAgICABEkEQEH/////AyADQQF2IgYgBCAEIAZJGyADQfz///8HTxsiBAR/IARBgICAgARPDQIgBEECdBAIBUEACyIGIAdBAnRqIgMgASgCADYCACADQQRqIQEgAiAFRwRAA0AgA0EEayIDIAJBBGsiAigCADYCACACIAVHDQALCyAAIAYgBEECdGo2AgggACABNgIEIAAgAzYCACAFBEAgBRAHCw8LEAsACxAPAAsGACAAEAcLaQEDfwJAIAAiAUEDcQRAA0AgAS0AAEUNAiABQQFqIgFBA3ENAAsLA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCwkAQdAJEIACAAvtAgEDfyMAQRBrIgQkACAAQQA2AgQCQAJAIAFFDQACQCABIAAoAggiA0EFdCIFTQRAIAAgATYCBAwBCyAEQQA2AgggBEIANwMAIAFBAEgNAiAEIAVB/v///wNNBH8gA0EGdCIDIAFBH2pBYHEiBSADIAVLGwVB/////wcLED4gACgCACEDIAAgBCgCADYCACAEIAM2AgAgACgCBCEFIAAgATYCBCAEIAU2AgQgACgCCCEFIAAgBCgCCDYCCCAEIAU2AgggA0UNACADEAcLIAFBBXYhAyAAKAIAIQAgAi0AAARAIAFBIE8EQCAAQf8BIANBAnQQChoLIAFBYHEgAUYNASAAIANBAnRqIgAgACgCAEF/QSAgAUEfcWt2cjYCAAwBCyABQSBPBEAgAEEAIANBAnQQChoLIAFBYHEgAUYNACAAIANBAnRqIgAgACgCAEF/QSAgAUEfcWt2QX9zcTYCAAsgBEEQaiQADwsQCwALmgQBCH8gASAAKAIIIgMgACgCBCIEa0ECdU0EQAJAIAFFDQAgBCEDIAFBB3EiBgRAA0AgAyACKAIANgIAIANBBGohAyAIQQFqIgggBkcNAAsLIAFBAnQgBGohBCABQQFrQf////8DcUEHSQ0AA0AgAyACKAIANgIAIAMgAigCADYCBCADIAIoAgA2AgggAyACKAIANgIMIAMgAigCADYCECADIAIoAgA2AhQgAyACKAIANgIYIAMgAigCADYCHCADQSBqIgMgBEcNAAsLIAAgBDYCBA8LAkAgBCAAKAIAIgdrIgpBAnUiBiABaiIFQYCAgIAESQRAQf////8DIAMgB2siA0EBdiIEIAUgBCAFSxsgA0H8////B08bIgUEQCAFQYCAgIAETw0CIAVBAnQQCCEJCyAJIAZBAnRqIgYhAyABQQdxIgQEQANAIAMgAigCADYCACADQQRqIQMgCEEBaiIIIARHDQALCyAGIAFBAnRqIQQgAUEBa0H/////A3FBB08EQANAIAMgAigCADYCACADIAIoAgA2AgQgAyACKAIANgIIIAMgAigCADYCDCADIAIoAgA2AhAgAyACKAIANgIUIAMgAigCADYCGCADIAIoAgA2AhwgA0EgaiIDIARHDQALCyAJIAcgChAOIQEgACAENgIEIAAgATYCACAAIAEgBUECdGo2AgggBwRAIAcQBwsPCxALAAsQDwALRAAgAQRAIAAgASgCABAjIAAgASgCBBAjIAEoAhwiAARAIAEgADYCICAAEAcLIAEsABtBAEgEQCABKAIQEAcLIAEQBwsLWwAgAQRAIAAgASgCABAkIAAgASgCBBAkIAEoAhwhACABQQA2AhwgAARAIABBDGogACgCEBAkIAAgACgCBBAjIAAQBwsgASwAG0EASARAIAEoAhAQBwsgARAHCwuLDwQFfwJ9AnwBfgJAIANFDQACfwJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHEEBaw4LAAECAwQFBgcICQoMCyAALQAYIgQgAkH/AXEiBSAEIAVJGwRAIAAoAgAiBCgCACAAKQMwIAApAyggAa1+fKdqIQEgBCgCBCEHA0AgASAHTw0NIAMgBkEDdGogATAAADcDACABQQFqIQEgBkEBaiIGIAAtABgiBCAFIAQgBUkbSQ0ACwsgBCAFTw0LIAMgBEEDdGohAyACQf8BcSAEawwKCyAALQAYIgQgAkH/AXEi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ACADKAIANgIAIAMgBTYCACAAKAIEIQYgACADKAIENgIEIAMgBjYCBCAAKAIIIQYgACADKAIINgIIIAMgBjYCCCAFRQ0AIAUQBwsgBEUNASACBEAgASABKAIAQX8gAnRBf0EgIAJrIgAgACAEIAAgBEkbIgBrdnFBf3NxNgIAIAQgAGshBCABQQRqIQELIARBBXYhACAEQSBPBEAgAUEAIABBAnQQChoLIAQgBEFgcUYNASABIABBAnRqIgAgACgCAEF/QSAgBEEfcWt2QX9zcTYCAAwBCyAAIAE2AgQLIANBEGokAA8LEAsAC20CA38BfgJAIABBBUsNACACKQMQIgYgAikDCFkNACACKAIAIAanai0AACEEIAIgBkIBfDcDECABIATAIgVBAEgEfyAAQQFqIAEgAhAqRQ0BIAVB/wBxIAEoAgBBB3RyBSAECzYCAEEBIQMLIAMLdAEBfyACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAEoAgQiAi0AACEBAkAgACgCBCIDLQAAIgBFDQAgACABRw0AA0AgAi0AASEBIAMtAAEiAEUNASACQQFqIQIgA0EBaiEDIAAgAUYNAAsLIAAgAUYLJwEBfyAAQQA2AhAgACAAKAIAIgE2AgQgACABNgIMIAEEQCABEAcLCwQAQQAL4ggBBH8jAEEQayIEJAAgACABNgIMIABBADYCCCAAQgA3AgAgAEEQaiIDQgA3AgAgA0IANwAFIANBEGoiAkIANwIAIAJCADcABSADQSBqIgJCADcCACACQgA3AAUgA0EwaiICQgA3AgAgAkIANwAFIANBQGsiAkIANwIAIAJCADcABSADQdAAaiICQgA3AgAgAkIANwAFIANB4ABqIgJCADcCACACQgA3AAUgA0HwAGoiAkIANwIAIAJCADcABSADQYABaiICQgA3AgAgAkIANwAFIANBkAFqIgJCADcCACACQgA3AAUgA0GgAWoiAkIANwIAIAJCADcABSADQbABaiICQgA3AgAgAkIANwAFIANBwAFqIgJCADcCACACQgA3AAUgA0HQAWoiAkIANwIAIAJCADcABSADQeABaiICQgA3AgAgAkIANwAFIANB8AFqIgJCADcCACACQgA3AAUgA0GAAmoiAkIANwIAIAJCADcABSADQZACaiICQgA3AgAgAkIANwAFIANBoAJqIgJCADcCACACQgA3AAUgA0GwAmoiAkIANwIAIAJCADcABSADQcACaiICQgA3AgAgAkIANwAFIANB0AJqIgJCADcCACACQgA3AAUgA0HgAmoiAkIANwIAIAJCADcABSADQfACaiICQgA3AgAgAkIANwAFIANBgANqIgJCADcCACACQgA3AAUgA0GQA2oiAkIANwIAIAJCADcABSADQaADaiICQgA3AgAgAkIANwAFIANBsANqIgJCADcCACACQgA3AAUgA0HAA2oiAkIANwIAIAJCADcABSADQdADaiICQgA3AgAgAkIANwAFIANB4ANqIgJCADcCACACQgA3AAUgA0HwA2oiA0IANwIAIANCADcABSAAQgA3ApAEIABCADcAlQQgAEIANwKgBCAAQQA2ArAEIABCADcCqAQgAEIANwK0BCAAQQA2AsQEIABCADcCvAQgAEIANwLIBCAAQQA2AtgEIABCADcC0AQgAEEANgLkBCAAQgA3AtwEIABB9ARqAn8CQCABBEAgAUGAgICABEkNARALAAsgAEIANwLoBCAAQQA2AvAEIARBADYCCCAEQgA3AwBBAQwBCyAAIAFBAnQiAxAIIgI2AtwEIAAgAiADaiIFNgLkBCACQQAgAxAKGiAAQQA2AvAEIABCADcC6AQgACAFNgLgBCAAIAMQCCICNgLoBCAAIAIgA2oiBTYC8AQgAkEAIAMQChogACAFNgLsBCAEIAMQCCICNgIAIAQgAiADaiIFNgIIIAJBACADEAoaIAQgBTYCBCABQQV0QQFyCyICIAQQQiAEKAIAIgMEQCAEIAM2AgQgAxAHCyAEQQA2AgggBEIANwMAIAEEQCAEIAFBAnQiARAIIgM2AgAgBCABIANqIgU2AgggA0EAIAEQChogBCAFNgIECyAAQYAFaiACIAQQQiAEKAIAIgEEQCAEIAE2AgQgARAHCyAEQRBqJAAgAAv+AQEEfyAAKAKABSIDBEAgAyECIAMgACgChAUiAUcEQANAIAFBDGsiAigCACIEBEAgAUEIayAENgIAIAQQBwsgAiIBIANHDQALIAAoAoAFIQILIAAgAzYChAUgAhAHCyAAKAL0BCIDBEAgAyECIAMgACgC+AQiAUcEQANAIAFBDGsiAigCACIEBEAgAUEIayAENgIAIAQQBwsgAiIBIANHDQALIAAoAvQEIQILIAAgAzYC+AQgAhAHCyAAKALoBCIBBEAgACABNgLsBCABEAcLIAAoAtwEIgEEQCAAIAE2AuAEIAEQBwsgAEHIBGoQLCAAQbQEahAsIABBoARqECwL2QEBBn8gACgCACIAKAIEIgIgACgCCCIESQRAIAIgASgCADYCACAAIAJBBGo2AgQPCwJAIAIgACgCACICayIGQQJ1IgVBAWoiA0GAgICABEkEQEH/////AyAEIAJrIgRBAXYiByADIAMgB0kbIARB/P///wdPGyIDBH8gA0GAgICABE8NAiADQQJ0EAgFQQALIgQgBUECdGoiBSABKAIANgIAIAAgBCACIAYQDiIBIANBAnRqNgIIIAAgBUEEajYCBCAAIAE2AgAgAgRAIAIQBwsPCxALAAsQDwALjgEBAX8gAARAIAAoAkwiAQRAIAAgATYCUCABEAcLIABBQGsoAgAiAQRAIAAgATYCRCABEAcLIAAoAjAiAQRAIAAgATYCNCABEAcLIAAoAhgiAQRAIAAgATYCHCABEAcLIAAoAgwiAQRAIAAgATYCECABEAcLIAAoAgAiAQRAIAAgATYCBCABEAcLIAAQBwsLBwAgACgCBAsHACAAKAIcCwMAAAt3AgF+An8CQCAAQQpLDQAgAikDECIDIAIpAwhZDQAgAigCACADp2osAAAhBSACIANCAXw3AxAgBa0hAyABAn4gBUEASARAIABBAWogASACEDVFDQIgA0L/AIMgASkDAEIHhoQMAQsgA0L/AYMLNwMAQQEhBAsgBAttAgN/AX4CQCAAQQVLDQAgAikDECIGIAIpAwhZDQAgAigCACAGp2otAAAhBCACIAZCAXw3AxAgASAEwCIFQQBIBH8gAEEBaiABIAIQNkUNASAFQf8AcSABKAIAQQd0cgUgBAs2AgBBASEDCyADC28BAX8jAEGAAmsiBSQAAkAgAiADTA0AIARBgMAEcQ0AIAUgAUH/AXEgAiADayIDQYACIANBgAJJIgEbEAoaIAFFBEADQCAAIAVBgAIQSSADQYACayIDQf8BSw0ACwsgACAFIAMQSQsgBUGAAmokAAvAAgEIfyABKAIAIgEoAgghBSABKAIEIQcgASgCACEIIAAoAgAiAygCBCIBIAMoAggiAkkEQCABIAU2AgggASAHNgIEIAEgCDYCACADIAFBDGo2AgQPCwJA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GCADQThqECUgAUEBaiIFIAFBAmsgBUEDcBshBkF/QQIgAUEDcBsgAWohBwJAAkADQCAGIQQCfyAHIAAoAhxFDQAaIAFBAWoiBSABQQJrIAVBA3AbIQQgAUEBayABQQNwDQAaIAFBAmoLIQUgBEF/RgRAIAAoAhQhAQwDCyAAKAIQKAIAIARBAnRqKAIAIgQgACgCFCIBKAIEIAEoAgAiCGtBAnVPDQIgACgCCCAIIARBAnRqKAIAQQJ0aigCACEEIAAoAgQiAS0AVEUEQCABKAJEIARBAnRqKAIAIQQLIANCADcDMCADQgA3AyggA0IANwMgIAEgBCABLAAYIANBIGoQJSAFQX9GBEAgACgCFCEBDAILIAAoAhAoAgAgBUECdGooAgAiBSAAKAIUIgEoAgQgASgCACIEa0ECdU8NASAAKAIIIAQgBUECdGooAgBBAnRqKAIAIQQgACgCBCIBLQBURQRAIAEoAkQgBEECdGooAgAhBAsgA0IANwMYIANCADcDECADQgA3AwggASAEIAEsABggA0EIahAlIAogAykDCCADKQM4Igp9IgkgAykDKCADKQNAIgt9Igx+fSADKQMQIAt9IgsgAykDICAKfSIPfnwhCiANIAkgAykDMCADKQNIIg19IhB+fCADKQMYIA19IgkgD359IQ0gDiALIBB+fSAJIAx+fCEOIANB0ABqEHkgAygCWCIBQX9HDQALIA4gDkI/hyIJhSAJfSEJQv///////////wAhCyANIA1CP4ciDIUgDH0iDEL///////////8AhSEPAkAgCgJ+IAAoAhxFBEAgCSAPVg0CQoCAgIBwIAkgDHwiCSAKIApCP4ciC4UgC30iC3xCIIYgCSALQv///////////wCFVhsiCUKBgICAgICAgCBTDQIgCUI9iAwBCwJAIAkgD1YNACAJIAx8IgkgCiAKQj+HIgyFIAx9IgxC////////////AIVWDQAgCSAMfCILQoGAgIACVA0CCyALQh2ICyIJfyEKIA0gCX8hDSAOIAl/IQ4LIAIgCj4CCCACIA0+AgQgAiAOPgIAIANB4ABqJAAPCxAVAAsQFQALEBUACxYAIAFBAU0EQCAAIAE2AhwLIAFBAkkLlQsCBX8JfiMAQeAAayIEJAAgACgCECEDIARBAToAXCAEIAE2AlggBCABNgJUIAQgAzYCUAJAAkAgAygCHCABQQJ0aigCACIDIAAoAhQiBSgCBCAFKAIAIgVrQQJ1SQRAIAAoAgggBSADQQJ0aigCAEECdGooAgAhAyAAKAIEIgUtAFRFBEAgBSgCRCADQQJ0aigCACEDCyAEQgA3A0ggBEFAa0IANwMAIARCADcDOCAFIAMgBSwAGCAEQThqECUgAUF/RwRAIAFBAWoiAyABQQJrIANBA3AbIQVBf0ECIAFBA3AbIAFqIQcDQCAFIQMCfyAHIAAoAhxFDQAaIAFBAWoiAyABQQJrIANBA3AbIQMgAUEBayABQQNwDQAaIAFBAmoLIQYgACgCECgCHCADQQJ0aigCACIBIAAoAhQiAygCBCADKAIAIgNrQQJ1Tw0DIAAoAgggAyABQQJ0aigCAEECdGooAgAhAyAAKAIEIgEtAFRFBEAgASgCRCADQQJ0aigCACEDCyAEQgA3AzAgBEIANwMoIARCADcDICABIAMgASwAGCAEQSBqECUgACgCECgCHCAGQQJ0aigCACIBIAAoAhQiAygCBCADKAIAIgNrQQJ1Tw0EIAAoAgggAyABQQJ0aigCAEECdGooAgAhAyAAKAIEIgEtAFRFBEAgASgCRCADQQJ0aigCACEDCyAEQgA3AxggBEIANwMQIARCADcDCCABIAMgASwAGCAEQQhqECUgCSAEKQMIIAQpAzgiCX0iCCAEKQMoIAQpA0AiCn0iC359IAQpAxAgCn0iCiAEKQMgIAl9Ig5+fCEJIAwgCCAEKQMwIAQpA0giD30iEH58IAQpAxggD30iCCAOfn0hDCANIAogEH59IAggC358IQ0gBCgCWCEBIAQoAlAhAwJAIAQtAFwEQAJAAkACQAJAIAFBf0YNACABQQFqIgYgAUECayAGQQNwGyIBQX9GDQAgAygCACABQQN2Qfz///8BcWooAgAgAXZBAXENACADKAJAKAIMIAFBAnRqKAIAIgFBf0cNAQsgBEF/NgJYDAELIAQgAUEBaiIGIAFBAmsgBkEDcBsiATYCWCABQX9HDQELAn9BfyAEKAJUIgFBf0YNABoCQCABQQNwBEAgAUEBayEBDAELQX8gAUECaiIBQX9GDQEaC0F/IAMoAgAgAUEDdkH8////AXFqKAIAIAF2QQFxDQAaQX8gAygCQCgCDCABQQJ0aigCACIBQX9GDQAaIAFBAWsgAUEDcA0AGiABQQJqCyEBIARBADoAXCAEIAE2AlgMAgsgASAEKAJURw0BIARBfzYCWAwBCyAEAn9BfyABQX9GDQAaAkAgAUEDcARAIAFBAWshAQwBC0F/IAFBAmoiAUF/Rg0BGgtBfyADKAIAIAFBA3ZB/P///wFxaigCACABdkEBcQ0AGkF/IAMoAkAoAgwgAUECdGooAgAiAUF/Rg0AGiABQQFrIAFBA3ANABogAUECags2AlgLIAQoAlgiAUF/Rw0ACwsgDSANQj+HIgiFIAh9IQhC////////////ACEKIAwgDEI/hyILhSALfSILQv///////////wCFIQ4CQCAJAn4gACgCHEUEQCAIIA5WDQJCgICAgHAgCCALfCIIIAkgCUI/hyIKhSAKfSIKfEIghiAIIApC////////////AIVWGyIIQoGAgICAgICAIFMNAiAIQj2IDAELAkAgCCAOVg0AIAggC3wiCCAJIAlCP4ciC4UgC30iC0L///////////8AhVYNACAIIAt8IgpCgYCAgAJUDQILIApCHYgLIgh/IQkgDCAIfyEMIA0gCH8hDQsgAiAJPgIIIAIgDD4CBCACIA0+AgAgBEHgAGokAA8LEBUACxAVAAsQFQALBABBBgsrAQF/AkAgACgCLEUNACAAKAIwRQ0AIAAoAjRFDQAgACgCOEEARyEBCyABCwQAQQALkgIBBX8gACgCBCICIAAoAghHBEAgAiABKQIANwIAIAIgASgCCDYCCCAAIAJBDGo2AgQPCwJAIAIgACgCACIGa0EMbSIDQQFqIgRB1qrVqgFJBEBB1arVqgEgA0EBdCIFIAQgBCAFSRsgA0Gq1arVAE8bIgQEfyAEQdaq1aoBTw0CIARBDGwQCAVBAAsiBSADQQxsaiIDIAEpAgA3AgAgAyABKAIINgIIIANBDGohASACIAZHBEADQCADQQxrIgMgAkEMayICKQIANwIAIAMgAigCCDYCCCACIAZHDQALIAAoAgAhAgsgACAFIARBDGxqNgIIIAAgATYCBCAAIAM2AgAgAgRAIAIQBwsPCxALAAsQDwALlAQBA38gASAAIAFGIgI6AAwCQCACDQADQCABKAIIIgItAAwNAQJAIAIgAigCCCIDKAIAIgRGBEACQCADKAIEIgRFDQAgBC0ADA0ADAILAkAgASACKAIARgRAIAIhAQwBCyACIAIoAgQiASgCACIANgIEIAEgAAR/IAAgAjYCCCACKAIIBSADCzYCCCACKAIIIgAgACgCACACR0ECdGogATYCACABIAI2AgAgAiABNgIIIAEoAggiAygCACECCyABQQE6AAwgA0EAOgAMIAMgAigCBCIANgIAIAAEQCAAIAM2AggLIAIgAygCCDYCCCADKAIIIgAgACgCACADR0ECdGogAjYCACACIAM2AgQgAyACNgIIDwsCQCAERQ0AIAQtAAwNAAwBCwJAIAEgAigCAEcEQCACIQEMAQsgAiABKAIEIgA2AgAgASAABH8gACACNgIIIAIoAggFIAMLNgIIIAIoAggiACAAKAIAIAJHQQJ0aiABNgIAIAEgAjYCBCACIAE2AgggASgCCCEDCyABQQE6AAwgA0EAOgAMIAMgAygCBCIAKAIAIgE2AgQgAQRAIAEgAzYCCAsgACADKAIINgIIIAMoAggiASABKAIAIANHQQJ0aiAANgIAIAAgAzYCACADIAA2AggMAgsgBEEMaiEBIAJBAToADCADIAAgA0Y6AAwgAUEBOgAAIAMiASAARw0ACwsLBABBAgslAQF/IABByBk2AgAgACgCICIBBEAgACABNgIkIAEQBwsgABAHC/MCAQd/IAEgACgCCCIEIAAoAgQiAmtBAnVNBEAgACABBH8gAkEAIAFBAnQiABAKIABqBSACCzYCBA8LAkACQAJAIAIgACgCACIGa0ECdSIFIAFqIgNBgICAgARJBEBB/////wMgBCAGayIEQQF2IgcgAyADIAdJGyAEQfz///8HTxsiAwRAIANBgICAgARPDQIgA0ECdBAIIQgLIAggBUECdGoiBEEAIAFBAnQiARAKIgcgAWohBSAIIANBAnRqIQEgAiAGRg0CA0AgAkEEayICKAIAIQMgAkEANgIAIARBBGsiBCADNgIAIAIgBkcNAAsgACABNgIIIAAoAgQhASAAIAU2AgQgACgCACECIAAgBDYCACABIAJGDQMDQCABQQRrIgEoAgAhACABQQA2AgAgAARAIAAgACgCACgCBBECAAsgASACRw0ACwwDCxALAAsQDwALIAAgATYCCCAAIAU2AgQgACAHNgIACyACBEAgAhAHCwvKBAEHfyADIAJrIgdBAEwEQA8LAkAgACgCCCIEIAAoAgQiCGsgB04E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AjggAEIANwMwIAAgBTcDKCAAIAQ6ACAgACADNgIcIAAgAjoAGAuCAQEDfyABEB8iAkHw////B0kEQAJAAkAgAkELTwRAIAJBD3JBAWoiAxAIIQQgACADQYCAgIB4cjYCCCAAIAQ2AgAgACACNgIEIAIgBGohAwwBCyAAIAI6AAsgACACaiEDIAAhBCACRQ0BCyAEIAEgAhAOGgsgA0EAOgAAIAAPCxAgAAuxCwICfwJ+IwBBMGsiAyQAIANBpugAKQEANwEmIANBoOgAKQMANwMgIANBmOgAKQMANwMYIANBkOgAKQMANwMQAkACQCABKQMIIAEpAxAiBUIFfFMEQCADQRBqEB8iBEHw////B08NAgJAAkAgBEELTwRAIARBD3JBAWoiARAIIQIgAyABQYCAgIB4cjYCCCADIAI2AgAgAyAENgIEIAIgBGohAQwBCyADIAQ6AAsgAyAEaiEBIAMhAiAERQ0BCyACIANBEGogBBAJGgsgAUEAOgAAIABBfjYCACAAQQRqIQAgAywAC0EATgRAIAAgAykDADcCACAAIAMoAgg2AggMAgsgACADKAIAIAMoAgQQEiADLAALQQBODQEgAygCABAHDAELIAIgASgCACAFp2oiBCgAADYAACACIAQtAAQ6AAQgASABKQMQQgV8IgU3AxAgAkHsCUEFEBgEQEEgEAgiAUEAOgARIAFB2AstAAA6ABAgAUHQCykAADcACCABQcgLKQAANwAAIABBfzYCACAAQQRqIAFBERASIAEQBwwBCyAFIAEpAwhZBEAgA0EQahAfIgRB8P///wdPDQICQAJAIARBC08EQCAEQQ9yQQFqIgEQCCECIAMgAUGAgICAeHI2AgggAyACNgIAIAMgBDYCBCACIARqIQEMAQsgAyAEOgALIAMgBGohASADIQIgBEUNAQsgAiADQRBqIAQQCRoLIAFBADoAACAAQX42AgAgAEEEaiEAIAMsAAtBAE4EQCAAIAMpAwA3AgAgACADKAIINgIIDAILIAAgAygCACADKAIEEBIgAywAC0EATg0BIAMoAgAQBwwBCyACIAEoAgAgBadqLQAAOgAFIAEgASkDEEIBfCIFNwMQIAUgASkDCFkEQCADQRBqEB8iBEHw////B08NAgJAAkAgBEELTwRAIARBD3JBAWoiARAIIQIgAyABQYCAgIB4cjYCCCADIAI2AgAgAyAENgIEIAIgBGohAQwBCyADIAQ6AAsgAyAEaiEBIAMhAiAERQ0BCyACIANBEGogBBAJGgsgAUEAOgAAIABBfjYCACAAQQRqIQAgAywAC0EATgRAIAAgAykDADcCACAAIAMoAgg2AggMAgsgACADKAIAIAMoAgQQEiADLAALQQBODQEgAygCABAHDAELIAIgASgCACAFp2otAAA6AAYgASABKQMQQgF8IgU3AxAgBSABKQMIWQRAIANBEGoQHyIEQfD///8HTw0CAkACQCAEQQtPBEAgBEEPckEBaiIBEAghAiADIAFBgICAgHhyNgIIIAMgAjYCACADIAQ2AgQgAiAEaiEBDAELIAMgBDoACyADIARqIQEgAyECIARFDQELIAIgA0EQaiAEEAkaCyABQQA6AAAgAEF+NgIAIABBBGohACADLAALQQBOBEAgACADKQMANwIAIAAgAygCCDYCCAwCCyAAIAMoAgAgAygCBBASIAMsAAtBAE4NASADKAIAEAcMAQsgAiABKAIAIAWnai0AADoAByABIAEpAxBCAXwiBTcDECAFIAEpAwhZBEAgAyADQRBqEHEhASAAQX42AgAgAEEEaiEAIAEsAAtBAE4EQCAAIAEpAgA3AgAgACABKAIINgIIDAILIAAgASgCACABKAIEEBIgASwAC0EATg0BIAEoAgAQBwwBCyACIAEoAgAgBadqLQAAOgAIIAEgASkDECIFQgF8IgY3AxAgASkDCCAFQgN8UwRAIAMgA0EQahBxIQEgAEF+NgIAIABBBGohACABLAALQQBOBEAgACABKQIANwIAIAAgASgCCDYCCAwCCyAAIAEoAgAgASgCBBASIAEsAAtBAE4NASABKAIAEAcMAQsgAiABKAIAIAanai8AADsBCiABIAEpAxBCAnw3AxAgAEIANwIIIABCADcCAAsgA0EwaiQADwsQIAALiQEBAX8gACgCVCIBBEAgACABNgJYIAEQBwsgACgCSCIBBEAgACABNgJMIAEQBwsgACgCNCIBBEAgACABNgI4IAEQBwsgACgCKCIBBEAgACABNgIsIAEQBwsgACgCHCIBBEAgACABNgIgIAEQBwsgACgCDCIBBEAgARAHCyAAKAIAIgAEQCAAEAcLC64BAQd/IAFFBEAgAkEANgIADwtBACAALQAMa0H/AXEh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DCACQQJ0aigCACICQX9GDQAaIAJBAWsgAkEDcA0AGiACQQJqCyEBIABBADoADCAAIAE2AggPCyABIAAoAgRHDQEgAEF/NgIIDwsgAAJ/QX8gAUF/Rg0AGgJAIAFBA3AEQCABQQFrIQEMAQtBfyABQQJqIgFBf0YNARoLQX8gAygCDCABQQJ0aigCACIBQX9GDQAaIAFBAWsgAUEDcA0AGiABQQJqCzYCCAsLKgEBfwJAIAFFDQAgASgCOA0AIAEtABhBA0cNACAAIAE2AjxBASECCyACCzMBAX8CQCAAKAI8RQ0AIAAoAixFDQAgACgCMEUNACAAKAI0RQ0AIAAoAjhBAEchAQsgAQs6AQJ+IAIpAwgiBCACKQMQIgNVBEAgAigCACADp2otAAAhASACIANCAXw3AxAgACABNgIECyADIARTCy4BAX8gACgCECIBBEAgACABNgIUIAEQBwsgACgCACIBBEAgACABNgIEIAEQBwsLDAAgABC2ARogABAHC7cEAQd/IABCADcCECAAQQA2AgggAEIANwIAIABBADYCGCABKAIEIgQgASgCACIGayIFQRRtIQICQCAEIAZGBEAMAQsCQCACQc2Zs+YASQRAIAAgBRAIIgQ2AhQgACAENgIQIAAgBCACQRRsajYCGCABKAIAIgIgASgCBCIGRg0CIAQhAQNAIAEgAikCADcCACABIAIoAhA2AhAgASACKQIINwIIIAFBFGohASACQRRqIgIgBkcNAAtBACEGIABBADYCHCAAIAE2AhQgASAERwRAQQEgASAEa0EUbSIBIAFBAU0bIgVBA3EhB0EAIQFBACECIAVBAWtBA08EQCAFQXxxIQhBACEFA0AgAiAEIAFBFGxqIgMoAhAgAygCDGwiAyACIANLGyICIAQgAUEBckEUbGoiAygCECADKAIMbCIDIAIgA0sbIgIgBCABQQJyQRRsaiIDKAIQIAMoAgxsIgMgAiADSxsiAiAEIAFBA3JBFGxqIgMoAhAgAygCDGwiAyACIANLGyECIAFBBGohASAFQQRqIgUgCEcNAAsLIAcEQANAIAIgBCABQRRsaiIFKAIQIAUoAgxsIgUgAiAFSxshAiABQQFqIQEgBkEBaiIGIAdHDQALCyACRQRAIABBADYCDCAADwsgAkEASA0CIAAgAhAIIgZBACACEAoiASACaiIE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QQxqIAFB1OoAEIkBAkAgACgCICAAKAIYIgNrQQJ1IAJPDQAgAkGAgICABE8NAiAAKAIcIQEgAkECdCICEAgiBCACaiEGIAQgASADa0F8cWoiBCECIAEgA0cEQANAIAJBBGsiAiABQQRrIgEoAgA2AgAgASADRw0ACwsgACAGNgIgIAAgBDYCHCAAIAI2AhggA0UNACADEAcLIABCADcCUCAAKAJMIQEgAEEANgJMIAEEQCABEAcLIABCADcCRCAAQUBrIgEoAgAhACABQQA2AgAgAEUNACAAEAcLIAUPCxALAAvvAQECfyAAIAAoAgQiAiABaiIDNgIEIAJBACADQQFrIAJBAWtzQSBJG0UEQCAAKAIAIANBAWtBBXZBACADQSFPG0ECdGpBADYCAAsCQCABRQ0AIAAoAgAgAkEDdkH8////AXFqIQAgAkEfcSICBEAgACAAKAIAQX8gAnRBf0EgIAJrIgIgAiABIAEgAksbIgJrdnFBf3NxNgIAIAEgAmshASAAQQRqIQALIAFBBXYhAiABQSBPBEAgAEEAIAJBAnQQChoLIAEgAUFgcUYNACAAIAJBAnRqIgAgACgCAEF/QSAgAUEfcWt2QX9zcTYCAAsLBABBAgsrACABBEAgACABKAIAEI0BIAAgASgCBBCNASABQRRqIAEoAhgQUyABEAcLC24CA38BfgJAIABBBUsNACACKQMQIgYgAikDCFkNACACKAIAIAanai0AACEEIAIgBkIBfDcDECABIATAIgVBAEgEfyAAQQFqIAEgAhCOAUUNASAFQf8AcSABKAIAQQd0cgUgBAs2AgBBASEDCyADCxAAIAAoAgQgACgCAGtBAnULBwAgACgCUAsLACAABEAgABAHCwvHAQEEfwJAIAAgARA8IgEgAEEEakYNACABQRxqIgAoAgAgACABLAAnQQBIGyEBA0AgASIAQQFqIQEgACwAACICQSBGIAJBCWtBBUlyDQALAkACQAJAIAAsAAAiAkEraw4DAQIAAgtBASEECyABLAAAIQIgASEACyACQTBrQQpJBEADQCADQQpsIAAsAABrQTBqIQMgACwAASEBIABBAWohACABQTBrQQpJDQALCyADQQAgA2sgBBsiAEF/Rg0AIABBAEchBQsgBQuIAQEDfyAABEAgACgCGCIDBEAgACgCHCICIAMiAUcEQANAIAJBBGsiAigCACEBIAJBADYCACABBEAgAUEMaiABKAIQECQgASABKAIEECMgARAHCyACIANHDQALIAAoAhghAQsgACADNgIcIAEQBwsgAEEMaiAAKAIQECQgACAAKAIEECMgABAHCws3ACAAQQA2AiggAEIANwIEIABB4OcANgIAIABCADcCDCAAQgA3AhQgAEIANwIcIABBADsBJCAAC4ABAQN/IABB4OcANgIAIAAoAhQiAgRAIAAgAjYCGCACEAcLIAAoAggiAgRAIAAoAgwiAyACIgFHBEADQCADQQRrIgMoAgAhASADQQA2AgAgAQRAIAEgASgCACgCBBECAAsgAiADRw0ACyAAKAIIIQELIAAgAjYCDCABEAcLIAAQBwttAQJ/QSgQCCICQX82AgAgAkEIaiIDQgA3AxAgA0EANgIIIANCADcDACADQgA3AxggACACIAAoAgAoAhARBAAgASgCWCEAIAEgAjYCWCAABEAgACgCCCIBBEAgACABNgIMIAEQBwsgABAHC0EBC5oBAQR/IAAoAgAiBARAIAQhAyAEIAAoAgQiAUcEQANAIAFBkAFrIgMoAoQBIgIEQCABQQhrIAI2AgAgAhAHCyABQRxrKAIAIgIEQCABQRhrIAI2AgAgAhAHCyABQShrKAIAIgIEQCABQSRrIAI2AgAgAhAHCyABQYwBaxBzIAMiASAERw0ACyAAKAIAIQMLIAAgBDYCBCADEAcLCwcAIAAoAggLsgEBA38CQCAAKAIEIgIgACgCCCIEQQV0RgRAIAJBAWpBAEgNAUH/////ByEDIAAgAkH+////A00EfyAEQQZ0IgMgAkFgcUEgaiICIAIgA0kbBUH/////BwsQPiAAKAIEIQILIAAgAkEBajYCBEEBIAJ0IQMgACgCACACQQN2Qfz///8BcWohACABLQAABEAgACAAKAIAIANyNgIADwsgACAAKAIAIANBf3NxNgIADwsQCwALxBQCEX8BfiMAQSBrIgUkACAAKAIEKAIsIQcgACgCCCIDKAIAIQIgAygCBCEDIAVBADYCGCAFQgA3AxACQCADIAJrQQJ1QQNuIgQgBygCZCAHKAJgIgNrQQxtIgJLBEAgBCACayIGIAcoAmgiBCAHKAJkIgJrQQxtTQRAAkAgBkUNACACIQMgBkEMbEEMayIIQQxuQQFqQQNxIgQE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/wMgBCADayIEQQF2IgogBSAFIApJGyAEQfz///8HTxsiBQR/IAVBgICAgARPDQggBUECdBAIBUEACyIEIAZBAnRqIgYgCDYCACACIAQgAyAJEA4iBDYChAEgAiAGQQRqNgKIASACIAQgBUECdGo2AowBIANFDQAgAxAHCyABQQFqIgEgACgC3AEgACgC2AFrQZABbUkNAQwDCwsQCwALQQAhASAAKALYASICIAAoAtwBRg0AA0ACQCACIAFBkAFsaiICKAKIASIDIAIoAowBIgRJBEAgAyAINgIAIAIgA0EEajYCiAEMAQsgAyACKAKEASIDayIJQQJ1IgZBAWoiBUGAgICABE8NBEH/////AyAEIANrIgRBAXYiCiAFIAUgCkkbIARB/P///wdPGyIFBH8gBUGAgICABE8NBiAFQQJ0EAgFQQALIgQgBkECdGoiBiAINgIAIAIgBCADIAkQDiIENgKEASACIAZBBGo2AogBIAIgBCAFQQJ0ajYCjAEgA0UNACADEAcLIAFBAWoiASAAKALcASAAKALYASICa0GQAW1JDQALCyALQQFqIgtBA0cNAAsgB0EQaiQAQQEPCxALAAsQDwAL5gsBBn8gASAAKAIEIgIgACgCACIGa0GQAW0iA0sEQAJAIAEgA2siAyAAIgEoAggiBiAAKAIEIgJrQZABbU0EQAJAIANFDQAgAiEAIANBB3EiBgRAA0AgABAbIABBkAFqIQAgBEEBaiIEIAZHDQALCyADQZABbCACaiECIANBAWtB/////wBxQQdJDQADQCAAEBsgAEGQAWoQGyAAQaACahAbIABBsANqEBsgAEHABGoQGyAAQdAFahAbIABB4AZqEBsgAEHwB2oQGyAAQYAJaiIAIAJHDQALCyABIAI2AgQMAQsCQAJAAkAgAiABKAIAIgJrQZABbSIHIANqIgBB8ricDkkEQEHxuJwOIAYgAmtBkAFtIgJBAXQiBiAAIAAgBkkbIAJBuJyOB08bIgYEQCAGQfK4nA5PDQIgBkGQAWwQCCEFCyAHQZABbCAFaiICIQAgA0EHcSIHBEADQCAAEBsgAEGQAWohACAEQQFqIgQgB0cNAAsLIANBkAFsIAJqIQcgA0EBa0H/////AHFBB08EQANAIAAQGyAAQZABahAbIABBoAJqEBsgAEGwA2oQGyAAQcAEahAbIABB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AgAgA0UNAiADEAcMAgsgASAETw0BIAAgASADajYCBAwBC0EAIAJCAFMNAhoCQCAAKAIEIgYgACgCACIEayIFrSACWQ0AIAKnIgMgBUsEQCADIAVrIgcgACgCCCIIIAZrTQRAIAAgBkEAIAcQCiAHajYCBAwCCyADQQBIDQNB/////wcgCCAEayIGQQF0IgggAyADIAhJGyAGQf////8DTxsiBhAIIgggBWpBACAHEAoaIAAgCCAEIAUQDiIFIAZqNgIIIAAgAyAFajYCBCAAIAU2AgAgBEUNASAEEAcMAQsgAyAFTw0AIAAgAyAEajYCBAsgAqciA0UNACAAKAIAIAEgAxAOGgsgACAAKQMYQgF8NwMYQQEMAQsQCwALC7MNAQp/IwBBIGsiCCQAIAEgAzYCICABIAI2AiggASAENgIEIAAgAyAIQRBqEHICQCAAKAIADQAgACwAD0EASARAIAAoAgQQBwsgCC0AFyIEIAEgASgCACgCCBEAAEcEQEHAABAIIgFBADoAMiABQaIKLwAAOwAwIAFBmgopAAA3ACggAUGSCikAADcAICABQYoKKQAANwAYIAFBggopAAA3ABAgAUH6CSkAADcACCABQfIJKQAANwAAIABBfzYCACAAQQRqIAFBMhASIAEQBwwBCyABIAgtABUiAjoAJCABIAgtABYiAzoAJSACQQNrQf8BcUH9AU0EQEEgEAgiAUEAOgAWIAFBjwspAAA3AA4gAUGJCykAADcACCABQYELKQAANwAAIABBezYCACAAQQRqIAFBFhASIAEQBwwBCwJAIAJBAkcNAEECQQMgBBsgA08NAEEgEAgiAUEAOgAWIAFB+AopAAA3AA4gAUHyCikAADcACCABQeoKKQAANwAAIABBezYCACAAQQRqIAFBFhASIAEQBwwBCyABKAIgIAJBCHQgA3IiAjsBJgJAIAJB//8DcUGDAkkNACAILgEaQQBODQAjAEEQayIEJABBJBAIIgJCADcCBCACQgA3AhggAkEQaiIDQgA3AgAgAiACQQRqNgIAIAJBADYCICACIAM2AgwgBEEANgIAIAEoAiAhAyMAQRBrIgkkAAJ/QQAgAkUNABogBCADNgIAIAlBADYCDEEAQQEgCUEMaiADEEpFDQAaIAkoAgwiDQRAA0ACQEEBIAlBCGogBCgCABBKBEBBHBAIIgNCADcCBCADQRBqIgdCADcCACADIANBBGo2AgAgAyAHNgIMIAMgCSgCCDYCGCAEIAMQ1AENASADQQxqIAMoAhAQJCADIAMoAgQQIyADEAcLQQAMAwsjAEEQayIHJAAgByADNgIIAkAgA0UNAAJAIAIoAhwiBSACKAIgSQRAIAdBADYCCCAFIAM2AgAgAiAFQQRqNgIcDAELQQAhAwJAAkACQCACKAIcIAIoAhgiBmtBAnUiC0EBaiIFQYCAgIAESQRAQf////8DIAIoAiAgBmsiBkEBdiIKIAUgBSAKSRsgBkH8////B08bIgYEQCAGQYCAgIAETw0CIAZBAnQQCCEDCyAHKAIIIQogB0EANgIIIAMgC0ECdGoiBSAKNgIAIAMgBkECdGohBiAFQQRqIQsgAigCHCIDIAIoAhgiCkYNAgNAIANBBGsiAygCACEOIANBADYCACAFQQRrIgUgDjYCACADIApHDQALIAIgBjYCICACKAIcIQYgAiALNgIcIAIoAhghAyACIAU2AhggAyAGRg0DA0AgBkEEayIGKAIAIQUgBkEANgIAIAUEQCAFQQxqIAUoAhAQJCAFIAUoAgQQIyAFEAcLIAMgBkcNAAsMAwsQCwALEA8ACyACIAY2AiAgAiALNgIcIAIgBTYCGAsgAwRAIAMQBwsLIAcoAgghAyAHQQA2AgggA0UNACADQQxqIAMoAhAQJCADIAMoAgQQIyADEAcLIAdBEGokACAMQQFqIgwgDUcNAAsLIAQgAhDUAQshAyAJQRBqJAACQCADBEAgASgCBCIHKAIEIQMgByACNgIEIAMEQCADEJMBCyAAQgA3AgAgAEIANwIIDAELQSAQCCIDQQA6ABogA0GrDC8AADsAGCADQaMMKQAANwAQIANBmwwpAAA3AAggA0GTDCkAADcAACAAQX82AgAgAEEEaiADQRoQEiADEAcgBEEANgIIIAIQkwELIARBEGokACAAKAIADQEgACwAD0EATg0AIAAoAgQQBwsgASABKAIAKAIMEQAARQRAQTAQCCIBQQA6ACEgAUHoCi0AADoAICABQeAKKQAANwAYIAFB2AopAAA3ABAgAUHQCikAADcACCABQcgKKQAANwAAIABBfzYCACAAQQRqIAFBIRASIAEQBwwBCyABIAEoAgAoAhQRAABFBEAgCEGuDBBxIQEgAEF/NgIAIABBBGohACABLAALQQBOBEAgACABKQIANwIAIAAgASgCCDYCCAwCCyAAIAEoAgAgASgCBBASIAEsAAtBAE4NASABKAIAEAcMAQsgASABKAIAKAIYEQAARQRAIAhBpQoQcSEBIABBfzYCACAAQQRqIQAgASwAC0EATgRAIAAgASkCADcCACAAIAEoAgg2AggMAgsgACABKAIAIAEoAgQQEiABLAALQQBODQEgASgCABAHDAELIABCADcCACAAQgA3AggLIAhBIGokAAuDAgEHfyABIAAoAggiAiAAKAIEIgNrQQJ1TQRAIAAgAQR/IANBACABQQJ0IgAQCiAAagUgAws2AgQPCwJAIAMgACgCACIFa0ECdSIHIAFqIgRBgICAgARJBEBB/////wMgAiAFayICQQF2IgggBCAEIAhJGyACQfz///8HTxsiBARAIARBgICAgARPDQIgBEECdBAIIQYLIAdBAnQgBmoiAkEAIAFBAnQiARAKIAFqIQEgAyAFRwRAA0AgAkEEayICIANBBGsiAygCADYCACADIAVHDQALCyAAIAYgBEECdGo2AgggACABNgIEIAAgAjYCACAFBEAgBRAHCw8LEAsACxAPAAuGAgEGf0HAABAIIQRBDBAIIgIgACgCBCgCUDYCCCACQaDnADYCACACQQA2AgQgBCACEKoBIQQCQAJAIAFBAEgEQCAEIQIMAQsgAEEIaiEHAkAgACgCDCICIAAoAggiBWtBAnUiBiABSg0AIAFBAWohAyABIAZPBEAgByADIAZrEF4MAQsgAyAGTw0AIAUgA0ECdGoiBSACRwRAA0AgAkEEayICKAIAIQMgAkEANgIAIAMEQCADIAMoAgAoAgQRAgALIAIgBUcNAAsLIAAgBTYCDAsgBygCACABQQJ0aiIAKAIAIQIgACAENgIAIAJFDQELIAIgAigCACgCBBECAAsgAUF/c0EfdgvHCwEJfyABQX9GBEBBAQ8LIAAoAhggAUEDbiIDQQN2Qfz///8AcWooAgAgA3ZBAXFFBEAgACAAKAIwIgI2AjQCQCAAKAI4IAJHBEAgAiABNgIAIAAgAkEEajYCNAwBC0EEEAgiBCABNgIAIAAgBEEEaiIFNgI4IAAgBTYCNCAAIAQ2AjAgAkUNACACEAcLIAAoAgQoAhwiBCABQQFqIgIgAUECayACQQNwGyIFQQJ0aigCACICQX9GBEBBAA8LIARBf0ECIAEgA0EDbGsbIAFqIgNBAnRqKAIAIgFBf0YEQEEADwsgACgCJCIEIAJBA3ZB/P///wFxaiIGKAIAIgdBASACdCIIcQR/IAQFIAYgByAIcjYCACAAQQhqIAIgBRAnIAAoAiQLIAFBA3ZB/P///wFxaiICKAIAIgRBASABdCIFcUUEQCACIAQgBXI2AgAgAEEIaiABIAMQJwsgACgCNCIDIAAoAjBGBEBBAQ8LIABBCGohCQNAAkACQCADQQRrIgMoAgAiAUF/Rg0AIAAoAhggAUEDbiICQQN2Qfz///8AcWoiBCgCACIFQQEgAnQiAnENACAEIAIgBXI2AgAgACgCBCIEKAIcIAFBAnRqKAIAIgJBf0YEQEEADwsDQCABIQMCQAJAIAAoAiQgAkEDdkH8////AXFqIgUoAgAiBkEBIAJ0IgdxDQACQAJAIAQoAiggAkECdGooAgAiAUF/Rg0AIAFBAWoiCCABQQJrIAhBA3AbIgFBf0YNACAEKAIAIAFBA3ZB/P///wFxaigCACABdkEBcQ0AIAQoAkAoAgwgAUECdGooAgAiAUF/Rw0BCyAFIAYgB3I2AgAgCSACIAMQJyAAKAIEIQQMAQsgBSAGIAdyNgIAIAkgAiADECcgACgCBCEEIAFBAWoiAiABQQJrIAJBA3AbQX9GDQBBfyEBAkAgA0F/Rg0AIANBAWoiAiADQQJrIAJBA3AbIgJBf0YNACAEKAIAIAJBA3ZB/P///wFxaigCACACdkEBcQ0AIAQoAkAoAgwgAkECdGooAgAhAQtBASABQQNuIgJ0IQYgACgCGCIDIAJBBXYiB0ECdGooAgAhCAwBCwJAAkAgA0F/Rg0AQX8hAgJAIANBAWoiASADQQJrIAFBA3AbIgFBf0YNACAEKAIAIAFBA3ZB/P///wFxaigCACABdkEBcQ0AIAQoAkAoAgwgAUECdGooAgAhAgtBfwJ/AkAgA0EDcARAIANBAWshAwwBC0F/IANBAmoiA0F/Rg0BGgtBfyAEKAIAIANBA3ZB/P///wFxaigCACADdkEBcQ0AGiAEKAJAKAIMIANBAnRqKAIACyIBQQNuIAFBf0YiChshBSACQX9HBEAgACgCGCIDIAJBA24iBkEFdiIHQQJ0aigCACIIQQEgBnQiBnFFDQILIAoNACAAKAIYIgMgBUEFdiIHQQJ0aigCACIIQQEgBXQiBnFFDQILIAAgACgCNEEEayIDNgI0DAQLIAoEQCACIQEMAQsgAyAFQQN2Qfz///8BcWooAgAgBXZBAXEEQCACIQEMAQsgACgCNCIEQQRrIAE2AgAgACgCOCAERwRAIAQgAjYCACAEQQRqIQMMAwsCQCAEIAAoAjAiBWsiAUECdSIHQQFqIgNBgICAgARJBEBB/////wMgAUEBdiIGIAMgAyAGSRsgAUH8////B08bIgYEfyAGQYCAgIAETw0CIAZBAnQQCAVBAAsiCCAHQQJ0aiIBIAI2AgAgAUEEaiEDIAQgBUcEQANAIAFBBGsiASAEQQRrIgQoAgA2AgAgBCAFRw0ACwsgACAIIAZBAnRqNgI4IAAgAzYCNCAAIAE2AjAgBUUNBSAFEAcgACgCNCEDDAULEAsACxAPAAsgAyAHQQJ0aiAGIAhyNgIAIAQoAhwgAUECdGooAgAiAkF/Rw0AC0EADwsgACADNgI0CyAAKAIwIANHDQALC0EBC9QKAQh/IAFBf0YEQEEBDwsgACgCGCABQQNuIgVBA3ZB/P///wBxaigCACAFdkEBcUUEQCAAIAAoAjAiAjYCNAJAIAAoAjggAkcEQCACIAE2AgAgACACQQRqNgI0DAELQQQQCCIDIAE2AgAgACADQQRqIgQ2AjggACAENgI0IAAgAzYCMCACRQ0AIAIQBwtBfyEDIAAoAgQhBCABQQFqIgIgAUECayACQQNwGyIHQX9HBEAgBCgCACAHQQJ0aigCACEDCwJAIAEgBUEDbGsiBQRAIAFBAWshAgwBCyABQQJqIgJBf0cNAEEADwsgA0F/RgRAQQAPCyAEKAIAIAJBAnRqKAIAIgJBf0YEQEEADwsgACgCJCIEIANBA3ZB/P///wFxaiIGKAIAIglBASADdCIIcQR/IAQFIAYgCCAJcjYCACAAQQhqIAMgBxAnIAAoAiQLIAJBA3ZB/P///wFxaiIDKAIAIgRBASACdCIHcUUEQCADIAQgB3I2AgAgAEEIaiACQX9BAiAFGyABahAnCyAAKAI0IgIgACgCMEYEQEEBDwsgAEEIaiEJA0ACQAJAIAJBBGsiAigCACIBQX9GDQAgACgCGCABQQNuIgNBA3ZB/P///wBxaiIFKAIAIgRBASADdCIDcQ0AIAUgAyAEcjYCAANAIAAoAgQiAygCACABQQJ0aigCACICQX9GBEBBAA8LAkACQCAAKAIkIAJBA3ZB/P///wFxaiIFKAIAIgRBASACdCIHcQ0AAkACQCADKAIYIAJBAnRqKAIAIgZBf0YNACAGQQFqIgggBkECayAIQQNwGyIGQX9GDQAgAygCDCAGQQJ0aigCACIDQX9HDQELIAUgBCAHcjYCACAJIAIgARAnDAELIAUgBCAHcjYCACAJIAIgARAnIANBAWoiAiADQQJrIAJBA3AbQX9GDQAgAUECayEDIAFBAWohAkF/IQEgAiADIAJBA3AbIgJBf0cEQCAAKAIEKAIMIAJBAnRqKAIAIQELQQEgAUEDbiICdCEEIAAoAhgiAyACQQV2IgdBAnRqKAIAIQYMAQtBfyECIAAoAgQhBSABQQFqIgMgAUECayADQQNwGyIDQX9HBEAgBSgCDCADQQJ0aigCACECC0F/An8CQCABQQNwBEAgAUEBayEDDAELQX8gAUECaiIDQX9GDQEaCyAFKAIMIANBAnRqKAIACyIBQQNuIAFBf0YiCBshBQJAIAJBf0cEQCAAKAIYIgMgAkEDbiIEQQV2IgdBAnRqKAIAIgZBASAEdCIEcUUNAQsgCEUEQCAAKAIYIgMgBUEFdiIHQQJ0aigCACIGQQEgBXQiBHFFDQILIAAgACgCNEEEayICNgI0DAQLIAgEQCACIQEMAQsgAyAFQQN2Qfz///8BcWooAgAgBXZBAXEEQCACIQEMAQsgACgCNCIDQQRrIAE2AgAgACgCOCADRwRAIAMgAjYCACADQQRqIQIMAwsCQCADIAAoAjAiBWsiAUECdSIHQQFqIgRBgICAgARJBEBB/////wMgAUEBdiIGIAQgBCAGSRsgAUH8////B08bIgQEfyAEQYCAgIAETw0CIARBAnQQCAVBAAsiBiAHQQJ0aiIBIAI2AgAgAUEEaiECIAMgBUcEQANAIAFBBGsiASADQQRrIgMoAgA2AgAgAyAFRw0ACwsgACAGIARBAnRqNgI4IAAgAjYCNCAAIAE2AjAgBUUNBSAFEAcgACgCNCECDAULEAsACxAPAAsgAyAHQQJ0aiAEIAZyNgIAIAFBf0cNAAtBAA8LIAAgAjYCNAsgACgCMCACRw0ACwtBAQuHEwEKfwJAAkACQAJAAkAgACgCXCAAKAJYRg0AAkAgACgCNCICIAAoAjhHBEAgAiABNgIAIAAgAkEEajYCNAwBCyACIAAoAjAiA2siBEECdSIGQQFqIgVBgICAgARPDQVB/////wMgBEEBdiIHIAUgBSAHSRsgBEH8////B08bIgUEfyAFQYCAgIAETw0DIAVBAnQQCAVBAAsiByAGQQJ0aiIEIAE2AgAgBEEEaiEGIAIgA0cEQANAIARBBGsiBCACQQRrIgIoAgA2AgAgAiADRw0ACwsgACAHIAVBAnRqNgI4IAAgBjYCNCAAIAQ2AjAgA0UNACADEAcLIABBADYCVEF/IQICf0F/IAFBf0YNABogACgCBCEEIAFBAWoiAyABQQJrIANBA3AbIgNBf0cEQCAEKAIAIANBAnRqKAIAIQILAkAgAUEDcARAIAFBAWshBQwBC0F/IAFBAmoiBUF/Rg0BGgsgBCgCACAFQQJ0aigCAAsiBEEDdkH8////AXEgACgCJCIDIAJBA3ZB/P///wFxaiIFKAIAIgZBASACdCIHcQR/IAMFIAUgBiAHcjYCACAAQQhqIAIgAUF/RwR/IAFBAWoiAiABQQJrIAJBA3AbBUF/CxAnIAAoAiQLaiICKAIAIgNBASAEdCIFcUUEQCACIAMgBXI2AgAgAEEIaiAEAn9BfyABQX9GDQAaIAFBAWsgAUEDcA0AGiABQQJqCxAnC0F/IQIgAUF/RwRAIAAoAgQoAgAgAUECdGooAgAhAgsgACgCJCACQQN2Qfz///8BcWoiBCgCACIDQQEgAnQiBXFFBEAgBCADIAVyNgIAIABBCGogAiABECcLIAAoAlQiA0ECSg0AA0AgACADQQxsaiIBKAIwIAEoAjQiAkYEQCADQQFqIgNBA0cNAQwCCyACQQRrIgQoAgAhAiABIAQ2AjQgACADNgJUIAJBf0YNAQJAIAAoAhgiBCACQQNuIgFBA3ZB/P///wBxaigCACABdkEBcQ0AAkADQCAEIAJBA24iB0EDdkH8////AHFqIgEgASgCAEEBIAd0cjYCAEF/IQMCQAJAAn8gAkF/RwRAIAAoAgQoAgAgAkECdGooAgAhAwsCQAJAAkACQAJAIAAoAiQgA0EDdkH8////AXFqIgEoAgAiBEEBIAN0IgVxRQRAIAEgBCAFcjYCACAAKAIQKAJgIAdBDGxqIAJBA3BBAnRqKAIAIQkCQCAAKAIUKAIEIgUoAgQiBCAFKAIIRwRAIAQgCTYCACAFIARBBGo2AgQMAQsgBCAFKAIAIgZrIgFBAnUiCkEBaiIIQYCAgIAETw0CQf////8DIAFBAXYiCyAIIAggC0kbIAFB/P///wdPGyIIBH8gCEGAgICABE8NECAIQQJ0EAgFQQALIgsgCkECdGoiASAJNgIAIAFBBGohCSAEIAZHBEADQCABQQRrIgEgBEEEayIEKAIANgIAIAQgBkcNAAsLIAUgCyAIQQJ0ajYCCCAFIAk2AgQgBSABNgIAIAZFDQAgBhAHCwJAIAAoAgwiBSgCBCIEIAUoAghHBEAgBCACNgIAIAUgBEEEajYCBAwBCyAEIAUoAgAiBmsiAUECdSIJQQFqIghBgICAgARPDQNB/////wMgAUEBdiIKIAggCCAKSRsgAUH8////B08bIggEfyAIQYCAgIAETw0QIAhBAnQQCAVBAAsiCiAJQQJ0aiIBIAI2AgAgAUEEaiEJIAQgBkcEQANAIAFBBGsiASAEQQRrIgQoAgA2AgAgBCAGRw0ACwsgBSAKIAhBAnRqNgIIIAUgCTYCBCAFIAE2AgAgBkUNACAGEAcLIAAoAgwiASgCDCADQQJ0aiABKAIYNgIAIAEgASgCGEEBajYCGAsgAkF/Rg0JIAAoAgQhAUF/IQQgAkEBaiIDIAJBAmsgA0EDcBsiA0F/RwRAIAEoAgwgA0ECdGooAgAhBAsCfwJAIAdBA2wgAkcEQCACQQFrIQMMAQtBfyACQQJqIgNBf0YNARoLIAEoAgwgA0ECdGooAgALIgJBf0YhAyACQQNuIQYgBEF/RwRAIAAoAhggBEEDbiIFQQN2Qfz///8AcWooAgBBASAFdHEhBSADDQMgBUEARyEFDAQLQQEhBSADRQ0DDAkLEAsACxALAAsgBUUNAQwGCwJAIAAoAhhBfyAGIAMbIgNBA3ZB/P///wFxaigCACADdkEBcQ0AQQAhByAAKAIkIAEoAgAgAkECdGooAgAiAUEDdkH8////AXFqKAIAIAF2QQFxRQRAIAAoAlggAUECdGoiASABKAIAIgFBAWo2AgBBAkEBIAFBAEwbIQcLIAUgByAAKAJUTHENAwJAIAAgB0EMbGoiBigCNCIBIAYoAjhHBEAgASACNgIAIAYgAUEEajYCNAwBCyABIAYoAjAiCGsiA0ECdSIKQQFqIglBgICAgARPDQxB/////wMgA0EBdiILIAkgCSALSRsgA0H8////B08bIgkEfyAJQYCAgIAETw0MIAlBAnQQCAVBAAsiCyAKQQJ0aiIDIAI2AgAgA0EEaiECIAEgCEcEQANAIANBBGsiAyABQQRrIgEoAgA2AgAgASAIRw0ACwsgBiADNgIwIAYgAjYCNCAGIAsgCUECdGo2AjggCEUNACAIEAcLIAAoAlQgB0wNACAAIAc2AlQLIAUNBUF/IARBf0YNARoLIAAoAgQoAgAgBEECdGooAgALIQJBACEBIAAoAiQgAkEDdkH8////AXFqKAIAIAJ2QQFxRQRAIAAoAlggAkECdGoiASABKAIAIgFBAWo2AgBBAkEBIAFBAEwbIQELIAEgACgCVEoNASAEIQILIAAoAhghBAwBCwsCQCAAIAFBDGxqIgUoAjQiAiAFKAI4RwRAIAIgBDYCACAFIAJBBGo2AjQMAQsgAiAFKAIwIgZrIgNBAnUiCEEBaiIHQYCAgIAETw0HQf////8DIANBAXYiCSAHIAcgCUkbIANB/P///wdPGyIHBH8gB0GAgICABE8NBiAHQQJ0EAgFQQALIgkgCEECdGoiAyAENgIAIANBBGohBCACIAZHBEADQCADQQRrIgMgAkEEayICKAIANgIAIAIgBkcNAAsLIAUgAzYCMCAFIAQ2AjQgBSAJIAdBAnRqNgI4IAZFDQAgBhAHCyAAKAJUIgMgAUwNASAAIAE2AlQgASEDDAELIAAoAlQhAwsgA0EDSA0ACwtBAQ8LEA8ACxALAAsQCwALEAsAC7EEAQV/IABB3NkANgIAIABB6AFqIgMoAsQBIgEEQCADIAE2AsgBIAEQBwsgAygCuAEiAgRAIAMoArwBIgQgAiIBRwRAA0AgBEEMayIBKAIAIgUEQCAEQQhrIAU2AgAgBRAHCyABIgQgAkcNAAsgAygCuAEhAQsgAyACNgK8ASABEAcLIAMoApwBIgEEQCADIAE2AqABIAEQBwsgAygCiAEhAiADQQA2AogBIAIEQCACQQRrIgQoAgAiAQRAIAIgAUEEdGohAQNAIAFBEGsiASACRw0ACwsgBBAHCyAAQdgBahCXASAAKALEASIBBEAgACABNgLIASABEAcLIAAoArgBIgEEQCAAIAE2ArwBIAEQBwsgACgCrAEiAQRAIAAgATYCsAEgARAHCyAAKAKgASIBBEAgACABNgKkASABEAcLIAAoApABIgEEQANAIAEoAgAhAiABEAcgAiIBDQALCyAAKAKIASEBIABBADYCiAEgAQRAIAEQBwsgACgCeCIBBEAgARAHCyAAKAJsIgEEQCABEAcLIAAoAmAiAQRAIAEQBwsgACgCSCIBBEAgACABNgJMIAEQBwsgACgCPCIBBEAgARAHCyAAKAIwIgEEQCAAIAE2AjQgARAHCyAAKAIkIgEEQCAAIAE2AiggARAHCyAAKAIYIgEEQCAAIAE2AhwgARAHCyAAKAIMIgEEQCAAIAE2AhAgARAHCyAAKAIIIQEgAEEANgIIIAEEQCABEDELIAALvAMBBH8gAEGs2QA2AgAgACgChAMiAQRAIAAgATYCiAMgARAHCyAAKALwAiEDIABBADYC8AIgAwRAIANBBGsiBCgCACIBBEAgAyABQQR0aiECA0AgAkEQayICIANHDQALCyAEEAcLIABB2AFqEJcBIAAoAsQBIgEEQCAAIAE2AsgBIAEQBwsgACgCuAEiAQRAIAAgATYCvAEgARAHCyAAKAKsASIBBEAgACABNgKwASABEAcLIAAoAqABIgEEQCAAIAE2AqQBIAEQBwsgACgCkAEiAgRAA0AgAigCACEBIAIQByABIgINAAsLIAAoAogBIQEgAEEANgKIASABBEAgARAHCyAAKAJ4IgEEQCABEAcLIAAoAmwiAQRAIAEQBwsgACgCYCIBBEAgARAHCyAAKAJIIgEEQCAAIAE2AkwgARAHCyAAKAI8IgEEQCABEAcLIAAoAjAiAQRAIAAgATYCNCABEAcLIAAoAiQiAQRAIAAgATYCKCABEAcLIAAoAhgiAQRAIAAgATYCHCABEAcLIAAoAgwiAQRAIAAgATYCECABEAcLIAAoAgghASAAQQA2AgggAQRAIAEQMQsgAAulAwEEfyAAQfjYADYCACAAKALwAiEDIABBADYC8AIgAwRAIANBBGsiBCgCACIBBEAgAyABQQR0aiECA0AgAkEQayICIANHDQALCyAEEAcLIABB2AFqEJcBIAAoAsQBIgEEQCAAIAE2AsgBIAEQBwsgACgCuAEiAQRAIAAgATYCvAEgARAHCyAAKAKsASIBBEAgACABNgKwASABEAcLIAAoAqABIgEEQCAAIAE2AqQBIAEQBwsgACgCkAEiAgRAA0AgAigCACEBIAIQByABIgINAAsLIAAoAogBIQEgAEEANgKIASABBEAgARAHCyAAKAJ4IgEEQCABEAcLIAAoAmwiAQRAIAEQBwsgACgCYCIBBEAgARAHCyAAKAJIIgEEQCAAIAE2AkwgARAHCyAAKAI8IgEEQCABEAcLIAAoAjAiAQRAIAAgATYCNCABEAcLIAAoAiQiAQRAIAAgATYCKCABEAcLIAAoAhgiAQRAIAAgATYCHCABEAcLIAAoAgwiAQRAIAAgATYCECABEAcLIAAoAgghASAAQQA2AgggAQRAIAEQMQsgAAvvBQEGf0F/IQUCf0F/IAFBf0YNABogAUEBaiICIAFBAmsgAkEDcBshBSABQQFrIAFBA3ANABogAUECagshBgJAAn8CQAJAAkACQCAAKAKoAQ4IAAAFAgUBBQMFC0F/IQEgACgClAEhBEF/IQJBASEDIAAoApwBIgcgBUF/RwR/IAQoAgAgBUECdGooAgAFQX8LQQJ0aiICIAIoAgBBAWo2AgAgByAGQX9HBH8gBCgCACAGQQJ0aigCAAVBfwtBAnRqDAMLQX8hAiAAKAKUASEEQX8hAyABQX9HBEAgBCgCACABQQJ0aigCACEDCyAAKAKcASIBIANBAnRqIgMgAygCAEEBajYCACABIAVBf0cEfyAEKAIAIAVBAnRqKAIABUF/C0ECdGoiAiACKAIAQQFqNgIAQX8hAkECIQMgASAGQX9HBH8gBCgCACAGQQJ0aigCAAVBfwtBAnRqDAILQX8hAiAAKAKUASEEQX8hAyABQX9HBEAgBCgCACABQQJ0aigCACEDCyAAKAKcASIBIANBAnRqIgMgAygCAEEBajYCACABIAVBf0cEfyAEKAIAIAVBAnRqKAIABUF/C0ECdGoiAiACKAIAQQJqNgIAQX8hAkEBIQMgASAGQX9HBH8gBCgCACAGQQJ0aigCAAVBfwtBAnRqDAELQX8hAiAAKAKUASEEQX8hAyABQX9HBEAgBCgCACABQQJ0aigCACEDCyAAKAKcASIBIANBAnRqIgMgAygCAEECajYCACABIAVBf0cEfyAEKAIAIAVBAnRqKAIABUF/C0ECdGoiAiACKAIAQQJqNgIAQX8hAkECIQMgASAGQX9HBH8gBCgCACAGQQJ0aigCAAVBfwtBAnRqCyIBIAEoAgAgA2o2AgALQX8hASAAIAAoApwBIAVBf0cEfyAAKAKUASgCACAFQQJ0aigCAAVBfwtBAnRqKAIAIgEgACgCtAEiAiABIAJIGyAAKAKwASIAa0EAIAAgAUwbNgKsAQubBgEGf0F/IQICf0F/IAFBf0YNABogAUEBaiICIAFBAmsgAkEDcBshAiABQQFrIAFBA3ANABogAUECagshBwJAAn8CQAJAAkACQCAAKAK4ASIDDggAAAUCBQEFAwULQX8hBCAAKAKUASEGQX8hBSACQX9HBEAgBigCACACQQJ0aigCACEFC0EBIQMgACgCnAEiAiAFQQJ0aiIFIAUoAgBBAWo2AgAgAiAHQX9HBH8gBigCACAHQQJ0aigCAAVBfwtBAnRqDAMLQX8hBSAAKAKUASEEQX8hAyAAKAKcASIGIAFBf0cEfyAEKAIAIAFBAnRqKAIABUF/C0ECdGoiAyADKAIAQQFqNgIAIAYgAkF/RwR/IAQoAgAgAkECdGooAgAFQX8LQQJ0aiICIAIoAgBBAWo2AgBBfyECQQIhAyAGIAdBf0cEfyAEKAIAIAdBAnRqKAIABUF/C0ECdGoMAgtBfyEFIAAoApQBIQRBfyEDIAAoApwBIgYgAUF/RwR/IAQoAgAgAUECdGooAgAFQX8LQQJ0aiIDIAMoAgBBAWo2AgAgBiACQX9HBH8gBCgCACACQQJ0aigCAAVBfwtBAnRqIgIgAigCAEECajYCAEF/IQJBASEDIAYgB0F/RwR/IAQoAgAgB0ECdGooAgAFQX8LQQJ0agwBC0F/IQUgACgClAEhBEF/IQMgACgCnAEiBiABQX9HBH8gBCgCACABQQJ0aigCAAVBfwtBAnRqIgMgAygCAEECajYCACAGIAJBf0cEfyAEKAIAIAJBAnRqKAIABUF/C0ECdGoiAiACKAIAQQJqNgIAQX8hAkECIQMgBiAHQX9HBH8gBCgCACAHQQJ0aigCAAVBfwtBAnRqCyICIAIoAgAgA2o2AgAgACgCuAEhAwsCQAJAIAMOBgABAQEBAAELIAAoApwBAn9BfyABQX9GDQAaQX8gAUEBaiIFIAFBAmsgBUEDcBsiAUF/Rg0AGiAAKAKUASgCACABQQJ0aigCAAtBAnRqKAIAQQVMBEAgAEEFNgK8AQ8LIABBADYCvAEPCyAAQX82ArwBC4gBAQJ/IAAgATYCkAEgASABKAIAKAIgEQAAKAIgIgIoAgAgAigCEGohAiABIAEoAgAoAiARAAAoAiAiAykDCCADKQMQfachAyAAIAEgASgCACgCIBEAACgCIC8BJjsBJiAAIAI2AgAgAEIANwMQIAAgA603AwggACABIAEoAgAoAiQRAAA2ApQBC94BAQV/QQEhBQJAIAAoAowBIgJBAEwNAEF/IAJBBHQiAUEEciACQf////8ASxsQCCIDIAI2AgAgA0EEaiIDIAFqIQIgAyEBA0AgAUIANwIAIAFCADcABSABQRBqIgEgAkcNAAsgACgCiAEhBCAAIAM2AogBIAQEQCAEQQRrIgIoAgAiAwRAIAQgA0EEdGohAQNAIAFBEGsiASAERw0ACwsgAhAHC0EAIQEgACgCjAFBAEwNAANAIAAoAogBIAFBBHRqIAAQDCIFRQ0BIAFBAWoiASAAKAKMAUgNAAsLIAULtQMCAX8DfiMAQRBrIgIkACAAIAApAwA3AyggACAAKQMgNwNIIABBQGsgACkDGDcDACAAIAApAxA3AzggACAAKQMINwMwAn8CQCAAQShqQQEgAkEIahBMBEAgACAAKQMoNwMAIAAgACkDSDcDICAAIAApA0A3AxggACAAKQM4IgM3AxAgACAAKQMwIgQ3AwggAikDCCIFIAQgA31YDQELQQAMAQsgACADIAV8NwMQAkAgAC8BJkGBBE0EQCAAIAApAwA3A2AgACAAKQMgNwOAASAAIAApAxg3A3ggACAAKQMQNwNwIAAgACkDCDcDaAJAIABB4ABqQQEgAkEIahBMBEAgACAAKQNgNwMAIAAgACkDgAE3AyAgACAAKQN4NwMYIAAgACkDcCIDNwMQIAAgACkDaCIENwMIIAIpAwgiBSAEIAN9WA0BC0EADAMLIAAgAyAFfDcDEAwBC0EAIABB0ABqIAAQDEUNARoLQQAgABDxAUUNABogASAAKQMANwMAIAEgACkDIDcDICABIAApAxg3AxggASAAKQMQNwMQIAEgACkDCDcDCEEBCyEAIAJBEGokACAAC0kBAX8gAEHg3AA2AgAgACgCMCIBBEAgACABNgI0IAEQBwsgAEHc3gA2AgAgACgCJCIBBEAgARAHCyAAKAIYIgEEQCABEAcLIAALjgEBAn8jAEEQayIDJAAgACABNgIEIAEoAkAiASgCACEEIAEoAgQhASADQQA6AA8gAEEYaiABIARrQQJ1QQNuIANBD2oQISAAKAIEIgEoAjghBCABKAI0IQEgA0EAOgAOIABBJGogBCABa0ECdSADQQ5qECEgACACKQIINwIQIAAgAikCADcCCCADQRBqJAALggICA38CfgJAIAAoAgwiBCAAKAIIIgNrQQJ1IgUgAS0AGCIBSQRAIABBCGogASAFaxARIAAoAgghAyAAKAIMIQQMAQsgASAFTw0AIAAgAyABQQJ0aiIENgIMC0EAIQECQCACKQMIIAIpAxAiBiAEIANrIgStIgd8Uw0AIAMgAigCACAGp2ogBBAJGiACIAIpAxAgB3wiBjcDECACKQMIIAZCBHxTDQAgACACKAIAIAanaigAADYCFCACIAIpAxAiB0IEfCIGNwMQIAIpAwggBlcNACACKAIAIAanai0AACEDIAIgB0IFfDcDECADQQFrQR1LDQAgACADNgIEQQEhAQsgAQsZACAAEJQBIgBBADYCLCAAQazXADYCACAAC7QMAg5/A34jAEFAaiIEJAAgBEEANgI4IARCADcDMCAEQgA3AyggBEIANwMgIARCADcDGCAEQgA3AxAgBEIANwMIAkACfyAEQQhqIQUCQCABLwEmIgNFDQACQCADQf8DTQRAIAEpAwggASkDECIRQgR8Uw0CIAUgASgCACARp2ooAAAiCDYCDCABIAEpAxBCBHwiETcDEAwBC0EBIAVBDGogARA2RQ0BIAEpAxAhESAFKAIMIQgLIAhBBnatIAEpAwggEX1VDQACQCAFKAIEIAUoAgAiCWtBAnUiAyAISQRAIAUgCCADaxARIAUoAgwhCAwBCyADIAhNDQAgBSAJIAhBAnRqNgIEC0EBIAhFDQEaIAEpAxAhESAFKAIAIQsgASkDCCESQQAhCQNAQQAgESASWQ0CGiABKAIAIgogEadqLQAAIQYgASARQgF8IhE3AxAgBkECdiEDQQAhBwJAAkACQAJAIAZBA3EiDQ4EAgEBAAELQQAgCCADIAlqIgNNDQUaIAsgCUECdGpBACAGQfwBcUEEahAKGiADIQkMAgsDQCARIBJRDQQgCiARp2otAAAhCCABIBFCAXwiETcDECAIIAdBA3RBBnJ0IANyIQMgB0EBaiIHIA1HDQALCyALIAlBAnRqIAM2AgALIAlBAWoi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AQMCBAUHC0E8EAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCICACKAIcIgUgAigCGCIDRwRAIAUgA2siBkEASA0PIAAgBhAIIgE2AiAgACABIAZBfHFqNgIoA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsgACABNgIkCyAAIAQpAgA3AiwgACAEKQIINwI0IABBhBQ2AgAMBgtBPBAIIgAgAzYCBCAAQcgZNgIAIAAgAikCADcCCCAAIAIpAgg3AhAgACACKQIQNwIYIABBADYCKCAAQgA3AiAgAigCHCIFIAIoAhgiA0cEQCAFIANrIgZBAEgNDiAAIAYQCCIBNgIgIAAgASAGQXxxajYCKANAIAEgAygCADYCACABQQRqIQEgA0EEaiIDIAVHDQALIAAgATYCJAsgACAEKQIANwIsIAAgBCkCCDcCNCAAQYAaNgIADAULQfAAEAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCICACKAIcIgUgAigCGCIDRwRAIAUgA2siBkEASA0NIAAgBhAIIgE2AiAgACABIAZBfHFqNgIoA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsgACABNgIkCyAAIAQpAgA3AiwgACAEKQIINwI0IABCADcCPCAAQewbNgIAIABCADcCRCAAQgA3AkwgAEIANwJUIABCADcCXCAAQgA3AmQgAEEANgJsDAQLQdwAEAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCICACKAIcIgUgAigCGCIDRwRAIAUgA2siBkEASA0MIAAgBhAIIgE2AiAgACABIAZBfHFqNgIoA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsgACABNgIkCyAAIAQpAgA3AiwgACAEKQIINwI0IABCADcCPCAAQeQdNgIAIABCADcCRCAAQgA3AkwgAEEANgJUIAAgCTYCWAwDC0HoABAIIgAgAzYCBCAAQcgZNgIAIAAgAikCADcCCCAAIAIpAgg3AhAgACACKQIQNwIYIABBADYCKCAAQgA3AiAgAigCHCIFIAIoAhgiA0cEQCAFIANrIgZBAEgNCyAAIAYQCCIBNgIgIAAgASAGQXxxajYCKANAIAEgAygCADYCACABQQRqIQEgA0EEaiIDIAVHDQALIAAgATYCJAsgACAEKQIANwIsIAAgBCkCCDcCNCAAQQA2AlQgAEIANwJMIABCADcCPCAAQcgfNgIAIAAgBCkCADcCWCAAIAQpAgg3AmAMAgsCf0GAARAIIgAgAzYCBCAAQcgZNgIAIAAgAikCADcCCCAAIAIpAgg3AhAgACACKQIQNwIYIABBADYCKCAAQgA3AiACQCACKAIcIgEgAigCGCIDRwRAIAEgA2siA0EASA0BIAAgAxAIIgE2AiQgACABNgIgIAAgASADQXxxajYCKCACKAIYIgMgAigCHCIFRwRAA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsLIAAgATYCJAsgAEGQGTYCACAAIAQpAgA3AiwgACAEKQIINwI0IABBQGtCADcCACAAQagmNgI8IABBtCE2AgAgACAEKQIANwJIIAAgBCkCCDcCUCAAQoCAgPxzNwJoIABCfzcCYCAAQoGAgIBwNwJYIABBoCM2AjwgAEIANwJwIABCADcAdSAADAELDAoLIQAMAQsACwwBCyAEKAIsIQAgByAKNgIMIAcgADYCCCAHIAU2AhQgByAFQQxqNgIQIAdBCGohBEEAIQACQAJAAkACQAJAAkACQAJAIAFBAWsOBgABAwIEBQcLQTwQCCIAIAM2AgQgAEHIGTYCACAAIAIpAgA3AgggACACKQIINwIQIAAgAikCEDcCGCAAQQA2AiggAEIANwIgIAIoAhwiBSACKAIYIgNHBEAgBSADayIGQQBIDQ4gACAGEAgiATYCICAAIAEgBkF8cWo2AigDQCABIAMoAgA2AgAgAUEEaiEBIANBBGoiAyAFRw0ACyAAIAE2AiQLIAAgBCkCADcCLCAAIAQpAgg3AjQgAEHEJjYCAAwGC0E8EAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCICACKAIcIgUgAigCGCIDRwRAIAUgA2siBkEASA0NIAAgBhAIIgE2AiAgACABIAZBfHFqNgIoA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsgACABNgIkCyAAIAQpAgA3AiwgACAEKQIINwI0IABB7Ck2AgAMBQtB8AAQCCIAIAM2AgQgAEHIGTYCACAAIAIpAgA3AgggACACKQIINwIQIAAgAikCEDcCGCAAQQA2AiggAEIANwIgIAIoAhwiBSACKAIYIgNHBEAgBSADayIGQQBIDQwgACAGEAgiATYCICAAIAEgBkF8cWo2AigDQCABIAMoAgA2AgAgAUEEaiEBIANBBGoiAyAFRw0ACyAAIAE2AiQLIAAgBCkCADcCLCAAIAQpAgg3AjQgAEIANwI8IABBzCs2AgAgAEIANwJEIABCADcCTCAAQgA3AlQgAEIANwJcIABCADcCZCAAQQA2AmwMBAtB3AAQCCIAIAM2AgQgAEHIGTYCACAAIAIpAgA3AgggACACKQIINwIQIAAgAikCEDcCGCAAQQA2AiggAEIANwIgIAIoAhwiBSACKAIYIgNHBEAgBSADayIGQQBIDQsgACAGEAgiATYCICAAIAEgBkF8cWo2AigDQCABIAMoAgA2AgAgAUEEaiEBIANBBGoiAyAFRw0ACyAAIAE2AiQLIAAgBCkCADcCLCAAIAQpAgg3AjQgAEIANwI8IABBuC02AgAgAEIANwJEIABCADcCTCAAQQA2AlQgACAJNgJYDAMLQegAEAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCICACKAIcIgUgAigCGCIDRwRAIAUgA2siBkEASA0KIAAgBhAIIgE2AiAgACABIAZBfHFqNgIoA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgBUcNAAsgACABNgIkCyAAIAQpAgA3AiwgACAEKQIINwI0IABBADYCVCAAQgA3AkwgAEIANwI8IABBkC82AgAgACAEKQIANwJYIAAgBCkCCDcCYAwCCwJ/QYABEAgiACADNgIEIABByBk2AgAgACACKQIANwIIIAAgAikCCDcCECAAIAIpAhA3AhggAEEANgIoIABCADcCIAJAIAIoAhwiASACKAIYIgNHBEAgASADayIDQQBIDQEgACADEAgiATYCJCAAIAE2AiAgACABIANBfHFqNgIoIAIoAhgiAyACKAIcIgVHBEADQCABIAMoAgA2AgAgAUEEaiEBIANBBGoiAyAFRw0ACwsgACABNgIkCyAAQbQpNgIAIAAgBCkCADcCLCAAIAQpAgg3AjQgAEFAa0IANwIAIABBuDU2AjwgAEHwMDYCACAAIAQpAgA3AkggACAEKQIINwJQIABCgICA/HM3AmggAEJ/NwJgIABCgYCAgHA3AlggAEHMMjYCPCAAQgA3AnAgAEIANwB1IAAMAQsMCQshAAwBCwALCyAHQSBqJAAgACIDDQELQSwQCCIDIAs2AgQgA0HIGTYCACADIAIpAgA3AgggAyACKQIINwIQIAMgAikCEDcCGCADQQA2AiggA0IANwIgIAIoAhwiACACKAIYIgJHBEAgACACayIBQQBIDQIgAyABEAgiBDYCICADIAQgAUF8cWo2AigDQCAEIAIoAgA2AgAgBEEEaiEEIAJBBGoiAiAARw0ACyADIAQ2AiQLIANB1DU2AgALIAMMAQsMAgshBCAIKAIgIgBFDQAgCCAANgIkIAAQBwsgCEEwaiQAIAQPCxALAAuYAgIDfwN+AkAgAikDCCIIIAIpAxAiBlcNACACKAIAIgQgBqdqLAAAIQMgAiAGQgF8Igc3AxAgA0EHa0H/AXFB9wFJDQACQCADQX5GDQAgByAIWQ0BIAQgB6dqLAAAIQQgAiAGQgJ8NwMQIARBBGtB/wFxQfsBSQ0BIAAgAyAEIAAoAgAoAigRAwAhBCAAKAIUIQMgACAENgIUIANFDQAgAyADKAIAKAIEEQIACyAAKAIUIgMEQCAAIAMgACgCACgCHBEBAEUNAQsgACABIAIgACgCACgCJBEDAEUNAAJAIAAoAgQiAkUNACACLQAkQQFLDQAgACABKAIEIAEoAgBrQQJ1IAAoAgAoAjARAQBFDQELQQEhBQsgBQs5AQF/An8gACgCBCICBEBBASACLQAkQQJJDQEaCyAAIAEoAgQgASgCAGtBAnUgACgCACgCMBEBAAsLRAEBfwJ/QQAgACgCFCAAKAIQIgJrQQJ1IAFMDQAaQQAgAiABQQJ0aigCACIBQQBIDQAaIAAoAiQgAUECdGooAgAQQAsL0QEBA38gAEGYEjYCACAAKAI8IQEgAEEANgI8IAEEQCABIAEoAgAoAgQRAgALIAAoAjAiAQRAIAAgATYCNCABEAcLIAAoAiQiAQRAIAAoAigiAyABIgJHBEADQCADQQRrIgMoAgAhAiADQQA2AgAgAgRAIAIgAigCACgCBBECAAsgASADRw0ACyAAKAIkIQILIAAgATYCKCACEAcLIABBwA82AgAgACgCECIBBEAgACABNgIUIAEQBwsgACgCBCIBBEAgACABNgIIIAEQBwsgABAHC88BAQN/IABBmBI2AgAgACgCPCEBIABBADYCPCABBEAgASABKAIAKAIEEQIACyAAKAIwIgEEQCAAIAE2AjQgARAHCyAAKAIkIgEEQCAAKAIoIgMgASICRwRAA0AgA0EEayIDKAIAIQIgA0EANgIAIAIEQCACIAIoAgAoAgQRAgALIAEgA0cNAAsgACgCJCECCyAAIAE2AiggAhAHCyAAQcAPNgIAIAAoAhAiAQRAIAAgATYCFCABEAcLIAAoAgQiAQRAIAAgATYCCCABEAcLIAALjQIAQQAhAAJAAkACQAJAAkAgAQ4EAAECAwQLQRQQCCIAQv////8PNwIMIABCADcCBCAAQbgRNgIAIAAPC0EYEAgiAEL/////DzcCDCAAQgA3AgQgAEG4ETYCACAAQQA2AhQgAEGQEzYCACAADwtBMBAIIgBC/////w83AgwgAEIANwIEIABBuBE2AgAgAEEANgIUIABBkBM2AgAgAEGoDjYCGCAAQajWADYCACAAQgA3AiAgAEF/NgIcIABCADcCKCAADwtBIBAIIgFC/////w83AgwgAUIANwIEIAFBuBE2AgAgAUEANgIUIAFBkBM2AgAgASIAQYgINgIYIABB9DY2AgAgAEF/NgIcCyAAC8QCAQl/IwBBEGsiASQAQQEhBQJAIAAgACgCACgCGBEAACIGQQBMDQAgAEEwaiEHQQAhBQNAAkACQCAAIAAoAgAoAhwRAAAoAihFDQAgBEECdCIIIAAoAiRqKAIAIgIoAgghAyACEEAiCUUNACAAIAAoAgAoAhwRAAAoAighAiABIAMoAjg2AgwgAUEgEAgiAzYCACABQpiAgICAhICAgH83AgQgA0GyCSkAADcAECADQaoJKQAANwAIIANBogkpAAA3AAAgA0EAOgAYIAIgAUEMaiABEK4BIQIgASwAC0EASARAIAEoAgAQBwsgAkUNACAAKAIkIAhqKAIAKAIIIAkQ4AEMAQsgACgCJCAEQQJ0aigCACICIAcgAigCACgCGBEBAEUNAgsgBEEBaiIEIAZO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IAAgASAAKAIAKAIoEQEARQ0AIAAgACgCACgCLBEAACECCyACCwQAQQULMwAgAARAIAAsACdBAEgEQCAAKAIcEAcLIABBDGogACgCEBCNASAAIAAoAgQQUyAAEAcLC7oBAQR/IwBBEGsiAyQAIAMgACABIAIQ+gEgACADKAIANgIYAkAgAEEYaiIFIANGDQAgAEEcaiEBIANBBHIhAiADLQAPIgbAIQQgACwAJ0EATgRAIARBAE4EQCABIAIpAgA3AgAgASACKAIINgIIDAILIAEgAygCBCADKAIIEGAMAQsgASADKAIEIAIgBEEASCIAGyADKAIIIAYgABsQYQsgAywAD0EASARAIAMoAgQQBwsgA0EQaiQAIAULugEBBH8jAEEQayIDJAAgAyAAIAEgAhD7ASAAIAMoAgA2AhgCQCAAQRhqIgUgA0YNACAAQRxqIQEgA0EEciECIAMtAA8iBsAhBCAALAAnQQBOBEAgBEEATgRAIAEgAikCADcCACABIAIoAgg2AggMAgsgASADKAIEIAMoAggQYAwBCyABIAMoAgQgAiAEQQBIIgAbIAMoAgggBiAAGxBhCyADLAAPQQBIBEAgAygCBBAHCyADQRBqJAAgBQvVAwEEfyMAQSBrIgMkACADQQhqIQIjAEHQAGsiACQAIAAgASkDIDcDSCAAQUBrIAEpAxg3AwAgACABKQMQNwM4IAAgASkDCDcDMCAAIAEpAwA3AyggAEEIaiAAQShqIABBGGoQcgJAIAAoAggiAQRAIAIgATYCACACQQRqIQEgACwAF0EATgRAIAEgAEEIakEEciICKQIANwIAIAEgAigCCDYCCAwCCyABIAAoAgwgACgCEBASIAAsABdBAE4NASAAKAIMEAcMAQsgACwAF0EASARAIAAoAgwQBwsgAC0AHyIBQQJPBEBBIBAIIgFBADoAGiABQcULLwAAOwAYIAFBvQspAAA3ABAgAUG1CykAADcACCABQa0LKQAANwAAIABBfzYCCCAAQQhqQQRyIgQgAUEaEBIgACwAFyEFIAIgACgCCDYCACACQQRqIQIgBUEATgRAIAIgBCkCADcCACACIAQoAgg2AgggARAHDAILIAIgACgCDCAAKAIQEBIgACwAF0EASARAIAAoAgwQBwsgARAHDAELIAJCADcCACACIAE2AhAgAkIANwIICyAA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ai0AADoAASAEIAMoAgBqIAYgAEECcmotAAA6AAIgBCADKAIAaiAGIABBA3JqLQAAOgADIABBBGohACAEQQRqIQQgCkEEaiIKIAhHDQALCyAHBEADQCADKAIAIARqIAAgBmotAAA6AAAgAEEBaiEAIARBAWohBCABQQFqIgEgB0cNAAsLIAVBAWoiBSALTyEBIAUgC0cNAAsMAwsQCwALEAsACyAGRQ0BCyAGEAcLIAxBEGokACABQQFxC5AGAQl/IwBBEGsiDCQAIAEoAlAiCyACLQAYIgVsIQACQAJAAkACQAJAIAIoAhwiAUEBRyABQQJHcQ0AIAItAFRFDQAgAigCMCEBIAIoAgAoAgAhAiAMQQA2AgggDEIANwMAIAAEQCAAQQBIDQIgABAIIgYgASACaiAAEAkgAGohBAsgAygCACIABEAgAyAANgIEIAAQBwsgAyAENgIIIAMgBDYCBCADIAY2AgBBASEBDAQLIAUEQCAFEAgiBkEAIAUQChoLAkACQCADKAIEIgggAygCACIBayIHIABJBEAgACAHayIKIAMoAggiCSAIa00EQCADIAhBACAKEAogCmo2AgQMAgsgAEEASA0CQf////8HIAkgAWsiCEEBdCIJIAAgACAJSRsgCEH/////A08bIggQCCIJIAdqQQAgChAKGiADIAkgASAHEA4iByAIajYCCCADIAAgB2o2AgQgAyAHNgIAIAFFDQEgARAHDAELIAAgB08NACADIAAgAWo2AgQLIAtFBEBBASEBDAMLIAVFBEBBACEBQQAhAANAIAIgAi0AVAR/IAAFIAIoAkQgAEECdGooAgALIAIsABggBhBtRQ0EIABBAWoiACALTyEBIAAgC0cNAAsMAwsgBUH8AXEhCCAFQQNxIQdBACEBIAVBBEkhCUEAIQUDQCACIAItAFQEfyAFBSACKAJEIAVBAnRqKAIACyACLAAYIAYQbUUNA0EAIQFBACEAQQAhCiAJRQRAA0AgAygCACAEaiAAIAZqLQAAOgAAIAQgAygCAGogBiAAQQFyai0AADoAASAEIAMoAgBqIAYgAEECcmotAAA6AAIgBCADKAIAaiAGIABBA3JqLQAAOgADIABBBGohACAEQQRqIQQgCkEEaiIKIAhHDQALCyAHBEADQCADKAIAIARqIAAgBmotAAA6AAAgAEEBaiEAIARB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IgUgAEEFdiIBQQJ0aigCACIHcSISBEACQCAGKAIcIgIgBigCIEcEQCACQX82AgAgBiACQQRqNgIcDAELIAIgCygCACIBayIFQQJ1Ig9BAWoiB0GAgICABE8NCUH/////AyAFQQF2IhAgByAHIBBJGyAFQfz///8HTxsiBwR/IAdBgICAgARPDQcgB0ECdBAIBUEACyIQIA9BAnRqIgVBfzYCACAFQQRqIQ8gASACRwRAA0AgBUEEayIFIAJBBGsiAigCADYCACABIAJHDQALCyAGIBAgB0ECdGo2AiAgBiAPNgIcIAYgBTYCGCABRQ0AIAEQBwsCQCAGKAI0IgIgBigCOEcEQCACIAA2AgAgBiACQQRqNgI0DAELIAIgBigCMCIBayIFQQJ1Ig9BAWoiB0GAgICABE8NCUH/////AyAFQQF2IhAgByAHIBBJGyAFQfz///8HTxsiBwR/IAdBgICAgARPDQcgB0ECdBAIBUEACyIQIA9BAnRqIgUgADYCACAFQQRqIQAgASACRwRAA0AgBUEEayIFIAJBBGsiAigCADYCACABIAJHDQALCyAGIBAgB0ECdGo2AjggBiAANgI0IAYgBTYCMCABRQ0AIAEQBwsgCCgCFCICIAgoAhgiAEEFdEYEQCACQQFqQQBIDQkgCEEQaiACQf7///8DTQR/IABBBnQiACACQWBxQSBqIgEgACABSxsFQf////8HCxA+IAgoAhQhAgsgCCACQQFqNgIUIAgoAhAiBSACQQN2Qfz///8BcWoiACAAKAIAQX4gAndxNgIAQQEgA3QhAiAFIANBBXYiAUECdGooAgAhByADIgBBAWohAwsgBSABQQJ0aiACIAdyNgIAIAYoAhggAEECdGohDyAGKAIMIQUgBigCACEBIAgoAgAhByAEIQICQAJAAkADQCACQX9GDQEgByACQQN2Qfz///8BcWoiECAQKAIAQQEgAnRyNgIAIA8gAjYCACASBEAgASACQQJ0aiAANgIACyAEAn9BfyACQQFqIhAgAkECayAQQQNwGyICQX9GDQAaQX8gBSACQQJ0aigCACICQX9GDQAaIAJBAWoiECACQQJrIBBBA3AbCyICRw0ACyAEQX9HDQJBASECDAELIARBA3AEQCAEQQFrIQIMAQsgBEECaiICQX9GDQELIAUgAkECdGooAgAiAkF/Rg0A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KAIEEQIACyAAQeDnADYCACAAKAIUIgEEQCAAIAE2AhggARAHCyAAKAIIIgEEQCAAKAIMIgMgASICRwRAA0AgA0EEayIDKAIAIQIgA0EANgIAIAIEQCACIAIoAgAoAgQRAgALIAEgA0cNAAsgACgCCCECCyAAIAE2AgwgAhAHCyAAEAcLpwEBA38gAEGM2AA2AgAgACgCMCEBIABBADYCMCABBEAgASABKAIAKAIEEQIACyAAQeDnADYCACAAKAIUIgEEQCAAIAE2AhggARAHCyAAKAIIIgEEQCAAKAIMIgMgASICRwRAA0AgA0EEayIDKAIAIQIgA0EANgIAIAIEQCACIAIoAgAoAgQRAgALIAEgA0cNAAsgACgCCCECCyAAIAE2AgwgAhAHCyAACxQAIAAoAjAiACAAKAIAKAIcEQAACxQAIAAoAjAiACAAKAIAKAIYEQAAC/wHAgJ/AX4gACgCICIBKQMIIAEpAxAiA1UEfyABKAIAIAOnai0AACECIAEgA0IBfDcDECAAKAIwIQEgAEEANgIwIAEEQCABIAEoAgAoAgQRAgALAkACQAJ/AkACQAJAIAIOAwABAgQLQYADEAgiAUH42AA2AgAgAUEEakEAQdAAEAoaIAFCADcDYCABQX82AlwgAUJ/NwJUIAFCADcDaCABQgA3A3AgAUIANwN4IAFCADcDgAEgAUIANwOIASABQgA3A5ABIAFCADcCnAEgAUGAgID8AzYCmAEgAUIANwKkASABQgA3AqwBIAFCADcCtAEgAUIANwK8ASABQgA3AsQBIAFCADcCzAEgAUL/////DzcC1AEgAUIANwLcASABQegBahAaGiABQZACahAaGiABQbgCaiICQgA3AgAgAkIANwAFIAFByAJqEBoaIAFBADYC+AIgAUIANwPwAiABDAILQagDEAgiAUGs2QA2AgAgAUEEakEAQdAAEAoaIAFCADcDYCABQX82AlwgAUJ/NwJUIAFCADcDaCABQgA3A3AgAUIANwN4IAFCADcDgAEgAUIANwOIASABQgA3A5ABIAFCADcCnAEgAUGAgID8AzYCmAEgAUIANwKkASABQgA3AqwBIAFCADcCtAEgAUIANwK8ASABQgA3AsQBIAFCADcCzAEgAUL/////DzcC1AEgAUIANwLcASABQegBahAaGiABQZACahAaGiABQbgCaiICQgA3AgAgAkIANwAFIAFByAJqEBoaIAFCADcDiAMgAUIANwOAAyABQgA3A/gCIAFCADcD8AIgAUGQA2oiAkIANwIAIAJCADcABSABQn83A6ADIAEMAQtBuAMQCCIBQdzZADYCACABQQRqQQBB0AAQChogAUIANwNgIAFBfzYCXCABQn83AlQgAUIANwNoIAFCADcDcCABQgA3A3ggAUIANwOAASABQgA3A4gBIAFCADcDkAEgAUIANwKcASABQYCAgPwDNgKYASABQgA3AqQBIAFCADcCrAEgAUIANwK0ASABQgA3ArwBIAFCADcCxAEgAUIANwLMASABQv////8PNwLUASABQgA3AtwBIAFB6AFqEBoaIAFBkAJqEBoaIAFBuAJqIgJCADcCACACQgA3AAUgAUHIAmoQGhogAUIANwOIAyABQgA3A4ADIAFCADcD+AIgAUIANwPwAiABQgA3A6ADIAFCgoCAgPAANwOYAyABQn83A5ADIAFCADcDqAMgAUIANwOwAyABCyEBIAAoAjAhAiAAIAE2AjAgAkUNASACIAIoAgAoAgQRAgALIAAoAjAiAQ0AQQAPCyABIAAgASgCACgCCBEBAAVBAAsLFgAgACgCMCIAIAEgACgCACgCFBEBAAt+AQN/IABB4OcANgIAIAAoAhQiAgRAIAAgAjYCGCACEAcLIAAoAggiAgRAIAAoAgwiAyACIgFHBEADQCADQQRrIgMoAgAhASADQQA2AgAgAQRAIAEgASgCACgCBBECAAsgAiADRw0ACyAAKAIIIQELIAAgAjYCDCABEAcLIAALGwAgACgCLEUEQEEADwsgACAAKAIAKAIwEQAAC48BAgJ/AX4jAEEQayICJAACQCAAKAIEIgNBf0YNACABKQMQQgBVDQAgASABKAIEIAAoAgggACgCDBBfIAEpAxBCAFUNACABIAEoAgQgAEEUaiAAQRhqEF8gASkDECEEIAIgACgCBDoADyAEQgBVDQAgASABKAIEIAJBD2ogAkEQahBfCyACQRBqJAAgA0F/RwvvFQEYfyMAQRBrIg4kACAOIAE2AgwgDkEgEAgiATYCACAOQpiAgICAhICAgH83AgQgAUGyCSkAADcAECABQaoJKQAANwAIIAFBogkpAAA3AAAgAUEAOgAYIwBBMGsiDCQAIA4oAgwhBQJAAkAgACIBQRBqIgMoAgAiAkUNACADIQADQCAAIAIgAigCECAFSCIEGyEAIAJBBGogAiAEGygCACICDQALIAAgA0YNACAFIAAoAhBODQELIAxCADcCHCAMIAxBGGoiGEEEcjYCGCAMQRBqIgBCADcDACAMIAU2AgggDCAANgIMIAxBCGoiFiECIwBBEGsiFyQAIAwCfwJAIAFBDGoiFCgCBCIARQRAIBRBBGoiCiEBDAELIAIoAgAhAgNAIAAiASgCECIAIAJKBEAgASEKIAEoAgAiAA0BDAILIAAgAk4EQCABIQVBAAwDCyABKAIEIgANAAsgAUEEaiEKC0EgEAghBSAWKAIAIQAgBUEYaiIIQgA3AgAgBSAANgIQIAVBFGoiEyAINgIAIBYoAgQiACAWQQhqIhlHBEADQCMAQRBrIhAkACAXAn8gEEEIaiEVIABBEGohCwJAAkACQAJAAkACQAJAIAgiBCATQQRqIgdGDQAgBCgCFCAELQAbIgIgAsBBAEgiAxsiESALKAIEIAstAAsiAiACwCIPQQBIIgIbIhIgESASSSIJGyINBEAgCygCACALIAIbIgYgBCgCECAEQRBqIAMbIgMgDRAYIgJFBEAgESASSw0CDAMLIAJBAE4NAgwBCyARIBJNDQILIAQoAgAhBgJAAkAgBCIDIBMoAgBGDQACQCAGRQRAIAQhAgNAIAIoAggiAygCACACRiEJIAMhAiAJDQALDAELIAYhAgNAIAIiAygCBCICDQALCwJAIAsoAgQgCy0ACyICIALAIg9BAEgiDRsiESADKAIUIAMtABsiAiACwEEASCIJGyIVIBEgFUkbIgIEQCADKAIQIANBEGogCRsgCygCACALIA0bIAIQGCICDQELIBEgFUsNAQwCCyACQQBODQELIAZFBEAgECAENgIMIAQMCAsgECADNgIMIANBBGoMBwsgBygCACICRQRAIBAgBzYCDCAHDAcLIAsoAgAgCyAPQQBIGyENIAchBANAAkACQAJAAkACQCACIgMoAhQgAi0AGyICIALAQQBIIgIbIg8gESAPIBFJIgYbIgkEQCANIAMoAhAgA0EQaiACGyIHIAkQGCICRQRAIA8gEUsNAgwDCyACQQBODQIMAQsgDyARTQ0CCyADIQQgAygCACICDQQMCQsgByANIAkQGCICDQELIAYNAQwHCyACQQBODQYLIANBBGohBCADKAIEIgINAAsMBAsgAyAGIA0QGCICDQELIAkNAQwDCyACQQBODQILAkAgBCgCBCIGRQRAIAQhAgNAIAIoAggiAygCACACRyEJIAMhAiAJDQALDAELIAYhAgNAIAIiAygCACICDQALCwJAAkAgAyAHRg0AAkAgAygCFCADLQAbIgIgAsBBAEgiCRsiDSASIA0gEkkbIgIEQCALKAIAIAsgD0EASBsgAygCECADQRBqIAkbIAIQGCICDQELIA0gEksNAQwCCyACQQBODQELIAZFBEAgECAENgIMIARBBGoMBAsgECADNgIMIAMMAwsgBygCACICRQRAIBAgBzYCDCAHDAMLIAsoAgAgCyAPQQBIGyENIAchBANAAkACQAJAAkACQCACIgMoAhQgAi0AGyICIALAQQBIIgIbIg8gEiAPIBJJIgYbIgkEQCANIAMoAhAgA0EQaiACGyIHIAkQGCICRQRAIA8gEksNAgwDCyACQQBODQIMAQsgDyASTQ0CCyADIQQgAygCACICDQQMBQsgByANIAkQGCICDQELIAYNAQwDCyACQQBODQILIANBBGohBCADKAIEIgINAAsLIBAgAzYCDCAEDAELIBAgBDYCDCAVIAQ2AgAgFQsiBygCACIDBH9BAAVBKBAIIgNBEGohAgJAIAAsABtBAE4EQCACIAApAhA3AgAgAiAAKAIYNgIIDAELIAIgACgCECAAKAIUEBILIANBHGohAgJAIAAsACdBAE4EQCACIAApAhw3AgAgAiAAKAIkNgIIDAELIAIgACgCHCAAKAIgEBILIAMgECgCDDYCCCADQgA3AgAgByADNgIAIAMhAiATKAIAKAIAIgQEQCATIAQ2AgAgBygCACECCyATKAIEIAIQWyATIBMoAghBAWo2AghBAQs6AAwgFyADNgIIIBBBEGokAAJAIAAoAgQiAgRAA0AgAiIAKAIAIgINAAwCCwALA0AgACAAKAIIIgAoAgBHDQALCyAAIBlHDQALCyAFIAE2AgggBUIANwIAIAogBTYCACAFIQAgFCgCACgCACIBBEAgFCABNgIAIAooAgAhAAsgFCgCBCAAEFsgFCAUKAIIQQFqNgIIQQELOgAsIAwgBTYCKCAXQRBqJAAgDCgCKCEAIBZBBHIgDCgCEBBTIBggDCgCHBBTCyMAQTBrIgokACAK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YWlsZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZGVjb2Rlci4AVW5rbm93biBtaW5vciB2ZXJzaW9uLgBVbmtub3duIG1ham9yIHZlcnNpb24uAElucHV0IGlzIG5vdCBhIG1lc2guAFVuc3VwcG9ydGVkIGdlb21ldHJ5IHR5cGUuAE5vdCBhIERyYWNvIGZpbGUuAElucHV0IGlzIG5vdCBhIHBvaW50IGNsb3VkLgBVbnN1cHBvcnRlZCBlbmNvZGluZyBtZXRob2QuAEZhaWxlZCB0byBkZWNvZGUgbWV0YWRhdGEuAEZhaWxlZCB0byBkZWNvZGUgZ2VvbWV0cnkgZGF0YS4AKG51bGwpAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhAEtkVHJlZUF0dHJpYnV0ZXNEZWNvZGVyOiBjb21wcmVzc2lvbiBsZXZlbCAlaSBub3Qgc3VwcG9ydGVkLgoARmxvYXRQb2ludHNUcmVlRGVjb2RlcjogY29tcHJlc3Npb24gbGV2ZWwgJWkgbm90IHN1cHBvcnRlZC4KAFZlcnNpb24gbm90IHN1cHBvcnRlZC4gCgBNZXRob2Qgbm90IHN1cHBvcnRlZC4gCgAAAAAAAIQHAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAALAAAAGAAAABkAAABONWRyYWNvMzBBdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1FAAAAABg7AABYBwAAsAcAAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUAAAAA8DoAAJAHAAAAAAAAPAgAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAAE41ZHJhY28xN0F0dHJpYnV0ZXNEZWNvZGVyRQBONWRyYWNvMjZBdHRyaWJ1dGVzRGVjb2RlckludGVyZmFjZUUAAAAA8DoAAAwIAAAYOwAA8AcAADQIAAAAAAAApAgAACYAAAAnAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACgAAAApAAAAKgAAAE41ZHJhY28yM0tkVHJlZUF0dHJpYnV0ZXNEZWNvZGVyRQAAABg7AACACAAAPAgAAAAAAAAECQAAKwAAACwAAAAtAAAALgAAAC8AAAAwAAAAMQAAADIAAAAzAAAATjVkcmFjbzI2U2VxdWVudGlhbEF0dHJpYnV0ZURlY29kZXJFAAAAAPA6AADcCAAA/////wAAAAB8CQAANAAAADUAAAAcAAAANgAAADcAAAAfAAAAIAAAACEAAAA4AAAAOQAAADoAAAA7AAAAPAAAAE41ZHJhY28zN1NlcXVlbnRpYWxBdHRyaWJ1dGVEZWNvZGVyc0NvbnRyb2xsZXJFABg7AABMCQAAPAgAAAAAAADwCQAAPQAAAD4AAAA/AAAALgAAAC8AAAAwAAAAQAAAADIAAABBAAAAQgAAAEMAAABEAAAARQAAAE41ZHJhY28zM1NlcXVlbnRpYWxJbnRlZ2VyQXR0cmlidXRlRGVjb2RlckUAGDsAAMQJAAAECQAAAAAAAHwMAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1EZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzM3UHJlZGljdGlvblNjaGVtZVR5cGVkRGVjb2RlckludGVyZmFjZUlpaUVFAE41ZHJhY28zMlByZWRpY3Rpb25TY2hlbWVEZWNvZGVySW50ZXJmYWNlRQBONWRyYWNvMjVQcmVkaWN0aW9uU2NoZW1lSW50ZXJmYWNlRQDwOgAAIAwAABg7AAD1CwAARAwAABg7AADBCwAATAwAABg7AABtCwAAWAwAABg7AADXCgAAZAwAABg7AAA0CgAAcAwAAAAAAABwDAAARgAAAFIAAAAjAAAASQAAACMAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAAAjAAAAAAAAAGQMAABGAAAAUwAAACMAAABJAAAAIwAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAACMAAAAAAAAA2A0AAEYAAABUAAAAVQAAAEkAAABWAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAVwAAAE41ZHJhY280NU1lc2hQcmVkaWN0aW9uU2NoZW1lTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFABg7AAAwDQAAcAwAAAAAAADQDgAAWAAAAFkAAABaAAAASQAAAFsAAABLAAAATAAAAE0AAABOAAAATwAAAFwAAABdAAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAGDsAABwOAABwDAAAAAAAALQPAABeAAAAXwAAAGAAAABJAAAAYQAAAGIAAABjAAAAZAAAAE4AAABPAAAAZQAAAGYAAABONWRyYWNvMzZNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc0RlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAGDsAABQPAABwDAAAAAAAAKAQAABnAAAAaAAAAGkAAABJAAAAagAAAGsAAABsAAAAbQAAAE4AAABPAAAAbgAAAG8AAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAYOwAA+A8AAHAMAAAAAAAAjBEAAHAAAABxAAAAcgAAAEkAAABzAAAAdAAAAHUAAAB2AAAATgAAAE8AAAB3AAAAeAAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAAAAABg7AADkEAAAcAwAAAAAAAAUEwAAeQAAAHoAAAB7AAAAfAAAAH0AAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAAPA6AABfEgAAGDsAALQRAAAMEwAAAAAAAAwTAAB5AAAAfgAAACMAAAB8AAAAIwAAAAAAAACgFAAARgAAAH8AAACAAAAASQAAAIEAAABLAAAATAAAAE0AAABOAAAATwAAAFAAAACCAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAGDsAAAoUAABkDAAAGDsAAHQTAACUFAAAAAAAAJQUAABGAAAAgwAAACMAAABJAAAAIwAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAACMAAAAAAAAAuBUAAEYAAACEAAAAhQAAAEkAAACGAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAhwAAAE41ZHJhY280NU1lc2hQcmVkaWN0aW9uU2NoZW1lTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAABg7AAAcFQAAlBQAAAAAAACkFgAAiAAAAIkAAACKAAAASQAAAIsAAABLAAAATAAAAE0AAABOAAAATwAAAIwAAACNAAAATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAGDsAAPwVAACUFAAAAAAAAHwXAACOAAAAjwAAAJAAAABJAAAAkQAAAJIAAACTAAAAlAAAAE4AAABPAAAAlQAAAJYAAABONWRyYWNvMzZNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc0RlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAGDsAAOgWAACUFAAAAAAAAFwYAACXAAAAmAAAAJkAAABJAAAAmgAAAJsAAACcAAAAnQAAAE4AAABPAAAAngAAAJ8AAABONWRyYWNvNDRNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc1BvcnRhYmxlRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAAAYOwAAwBcAAJQUAAAAAAAAOBkAAKAAAAChAAAAogAAAEkAAACjAAAApAAAAKUAAACmAAAATgAAAE8AAACnAAAAqAAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAGDsAAKAYAACUFAAAAAAAAKQaAACpAAAAqgAAAKsAAACsAAAArQAAAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQDwOgAA/hkAABg7AABgGQAAnBoAAAAAAACcGgAAqQAAAK4AAAAjAAAArAAAACMAAAAAAAAAYBsAAEYAAACvAAAAsAAAAEkAAACxAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAsgAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFRUUAAAAAGDsAAAQbAABkDAAAAAAAANQbAACzAAAAtAAAALUAAAAuAAAALwAAALYAAABAAAAAMgAAAEEAAAC3AAAAuAAAALkAAAC6AAAATjVkcmFjbzMyU2VxdWVudGlhbE5vcm1hbEF0dHJpYnV0ZURlY29kZXJFAAAYOwAAqBsAAPAJAAAAAAAA4B0AALsAAAC8AAAAvQAAAL4AAAC/AAAAwAAAAMEAAADCAAAAwwAAAMQAAADFAAAAxgAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRUVFABg7AABpHQAAWAwAABg7AADIHAAAyB0AABg7AAAYHAAA1B0AAAAAAAB8HwAAxwAAAMgAAADJAAAAygAAAMsAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUA8DoAAL4eAAAYOwAACB4AAHQfAAAAAAAABCEAAMwAAADNAAAAzgAAAL4AAADPAAAA0AAAANEAAADSAAAAwwAAAMQAAADTAAAA1AAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAABg7AABjIAAAyB0AABg7AADAHwAA+CAAAAAAAACIIgAA1QAAANYAAADXAAAA2AAAANkAAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAA8DoAANUhAAAYOwAALCEAAIAiAAAAAAAAMCMAANoAAADbAAAA3AAAAL4AAADdAAAA3gAAAN8AAADgAAAAwwAAAMQAAADhAAAA4gAAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQAYOwAAzCIAAMgdAAAAAAAAZCUAAOMAAADkAAAA5QAAAOYAAADnAAAA6AAAAOkAAADqAAAA6wAAAOwAAADtAAAA7gAAAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yM1ByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAYOwAA3yQAAFgMAAAYOwAAMSQAAEwlAAAYOwAAdCMAAFglAAAAAAAAHCcAAO8AAADwAAAA8QAAAPIAAADzAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAADwOgAATyYAABg7AACMJQAAFCcAAAAAAADAKAAA9AAAAPUAAAD2AAAA5gAAAPcAAAD4AAAA+QAAAPoAAADrAAAA7AAAAPsAAAD8AAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAAAAABg7AAAQKAAATCUAABg7AABgJwAAtCgAAAAAAABcKgAA/QAAAP4AAAD/AAAAAAEAAAEBAABONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQmFzZUlpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUA8DoAAJ4pAAAYOwAA6CgAAFQqAAAAAAAAFCsAANoAAAACAQAAAwEAAOYAAAAEAQAABQEAAAYBAAAHAQAA6wAAAOwAAAAIAQAACQEAAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUAAAAAGDsAAKAqAABMJQAAAAAAAJgrAAAKAQAACwEAAAwBAAAuAAAALwAAAA0BAABAAAAAMgAAAEEAAAAOAQAAQwAAAEQAAAAPAQAAEAEAABEBAABONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRGVjb2RlckUAAAAAGDsAAGQrAADwCQAAAAAAAPgrAAASAQAAEwEAABQBAAAVAQAAIwAAABYBAAAXAQAAGAEAABkBAAAaAQAAGwEAABwBAAAjAAAATjVkcmFjbzExTWVzaERlY29kZXJFAAAAGDsAAOArAABMNAAAAAAAAGQsAAAdAQAAHgEAABQBAAAfAQAAIAEAABYBAAAXAQAAGAEAACEBAAAiAQAAIwEAACQBAAAlAQAATjVkcmFjbzIyTWVzaEVkZ2VicmVha2VyRGVjb2RlckUAAAAAGDsAAEAsAAD4KwAAAAAAAIgtAAAmAQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAAAvAQAA/////wAAAADsLQAAMAEAADEBAAAyAQAAMwEAADQBAAA1AQAANgEAADcBAAA4AQAAOQEAAAAAAABMLgAAOgEAADsBAAA8AQAAPQEAAD4BAAA/AQAAQAEAAEEBAABCAQAAQwEAAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzMxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsRGVjb2RlckVFRQBONWRyYWNvMzVNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbEludGVyZmFjZUUAAADwOgAAUC0AABg7AAAELQAAgC0AAE41ZHJhY28yNk1lc2hFZGdlYnJlYWtlckRlY29kZXJJbXBsSU5TXzQxTWVzaEVkZ2VicmVha2VyVHJhdmVyc2FsUHJlZGljdGl2ZURlY29kZXJFRUUAAAAYOwAAlC0AAIAtAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJEZWNvZGVySW1wbElOU18zOE1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbFZhbGVuY2VEZWNvZGVyRUVFAAAYOwAA+C0AAIAtAAAAAAAASC8AAEQBAABFAQAARgEAAE41ZHJhY28xOURlcHRoRmlyc3RUcmF2ZXJzZXJJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUA8DoAANkuAAAYOwAAbC4AAEAvAAAAAAAAQC8AAEcBAABIAQAARgEAQfTeAAu2BwEAAAADAAAABQAAAAcAAAAAAAAASDAAAEkBAABKAQAASwEAAEwBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzI4TWF4UHJlZGljdGlvbkRlZ3JlZVRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMyX0VFRUVFRQBONWRyYWNvMTVQb2ludHNTZXF1ZW5jZXJFAAAAAPA6AAAjMAAAGDsAAJwvAABAMAAA/////wAAAAA4MQAATQEAAE4BAABPAQAATjVkcmFjbzI4TWF4UHJlZGljdGlvbkRlZ3JlZVRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUATjVkcmFjbzEzVHJhdmVyc2VyQmFzZUlOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUAAPA6AADVMAAAGDsAAGwwAAAwMQAAAAAAADAxAABQAQAAUQEAAE8BAAAAAAAA8DEAAFIBAABTAQAAVAEAAFUBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMyX0VFRUVFRQAAABg7AABwMQAAQDAAAAAAAABwMgAAVgEAAFcBAABPAQAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUAGDsAABAyAAAwMQAAAAAAACAzAABYAQAAWQEAAFoBAABbAQAATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18xOURlcHRoRmlyc3RUcmF2ZXJzZXJJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNl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\\\";var vE=\\\"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ACEBA0AgASIDKAIEQXhxIABGDQIgBEEddiEBIARBAXQhBCADIAFBBHFqIgdBEGooAgAiAQ0ACyAHIAI2AhAgAiADNgIYCyACIAI2AgwgAiACNgIIDAELIAMoAggiACACNgIMIAMgAjYCCCACQQA2AhggAiADNgIMIAIgADYCCAtB5JcBQeSXASgCAEEBayIAQX8gABs2AgALCzQBAX8gAEEBIAAbIQACQANAIAAQpgEiAQ0BQbSbASgCACIBBEAgARENAAwBCwsQAAALIAEL8gICAn8BfgJAIAJFDQAgACABOgAAIAAgAmoiA0EBayABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBA2sgAToAACADQQJrIAE6AAAgAkEHSQ0AIAAgAToAAyADQQRrIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBBGsgATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQQhrIAE2AgAgAkEMayABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkEQayABNgIAIAJBFGsgATYCACACQRhrIAE2AgAgAkEcayABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa1CgYCAgBB+IQUgAyAEaiEBA0AgASAFNwMYIAEgBTcDECABIAU3AwggASAFNwMAIAFBIGohASACQSBrIgJBH0sNAAsLIAALCQBBoQoQ2QEACyMBAX9BCBCbAUGhChDyASIAQdCUATYCACAAQfCUAUEBEAEAC8oEAQd/IAMgAmsiB0EATARADwsCQCAAKAIIIgQgACgCBCIIayAHTgRAIAggAWsiCSAHTgRAIAghBSADIQYMAgsgCCEFIAMgAiAJaiIGRwRAIAYhBANAIAUgBC0AADoAACAFQQFqIQUgBEEBaiIEIANHDQALCyAAIAU2AgQgCUEASg0BDwsgCCAAKAIAIgprIAdqIgZBAE4EQCABIAprIQkgCUH/////ByAEIAprIgVBAXQiBCAGIAQgBksbIAVB/////wNPGyIFBH8gBRAFBUEACyIEaiEGIAIgA0cEQCAGIAIgBxALIAdqIQYLIAQgCiAJEAohAyAGIAEgCCABayICEAohASAAIAQgBWo2AgggACAB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gYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEIQJCACEBIAJQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rECBBECAGayEGIAUpA1giDUIgiCEOIAUpA1AhAQsgAkL///////8/Vg0AIAVBQGsgAyAMIAMgDCAMUCIIG3kgCEEGdK18pyIIQQ9rECAgBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINCAFIEQCAGQQFqIQYMAQsgC0I/iCEDIARCAYYgAkI/iIQhBCACQgGGIAFCP4iE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AgQLIgWtIAatQiCGhDcCAAsgAigCACEEIAAgASgCBCIDIAIoAgQgBmsiAUEfdXEgAWo2AgQgACADIAQgBWsiAEEfdXEgAGo2AgALBABBAAvFCQIEfwV+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEQgBSDQAgASEDIAIhBAwBCyADIAEgASADVCAJIApWIAkgClEbIggbIQogBCACIAgbIgtC////////P4MhCSACIAQgCBsiAkIwiKdB//8BcSEHIAtCMIinQf//AXEiBUUEQCAGQeAAaiAKIAkgCiAJIAlQIgUbeSAFQQZ0rXynIgVBD2sQICAGKQNoIQkgBikDYCEKQRAgBWshBQsgASADIAgbIQMgAkL///////8/gyEEIAdFBEAgBkHQAGogAyAEIAMgBCAEUCIHG3kgB0EGdK18pyIHQQ9rECBBECAHayEHIAYpA1ghBCAGKQNQIQMLIARCA4YgA0I9iIRCgICAgICAgASEIQEgCUIDhiAKQj2IhCEEIAIgC4UhDQJ+IANCA4YiAiAFIAdGDQAaIAUgB2siB0H/AEsEQEIAIQFCAQwBCyAGQUBrIAIgAUGAASAHaxAgIAZBMGogAiABIAcQTSAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQkgBEKAgICAgICABIQhDCAKQgOGIQoCQCANQgBTBEBCACEDQgAhBCAJIAqFIAEgDIWEUA0CIAogCX0hAiAMIAF9IAkgClatfSIEQv////////8DVg0BIAZBIGogAiAEIAIgBCAEUCIHG3kgB0EGdK18p0EMayIHECAgBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAx8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgC0KAgICAgICAgIB/gyEBIAVB//8BTgRAIAFCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahAgIAYgAiAEQQEgBWsQTSAGKQMAIAYpAxAgBikDGIRCAFKthCECIAYpAwghBAsgAqdBB3EiBUEES60gBEI9hiACQgOIhCICfCIDIAJUrSAEQgOIQv///////z+DIAetQjCGhCABhHwhBAJAIAVBBEYEQCAEIANCAYMiASADfCIDIAFUrXwhBAwBCyAFRQ0BCwsgACADNwMAIAAgBDcDCCAGQfAAaiQAC34CAn8BfiMAQRBrIgMkACAAAn4gAUUEQEIADAELIAMgASABQR91IgJzIAJrIgKtQgAgAmciAkHRAGoQICADKQMIQoCAgICAgMAAhUGegAEgAmutQjCGfCABQYCAgIB4ca1CIIaEIQQgAykDAAs3AwAgACAENwMIIANBEGokAAsGACAAEAQLvgIBBn8gAiABayIFQQJ1IgYgACgCCCIDIAAoAgAiBGtBAnVNBEAgASAAKAIEIARrIgVqIgMgAiAGIAVBAnUiCEsbIgUgAWshByABIAVHBEAgBCABIAcQChoLIAYgCEsEQCAAKAIEIQEgAiAFRwRAA0AgASADKAIANgIAIAFBBGohASADQQRqIgMgAkcNAAsLIAAgATYCBA8LIAAgBCAHajYCBA8LIAQEQCAAIAQ2AgQgBBAEIABBADYCCCAAQgA3AgBBACEDCwJAIAVBAEgNAEH/////AyADQQF2IgQgBiAEIAZLGyADQfz///8HTxsiA0GAgICABE8NACAAIANBAnQiBBAFIgM2AgAgACADIARqNgIIIAAgASACRwR/IAMgASAFQQRrQXxxQQRqIgAQCyAAagUgAws2AgQPCxAHAAvQAQEDfyMAQRBrIgEkACABQRAQBSICNgIAIAFCjoCAgICCgICAfzcCBCAC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IgAgAMBBAEgiAhsiACADIAAgA0kbIgQEQCAFIAEoAhAgAUEQaiACGyAEEBIiBQ0BCyAAIANLDQEMAgsgBUEATg0BCyAGIQELIAELdAEBfyACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAEoAgQiAi0AACEBAkAgACgCBCIDLQAAIgBFDQAgACABRw0AA0AgAi0AASEBIAMtAAEiAEUNASACQQFqIQIgA0EBaiEDIAAgAUYNAAsLIAAgAUYL+QECA34CfyMAQRBrIgUkAAJ+IAG9IgNC////////////AIMiAkKAgICAgICACH1C/////////+//AFgEQCACQjyGIQQgAkIEiEKAgICAgICAgDx8DAELIAJCgICAgICAgPj/AFoEQCADQjyGIQQgA0IEiEKAgICAgIDA//8AhAwBCyACUARAQgAMAQsgBSACQgAgA6dnQSBqIAJCIIinZyACQoCAgIAQVBsiBkExahAgIAUpAwAhBCAFKQMIQoCAgICAgMAAhUGM+AAgBmutQjCGhAshAiAAIAQ3AwAgACACIANCgICAgICAgICAf4OENwMIIAVBEGokAAtpAQN/AkAgACIBQQNxBEADQCABLQAARQ0CIAFBAWoiAUEDcQ0ACwsDQCABIgJBBGohASACKAIAIgNBf3MgA0GBgoQIa3FBgIGChHhxRQ0ACwNAIAIiAUEBaiECIAEtAAANAAsLIAEgAGsLlAQBA38gASAAIAFGIgI6AAwCQCACDQADQCABKAIIIgItAAwNAQJAIAIgAigCCCIDKAIAIgRGBEACQCADKAIEIgRFDQAgBC0ADA0ADAILAkAgASACKAIARgRAIAIhAQwBCyACIAIoAgQiASgCACIANgIEIAEgAAR/IAAgAjYCCCACKAIIBSADCzYCCCACKAIIIgAgACgCACACR0ECdGogATYCACABIAI2AgAgAiABNgIIIAEoAggiAygCACECCyABQQE6AAwgA0EAOgAMIAMgAigCBCIANgIAIAAEQCAAIAM2AggLIAIgAygCCDYCCCADKAIIIgAgACgCACADR0ECdGogAjYCACACIAM2AgQgAyACNgIIDwsCQCAERQ0AIAQtAAwNAAwBCwJAIAEgAigCAEcEQCACIQEMAQsgAiABKAIEIgA2AgAgASAABH8gACACNgIIIAIoAggFIAMLNgII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ACgCKGohBgJ/IAAoAiAiAkGAgAFrIgNBP00EQCAAKAIYIAAoAhxqIAI6AAAgACgCHEEBagwBCyADQf//AE0EQCAAKAIYIAAoAhxqIAI7AAAgACgCHEECagwBCyADQf///wFNBEAgACgCGCAAKAIcaiIDIAJBgID/A2oiBUEQdjoAAiADIAVBCHY6AAEgAyACOgAAIAAoAhxBA2oMAQsgA0H/////A00EQCAAKAIYIAAoAhxqIgMgAkGAgIGABGsiBUEYdjoAAyADIAVBEHY6AAIgAyAFQQh2OgABIAMgAjoAACAAKAIcQQRqDAELIAAoAhwLIgWsIgchCCAEQgA3AwAgBEEAOgAYIARCADcDECAEQgA3AwggCCAEIgIQRBogBiACKAIEIAIoAgBrIgNqIAYgBRAKGiAGIAIoAgAgAxALGiABIAApAyggA60gB3x8EBkgAigCDCEAIAJBADYCDCAABEAgABAECyACKAIAIgAEQCACIAA2AgQgABAECyAEQSBqJAALAwAACwwAIAEgAiAAEPMBGgstACAAIAEQOyIBIABBBGpHBH8gAUEcaiIAKAIAIAAgASwAJ0EASBsQfgUgAgsLSAMBfAF+AX8gACgCCCIDQQJOBH4gA7ciASABEAyiIAArAwChmyIBmUQAAAAAAADgQ2MEQCABsA8LQoCAgICAgICAgH8FQgALCw8AIAAgASACIANBABDfAgtBAQJ8AkAgAEUNACABRQ0AIAAgAUYNAEQAAAAAAADwPyABuCAAuKMiAqEhAyACIAIQDKIgAyADEAyioJohAgsgAgsTACABQQF0QcCOAWpBAiAAEPMBC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQEF/IQQgACACVCABIANTIAEgA1EbDQEgACAChSABIAOFhEIAUg8LQX8hBCAAIAJWIAEgA1UgASADURsNACAAIAKFIAEgA4WEQgBSIQQLIAQLigQBBX8gAkEgIAFrIgR0IQICQAJAAkAgAUEgIAAoAhAiA2siBUwEQCAAIAEgA2oiATYCECAAIAAoAgwgAiADdnIiBDYCDCABQSBHDQECQCAAKAIEIgEgACgCCEcEQCABIAQ2AgAgACABQQRqNgIEDAELIAEgACgCACIBayICQQJ1IgVBAWoiA0GAgICABE8NA0H/////AyACQQF2IgYgAyADIAZJGyACQfz///8HTxsiAwR/IANBgICAgARPDQUgA0ECdBAFBUEACyIGIAVBAnRqIgUgBDYCACAAIAYgASACEAoiAiADQQJ0ajYCCCAAIAVBBGo2AgQgACACNgIAIAFFDQAgARAECyAAQgA3AgwPCyAAIAEgBWsiATYCECAAIAAoAgwgAiAEdiIFIAF2ciIENgIMAkAgACgCBCIBIAAoAghHBEAgASAENgIAIAAgAUEEajYCBAwBCyABIAAoAgAiAWsiAkECdSIGQQFqIgNBgICAgARPDQJB/////wMgAkEBdiIHIAMgAyAHSRsgAkH8////B08bIgMEfyADQYCAgIAETw0EIANBAnQQBQVBAAsiByAGQQJ0aiIGIAQ2AgAgACAHIAEgAhAKIgIgA0ECdGo2AgggACAGQQRqNgIEIAAgAjYCACABRQ0AIAEQBAsgACAFQSAgACgCEGt0NgIMCw8LEAcACxAOAAuFAgEGfyAAQQA2AgggAEIANwIAAkACQCABBEAgAUHWqtWqAU8NASAAIAFBDGwiARAFIgM2AgQgACADNgIAIAAgASADaiIENgIIAkAgAigCBCIFIAIoAgAiBkYEQCADQQAgAUEMayIBIAFBDHBrQQxqEAYaDAELIAUgBmsiB0EASA0DIAdBfHEhCANAIANBADYCCCADQgA3AgAgAyAHEAUiATYCACADIAEgCGo2AgggBiECA0AgASACKAIANgIAIAFBBGohASACQQRqIgIgBUcNAAsgAyABNgIEIANBDGoiAyAERw0ACwsgACAENgIECw8LEAcACyADQQA2AgggA0IANwIAEAcAC1IBAn9BlJUBKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQAkUNAQtBlJUBIAA2AgAgAQ8LQZCWAUEwNgIAQX8L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Rg0CCyAEKAIMIAJBAnRqKAIAIgJBf0cNAAsLIAogCEEBajYCDAJAIAAoAmwiAiAAKAJwIgRJBEAgAiAKKAIMNgIAIAAgAkEEajYCbAwBCwJAIAIgACgCaCICayIFQQJ1IgZBAWoiA0GAgICABEkEQEH/////AyAEIAJrIgRBAXYiByADIAMgB0kbIARB/P///wdPGyIDBH8gA0GAgICABE8NAiADQQJ0EAUFQQALIgQgBkECdGoiBiAKKAIMNgIAIAAgBCACIAUQCiIEIANBAnRqNgJwIAAgBkEEajYCbCAAIAQ2AmggAgRAIAIQBAsMAgsQBwALEA4ACwwDCyADIAQgAkECdGooAgBBAnRqIgIgAigCAEEBazYCACADIAcoAgBBAnRqIgIgAigCAEEBazYCACADIAQgBUECdGooAgBBAnRqIgIgAigCAEECazYCAAwCCyADIAQgAkECdGooAgBBAnRqIgIgAigCAEEBazYCACADIAcoAgBBAnRqIgIgAigCAEECazYCACADIAQgBUECdGooAgBBAnRqIgIgAigCAEEBazYCAAwBCyADIAQgAkECdGooAgBBAnRqIgIgAigCAEECazYCACADIAcoAgBBAnRqIgIgAigCAEECazYCACADIAQgBUECdGooAgBBAnRqIgIgAigCAEECazYCAAsCQAJAAkAgACgCdCICQX9GDQAgAkECdEGw1wBqKAIAIQUgACgCiAEgCSAAKAKEASICIAIgCUobIAAoAoABIgJrQQAgAiAJTBtBDGxqIgIoAgQiAyACKAIIIgZJBEAgAyAFNgIAIAIgA0EEajYCBAwBCyADIAIoAgAiA2siCUECdSIHQQFqIgRBgICAgARPDQFB/////wMgBiADayIGQQF2IgggBCAEIAhJGyAGQfz///8HTxsiBAR/IARBgICAgARPDQMgBEECdBAFBUEACyIGIAdBAnRqIgcgBTYCACACIAYgAyAJEAoiBTYCACACIAdBBGo2AgQgAiAFIARBAnRqNgIIIANFDQAgAxAECyAAIAE2AnQgCkEQaiQADwsQBwALEA4AC4kBAQF/IAAoAlQiAQRAIAAgATYCWCABEAQLIAAoAkgiAQRAIAAgATYCTCABEAQLIAAoAjQiAQRAIAAgATYCOCABEAQLIAAoAigiAQRAIAAgATYCLCABEAQLIAAoAhwiAQRAIAAgATYCICABEAQLIAAoAgwiAQRAIAEQBAsgACgCACIABEAgABAECwuOAQEBfyAABEAgACgCTCIBBEAgACABNgJQIAEQBAsgAEFAaygCACIBBEAgACABNgJEIAEQBAsgACgCMCIBBEAgACABNgI0IAEQBAsgACgCGCIBBEAgACABNgIcIAEQBAsgACgCDCIBBEAgACABNgIQIAEQBAsgACgCACIBBEAgACABNgIEIAEQBAsgABAECwuqAwIFfwJ+IwBBIGsiBCQAIAEoAgAgACgCKGohBQJ/IAAoAiAiAkGAgIACayIDQT9NBEAgACgCGCAAKAIcaiACOgAAIAAoAhxBAWoMAQsgA0H//wBNBEAgACgCGCAAKAIcaiIDIAJBgIABakEIdjoAASADIAI6AAAgACgCHEECagwBCyADQf///wFNBEAgACgCGCAAKAIcaiIDIAJBgICAAmpBEHY6AAIgAyACQQh2OgABIAMgAjoAACAAKAIcQQNqDAELIANB/////wNNBEAgACgCGCAAKAIcaiIDIAJBgICAggRrIgZBGHY6AAMgAyAGQRB2OgACIAMgAkEIdjoAASADIAI6AAAgACgCHEEEagwBCyAAKAIcCyIGrCIHIQggBEIANwMAIARBADoAGCAEQgA3AxAgBEIANwMIIAggBCICEEQaIAUgAigCBCACKAIAayIDaiAFIAYQChogBSACKAIAIAMQCxogASAAKQMoIAOtIAd8fBAZIAIoAgwhACACQQA2AgwgAARAIAAQBAsgAigCACIABEAgAiAANgIEIAAQBAsgBEEgaiQACykAIAEEQCAAIAEoAgAQdSAAIAEoAgQQdSABQRRqIAEoAhgQFCABEAQLC64CAQV/IAIgAWsiBUECdSIGIAAoAggiBCAAKAIAIgNrQQJ1TQRAIAEgACgCBCADayIEaiACIAYgBEECdSIHSxsiBCABayEFIAEgBEcEQCADIAEgBRAKGgsgBiAHSwRAIAIgBGshASAAKAIEIQMgAiAERwRAIAMgBCABEAoaCyAAIAEgA2o2AgQPCyAAIAMgBWo2AgQPCyADBEAgACADNgIEIAMQBCAAQQA2AgggAEIANwIAQQAhBAsCQCAFQQBIDQBB/////wMgBEEBdiIDIAYgAyAGSxsgBEH8////B08bIgNBgICAgARPDQAgACADQQJ0IgQQBSIDNgIEIAAgAzYCACAAIAMgBGo2AgggASACRwRAIAMgASAFEAsaCyAAIAMgBkECdGo2AgQPCxAHAAsHACAAKAIcCwcAIAAoAgQLxwkBCX8jAEEgayIHJAACQAJAIAAoAghBBXQgAU8NACABQQBIDQEgAUEBa0EFdkEBaiIBQQJ0EAUhAiAHIAE2AhggB0EANgIUIAcgAjYCECAAKAIAIQEgB0EANgIMIAcgATYCCCAHIAAoAgQiAkEfcTYCBCAHIAEgAkEDdkH8////AXFqNgIAIwBBIGsiAiQAIAcgBygCBCIIIAcoAgwiBWsgBygCACIJIAcoAggiA2tBA3RqIgEgBygCFCIGaiIENgIUIAZBACAEQQFrIAZBAWtzQSBJG0UEQCAHKAIQIARBAWtBBXZBACAEQSFPG0ECdGpBADYCAAsgBygCECAGQQN2Qfz///8BcWohBAJAIAZBH3EiBiAFRgRAIAFBAEwNASAFBEAgBCAEKAIAQX8gBXRBf0EgIAVrIgYgASAGIAEgBkgbIgZrdnEiCEF/c3EgAygCACAIcXI2AgAgA0EEaiEDIAQgBSAGakEDdkH8////AXFqIQQgASAGayEBCyABQSBtIQUgAUEfakE/TwRAIAQgAyAFQQJ0EAoaCyABIAVBBXRrIgFBAEwNASAEIAVBAnQiBWoiBCAEKAIAQX9BICABa3YiAUF/c3EgAyAFaigCACABcXI2AgAMAQsgAiAFNgIcIAIgAzYCGCACIAg2AhQgAiAJNgIQIAIgBjYCDCACIAQ2AggCQCACKAIUIAIoAhwiAWsgAigCECACKAIYIgRrQQN0aiIFQQBMBEAgAigCDCEBIAIoAgghAwwBCwJAIAFFBEAgAigCDCEBDAELIAIoAggiCSAJKAIAQX9BICACKAIMIgNrIgggCCAFQSAgAWsiCiAFIApIGyIGIAYgCEsbIghrdkF/IAN0cUF/c3EgBCgCAEF/IAF0QX8gCiAGa3ZxcSIKIAMgAWt0IAogASADa3YgASADSRtyNgIAIAIgAyAIaiIEQR9xIgE2AgwgAiAJIARBA3ZB/P///wFxaiIDNgIIIAYgCGsiBEEASgRAIAMgAygCAEF/QSAgBGt2QX9zcSAKIAIoAhwgCGp2cjYCACACIAQ2AgwgBCEBCyAFIAZrIQUgAiACKAIYQQRqIgQ2AhgLQX8gAXQhCEEgIAFrIQYgBUEgTgRAIAhBf3MhCQNAIAIoAggiAyADKAIAIAlxIAQoAgAiBCABdHI2AgAgAiADQQRqNgIIIAMgAygCBCAIcSAEIAZ2cjYCBCACIAIoAhhBBGoiBDYCGCAFQT9LIQMgBUEgayEFIAMNAAsLIAIoAgghAyAFQQBMDQAgAyADKAIAQX8gBiAGIAUgBSAGShsiBmt2IAhxQX9zcSAEKAIAQX9BICAFa3ZxIgggAXRyNgIAIAIgASAGaiIBQR9xIgQ2AgwgAiADIAFBA3ZB/P///wFxaiIDNgIIIAUgBmsiAUEATARAIAQhAQwBCyADIAMoAgBBf0EgIAFrdkF/c3EgCCAGdnI2AgAgAiABNgIMCyACIAE2AgQgAiADNgIACyACQSBqJAAgACgCACEBIAAgBygCEDYCACAHIAE2AhAgACgCBCECIAAgBygCFDYCBCAHIAI2AhQgACgCCCECIAAgBygCGDYCCCAHIAI2AhggAUUNACABEAQLIAdBIGokAA8LEAcAC44CAQR/IAAoAhAhAiABBEAgACAAKAIMQYCAgIB4IAJ2cjYCDAsgACACQQFqIgE2AhACQAJAIAFBIEYEQAJAIAAoAgQiASAAKAIIRwRAIAEgACgCDDYCACAAIAFBBGo2AgQMAQsgASAAKAIAIgFrIgJBAnUiBEEBaiIDQYCAgIAETw0CQf////8DIAJBAXYiBSADIAMgBUkbIAJB/P///wdPGyIDBH8gA0GAgICABE8NBCADQQJ0EAUFQQALIgUgBEECdGoiBCAAKAIMNgIAIAAgBSABIAIQCiICIANBAnRqNgIIIAAgBEEEajYCBCAAIAI2AgAgAUUNACABEAQLIABCADcCDAsPCxAHAAsQDgAL7AMBBX8CQAJAIABBEGoiBSgCACIDRQ0AIAEoAgAhBCAFIQEDQCABIAMgAygCECAESCIGGyEBIANBBGogAyAGGygCACIDDQALIAEgBUYNACAEIAEoAhBIDQAgASgCGCIDRQ0BIAIoAgAgAiACLQALIgDAQQBIIgEbIQUgAigCBCAAIAEbIQADQAJAAkACQAJAAkACQCADKAIUIAMtABsiASABwEEASCIEGyIBIAAgACABSyIGGyICBEAgBSADKAIQIANBEGogBBsiBCACEBIiBw0BIAAgAU8NAgwGCyAAIAFPDQIMBQsgB0EASA0ECyAEIAUgAhASIgENAQsgBg0BQQEPCyABQQBIDQBBAQ8LIANBBGohAwsgAygCACIDDQALDAELIAAoAgQiA0UNACACKAIAIAIgAi0ACyIAwEEASCIBGyEFIAIoAgQgACABGyEAA0ACQAJAAkACQAJAAkAgAygCFCADLQAbIgEgAcBBAEgiBBsiASAAIAAgAUsiBhsiAgRAIAUgAygCECADQRBqIAQbIgQgAhASIgcNASAAIAFPDQIMBgsgACABTw0CDAULIAdBAEgNBAsgBCAFIAIQEiIBDQELIAYNAUEBDwsgAUEASA0AQQEPCyADQQRqIQMLIAMoAgAiAw0ACwtBAAsEAEEBCxYAIAIQBSEBIAAgAjYCBCAAIAE2AgALjQEBBH8DQCAAIgFBAWohACABLAAAIgJBIEYgAkEJa0EFSXINAAsCQAJAAkAgASwAACICQStrDgMBAgACC0EBIQQLIAAsAAAhAiAAIQELIAJBMGtBCkkEQANAIANBCmwgASwAAGtBMGohAyABLAABIQAgAUEBaiEBIABBMGtBCkkNAAsLIANBACADayAEGwv+AgEHfyAAAn8CQAJAIAEoAgQiBUUEQCABQQRqIgYhAgwBCyACKAIAIAIgAi0ACyIEwEEASCIGGyEIIAIoAgQgBCAGGyEEA0ACQAJAAkACQAJAIAUiAigCFCACLQAbIgUgBcBBAEgiBxsiBSAEIAQgBUsiCRsiBgRAIAggAigCECACQRBqIAcbIgcgBhASIgpFBEAgBCAFSQ0CDAMLIApBAE4NAgwBCyAEIAVPDQILIAIhBiACKAIAIgUNBAwFCyAHIAggBhASIgUNAQsgCQ0BDAQLIAVBAE4NAwsgAigCBCIFDQALIAJBBGohBgtBKBAFIgQgAygCCDYCGCAEIAMpAgA3AhAgA0IANwIAIANBADYCCCAEQRxqIANBDGoQVSAEIAI2AgggBEIANwIAIAYgBDYCACAEIQIgASgCACgCACIDBEAgASADNgIAIAYoAgAhAgsgASgCBCACED8gASABKAIIQQFqNgIIQQEMAQsgAiEEQQALOgAEIAAgBDYCAAujCQEGfwJ/AkAgASIDKAIAIgQEQCABKAIEIgJFDQEDQCACIgMoAgAiAg0ACwsgAygCBCIEDQBBACEEQQEMAQsgBCADKAIINgIIQQALIQYCQCADIAMoAggiBSgCACICRgRAIAUgBDYCACAAIANGBEBBACECIAQhAAwCCyAFKAIEIQIMAQsgBSAENgIECyADLQAMIQcgASADRwRAIAMgASgCCCIFNgIIIAUgASgCCCgCACABR0ECdGogAzYCACADIAEoAgAiBTYCACAFIAM2AgggAyABKAIEIgU2AgQgBQRAIAUgAzYCCAsgAyABLQAMOgAMIAMgACAAIAFGGyEACwJAIAdFDQAgAEUNACAGBEADQCACLQAMIQMCQCACIAIoAggiASgCAEcEQCADRQRAIAJBAToADCABQQA6AAwgASABKAIEIgMoAgAiBDYCBCAEBEAgBCABNgIICyADIAEoAgg2AgggASgCCCIEIAQoAgAgAUdBAnRqIAM2AgAgAyABNgIAIAEgAzYCCCACIAAgACACKAIAIgFGGyEAIAEoAgQhAgsCQAJAAkACQCACKAIAIgMEQCADLQAMRQ0BCyACKAIEIgEEQCABLQAMRQ0CCyACQQA6AAwCQCAAIAIoAggiAkYEQCAAIQIMAQsgAi0ADA0GCyACQQE6AAwPCyACKAIEIgFFDQELIAEtAAwNACACIQMMAQsgA0EBOgAMIAJBADoADCACIAMoAgQiADYCACAABEAgACACNgIICyADIAIoAgg2AgggAigCCCIAIAAoAgAgAkdBAnRqIAM2AgAgAyACNgIEIAIgAzYCCCACIQELIAMgAygCCCIALQAMOgAMIABBAToADCABQQE6AAwgACAAKAIEIgEoAgAiAjYCBCACBEAgAiAANgIICyABIAAoAgg2AgggACgCCCICIAIoAgAgAEdBAnRqIAE2AgAgASAANgIAIAAgATYCCA8LIANFBEAgAkEBOgAMIAFBADoADCABIAIoAgQiAzYCACADBEAgAyABNgIICyACIAEoAgg2AgggASgCCCIDIAMoAgAgAUdBAnRqIAI2AgAgAiABNgIEIAEgAjYCCCACIAAgACABRhshACABKAIAIQILAkACQCACKAIAIgFFDQAgAS0ADA0AIAIhAwwBCwJAIAIoAgQiAwRAIAMtAAxFDQELIAJBADoADCACKAIIIgItAAxBACAAIAJHGw0CIAJBAToADA8LIAEEQCABLQAMRQRAIAIhAwwCCyACKAIEIQMLIANBAToADCACQQA6AAwgAiADKAIAIgA2AgQgAARAIAAgAjYCCAsgAyACKAIINgIIIAIoAggiACAAKAIAIAJHQQJ0aiADNgIAIAMgAjYCACACIAM2AgggAiEBCyADIAMoAggiAC0ADDoADCAAQQE6AAwgAUEBOgAMIAAgACgCACIBKAIEIgI2AgAgAgRAIAIgADYCCAsgASAAKAIINgIIIAAoAggiAiACKAIAIABHQQJ0aiABNgIAIAEgADYCBCAAIAE2AggPCyACKAIIIgEgASgCACACRkECdGooAgAhAgwACwALIARBAToADAsL4QEBA38gAEH09AA2AgAgACgCRCIBBEAgACABNgJIIAEQBAsgACgCOCIBBEAgACABNgI8IAEQBAsgACgCLCIBBEAgACABNgIwIAEQBAsgACgCICIBBEAgACABNgIkIAEQBAsgACgCFCIBBEAgACABNgIYIAEQBAsgACgCCCIDBEAgACgCDCICIAMiAUcEQANAIAJBBGsiAigCACEBIAJBADYCACABBEAgARAbCyACIANHDQALIAAoAgghAQsgACADNgIMIAEQBAsgACgCBCEBIABBADYCBCABBEAgARCUAgsgAAujAQEDf0EBIQICQCABQX9GDQAgAUEDbCIBQX9GDQBBfyECIAAoAgAiBCABQQJ0aiEAIAFBAWoiAyABQQJrIANBA3AbIgNBf0cEQCAEIANBAnRqKAIAIQILIAAoAgAiAyACRiADAn8CQCABQQNwBEAgAUEBayEBDAELQX8gAUECaiIBQX9GDQEaCyAEIAFBAnRqKAIACyIARnIgACACRnIhAgsgAgvWAQEGfwJAAkAgACgCBCIEIAAoAgAiBWsiAiABpyIDSQRAIAMgAmsiByAAKAIIIgYgBGtNBEAgACAEQQAgBxAGIAdqNgIEDAILIANBAEgNAkH/////ByAGIAVrIgRBAXQiBiADIAMgBkkbIARB/////wNPGyIEEAUiBiACakEAIAcQBhogACAGIAUgAhAKIgIgBGo2AgggACACIANqNgIEIAAgAjYCACAFRQ0BIAUQBAwBCyACIANNDQAgACADIAVqNgIECyAAIAApAxhCAXw3AxgPCxAHAAurBAEGf0F/IQUCfyABQX9GBEAgACgCDCEHQQEhA0F/DAELIAAoAgwhBwJAAkAgAUEDcARAIAFBAWshBAwBCyABQQJqIgRBf0cNAEEBIQMM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DQAaIAFBAWsgAUEDcA0AGiABQQJqCzYCWAsgBCgCWCIBQX9HDQALCyANIA1CP4ciCIUgCH0hCEL///////////8AIQogDCAMQj+HIguFIAt9IgtC////////////AIUhDgJAIAkCfiAAKAIcRQRAIAggDlYNAkKAgICAcCAIIAt8IgggCSAJQj+HIgqFIAp9Igp8QiCGIAggCkL///////////8AhVYbIghCgYCAgICAgIAgUw0CIAhCPYgMAQsCQCAIIA5WDQAgCCALfCIIIAkgCUI/hyILhSALfSILQv///////////wCFVg0AIAggC3wiCkKBgICAAlQNAgsgCkIdiAsiCH8hCSAMIAh/IQwgDSAIfyENCyACIAk+AgggAiAMPgIEIAIgDT4CACAEQeAAaiQADwsQCAALEAgACxAIAAsEAEEGCwQAQQULsgEBA38CQCAAKAIEIgIgACgCCCIEQQV0RgRAIAJBAWpBAEgNAUH/////ByEDIAAgAkH+////A00EfyAEQQZ0IgMgAkFgcUEgaiICIAIgA0kbBUH/////BwsQeSAAKAIEIQILIAAgAkEBajYCBEEBIAJ0IQMgACgCACACQQN2Qfz///8BcWohACABLQAABEAgACAAKAIAIANyNgIADwsgACAAKAIAIANBf3NxNgIADwsQBwALBABBBAsrAQF/AkAgACgCLEUNACAAKAIwRQ0AIAAoAjRFDQAgACgCOEEARyEBCyABC5ENAQV/IwBBEGsiBCQAIAAgATYCCCAAQQA2AgAgAEEMaiIDQgA3AgAgA0IANwIYIANCADcCECADQgA3AgggA0EgaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0FAayICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HgAGoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBgAFqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQaABaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HAAWoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANB4AFqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQYACaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0GgAmoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBwAJqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQeACaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0GAA2oiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBoANqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQcADaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HgA2oiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBgARqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQaAEaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HABGoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANB4ARqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQYAFaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0GgBWoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBwAVqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQeAFaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0GABmoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBoAZqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQcAGaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HgBmoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANBgAdqIgJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCADQaAHaiICQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggA0HAB2oiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIANB4AdqIgNCADcCACADQgA3AhggA0IANwIQIANCADcCCCAAQYwIaiIDQgA3AgAgA0IANwIYIANCADcCECADQgA3AgggAEGsCGoiA0IANwIAIANBADYCECADQgA3AgggAEHACGoiA0IANwIAIANBADYCECADQgA3AgggAEHUCGoiA0IANwIAIANBADYCECADQgA3AgggAEHwCGpBADYCACAAQgA3AugIIABBjAlqAn8CQCABBEAgAUGAgICABEkNARAHAAsgAEIANwL0CCAAQYQJakIANwIAIABB/AhqQgA3AgAgBEEANgIIIARCADcDAEEBDAELIAAgAUECdCIDEAUiAjYC6AggACACIANqIgU2AvAIIAJBACADEAYaIABB/AhqIgZBADYCACAAQgA3AvQIIAAgBTYC7AggACADEAUiAjYC9AggBiACIANqIgU2AgAgAkEAIAMQBhogAEGICWoiBkEANgIAIABCADcCgAkgAEH4CGogBTYCACAAIAMQBSICNgKACSAGIAIgA2oiBTYCACACQQAgAxAGGiAAQYQJaiAFNgIAIAQgAxAFIgI2AgAgBCACIANqIgU2AgggAkEAIAMQBhogBCAFNgIEIAFBBXRBAXILIgIgBBBQIAQoAgAiAwRAIAQgAzYCBCADEAQLIARBADYCCCAEQgA3AwAgAQRAIAQgAUECdCIBEAUiAzYCACAEIAEgA2oiBTYCCCADQQAgARAGGiAEIAU2AgQLIABBmAlqIAIgBBBQIAQoAgAiAQRAIAQgATYCBCABEAQLIARBEGokACAAC8wEAQR/IAAoApgJIgMEQCADIQIgAyAAQZwJaigCACIBRwRAA0AgAUEMayICKAIAIgQEQCABQQhrIAQ2AgAgBBAECyACIgEgA0cNAAsgACgCmAkhAgsgACADNgKcCSACEAQLIAAoAowJIgMEQCADIQIgAyAAQZAJaigCACIBRwRAA0AgAUEMayICKAIAIgQEQCABQQhrIAQ2AgAgBBAECyACIgEgA0cNAAsgACgCjAkhAgsgACADNgKQCSACEAQLIAAoAoAJIgEEQCAAQYQJaiABNgIAIAEQBAsgACgC9AgiAQRAIABB+AhqIAE2AgAgARAECyAAKALoCCIBBEAgAEHsCGogATYCACABEAQLIABB1AhqEEAgAEHACGoQQCAAQawIahBAIABBjAhqEA0aIABBDGoiAEHgB2oQDRogAEHAB2oQDRogAEGgB2oQDRogAEGAB2oQDRogAEHgBmoQDRogAEHABmoQDRogAEGgBmoQDRogAEGABmoQDRogAEHgBWoQDRogAEHABWoQDRogAEGgBWoQDRogAEGABWoQDRogAEHgBGoQDRogAEHABGoQDRogAEGgBGoQDRogAEGABGoQDRogAEHg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AQsEAEEAC0oAQQAhAAJAIAFFDQAgASgCBA0AQSQQBSACEKsBIgBCADcCGCAAQQA2AiAgASgCBCECIAEgADYCBEEBIQAgAkUNACACEJQCCyAACxEAIAEgAiADIAQgBUEFEK0BCxEAIAEgAiADIAQgBUEJEK0BCwYAQQEQBQsHACAAKAJQC18BAXwgACABEDsiASAAQQRqRwR9IAFBHGoiACgCACAAIAEsACdBAEgbIQEjAEEQayIAJAAgACABQQBBARCBAiAAKQMAIAApAwgQ9QEhAiAAQRBqJAAgArYFQwAAgD8LC6cDAgd/An4jAEEgayICJAACQCAAKQMQIghCAFUEQCAAKAIMNQIEQgd8QgOIIQkgAC0AGARAIAAoAgQhASACQgA3AwAgAkEAOgAYIAJCADcDECACQgA3AwggCSACEEQaIAEgCKdrIgRBCGsiAyACKAIEIAIoAgBrIgFqIAQgCacQChogAyACKAIAIAEQCxogACAAKQMQQQggAWutfDcDECACKAIMIQEgAkEANgIMIAEEQCABEAQLIAIoAgAiAQRAIAIgATYCBCABEAQLIAApAxAhCAsCQCAAKAIEIgUgACgCACIEayIDIAkgCH2nIgdqIgEgA0sEQCAHIAAoAggiBiAFa00EQCAAIAVBACAHEAYgB2o2AgQMAgsgAUEASA0DQf////8HIAYgBGsiBUEBdCIGIAEgASAGSRsgBUH/////A08bIgUQBSIGIANqQQAgBxAGGiAAIAYgBCADEAoiAyAFajYCCCAAIAEgA2o2AgQgACADNgIAIARFDQEgBBAEDAELIAEgA08NACAAIAEgBGo2AgQLIABCADcDEAsgAkEgaiQADwsQBwALuQICBX8BfgJAAkAgACkDEEIAVyABQgBVcUUNACAAIAI6ABggACABQgd8QgOIIgE3AxACQCAAKAIEIgUgACgCACIDayIEIAEgBK0iCEIIfCAIIAIbIgh8pyICSQRAIAIgBGsiByAAKAIIIgYgBWtNBEAgACAFQQAgBxAGIAdqNgIEDAILIAJBAEgNA0H/////ByAGIANrIgVBAXQiBiACIAIgBkkbIAVB/////wNPGyIFEAUiBiAEakEAIAcQBhogACAGIAMgBBAKIgQgBWo2AgggACACIARqNgIEIAAgBDYCACADRQ0BIAMQBAwBCyACIARPDQAg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BEEANgIMAkAgBSgCDCIJIAUoAggiB2tBAEoEQEEAIQMDQCAEIAcgA0ECdGooAgAoAhwiCkEBa0EGTwR/IApBCUcNAyAEQSAQBSIDNgIQIARCkYCAgICEgICAfzcCFCADQe0JLQAAOgAQIANB5QkpAAA3AAggA0HdCSkAADcAACADQQA6ABEgBiAEQQxqIARBEGpBfxA2IQMgBCwAG0EASARAIAQoAhAQBAsgA0EATA0DIAUoAgghByAFKAIMIQkgBCgCDAUgAwtBAWoiAzYCDCADIAkgB2tBAnVIDQALC0E4EAUiA0IANwMAIANCADcDMCADQgA3AyggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIAMQcCIDQZTiADYCAAwBCyAIQQFGDQFBOBAFIgNCADcDACADQgA3AzAgA0IANwMoIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADEHAiA0GA4wA2AgALIAMgBTYCBCAAIAMgBiACEK8CIAAoAgBFBEAgACwAD0EASARAIAAoAgQQBAsgAygCNCECIAFBADYCLCABIAI2AiggAEIANwIIIABCADcCAAsgAyADKAIAKAIEEQIADAELQSAQBSIBQQA6ABggAUG5DikAADcAECABQbEOKQAANwAIIAFBqQ4pAAA3AAAgAEF/NgIAIABBBGogAUEYEBcgARAECyAEQSBqJAAPCyMAQRBrIgQkACAEQRAQBSIDNgIAIARCj4CAgICCgICAfzcCBCADQa8MKQAANwAHIANBqAwpAAA3AAAgA0EAOgAPIAFBBGoiBSAEQX8QSCEDIAQsAAtBAEgEQCAEKAIAEAQLAn8CQAJAAkAgA0EBag4DAAIBAgsgBRAvQQpGDQELQcQAEAUQsgIiA0EANgJAIANBpNEANgIAIAMMAQtBwAAQBRCyAiIDQfjfADYCACADCyIDIAY2AjggAyAGNgIEIAAgAyAFIAIQrwIgACgCAEUEQCAALAAPQQBIBEAgACgCBBAECyABIAMoAjQ2AiggASADKAI8NgIsIABCADcCCCAAQgA3AgALIAMgAygCACgCBBECACAEQRBqJAALnAMBB38gAAJ/AkACQCABKAIEIgRFBEAgAUEEaiIGIQIMAQsgAigCACACIAItAAsiBsBBAEgiBRshCCACKAIEIAYgBRshBQNAAkACQAJA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KAIANgIAIAJBBGohAiAEQQRqIQQgB0EBaiIHIAZHDQALCyADIApqIQcgC0EcSQ0AA0AgBCACKAIANgIAIAQgAigCBDYCBCAEIAIoAgg2AgggBCACKAIMNgIMIAQgAigCEDYCECAEIAIoAhQ2AhQgBCACKAIYNgIYIAQgAigCHDYCHCACQSBqIQIgBEEgaiIEIAdHDQALCyAAIAk2AgwgACAHNgIIIAAgAzYCBCAAIAg2AgAgBUUNACAFEAQgACgCBCEDCyADQQRrIAEoAgA2AgAgACAAKAIEQQRrNgIEDwsQDgAL8QEBA38gAEHsETYCACAAKAI8IgMEQCAAQUBrKAIAIgIgAyIBRwRAA0AgAkEEayICKAIAIQEgAkEANgIAIAEEQCABEBsLIAIgA0cNAAsgACgCPCEBCyAAIAM2AkAgARAECyAAKAIwIgEEQCAAIAE2AjQgARAECyAAKAIkIgMEQCAAKAIoIgIgAyIBRwRAA0AgAkEYayICIAIoAgAoAgARAAAaIAIgA0cNAAsgACgCJCEBCyAAIAM2AiggARAECyAAQYwRNgIAIAAoAhAiAQRAIAAgATYCFCABEAQLIAAoAgQiAQRAIAAgATYCCCABEAQLIAALxgIAIAAgARAPIABBIGogARAPIABBQGsgARAPIABB4ABqIAEQDyAAQYABaiABEA8gAEGgAWogARAPIABBwAFqIAEQDyAAQeABaiABEA8gAEGAAmogARAPIABBoAJqIAEQDyAAQcACaiABEA8gAEHgAmogARAPIABBgANqIAEQDyAAQaADaiABEA8gAEHAA2ogARAPIABB4ANqIAEQDyAAQYAEaiABEA8gAEGgBGogARAPIABBwARqIAEQDyAAQeAEaiABEA8gAEGABWogARAPIABBoAVqIAEQDyAAQcAFaiABEA8gAEHgBWogARAPIABBgAZqIAEQDyAAQaAGaiABEA8gAEHABmogARAPIABB4AZqIAEQDyAAQYAHaiABEA8gAEGgB2ogARAPIABBwAdqIAEQDyAAQeAHaiABEA8gAEGACGogARAPC4QCACAAEBAgAEEgahAQIABBQGsQECAAQeAAahAQIABBgAFqEBAgAEGgAWoQECAAQcABahAQIABB4AFqEBAgAEGAAmoQECAAQaACahAQIABBwAJqEBAgAEHgAmoQECAAQYADahAQIABBoANqEBAgAEHAA2oQECAAQeADahAQIABBgARqEBAgAEGgBGoQECAAQcAEahAQIABB4ARqEBAgAEGABWoQECAAQaAFahAQIABBwAVqEBAgAEHgBWoQECAAQYAGahAQIABBoAZqEBAgAEHABmoQECAAQeAGahAQIABBgAdqEBAgAEGgB2oQECAAQcAHahAQIABB4AdqEBAgAEGACGoQEAuUAgEEfyAAKAKMASIDBEAgAyECIAMgACgCkAEiAUcEQANAIAFBDGsiAigCACIEBEAgAUEIayAENgIAIAQQBAsgAiIBIANHDQALIAAoAowBIQILIAAgAzYCkAEgAhAECyAAKAKAASIDBEAgAyECIAMgACgChAEiAUcEQANAIAFBDGsiAigCACIEBEAgAUEIayAENgIAIAQQBAsgAiIBIANHDQALIAAoAoABIQILIAAgAzYChAEgAhAECyAAKAJ0IgEEQCAAIAE2AnggARAECyAAKAJoIgEEQCAAIAE2AmwgARAECyAAKAJcIgEEQCAAIAE2AmAgARAECyAAQcgAahBAIABBNGoQQCAAQSBqEEAgAEEMahBAC48UAiJ/An4jAEEgayIOJAAgACADKAIANgIAIAAgAigCACABKAIAayIDNgIEIAQpAxBCAFcEfyAEIAQoAgQgACAAQQRqIgMQCSAEKQMQQgBXBEAgBCAEKAIEIAMgAEEIahAJCyADKAIABSADCwRAIABBDGoiHSIDQgA3AgwgAyADKAIANgIEIABBIGoiHiIDQgA3AgwgAyADKAIANgIEIABBNGoiHyIDQgA3AgwgAyADKAIANgIEIABByABqIiAiA0IANwIMIAMgAygCADYCBCAOIAEoAgg2AhggDiABKQIANwMQIA4gAigCCDYCCCAOIAIpAgA3AwBBACECQQAhASMAQSBrIgUkACAAIgMoAgghBiAFQQA2AhAgBUIANwMIAkACQCAGBEAgBkGAgICABE8NASAFIAZBAnQiABAFIgI2AgggBSAAIAJqIgE2AhAgAkEAIAAQBhogBSABNgIMCyADKAKAASIAKAIAIgkEQCAAIAk2AgQgCRAEIAMoAgghBiAFKAIIIQIgBSgCDCEBCyAAIAE2AgQgACACNgIAIAAgBSgCEDYCCEEAIQIgBUEANgIQIAVCADcDCEEAIQECQCAGBEAgBkGAgICABE8N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gIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAAQoCAgICAgICACFINASACIANCAYN8IQIMAQsgAFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCABQgSGIABCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgVBkfcASQ0AIARBEGogACABQv///////z+DQoCAgICAgMAAhCICIAVBgfcAaxAgIAQgACACQYH4ACAFaxBNIAQpAwhCBIYgBCkDACIAQjyIhCECIAQpAxAgBCkDGIRCAFKtIABC//////////8Pg4QiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgBEEgaiQAIAIgAUKAgICAgICAgIB/g4S/C7cCAgd/AX4jAEEQayICJAAgACgCCCAAKAIEa0ECdSABEBEaIAAoAgQiAyAAKAIIRwRAIAJBDWohBSACQQ5qIQYgAkEPaiEHIAJBEGohCANAIAIgACgCICgCCCADIARBAnRqKAIAQQJ0aigCACIDKAI4OgAPAkAgASkDEEIAVQ0AIAEgASgCBCACQQ9qIAgQCSABKQMQIQkgAiADKAIcOgAOIAlCAFUNACABIAEoAgQgAkEOaiAHEAkgASkDECEJIAIgAy0AGDoADSAJQgBVDQAgASABKAIEIAJBDWogBhAJIAEpAxAhCSACIAMtACA6AAwgCUIAVQ0AIAEgASgCBCACQQxqIAUQCQsgAygCPCABEBEaIARBAWoiBCAAKAIIIAAoAgQiA2tBAnVJDQALCyACQRBqJABBAQupDwIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQsgAkL///////8/gyEKIAIgBIVCgICAgICAgICAf4MhDSAEQjCIp0H//wFxIQgCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAIQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgxCgICAgICAwP//AFQgDEKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCENDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQ0gAyEBDAILIAEgDEKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACENDAMLIA1CgICAgICAwP//AIQhDUIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASAMhFAEQEKAgICAgIDg//8AIA0gAiADhFAbIQ1CACEBDAILIAIgA4RQBEAgDUKAgICAgIDA//8AhCENQgAhAQwCCyAMQv///////z9YBEAgBUHAAmogASAKIAEgCiAKUCIGG3kgBkEGdK18pyIGQQ9rECBBECAGayEGIAUpA8gCIQogBSkDwAIhAQsgAkL///////8/Vg0AIAVBsAJqIAMgCyADIAsgC1AiBxt5IAdBBnStfKciB0EPaxAgIAYgB2pBEGshBiAFKQO4AiELIAUpA7ACIQMLIAVBoAJqIAtCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAECggBUGQAmpCACAFKQOoAn1CACAEQgAQKCAFQYACaiAFKQOYAkIBhiAFKQOQAkI/iIQiBEIAIAJCABAoIAVB8AFqIARCAEIAIAUpA4gCfUIAECggBUHgAWogBSkD+AFCAYYgBSkD8AFCP4iEIgRCACACQgAQKCAFQdABaiAEQgBCACAFKQPoAX1CABAoIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAECggBUGwAWogBEIAQgAgBSkDyAF9QgAQKCAFQaABaiACQgAgBSkDuAFCAYYgBSkDsAFCP4iEQgF9IgJCABAoIAVBkAFqIANCD4ZCACACQgAQKCAFQfAAaiACQgBCACAFKQOoASAFKQOgASIMIAUpA5gBfCIEIAxUrXwgBEIBVq18fUIAECggBUGAAWpCASAEfUIAIAJCABAoIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIApCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDEIgiCILIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgCkIBhoRC/////w+DIgp+fCIOVq18IAQgEH58IAQgE34iESAKIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgCn4iESACIAt+fCIPIBFUrSAPIA8gEyAMQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgCn58IgogCyATfnwiEEIgiCAKIBBWrSAEIBhUrSAEIApWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCyAUfnwiC0IgiCACIAtWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQKCABQjGGIAUpA1h9IAUpA1AiAUIAUq19IQpCACABfSELIAZB/v8AagwBCyAFQeAAaiAEQj+GIAJCAYiEIgIgBEIBiCIEIAMgEhAoIAFCMIYgBSkDaH0gBSkDYCIMQgBSrX0hCkIAIAx9IQsgASEMIAZB//8AagsiBkH//wFOBEAgDUKAgICAgIDA//8AhCENQgAhAQwBCwJ+IAZBAEoEQCAKQgGGIAtCP4iEIQogBEL///////8/gyAGrUIwhoQhDCALQgGGDAELIAZBj39MBEBCACEBDAILIAVBQGsgAiAEQQEgBmsQTSAFQTBqIAwgFSAGQfAAahAgIAVBIGogAyASIAUpA0AiAiAFKQNIIgwQKCAFKQM4IAUpAyhCAYYgBSkDICIBQj+IhH0gBSkDMCIEIAFCAYYiAVStfSEKIAQgAX0LIQQgBUEQaiADIBJCA0IAECggBSADIBJCBUIAECggDCACIAIgAyACQgGDIgEgBHwiA1QgCiABIANWrXwiASASViABIBJRG618IgJWrXwiBCACIAIgBEKAgICAgIDA//8AVCADIAUpAxBWIAEgBSkDGCIEViABIARRG3GtfCICVq18IgQgAiAEQoCAgICAgMD//wBUIAMgBSkDAFYgASAFKQMIIgNWIAEgA1Ebca18IgEgAlStfCANhCENCyAAIAE3AwAgACANNwMIIAVB0AJqJAALwAECAX8CfkF/IQMCQCAAQgBSIAFC////////////AIMiBEKAgICAgIDA//8AViAEQoCAgICA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cEIAUw0CIAAgACgCBEEBazYCBAwCCyABQTprIQILIAJBdkkNACABQTBrIgJBCkkEQANAIAEgA0EKbGpBMGsiA0HMmbPmAEgCfyAAKAIEIgEgACgCaEcEQCAAIAFBAWo2AgQgAS0AAAwBCyAAEBwLIgFBMGsiAkEJTXENAAsgA6whBQsCQCACQQpPDQADQCABrSAFQgp+fEIwfSEFAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABAcCyIBQTBrIgJBCUsNASAFQq6PhdfHwuujAVMNAAsLIAJBCkkEQANAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABAcC0Ewa0EKSQ0ACwsgACkDcEIAWQRAIAAgACgCBEEBazYCBAtCACAFfSAFIAQbIQUMAQtCgICAgICAgICAfyEFIAApA3BCAFMNACAAIAAoAgRBAWs2AgRCgICAgICAgICAfw8LIAULxwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABBORQ0AAn8gBEL///////8/gyEKAn8gBEIwiKdB//8BcSIGQf//AUcEQEEEIAYNARpBAkEDIAMgCoRQGwwCCyADIAqEUAsLIQYgAkIwiKciCEH//wFxIgdB//8BRg0AIAYNAQsgBUEQaiABIAIgAyAEEBUgBSAFKQMQIgIgBSkDGCIBIAIgARD3ASAFKQMIIQIgBSkDACEEDAELIAEgAkL///////////8AgyIKIAMgBEL///////////8AgyIJEE5BAEwEQCABIAogAyAJEE4EQCABIQQMAgsgBUHwAGogASACQgBCABAVIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEGIAcEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEBUgBSkDaCIKQjCIp0H4AGshByAFKQNgCyEEIAZFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABAVIAUpA1giCUIwiKdB+ABrIQYgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSARAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABAVIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAHQQFrIgcgBkoNAAsgBiEHCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEBUgBSkDOCECIAUpAzAhBAwBCyAJQv///////z9YBEADQCAEQj+IIQEgB0EBayEHIARCAYYhBCABIAlCAYaEIglCgICAgICAwABUDQALCyAIQYCAAnEhBiAHQQBMBEAgBUFAayAEIAlC////////P4MgB0H4AGogBnKtQjCGhEIAQoCAgICAgMDDPxAVIAUpA0ghAiAFKQNAIQQMAQsgCUL///////8/gyAGIAdyrUIwhoQhAgsgACAENwMAIAAgAjcDCCAFQYABaiQAC78CAQF/IwBB0ABrIgQkAAJAIANBgIABTgRAIARBIGogASACQgBCgICAgICAgP//ABAVIAQpAyghAiAEKQMgIQEgA0H//wFJBEAgA0H//wBrIQMMAgsgBEEQaiABIAJCAEKAgICAgICA//8AEBVB/f8CIAMgA0H9/wJOG0H+/wFrIQMgBCkDGCECIAQpAxAhAQwBCyADQYGAf0oNACAEQUBrIAEgAkIAQoCAgICAgIA5EBUgBCkDSCECIAQpA0AhASADQfSAfksEQCADQY3/AGohAwwBCyAEQTBqIAEgAkIAQoCAgICAgIA5EBVB6IF9IAMgA0HogX1MG0Ga/gFqIQMgBCkDOCECIAQpAzAhAQsgBCABIAJCACADQf//AGqtQjCGEBUgACAEKQMINwMIIAAgBCkDADcDACAEQdAAaiQACzUAIAAgATcDACAAIAJC////////P4MgBEIwiKdBgIACcSACQjCIp0H//wFxcq1CMIaENwMICwMAAQsuACAAQgA3AgQgAEGMETYCACAAQgA3AgwgAEIANwIUIABCADcCHCAAIAEQbSAAC50EARB/AkAgAigCACIEIAIoAgQiDUYEQCAAKAIMIgggACgCCCIBayEGQQAhAgwBCyABKAIAIQ4gACgCDCIIIAAoAggiAWsiBkEATARAQQAhAgNAIAIgDiAEKAIAQQJ0aigCACIDQQFqIAIgA0sbIQIgBEEEaiIEIA1HDQALDAELQQEgBkECdiICIAJBAU0bIgJB/v///wNxIRAgAkEB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Qb4JKQAANwAAIANBADoAHiAAQQRqIgMgAiABEEIgAiwAC0EASARAIAIoAgAQBAsgAkEgEAUiADYCACACQp2AgICAhICAgH83AgQgAEGYCikAADcAFSAAQZMKKQAANwAQIABBiwopAAA3AAggAEGDCikAADcAACAAQQA6AB0gAyACIAEQQiACLAALQQBIBEAgAigCABAECyACQRBqJAAL6AQBCH8gASAAKAIIIgYgACgCBCIEa0EMbU0EQAJAIAFFDQAgBCEDIAFBDGxBDGsiBUEMbkEBakEDcSIGBEADQCADIAIpAgA3AgAgAyACKAIINgIIIANBDGohAyAJQQFqIgkgBkcNAAsLIAFBDGwgBGohBCAFQSRJDQADQCADIAIpAgA3AgAgAyACKAIINgIIIAMgAigCCDYCFCADIAIpAgA3AgwgAyACKAIINgIgIAMgAikCADcCGCADIAIpAgA3AiQgAyACKAIINgIsIANBMGoiAyAERw0ACwsgACAENgIEDwsCQCAEIAAoAgAiA2tBDG0iBSABaiIHQdaq1aoBSQRAQdWq1aoBIAYgA2tBDG0iBkEBdCIDIAcgAyAHSxsgBkGq1arVAE8bIgcEQCAHQdaq1aoBTw0CIAdBDGwQBSEKCyAKIAVBDGxqIgghAyABQQxsIgVBDGsiBkEMbkEBakEDcSIBBEADQCADIAIpAgA3AgAgAyACKAIINgIIIANBDGohAyAJQQFqIgkgAUcNAAsLIAUgCGohBSAGQSRPBEADQCADIAIpAgA3AgAgAyACKAIINgIIIAMgAigCCDYCFCADIAIpAgA3AgwgAyACKAIINgIgIAMgAikCADcCGCADIAIpAgA3AiQgAyACKAIINgIsIANBMGoiAyAFRw0ACwsgACgCACIBIARHBEADQCAIQQxrIgggBEEMayIEKQIANwIAIAggBCgCCDYCCCABIARHDQALIAAoAgAhBAsgACAKIAdBDGxqNgIIIAAgBTYCBCAAIAg2AgAgBARAIAQQBAsPCxAHAAsQDgALiAEBA38gAARAIAAoAhgiAwRAIAAoAhwiAiADIgFHBEADQCACQQRrIgIoAgAhASACQQA2AgAgAQRAIAFBDGogASgCEBA4IAEgASgCBBA3IAEQBAsgAiADRw0ACyAAKAIYIQELIAAgAzYCHCABEAQLIABBDGogACgCEBA4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QdjSADYCACAAQcgBaiICKAKIASIEBEAgAigCjAEiAyAEIgFHBEADQCADQQxrIgEoAgAiBQRAIANBCGsgBTYCACAFEAQLIAEiAyAERw0ACyACKAKIASEBCyACIAQ2AowBIAEQBAsgAigCaCIBBEAgAiABNgJsIAEQBAsgAigCXCIBBEAgAiABNgJgIAEQBAsgAigCUCEDIAJBADYCUCADBEAgA0EEayIEKAIAIgEEQCADIAFBBXRqIQEDQCABQSBrEA0iASADRw0ACwsgBBAECyACKAJEIgEEQCACIAE2AkggARAECyACKAIsIQEgAkEANgIsIAEEQCABEAQLIAIoAiAiAQRAIAIgATYCJCABEAQLIAIQDRogACgCuAEiAQRAIAAgATYCvAEgARAECyAAKAKsASIEBEAgACgCsAEiASAEIgNHBEADQCABQYgBayIDKAJ0IgIEQCABQRBrIAI2AgAgAhAECyABQSBrKAIAIgIEQCABQRxrIAI2AgAgAhAECyABQYQBaxByIAMiASAERw0ACyAAKAKsASEDCyAAIAQ2ArABIAMQBAsgACgCmAEiAQRAIAAgATYCnAEgARAECyAAKAKMASIBBEAgARAECyAAKAKAASIBBEADQCABKAIAIQMgARAEIAMiAQ0ACwsgACgCeCEBIABBADYCeCABBEAgARAECyAAKAJsIgEEQCAAIAE2AnAgARAECyAAKAJgIgEEQCAAIAE2AmQgARAECyAAKAJUIgEEQCABEAQLIAAoAkgiAQRAIAAgATYCTCABEAQLIAAoAjQiAQRAIAAgATYCOCABEAQLIAAoAigiAQRAIAAgATYCLCABEAQLIAAoAhwiAQRAIAEQBAsgACgCECIBBEAgACABNgIUIAEQBAsgACgCDCEBIABBADYCDCABBEAgARBzCyAAC8QEAQR/IABBpNIANgIAIAAoApgCIQIgAEEANgKYAiACBEAgAkEEayIDKAIAIgEEQCACIAFBBXRqIQEDQCABQSBrEA0iASACRw0ACwsgAxAECyAAKAKMAiIBBEAgACABNgKQAiABEAQLIAAoAvQBIQEgAEEANgL0ASABBEAgARAECyAAKALoASIBBEAgACABNgLsASABEAQLIABByAFqEA0aIAAoArgBIgEEQCAAIAE2ArwBIAEQBAsgACgCrAEiAgRAIAIhAyACIAAoArABIgFHBEADQCABQYgBayIDKAJ0IgQEQCABQRBrIAQ2AgAgBBAECyABQSBrKAIAIgQEQCABQRxrIAQ2AgAgBBAECyABQYQBaxByIAMiASACRw0ACyAAKAKsASEDCyAAIAI2ArABIAMQBAsgACgCmAEiAQRAIAAgATYCnAEgARAECyAAKAKMASIBBEAgARAECyAAKAKAASIBBEADQCABKAIAIQIgARAEIAIiAQ0ACwsgACgCeCEBIABBADYCeCABBEAgARAECyAAKAJsIgEEQCAAIAE2AnAgARAECyAAKAJgIgEEQCAAIAE2AmQgARAECyAAKAJUIgEEQCABEAQLIAAoAkgiAQRAIAAgATYCTCABEAQLIAAoAjQiAQRAIAAgATYCOCABEAQLIAAoAigiAQRAIAAgATYCLCABEAQLIAAoAhwiAQRAIAEQBAsgACgCECIBBEAgACABNgIUIAEQBAsgACgCDCEBIABBADYCDCABBEAgARBzCyAAC88NARB/IwBBIGsiByQAIAAgACgCECICNgIUAkACQAJAAkACfwJAAkAgACgCGCACRwRAIAIgATYCACAAIAJBBGoiATYCFCACIQQMAQtBBBAFIgQgATYCACAAIARBBGoiATYCGCAAIAE2AhQgACAENgIQIAINAQsgACgCCCICKAJkIAIoAmBrDAELIAIQBCAAKAIQIgQgACgCFCIBRg0BIAAoAggiAigCZCACKAJgawsiAkEASgRAIABB+ABqIQ4gAEHIAWohBkEBIAJBDG0iAiACQQFMGyEPA0ACQAJAIAFBBGsiAigCACIBQX9GDQAgACgCHCABQQNuIgRBA3ZB/P///wBxaigCACAEdkEBcQ0AQQAhCwNAIAAgACgCpAFBAWo2AqQBIAAoAhxBfyABIgJBA24iDCACQX9GIg0bIghBA3ZB/P///wFxaiIBIAEoAgBBASAIdHI2AgACQCAAKAJMIgEgACgCUEcEQCABIAI2AgAgACABQQRqNgJMDAELIAEgACgCSCIEayIDQQJ1IglBAWoiBUH/////A0sNB0H/////AyADQQF2IgogBSAFIApJGyADQfz///8HTxsiBQR/IAVB/////wNLDQogBUECdBAFBUEACyIKIAlBAnRqIgMgAjYCACADQQRqIQkgASAERwRAA0AgA0EEayIDIAFBBGsiASgCADYC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/P///wFxaiIBIAEoAgBBASAGdHI2AgACQCAAKAJMIgEgACgCUEcEQCABIAQ2AgAgACABQQRqNgJMDAELIAEgACgCSCIDayICQQJ1IgtBAWoiBUH/////A0sNB0H/////AyACQQF2IgwgBSAFIAxJGyACQfz///8HTxsiBQR/IAVB/////wNLDQsgBUECdBAFBUEACyIMIAtBAnRqIgIgBDYCACACQQRqIQsgASADRwRAA0AgAkEEayICIAFBBGsiASgCADYCACABIANHDQALCyAAIAwgBUECdGo2AlAgACALNgJMIAAgAjYCSCADRQ0AIAMQBAtBfyEBIAAoAgwhAiAEQX9HBEAgAigCACAEQQJ0aigCACEBCyABQQJ0Ig8gACgCmAFqKAIAIQsCQAJAIAAoAlQgAUEDdkH8////AXFqIgMoAgAiBUEBIAF0IgFxRQRAIAMgASAFcjYCACALQX9GDQELAkAgCQ0AQX8hASAEQQFqIgMgBEECayADQQNwGyIFQX9HBEAgAigCDCAFQQJ0aigCACEBC0F/An8CQCAEIAhBA2xrIggEQCAEQQFrIQMMAQtBfyAEQQJqIgNBf0YNARoLIAIoAgwgA0ECdGooAgALIgNBA24gA0F/RiIJGyEMAkAgBUF/Rg0AIAIoAgwiECAFQQJ0aigCACICQX9GDQAgACgCHCIFIAJBA24iAkEDdkH8////AHFqKAIAIAJ2QQFxDQACQAJAIAgEQCAEQQFrIQIMAQsgBEECaiICQX9GDQELIBAgAkECdGooAgAiAkF/Rg0AIAUgAkEDbiICQQN2Qfz///8AcWooAgAgAnZBAXENAAJAIAAoApACIgIgACgClAJHBEAgAkEBNgIAIAAgAkEEajYCkAIMAQsgAiAAKAKMAiICayIFQQJ1IghBAWoiB0H/////A0sNDUH/////AyAFQQF2IgkgByAHIAlJGyAFQfz///8HTxsiBwR/IAdB/////wNLDRAgB0ECdBAFBUEACyIJIAhBAnRqIghBATYCACAAIAkgAiAFEAoiBSAHQQJ0ajYClAIgACAIQQRqNgKQAiAAIAU2AowCIAJFDQAgAhAECyAAIAAoAqgBQQFqNgKoAQJAIAtBf0YNACAAKAKMASAAKAKYASAPaigCACICQQN2Qfz///8BcWooAgAgAnZBAXENACAAIARBABCE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IANCADcCLCADQQA2AjQgA0IANwI4IANBrNkANgIIIANBQGtCADcCACADQgA3AkggA0IANwJQIANBADYCWCADQQA2AnQgAyABNgJwIAMgCDYCbCADQQA2AmggA0IANwJgIAAoAgwhBSACQgA3AzAgAkIANwMoIAJBIGoiBkIANwMAIAJCADcDGCACQUBrQgA3AwAgAkIANwNIIAJCADcDUCACQQA2AlggAkEANgJoIAJCADcDECACQgA3AzggAkGs2QA2AgggAkIANwNgIAIgBTYCDCAFKAIAIQQgBSgCBCEHIAJBADoAbyAGIAcgBGtBAnVBA24gAkHvAGoiBhAeIAIoAgwiBCgCHCEHIAQoAhghBCACQQA6AG8gAkEsaiAHIARrQQJ1IAYQHiACIAM2AhwgAiAINgIYIAIgATYCFCACIAU2AhAgAyAAQcgAajYCdCADQQhqIgEgAkEIaiIAEIcBAkAgACABRgRAIAMgACgCVDYCXAwBCyADQThqIAAoAjAgACgCNBBYIANBxABqIAAoAjwgAEFAaygCABBYIANB0ABqIAAoAkggACgCTBBYIAMgACgCVDYCXCADQeAAaiAAKAJYIAAoAlwQLgsgAkGs2QA2AgggAigCYCIABEAgAiAANgJkIAAQBAsgAigCUCIABEAgAiAANgJUIAAQBAsgAigCRCIABEAgAiAANgJIIAAQBAsgAigCOCIABEAgAiAANgI8IAAQBAsgAkGY2wA2AgggAigCLCIABEAgABAECyACKAIgIgAEQCAAEAQLIAJB8ABqJAAgAwuYAQEEfyAAKAKwASICIAAoAqwBIgNrQYgBbSEEAkAgAiADRg0AQQAhAgJAAkACQCABIAMoAgBGBH9BAQVBASAEIARBAU0bIQUDQCACQQFqIgIgBUYNAiADIAJBiAFsaigCACABRw0ACyACIARJC0EBcQ0BDAMLIAIgBEkNAQwCCyADIAJBiAFsakHoAGohAwsgAw8LIABBKGoLawECfyAAKAKwASICIAAoAqwBIgNHBEBBASACIANrQYgBbSIAIABBAU0bIQJBACEAA0AgASADIABBiAFsaigCAEYEQCADIABBiAFsaiIAQQRqQQAgAC0AZBsPCyAAQQFqIgAgAkcNAAsLQQALwwMBBX8CQAJAAkACQAJAAkACQCADDgMGAgABCyACKAIAIgIo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CUYEQCAGIQgMAQsgBSEDA0AgAiEIIAYgAygCEDYCECADIAZHBEAgBkEUaiADKAIUIANBGGoQawsCQCAKIgUiAigCACIERQ0AIAYoAhAhCwNAIAQiBSgCECALSgRAIAUiAigCACIEDQEMAgsgBSgCBCIEDQALIAVBBGohAgsgBiAFNgIIIAZCADcCACACIAY2AgAgBygCACgCACIFBEAgByAFNgIAIAIoAgAhBgsgBygCBCAGED8gByAHKAIIQQFqNgIIQQAhAgJAIAhFDQAgCCgCCCIERQ0AIAggBCgCACIFRgRAIARBADYCACAEIgIoAgQiBUUNAQNAIAUiAigCACIFDQAgAigCBCIFDQALDAELIARBADYCBCAEIQIgBUUNAANAIAUiAigCACIFDQAgAigCBCIFDQALCwJAIAMoAgQiBARAA0AgBCIFKAIAIgQNAAwCCwALA0AgAygCCCIFKAIAIANHIQQgBSEDIAQNAAsLIAhFDQEgCCEGIAkgBSIDRw0ACwsgByAIEDogAkUNAANAIAIoAggiAwRAIAMhAgwBCwsgByACEDoLIAUgCUcEQANAIwBBEGsiCiQAQSAQBSEIIAVBEGoiAigCACEDIAhBGGoiC0IANwIAIAggAzYCECAIQRRqIgwgCzYCACAHQQRqIQQgAigCBCIDIAJBCGoiDUcEQANAIApBCGogDCALIANBEGoiAiACEOUCAkAgAygCBCIGBEADQCAGIgIoAgAiBg0ADAILAAsDQCADKAIIIgIoAgAgA0chBiACIQMgBg0ACwsgDSACIgNHDQALCwJAIAQiAygCACICRQ0AIAgoAhAhBgNAIAIiBCgCECAGSgRAIAQiAygCACICDQEMAgsgBCgCBCICDQALIARBBGohAwsgCCAENgIIIAhCADcCACADIAg2AgAgCCECIAcoAgAoAgAiBARAIAcgBDYCACADKAIAIQILIAcoAgQgAhA/IAcgBygCCEEBajYCCCAKQRBqJAACQCAFKAIEIgQEQANAIAQiAygCACIEDQAMAgsACwNAIAUoAggiAygCACAFRyECIAMhBSACDQALCyADIgUgCUcNAAsLIABBHGogASgCGCABQRxqEGsLCzMAIABBkNAANgIAIABBBGoQ1gEgACABNgI0IAAgATYCMCAAQfDQADYCACAAQgA3AiggAAszACAAQZDQADYCACAAQQRqENYBIABBADYCNCAAIAE2AjAgAEHw0AA2AgAgAEIANwIoIAALkggBCX8CQAJAAkACQAJAAkACQCAAQQRqIgcgAUYNACABKAIUIAEtABsiBSAFwEEASCIKGyIFIAQoAgQgBC0ACyIGIAbAIglBAEgiCxsiBiAFIAZJIgwbIggEQCAEKAIAIAQgCxsiCyABKAIQIAFBEGogChsiCiAIEBIiDUUEQCAFIAZLDQIMAwsgDUEATg0CDAELIAUgBk0NAgsgASgCACEDAkACQCABIgUgACgCAEYNAAJAIANFBEAgASEAA0AgACgCCCIFKAIAIABGIQYgBSEAIAYNAAsMAQsgAyEAA0AgACIFKAIEIgANAAsLAkAgBCgCBCAELQALIgAgAMAiCUEASCIIGyIAIAUoAhQgBS0AGyIGIAbAQQBIIgobIgYgACAGSRsiCwRAIAUoAhAgBUEQaiAKGyAEKAIAIAQgCBsgCxASIggNAQsgACAGSw0BDAILIAhBAE4NAQsgA0UEQCACIAE2AgAgAQ8LIAIgBTYCACAFQQRqDwsgBygCACIDRQRAIAIgBzYCACAHDwsgBCgCACAEIAlBAEgbIQQgByEBA0ACQAJAAkACQAJAIAMiBSgCFCAFLQAbIgMgA8BBAEgiBhsiAyAAIAAgA0siCRsiBwRAIAQgBSgCECAFQRBqIAYbIgYgBxASIghFBEAgACADSQ0CDAMLIAhBAE4NAgwBCyAAIANPDQILIAUhASAFKAIAIgMNBAwJCyAGIAQgBxASIgMNAQsgCQ0BDAcLIANBAE4NBgsgBUEEaiEBIAUoAgQiAw0ACwwECyAKIAsgCBASIgANAQsgDA0BDAMLIABBAE4NAgsCQCABKAIEIgNFBEAgASEAA0AgACgCCCIFKAIAIABHIQggBSEAIAgNAAsMAQsgAyEAA0AgACIFKAIAIgANAAsLAkACQCAFIAdGDQACQCAFKAIUIAUtABsiACAAwEEASCIIGyIAIAYgACAGSRsiCgRAIAQoAgAgBCAJQQBIGyAFKAIQIAVBEGogCBsgChASIggNAQsgACAGSw0BDAILIAhBAE4NAQsgA0UEQCACIAE2AgAgAUEEag8LIAIgBTYCACAFDwsgBygCACIARQRAIAIgBzYCACAHDwsgBCgCACAEIAlBAEgbIQMgByEBA0ACQAJAAkACQAJAIAAiBSgCFCAFLQAbIgAgAMBBAEgiBxsiACAGIAAgBkkiCRsiBARAIAMgBSgCECAFQRBqIAcbIgcgBBASIghFBEAgACAGSw0CDAMLIAhBAE4NAgwBCyAAIAZNDQILIAUhASAFKAIAIgANBAwFCyAHIAMgBBASIgANAQsgCQ0BDAMLIABBAE4NAgsgBUEEaiEBIAUoAgQiAA0ACwsgAiAFNgIAIAEPCyACIAE2AgAgAyABNgIAIAMLigIBA38jAEEQayIFJAAgACABIAIgBUEMaiAFQQhqIAMQ5AIiBigCACIDBH9BAAVBKBAFIgNBEGohAgJAIAQsAAtBAE4EQCACIAQpAgA3AgAgAiAEKAIINgIIDAELIAIgBCgCACAEKAIEEBcLIANBHGohAgJAIAQsABdBAE4EQCACIARBDGoiBCkCADcCACACIAQoAgg2AggMAQsgAiAEKAIMIAQoAhAQFwsgAyAFKAIMNgIIIANCADcCACAGIAM2AgAgAyEEIAEoAgAoAgAiAgRAIAEgAjYCACAGKAIAIQQLIAEoAgQgBBA/IAEgASgCCEEBajYCCEEBCzoABCAAIAM2AgAgBUEQaiQACzMAIABBkNAANgIAIABBHGogACgCIBAUIABBEGogACgCFBA6IABBBGogACgCCBAUIAAQBAszACAAQdzQADYCACAAQRxqIAAoAiAQFCAAQRBqIAAoAhQQdSAAQQRqIAAoAggQFCAAEAQLaQECfyMAQRBrIgIkACACQRAQBSIDNgIAIAJCj4CAgICCgICAfzcCBCADQa8MKQAANwAHIANBqAwpAAA3AAAgA0EAOgAPIABBBGogAiABEEIgAiwAC0EASARAIAIoAgAQBAsgAkEQaiQAC48BAgJ/AX4jAEEQayICJAACQCAAKAIEIgNBf0YNACABKQMQQgBVDQAgASABKAIEIAAoAgggACgCDBAJIAEpAxBCAFUNACABIAEoAgQgAEEUaiAAQRhqEAkgASkDECEEIAIgACgCBDoADyAEQgBVDQAgASABKAIEIAJBD2ogAkEQahAJCyACQRBqJAAgA0F/RwukCQEFfyMAQRBrIgckACAHIAE2AgwgB0EgEAUiATYCACAHQpGAgICAhICAgH83AgQgAUHtCS0AADoAECABQeUJKQAANwAIIAFB3QkpAAA3AAAgAUEAOgARIABBBGoiCiAHQQxqIAcgAhDrAiAHLAALQQBIBEAgBygCABAECyAHQSAQBSIANgIAIAdCk4CAgICEgICAfzcCBCAAQZULKAAANgAPIABBjgspAAA3AAggAEGGCykAADcAACAAQQA6ABMjAEEwayIJJAAgBygCDCEIAkACQCAKQRBqIgAoAgAiBkUNACAAIQEDQCABIAYgBigCECAISCICGyEBIAZBBGogBiACGygCACIGDQALIAAgAUYNACAIIAEoAhBODQELIAlCADcCHCAJIAlBGGoiAkEEcjYCGCAJQRBqIgBCADcDACAJIAg2AgggCSAANgIMIAlBKGogCkEMaiAJQQhqIgAgABCLASAJKAIoIQEgAEEEciAJKAIQEBQgAiAJKAIcEBQLIAFBFGohCCMAQTBrIgYkACAGQQA2AhggBkIANwMQAkAgA0EATA0AIAYgBCoCABCfASAGQRBqIAYoAgAgBiAGLQALIgHAQQBIIgAbIAYoAgQgASAAGxCiASAGLAALQQBIBEAgBigCABAEC0EBIQIgA0EBRg0AA0AgBkEQaiIAQeQPQeQPED4QogEgBiAEIAJBAnRqKgIAEJ8BIAAgBigCACAGIAYtAAsiAcBBAEgiABsgBigCBCABIAAbEKIBIAYsAAtBAEgEQCAGKAIAEAQLIAJBAWoiAiADRw0ACwsgBiAHNgIoIAYgCCAHIAZBKGoQ1QECQCAGKAIAIgBBHGoiAyAGQRBqRg0AIAYtABsiAcAhAiAALAAnQQBOBEAgAkEATgRAIAMgBikDEDcCACADIAYoAhg2AggMAgsgAyAGKAIQIAYoAhQQoAEMAQsgAyAGKAIQIAZBEGogAkEASCIAGyAGKAIUIAEgABsQoQELIAYsABtBAEgEQCAGKAIQEAQLIAZBMGokACAJQTBqJAAgBywAC0EASARAIAcoAgAQBAsgB0EgEAUiADYCACAHQpKAgICAhICAgH83AgQgAEGLDC8AADsAECAAQYMMKQAANwAIIABB+wspAAA3AAAgAEEAOgASIwBBMGsiCCQAIAcoAgwhAgJAAkAgCkEQaiIAKAIAIgRFDQAgACEDA0AgAyAEIAQoAhAgAkgiARshAyAEQQRqIAQgARsoAgAiBA0ACyAAIANGDQAgAiADKAIQTg0BCyAIQgA3AhwgCCAIQRhqIgFBBHI2AhggCEEQaiIAQgA3AwAgCCACNgIIIAggADYCDCAIQShqIApBDGogCEEIaiIAIAAQiwEgCCgCKCEDIABBBHIgCCgCEBAUIAEgCCgCHBAUCyMAQTBrIgEkACABQQhqIAUQnwEgASAHNgIgIAFBKGogA0EUaiAHIAFBIGoQ1QEgASgCKCIALAAnQQBIBEAgACgCHBAECyAAIAEpAwg3AhwgACABKAIQNgIkIAFBMGokACAIQTBqJAAgBywAC0EASARAIAcoAgAQBAsgB0EQaiQAC9cBAQV/IwBBMGsiBCQAIAEoAgAhBwJAAkAgAEEQaiIGKAIAIgFFDQAgBiEFA0AgBSABIAEoAhAgB0giCBshBSABQQRqIAEgCBsoAgAiAQ0ACyAFIAZGDQAgByAFKAIQTg0BCyAEQgA3AhwgBCAEQRhqIgZBBHI2AhggBEEQaiIBQgA3AwAgBCAHNgIIIAQgATYCDCAEQShqIABBDGogBEEIaiIAIAAQiwEgBCgCKCEFIABBBHIgBCgCEBAUIAYgBCgCHBAUCyAFQRRqIAIgAxBCIARBMGokAAuBAQEBfyMAQRBrIgMkACADIAE2AgwgA0EgEAUiATYCACADQpGAgICAhICAgH83AgQgAUHtCS0AADoAECABQeUJKQAANwAIIAFB3QkpAAA3AAAgAUEAOgARIABBBGogA0EMaiADIAIQ6wIgAywAC0EASARAIAMoAgAQBAsgA0EQaiQAC70BAQJ/IwBBEGsiAyQAIANBEBAFIgQ2AgAgA0KOgICAgIKAgIB/NwIEIARBvgwpAAA3AAYgBEG4DCkAADcAACAEQQA6AA4gAEEEaiIEIAMgARBCIAMsAAtBAEgEQCADKAIAEAQLIANBEBAFIgA2AgAgA0KOgICAgIKAgIB/NwIEIABBzQwpAAA3AAYgAEHHDCkAADcAACAAQQA6AA4gBCADIAIQQiADLAALQQBIBEAgAygCABAECyADQRBqJAALxgEBAn8jAEHgAGsiBSQAIAVBKGogAhDiAiEEIAUgASACEPACIAQgBRDhAiAFQRhqIAUoAhwQFCAFQQxqIAUoAhAQOiAFIAUoAgQQFCAAIAQgAxDUASAAKAIARQRAIAAsAA9BAEgEQCAAKAIEEAQLIAEgBCgCKDYCKCABIAQoAiw2AiwgAEIANwIIIABCADcCAAsgBEGQ0AA2AgAgBEEcaiAEKAIgEBQgBEEQaiAEKAIUEDogBEEEaiAEKAIIEBQgBUHgAGokAAuPBAMDfQp/BH4CQCACQQFrQR1LDQAgACgCBEF/Rw0AIAAgAjYCBCABLQAYIQdBACECIABBADYCFCAHBEAgB0ECdCIGEAUiAkEAIAYQBiAGaiEICyAAKAIIIgYEQCAAIAY2AgwgBhAECyAAIAI2AgggACAINgIQIAAgCDYCDCAHQQJ0IgkQBSEGIAkQBSELIAIgASkDMCIRpyICIAEoAgAiDCgCAGogASkDKCISpyINEAsaIAYgDCgCACACaiANEAshCgJAAkAgASgCUCIBQQJJDQAgB0UNACABrSETQgEhEANAIAsgDCgCACAQIBJ+IBF8p2ogDRALIQ8gACgCCCEJQQAhCEEAIQEDQCAPIAFBAnQiDmoiBioCACIDIANcDQMgAyAJIA5qIgIqAgBdBEAgAiADOAIAIAYqAgAhAwsgAyAKIA5qIgIqAgBeBEAgAiADOAIACyABQQFqIgEgB0cNAAsgEEIBfCIQIBNSDQALCyAAKgIUIQMgBwRAIAAoAgghBkEAIQhBACEBA0AgBiABQQJ0IgJqKgIAIgUgBVwNAiAFi0MAAIB/Ww0CIAIgCmoqAgAiBCAEXA0CIASLQwAAgH9bDQIgAyAEIAWTIgRdBEAgACAEOAIUIAQhAwsgAUEBaiIBIAdHDQALC0EBIQggA0MAAAAAXA0AIABBgICA/AM2AhQLIAsQBCAKEAQLIAgLnwQBCH8jAEEQayIIJAAgAEIANwIEIABBEGoiBEIANwIAIAAgAEEEajYCACAAQRxqIglCADcCACAAIAQ2AgwgACAJNgIYIAAgAUEEakcEQCAAIAEoAgQgAUEIahBrCyAAQRhqIgQgAUEcakcEQCAEIAEoAhwgAUEgahBrCyAIQQA2AgwCQCACKAIMIgYgAigCCCIFa0EATA0AIAFBFGoiCSgCAEUNAANAAkAgCSgCACIBRQ0AIAUgA0ECdGooAgAoAjghByAJIQQDQCAEIAEgASgCECAHSCIKGyEEIAFBBGogASAKGygCACIBDQALIAQgCUYNACAHIAQoAhBIDQAgBEEUaiEGIwBBMGsiAyQAIAgoAgwhBwJAAkAgAEEQaiIEKAIAIgVFDQAgBCEBA0AgASAFIAUoAhAgB0giChshASAFQQRqIAUgChsoAgAiBQ0ACyABIARGDQAgByABKAIQTg0BCyADQgA3AhwgAyADQRhqIgVBBHI2AhggA0EQaiIBQgA3AwAgAyAHNgIIIAMgATYCDCADQShqIABBDGogA0EIaiIEIAQQiwEgAygCKCEBIARBBHIgAygCEBAUIAUgAygCHBAUCyAGIAFBFGoiAUcEQCABIAYoAgAgBkEEahBrCyADQTBqJAAgAigCCCEFIAIoAgwhBiAIKAIMIQMLIAggA0EBaiIDNgIMIAMgBiAFa0ECdUgNAAsLIAhBEGokAAuJAQECfyMAQeAAayIEJAAgBEEoaiACEOMCIQUgBCABIAIQ8AIgBSAEEOECIARBGGogBCgCHBAUIARBDGogBCgCEBA6IAQgBCgCBBAUIAAgBSADENQBIAVBkNAANgIAIAVBHGogBSgCIBAUIAVBEGogBSgCFBA6IAVBBGogBSgCCBAUIARB4ABqJAALmwQBBX8gASgCMCEEIwBBIGsiAiQAIAIgADYCHEEAIQACQCAEEC9BCUoNACABIAEoAgAoAggRAABBAUcNACACQSAQBSIANgIQIAJCkYCAgICEgICAfzcCFCAAQe0JLQAAOgAQIABB5QkpAAA3AAggAEHdCSkAADcAACAAQQA6ABEgBCACQRxqIAJBEGpBfxA2IQAgAiwAG0EASARAIAIoAhAQBAsgASgCBCIDKAIIIAIoAhxBAnRqKAIAIQUCQCAAQX9GDQAgBSgCOEEDRw0AIAUtABhBAkcNACADEKoBIgNFDQBB/hMgAygCHCIDdiADQQxJcUUEQCACIAEoAgRBABBUNgIMIAQgAkEMaiACQRBqQd0JEIwBIgNBfxA2IQYgAywAC0EASARAIAMoAgAQBAsgBkEBa0EUSw0BIAZBAXQgAGpBP0oNAQtBBSEAIAQQL0EESA0BCyAFKAI4IQAgBBAvIQUgAEEBRgRAAkAgBUEDSg0AIAIgASgCBEEAEFQ2AgwgASgCBBCqASIARQ0AQf4TIAAoAhwiAHYgAEEMSXEEQEEGIQAMAwsgBCACQQxqIAJBEGpB3QkQjAEiAEF/EDYhASAALAALQQBIBEAgACgCABAEC0EGIQAgAUEASg0CC0EAIQAMAQtBACEAIAVBB0oNAEEBIQAgBBAvQQFKDQBBAUEEIAEoAgQoAlBBKEkbIQALIAJBIGokACAACzUBAX8gAUEBayIFQR1NBEAgACABNgIEIABBCGogAiACIANBAnRqEHYgACAEOAIUCyAFQR5JC3cCAX8BfiMAQRBrIgIkACACIAAoAgw2AgwCQCABKQMQQgBVDQAgASABKAIEIAJBDGogAkEQahAJIAEpAxAhAyACIAAoAhg2AgggA0IAVQ0AIAEgASgCBCACQQhqIAJBDGoQCQsgAEHgAGogARAPIAJBEGokAEEBCyUBAX8CQCABKAI4DQAgAS0AGEEDRw0AIAAgATYCMEEBIQILIAILOwEBfwJAIAAoAjBFDQAgACgCNEUNACAAKAIcRQ0AIAAoAiBFDQAgACgCJEUNACAAKAIoQQBHIQELIAELlgICBX8BfiMAQTBrIgIkACACIABBQGsoAgA2AiggASkDEEIAVwRAIAEgASgCBCACQShqIAJBLGoQCQsgAkEIaiIDQgA3AgAgA0IANwIYIANCADcCECADQgA3AgggAxAQIAIoAihBAEoEQEEBIQUDQCADIAUgACgCPCAEQQN2Qfz///8BcWooAgAgBHYiBnNBf3NBAXEQEyAGQQFxIQUgBEEBaiIEIAIoAihIDQALCyADIAEQDyACIAAoAgw2AiwCQCABKQMQQgBVDQAgASABKAIEIAJBLGogAkEwaiIEEAkgASkDECEHIAIgACgCGDYCLCAHQgBVDQAgASABKAIEIAJBLGogBBAJCyADEA0aIAJBMGokAEEBCyUBAX8CQCABKAI4DQAgAS0AGEEDRw0AIAAgATYCLEEBIQILIAILMwEBfwJAIAAoAixFDQAgACgCHEUNACAAKAIgRQ0AIAAoAiRFDQAgACgCKEEARyEBCyABC8YGAgV/AX4jAEEgayICJAAgACgCMCABEBEaIAAoAjAEQCACQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggAiIEEBAgACgCMCIDQQBKBEADQCAEIAAoAiwgA0EBayIGQQN2Qfz///8BcWooAgAgBnZBAXEQEyADQQFLIQUgBiEDIAUNAAsLIAQgARAPIAQQDRoLIAAoAjwgARARGiAAKAI8BEAgAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIAIiBBAQIAAoAjwiA0ECTgRAA0AgBCAAKAI4IANBAmsiBkEDdkH8////AXFqKAIAIAZ2QQFxEBMgBCAAKAI4IANBAWsiBUEDdkH8////AXFqKAIAIAV2QQFxEBMgA0EDSyEFIAYhAyAFDQALCyAEIAEQDyAEEA0aCyAAKAJIIAEQERogACgCSARAIAJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCACIgQQECAAKAJIIgNBA04EQANAIAQgACgCRCADQQNrIgZBA3ZB/P///wFxaigCACAGdkEBcRATIAQgACgCRCADQQJrIgVBA3ZB/P///wFxaigCACAFdkEBcRATIAQgACgCRCADQQFrIgVBA3ZB/P///wFxaigCACAFdkEBcRATIANBBUshBSAGIQMgBQ0ACwsgBCABEA8gBBANGgsgACgCVCABEBEaIAAoAlQEQCACQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggAiIEEBAgACgCVCIDQQROBEADQCAEIAAoAlAgA0EEayIGQQN2Qfz///8BcWooAgAgBnZBAXEQEyAEIAAoAlAgA0EDayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyAEIAAoAlAgA0ECayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyAEIAAoAlAgA0EBayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyADQQdLIQUgBiEDIAUNAAsLIAQgARAPIAQQDRoLIAIgACgCDDYCAAJAIAEpAxBCAFUNACABIAEoAgQgAiACQQRqIgMQCSABKQMQIQcgAiAAKAIYNgIAIAdCAFUNACABIAEoAgQgAiADEAkLIAJBIGokAEEBCwQAQQMLjQoCCH8SfiMAQdAAayIEJABBfyEGAkAgAUF/RgRAIAAoAiQhBwwBCyAAKAIgIQcgAUEBaiIFIAFBAmsgBUEDcBsiBUF/RwRAIAcoAgAgBUECdGooAgAhBgtBf0ECIAFBA3AbIAFqIQVBfyEBIAVBf0cEQCAHKAIAIAVBAnRqKAIAIQELIAAoAiQiBygCBCAHKAIAIgVrQQJ1IgggBk0NACABIAhPDQAgBSAGQQJ0aigCACEGAkACQAJAAkACQAJAIAUgAUECdGooAgAiCCADTg0AIAMgBkwNACACIAhBA3RqIgEoAgQhCSACIAZBA3RqIgUoAgQhBwJAIAEoAgAiCyAFKAIAIgpHDQAgByAJRw0AIAAgCjYCCCAAIAc2AgwMBQsgACgCBCADQQJ0aigCACEBIARCADcDSCAEQUBrQgA3AwAgBEIANwM4IAAoAgAiBS0AVEUEQCAFKAJEIAFBAnRqKAIAIQELIAUgASAFLAAYIARBOGoQNCAAKAIEIAZBAnRqKAIAIQEgBEIANwMwIARCADcDKCAEQgA3AyAgACgCACIFLQBURQRAIAUoAkQgAUECdGooAgAhAQsgBSABIAUsABggBEEgahA0IAAoAgQgCEECdGooAgAhASAEQgA3AxggBEIANwMQIARCADcDCCAAKAIAIgUtAFRFBEAgBSgCRCABQQJ0aigCACEBCyAFIAEgBSwAGCAEQQhqEDQgBCkDECAEKQMoIhh9Ig0gDX4gBCkDCCAEKQMgIhl9IhAgEH58IAQpAxggBCkDMCIafSITIBN+fCIPUA0AQQAhAUL///////////8AIA+AIAqsIg4gDkI/hyIMhSAMfSIMIAesIhYgFkI/hyIRhSARfSIRIAwgEVYbVA0FIAQpA0AiGyAYfSANfiAEKQM4IhwgGX0gEH58IAQpA0giHSAafSATfnwiDCAMQj+HIhGFIBF9IhdC////////////ACALrCAOfSIRIBFCP4ciFIUgFH0iFSAJrCAWfSIUIBRCP4ciEoUgEn0iEiASIBVUG4BWDQUgF0L///////////8AIBAgEEI/hyIVhSAVfSIVIA0gDUI/hyIShSASfSISIBIgFVQbIhUgEyATQj+HIhKFIBJ9IhIgEiAVVBuAVg0FIAwgFH4gDyAWfnwhFiAMIBF+IA4gD358IRdCASEOIBsgGCAMIA1+IA9/fH0iDSANfiAcIBkgDCAQfiAPf3x9Ig0gDX58IB0gGiAMIBN+IA9/fH0iDCAMfnwgD34iDEIBWA0BIAwhDQNAIA5CAYYhDiANQgdWIQEgDUICiCENIAENAAsMAgsgACACIAMgBkoEfyAGQQF0BSADQQBMBEAgAEIANwIIDAULIANBAXRBAmsLQQJ0aiIBKAIANgIIIAAgASgCBDYCDAwDCyAMIg6nQQFrDQELA0AgDCAOgCAOfEIBiCIOIA5+IAxWDQALCyAAQRBqIQECQCACIANBA3RqIgI0AgQiDSAWIA4gEX4iEH0gD38iDH0iEyATfiACNAIAIhMgDiAUfiIRIBd8IA9/Ig59IhQgFH58IA0gECAWfCAPfyINfSIQIBB+IBMgFyARfSAPfyIPfSIQIBB+fFQEQCAEQQE6AAcgASAEQQdqEJMBDAELIARBADoAByABIARBB2oQkwEgDSEMIA8hDgsgACAOPgIIIAAgDD4CDAtBASEBCyAEQdAAaiQAIAEPCxAIAAuPAQEBfyAAQdQnNgIAIAAoApgBIgEEQCAAIAE2ApwBIAEQBAsgACgCcCIBBEAgACABNgJ0IAEQBAsgACgCYCIBBEAgARAECyAAKAJUIgEEQCABEAQLIAAoAkgiAQRAIAEQBAsgACgCPCIBBEAgARAECyAAQYAbNgIAIAAoAiAiAQRAIAAgATYCJCABEAQLIAALdwIBfwF+IwBBEGsiAiQAIAIgACgCDDYCDAJAIAEpAxBCAFUNACABIAEoAgQgAkEMaiACQRBqEAkgASkDECEDIAIgACgCEDYCCCADQgBVDQAgASABKAIEIAJBCGogAkEMahAJCyAAQfAAaiABEA8gAkEQaiQAQQELKAEBfwJAIAEoAjgNACABLQAYQQNHDQAgAEFAayABNgIAQQEhAgsgAgs+AQF/AkAgAEFAaygCAEUNACAAKAJERQ0AIAAoAixFDQAgACgCMEUNACAAKAI0RQ0AIAAoAjhBAEchAQsgAQvyCQIIfxJ+IwBB0ABrIgQkAEF/IQcCf0F/IAFBf0YNABogAUEBaiIGIAFBAmsgBkEDcBshByABQQFrIAFBA3ANABogAUECagshBgJAAkACQAJAAkACQCAAKAIkIgEoAgQgASgCACIFa0ECdSIJIAAoAiAoAhwiCCAHQQJ0aigCACIHTQ0AIAkgCCAGQQJ0aigCACIITQ0AIAUgB0ECdGooAgAhBgJAIAUgCEECdGooAgAiCSADTg0AIAMgBkwNACACIAlBA3RqIgEoAgQhCCACIAZBA3RqIgUoAgQhBwJAIAEoAgAiCyAFKAIAIgpHDQAgByAIRw0AIAAgCjYCCCAAIAc2AgwMBgsgACgCBCADQQJ0aigCACEBIARCADcDSCAEQUBrQgA3AwAgBEIANwM4IAAoAgAiBS0AVEUEQCAFKAJEIAFBAnRqKAIAIQELIAUgASAFLAAYIARBOGoQNCAAKAIEIAZBAnRqKAIAIQEgBEIANwMwIARCADcDKCAEQgA3AyAgACgCACIFLQBURQRAIAUoAkQgAUECdGooAgAhAQsgBSABIAUsABggBEEgahA0IAAoAgQgCUECdGooAgAhASAEQgA3AxggBEIANwMQIARCADcDCCAAKAIAIgUtAFRFBEAgBSgCRCABQQJ0aigCACEBCyAFIAEgBSwAGCAEQQhqEDQgBCkDECAEKQMoIhh9Ig0gDX4gBCkDCCAEKQMgIhl9IhAgEH58IAQpAxggBCkDMCIafSITIBN+fCIPUA0AQQAhAUL///////////8AIA+AIAqsIg4gDkI/hyIMhSAMfSIMIAesIhYgFkI/hyIRhSARfSIRIAwgEVYbVA0GIAQpA0AiGyAYfSANfiAEKQM4IhwgGX0gEH58IAQpA0giHSAafSATfnwiDCAMQj+HIhGFIBF9IhdC////////////ACALrCAOfSIRIBFCP4ciFIUgFH0iFSAIrCAWfSIUIBRCP4ciEoUgEn0iEiASIBVUG4BWDQYgF0L///////////8AIBAgEEI/hyIVhSAVfSIVIA0gDUI/hyIShSASfSISIBIgFVQbIhUgEyATQj+HIhKFIBJ9IhIgEiAVVBuAVg0GIAwgFH4gDyAWfnwhFiAMIBF+IA4gD358IRdCASEOIBsgGCAMIA1+IA9/fH0iDSANfiAcIBkgDCAQfiAPf3x9Ig0gDX58IB0gGiAMIBN+IA9/fH0iDCAMfnwgD34iDEIBWA0CIAwhDQNAIA5CAYYhDiANQgdWIQEgDUICiCENIAENAAsMAwsgACACIAMgBkoEfyAGQQF0BSADQQBMBEAgAEIANwIIDAYLIANBAXRBAmsLQQJ0aiIBKAIANgIIIAAgASgCBDYCDAwECxAIAAsgDCIOp0EBaw0BCwNAIAwgDoAgDnxCAYgiDiAOfiAMVg0ACwsgAEEQaiEBAkAgAiADQQN0aiICNAIEIg0gFiAOIBF+IhB9IA9/Igx9IhMgE34gAjQCACITIA4gFH4iESAXfCAPfyIOfSIUIBR+fCANIBAgFnwgD38iDX0iECAQfiATIBcgEX0gD38iD30iECAQfnxUBEAgBEEBOgAHIAEgBEEHahCTAQwBCyAEQQA6AAcgASAEQQdqEJMBIA0hDCAPIQ4LIAAgDj4CCCAAIAw+AgwLQQEhAQsgBEHQAGokACABC5MCAgV/AX4jAEEwayICJAAgAiAAKAJQNgIoIAEpAxBCAFcEQCABIAEoAgQgAkEoaiACQSxqEAkLIAJBCGoiA0IANwIAIANCADcCGCADQgA3AhAgA0IANwIIIAMQECACKAIoQQBKBEBBASEFA0AgAyAFIAAoAkwgBEEDdkH8////AXFqKAIAIAR2IgZzQX9zQQFxEBMgBkEBcSEFIARBAWoiBCACKAIoSA0ACwsgAyABEA8gAiAAKAIMNgIsAkAgASkDEEIAVQ0AIAEgASgCBCACQSxqIAJBMGoiBBAJIAEpAxAhByACIAAoAhA2AiwgB0IAVQ0AIAEgASgCBCACQSxqIAQQCQsgAxANGiACQTBqJABBAQslAQF/AkAgASgCOA0AIAEtABhBA0cNACAAIAE2AjxBASECCyACCzMBAX8CQCAAKAI8RQ0AIAAoAixFDQAgACgCMEUNACAAKAI0RQ0AIAAoAjhBAEchAQsgAQvLBgIFfwF+IwBBIGsiAiQAIABBQGsiAygCACABEBEaIAMoAgAEQCACQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggAiIEEBAgACgCQCIDQQBKBEADQCAEIAAoAjwgA0EBayIGQQN2Qfz///8BcWooAgAgBnZBAXEQEyADQQFLIQUgBiEDIAUNAAsLIAQgARAPIAQQDRoLIAAoAkwgARARGiAAKAJMBEAgAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIAIiBBAQIAAoAkwiA0ECTgRAA0AgBCAAKAJIIANBAmsiBkEDdkH8////AXFqKAIAIAZ2QQFxEBMgBCAAKAJIIANBAWsiBUEDdkH8////AXFqKAIAIAV2QQFxEBMgA0EDSyEFIAYhAyAFDQALCyAEIAEQDyAEEA0aCyAAKAJYIAEQERogACgCWARAIAJCADcCACACQgA3AhggAkIANwIQIAJCADcCCCACIgQQECAAKAJYIgNBA04EQANAIAQgACgCVCADQQNrIgZBA3ZB/P///wFxaigCACAGdkEBcRATIAQgACgCVCADQQJrIgVBA3ZB/P///wFxaigCACAFdkEBcRATIAQgACgCVCADQQFrIgVBA3ZB/P///wFxaigCACAFdkEBcRATIANBBUshBSAGIQMgBQ0ACwsgBCABEA8gBBANGgsgACgCZCABEBEaIAAoAmQEQCACQgA3AgAgAkIANwIYIAJCADcCECACQgA3AgggAiIEEBAgACgCZCIDQQROBEADQCAEIAAoAmAgA0EEayIGQQN2Qfz///8BcWooAgAgBnZBAXEQEyAEIAAoAmAgA0EDayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyAEIAAoAmAgA0ECayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyAEIAAoAmAgA0EBayIFQQN2Qfz///8BcWooAgAgBXZBAXEQEyADQQdLIQUgBiEDIAUNAAsLIAQgARAPIAQQDRoLIAIgACgCDDYCAAJAIAEpAxBCAFUNACABIAEoAgQgAiACQQRqIgMQCSABKQMQIQcgAiAAKAIQNgIAIAdCAFUNACABIAEoAgQgAiADEAkLIAJBIGokAEEBC48BAQF/IABBuBs2AgAgACgCmAEiAQRAIAAgATYCnAEgARAECyAAKAJwIgEEQCAAIAE2AnQgARAECyAAKAJgIgEEQCABEAQLIAAoAlQiAQRAIAEQBAsgACgCSCIBBEAgARAECyAAKAI8IgEEQCABEAQLIABBgBs2AgAgACgCICIBBEAgACABNgIkIAEQBAsgAAsEAEF/C2QBAX8gAEHAFDYCACAAKAIkIQEgAEEANgIkIAEEQCABIAEoAgAoAgQRAgALIABB2BI2AgAgACgCICEBIABBADYCICABBEAgARAbCyAAKAIQIgEEQCAAIAE2AhQgARAECyAAEAQLYgEBfyAAQcAUNgIAIAAoAiQhASAAQQA2AiQgAQRAIAEgASgCACgCBBECAAsgAEHYEjYCACAAKAIgIQEgAEEANgIgIAEEQCABEBsLIAAoAhAiAQRAIAAgATYCFCABEAQLIAALBABBBgvgAQEDfyAAQcATNgIAIAAoAkghASAAQQA2AkggAQRAIAEgASgCACgCBBECAAsgACgCPCIBBEAgAEFAayABNgIAIAEQBAsgACgCMCIBBEAgARAECyAAKAIkIgEEQCAAKAIoIgMgASICRwRAA0AgA0EEayIDKAIAIQIgA0EANgIAIAIEQCACIAIoAgAoAgQRAgALIAEgA0cNAAsgACgCJCECCyAAIAE2AiggAhAECyAAQYwRNgIAIAAoAhAiAQRAIAAgATYCFCABEAQLIAAoAgQiAQRAIAAgATYCCCABEAQLIAALxQECB38BfkF/IAAoAggoAigiAyADQQBIGxAFIQYgASgCBCIHIAEoAgAiBEcEQCADIAZqIQkDQCAEIAhBAnRqKAIAIQUgACgCCCIDLQBURQRAIAMoAkQgBUECdGooAgAhBQsgBiADKAIAKAIAIAMpAzAgAykDKCIKIAWtfnynaiAKpxALIQMgAikDEEIAVwRAIAIgAigCBCADIAkQCSABKAIEIQcgASgCACEECyAIQQFqIgggByAEa0ECdUkNAAsLIAYQBEEBCxMAIAAgASACIAAoAgAoAiwRBAALEgAgAEF/NgIMIAAgATYCCEEBCywAIAAgATYCBCABKAIEKAIIIAJBAnRqKAIAIQEgACACNgIMIAAgATYCCEEBCwkAIAAQ4QEQBAs6AQJ+IAIpAwgiBCACKQMQIgNVBEAgAigCACADp2otAAAhASACIANCAXw3AxAgACABNgIECyADIARTC+RABCp/AXwBfQJ+IwBBkA1rIgMkACADQQVBBkEKIAAoAhwoAjAQL2siAiACQQZOGyICIAAoAkgiBkEPShsgAiACQf8BcUEGRhs6AI8NIAEpAxBCAFcEQCABIAEoAgQgA0GPDWogA0GQDWoQCSAAKAJIIQYLIAAoAhwoAgQoAlAhCCADQYQNakEANgIAIANCADcC/AwgAyAINgLwDCADIAY2AvQMIAMgBkECdDYC+AwCQAJAAkACQCAGIAhsIgcEQCAHQYCAgIAETw0BIAMgB0ECdCICEAUiBTYC/AwgAyACIAVqIgQ2AoQNIAVBACACEAYaIAMgBDYCgA0LIAMgBTYCiA0gACgCBCIKIAAoAghHBEADQAJAAkACQAJAAkAgACgCHCgCBCgCCCAKIA5BAnRqKAIAQQJ0aigCACIEKAIcIgJBAWtBBk8EfyACQQlHDQsgACgCPCARQQJ0aigCACIERQ0LIBFBAWohESAEKAIcBSACC0EBaw4GAQIBAgEAAgsgCEUNA0EAIQoDQCADKAKIDSALQQJ0aiADKAL0DCAKbEECdGogBCgCACgCACAEKQMwIAQpAyggBC0AVAR/IAoFIAQoAkQgCkECdGooAgALrX58p2ogBC0AGEECdBALGiAKQQFqIgogCEcNAAsMAwsCQCAELQAYIgJFBEBBACEHQQAhBQwBC0EAIQUgAkECdCICEAUiB0EAIAIQBhogBC0AGCICRQ0AIAJBAnQiAhAFIgVBACACEAYaCyAIBEBBACEGA0AgBCAELQBUBH8gBgUgBCgCRCAGQQJ0aigCAAsgBCwAGCAHEJgBGgJAIAQtABgiCUUNACAAKAIwIQxBACEKIAlBAUcEQCAJQf4BcSENQQAhAgNAIAUgCkECdCIPaiAHIA9qKAIAIAwgCiATakECdGooAgBrNgIAIAUgCkEBciIPQQJ0IhBqIAcgEGooAgAgDCAPIBNqQQJ0aigCAGs2AgAgCkECaiEKIAJBAmoiAiANRw0ACwsgCUEBcUUNACAFIApBAnQiAmogAiAHaigCACAMIAogE2pBAnRqKAIAazYCAAsgAygCiA0gC0ECdGogAygC9AwgBmxBAnRqIAUgCUECdBALGiAGQQFqIgYgCEcNAAsLIAQtABghAiAFBEAgBRAECyACIBNqIRMgBw0BDAILAkAgBC0AGCICRQRAQQAhBwwBCyACQQJ0IgIQBSIHQQAgAhAGGgsgCARAQQAhCgNAIAQtAFQEfyAKBSAEKAJEIApBAnRqKAIACyEGIAQtABghAkEAIQkCQCAHRQ0AAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAQoAhxBAWsOCwABAgMEBQYHCAkKDAsgBC0AGCIFIAIgAiAFSxsEQCAEKAIAIgUoAgAgBCkDMCAEKQMoIAatfnynaiEGIAUoAgQhDANAIAYgDE8NDSAHIAlBAnRqIAYsAAA2AgAgBkEBaiEGIAlBAWoiCSAELQAYIgUgAiACIAVLG0kNAAsLDAoLIAQtABgiBSACIAIgBUsbBEAgBCgCACIFKAIAIAQpAzAgBCkDKCAGrX58p2ohBiAFKAIEIQwDQCAGIAxPDQwgByAJQQJ0aiAGLQAANgIAIAZBAWohBiAJQQFqIgkgBC0AGCIFIAIgAiAFSxtJDQALCwwJCyAELQAYIgUgAiACIAVLGwRAIAQoAgAiBSgCACAEKQMwIAQpAyggBq1+fKdqIQYgBSgCBCEMA0AgBiAMTw0LIAcgCUECdGogBi4BADYCACAGQQJqIQYgCUEBaiIJIAQtABgiBSACIAIgBUsbSQ0ACwsMCAsgBC0AGCIFIAIgAiAFSxsEQCAEKAIAIgUoAgAgBCkDMCAEKQMoIAatfnynaiEGIAUoAgQhDANAIAYgDE8NCiAHIAlBAnRqIAYvAQA2AgAgBkECaiEGIAlBAWoiCSAELQAYIgUgAiACIAVLG0kNAAsLDAcLIAQtABgiBSACIAIgBUsbBEAgBCgCACIFKAIAIAQpAzAgBCkDKCAGrX58p2ohBiAFKAIEIQwDQCAGIAxPDQkgByAJQQJ0aiAGKAIANgIAIAZBBGohBiAJQQFqIgkgBC0AGCIFIAIgAiAFSxtJDQALCwwGCyAELQAYIgUgAiACIAVLGwRAIAQoAgAiBSgCACAEKQMwIAQpAyggBq1+fKdqIQYgBSgCBCEMA0AgBiAMTw0IIAcgCUECdGogBigCADYCACAGQQRqIQYgCUEBaiIJIAQtABgiBSACIAIgBUsbSQ0ACwsMBQsgBC0AGCIFIAIgAiAFSxsEQCAEKAIAIgUoAgAgBCkDMCAEKQMoIAatfnynaiEGIAUoAgQhDANAIAYgDE8NByAGKQMAIi5C/////w9WDQcgByAJQQJ0aiAuPgIAIAZBCGohBiAJQQFqIgkgBC0AGCIFIAIgAiAFSxtJDQALCwwECyAELQAYIgUgAiACIAVLGwRAIAQoAgAiBSgCACAEKQMwIAQpAyggBq1+fKdqIQYgBSgCBCEMA0AgBiAMTw0GIAYpAwAiLkL/////D1YNBiAHIAlBAnRqIC4+AgAgBkEIaiEGIAlBAWoiCSAELQAYIgUgAiACIAVLG0kNAAsLDAMLAkACQCAELQAYIgUgAiACIAVLG0UNACAEKAIAIgUoAgAiDSAEKQMwIAQpAyggBq1+fKciBmohCSAFKAIEIgwgDWshBSAELQAgRQRAIAUgBkwNAkEAIQYDQCAJKgIAIi1DAACAT2ANAyAtQwAAAABdDQMgLSAtXA0DIC2LQwAAgH9bDQMgByAGQQJ0agJ/IC1DAACAT10gLUMAAAAAYHEEQCAtqQwBC0EACzYCACAGQQFqIgYgBC0AGCIFIAIgAiAFSxtPDQIgCUEEaiIJIAxJDQALDAILIAUgBkwNAUEAIQYDQCAJKgIAIi1DAACAT2ANAiAtQwAAAABdDQIgLSAtXA0CIC2LQwAAgH9bDQIgLUMAAIA/Xg0CIAcgBkECdGoCfyAtu0QAAOD////vQaJEAAAAAAAA4D+gnCIsRAAAAAAAAPBBYyAsRAAAAAAAAAAAZnEEQCAsqwwBC0EACzYCACAGQQFqIgYgBC0AGCIFIAIgAiAFSxtPDQEgCUEEaiIJIAxJDQALDAELIAIgBU0NACAHIAVBAnRqQQAgAiAFa0ECdBAGGgsMAwsCQAJAIAQtABgiBSACIAIgBUsbRQ0AIAQoAgAiBSgCACINIAQpAzAgBCkDKCAGrX58pyIGaiEJIAUoAgQiDCANayEFIAQtACBFBEAgBSAGTA0CQQAhBgNAIAkrAwAiLEQAAOD////vQWYNAyAsRAAAAAAAAAAAYw0DICwgLGINAyAsmUQAAAAAAADwf2ENAyAHIAZBAnRqAn8gLEQAAAAAAADwQWMgLEQAAAAAAAAAAGZxBEAgLKsMAQtBAAs2AgAgBkEBaiIGIAQtABgiBSACIAIgBUsbTw0CIAlBCGoiCSAMSQ0ACwwCCyAFIAZMDQFBACEGA0AgCSsDACIsRAAA4P///+9BZg0CICxEAAAAAAAAAABjDQIgLCAsYg0CICyZRAAAAAAAAPB/YQ0CICxEAAAAAAAA8D9kDQIgByAGQQJ0agJ/ICxEAADg////70GiRAAAAAAAAOA/oJwiLEQAAAAAAADwQWMgLEQAAAAAAAAAAGZxBEAgLKsMAQtBAAs2AgAgBkEBaiIGIAQtABgiBSACIAIgBUsbTw0BIAlBCGoiCSAMSQ0ACwwBCyACIAVNDQAgByAFQQJ0akEAIAIgBWtBAnQQBhoLDAILIAQtABgiBSACIAIgBUsbBEAgBCgCACIFKAIAIAQpAzAgBCkDKCAGrX58p2ohBiAFKAIEIQwDQCAGIAxPDQMgByAJQQJ0aiAGLQAANgIAIAZBAWohBiAJQQFqIgkgBC0AGCIFIAIgAiAFSxtJDQALCyACIAVNDQEgByAFQQJ0akEAIAIgBWtBAnQQBhoMAQsgAiAFTQ0AIAcgBUECdGpBACACIAVrQQJ0EAYaCyADKAKIDSALQQJ0aiADKAL0DCAKbEECdGogByAELQAYQQJ0EAsaIApBAWoiCiAIRw0ACwsgB0UNAQsgBxAECyALIAQtABhqIQsgDkEBaiIOIAAoAgggACgCBCIKa0ECdUkNAAsgAygCiA0hBSAAKAJIIgYgCGwhBwtBACEKIAdBAEwNAiAHQQFxIQIgB0EBRgRAQQAhBwwCCyAHQX5xIQRBACEHQQAhAANAIAUgB0ECdCIJaigCACIIBEAgCkEgIAhnIghrIAhBH3MgCkgbIQoLIAUgCUEEcmooAgAiCQRAIApBICAJZyIJayAJQR9zIApIGyEKCyAHQQJqIQcgBCAAQQJqIgBHDQALDAELEAcACyACRQ0AIAUgB0ECdGooAgAiAEUNACAKQSAgAGciAGsgAEEfcyAKSBshCgsCQAJAAkACQAJAAkACQAJAIAMtAI8NDgcGBQQDAgEACAsgA0HIA2ogBhCWASEFIAMgAygC9AwiADYCwAMgAyAANgKwAyADIAA2AiAgAyAANgIQIANBADYCuAMgAyADKALwDDYCqAMgAyADQfAMaiIANgK8AyADIAMpA7gDNwMYIAMgADYCrAMgAyAKNgKkAyADIAMpA6gDNwMIIwBBIGsiCiQAIAUgAygCpAM2AgAgBSADKAIIIAMoAhhrIgA2AgQgASkDEEIAVwR/IAEgASgCBCAFIAVBBGoiABAJIAEpAxBCAFcEQCABIAEoAgQgACAFQQhqEAkLIAAoAgAFIAALBEAgBUEMaiIiEOMBIAVBrAhqIiMiAEIANwIMIAAgACgCADYCBCAFQcAIaiIkIgBCADcCDCAAIAAoAgA2AgQgBUHUCGoiJSIAQgA3AgwgACAAKAIANgIEIAogAygCIDYCGCAKIAMpAhg3AxAgCiADKAIQNgIIIAogAykCCDcDAEEAIQJBACEHIwBBQGoiCCQAIAUoAgghBCAIQQA2AjAgCEIANwMoAkACQCAEBEAgBEGAgICABE8NASAIIARBAnQiABAFIgI2AiggCCAAIAJqIgc2AjAgAkEAIAAQBhogCCAHNgIsCyAFKAKMCSIAKAIAIgYEQCAAIAY2AgQgBhAEIAUoAgghBCAIKAIsIQcgCCgCKCECCyAAIAc2AgQgACACNgIAIAAgCCgCMDYCCEEAIQIgCEEANgIwIAhCADcDKEEAIQACQCAEBEAgBEGAgICABE8NASAIIARBAnQiBhAFIgA2AiggCCAAIAZqIgI2AjAgAEEAIAYQBhogCCACNgIsCyAFKAKYCSIGKAIAIgQEQCAGIAQ2AgQgBBAEIAgoAiwhAiAIKAIoIQALIAYgAjYCBCAGIAA2AgAgBiAIKAIwNgIIIAopAhQhLiAKKQIEIS8gCigCACECIAooAhAhBiAIQgA3AzggCEIANwMwIAhCADcDKCAIQShqEDIgCCgCLCAIKAI4IAgoAjxqIgBB8QBuIgRBAnRqKAIAIAAgBEHxAGxrQSRsaiIAQQA2AiAgACACIAZrNgIcIABBADYCGCAAIC83AhAgACACNgIMIAAgLjcCBCAAIAY2AgAgCCAIKAI8QQFqIgQ2AjwgBARAIC9CIIinIR0gLqchDCAuQiCIpyITQXxxISYgE0EDcSEeIAVBrAhqIScgBUEMaiEfIAVB1AhqISggL6chICATQQRJISkDQCAIKAIsIgIgCCgCOCIHIARBAWsiC2oiAEHxAG4iBkECdGooAgAgACAGQfEAbGtBJGxqIgAoAiAhFyAAKAIYGiAAKAIMIQkgACgCACEGIAggCzYCPCAIKAIwIgAgAmtBAnVB8QBsQQFrQQAgACACRxsgBCAHamtBAWpB4gFPBEAgAEEEaygCABAEIAggCCgCMEEEazYCMAsgCiAGNgIQIAogCTYCACAFKAKMCSEAIAUoApgJIQIgCCAKKAIYNgIgIAggCikCEDcDGCAIIAooAgg2AhAgCCAKKQIANwMIIAAgF0EMbCIhaiIRIQsgAiAhaiIYIQJBACEEIAUoAgghBwJAAkACQAJAIAgoAggiDiAIKAIYIgBrIg1BwABPBEAgB0UEQAwECyAFKAL0CCEUIAIoAgAhFiAFKALoCCEZIAAgDkcNAUEAIQcDQCAZIAdBAnQiAGoiAkEANgIAIAAgFGogBSgCACIEIAAgFmooAgAiAGs2AgAgACAERwRAIAIgDSACKAIAIgBrIgIgACAAIAJJGzYCAAsgB0EBaiIHIAUoAggiAkkNAAsMAgsgB0ECSQ0DIAdBAWsiC0EDcSEOIAIoAgAhAkEAIQACQCAHQQJrQQNJBEBBASEHDAELIAtBfHEhDUEBIQdBACELA0AgB0EDaiIPIAdBAmoiECAHQQFqIhQgByAEIAIgBEECdGooAgAgAiAHQQJ0aigCAEsbIgQgAiAEQQJ0aigCACACIBRBAnRqKAIASxsiBCACIARBAnRqKAIAIAIgEEECdGooAgBLGyIEIAIgBEECdGooAgAgAiAPQQJ0aigCAEsbIQQgB0EEaiEHIAtBBGoiCyANRw0ACwsgDkUNAwNAIAcgBCACIARBAnRqKAIAIAIgB0ECdGooAgBLGyEEIAdBAWohByAAQQFqIgAgDkcNAAsMAwsgCCgCHCEcIAsoAgAhEiANQQFxIRUgDiAAQQFqIhpHISogACAIKAIgIhtsQQJ0ISsDQCAZIARBAnQiAmoiC0EANgIAIAIgFGogBSgCACIHIAIgFmooAgAiD2siEDYCACAHIA9HBEAgAiASaigCAEEBIBBBAWt0aiEPIBwoAhggAmohECALKAIAIQIgFQR/IAsgAiAQICtqKAIAIA9JaiICNgIAIBoFIAALIQcgKgRAA0AgCyACIBAgByAbbEECdGooAgAgD0lqIgI2AgAgCyACIBAgB0EBaiAbbEECdGooAgAgD0lqIgI2AgAgB0ECaiIHIA5HDQALCyALIA0gAmsiByACIAIgB0kbNgIACyAEQQFqIgQgBSgCCCICSQ0ACwsgAkUEQEEAIQQMAQsgAkEBcSEQIAUoAugIIQ4gBSgC9AghDQJAIAJBAUYEQEEAIQdBACECQQAhBAwBCyACQX5xIRRBACEHQQAhAkEAIQRBACELA0ACQCANIAdBAnQiAGooAgBFBEAgAiEADAELIAIgACAOaigCACIPIAIgD0sbIQAgByAEIAIgD0kbIQQLAkAgDSAHQQFyIhZBAnQiAmooAgBFBEAgACECDAELIAAgAiAOaigCACIPIAAgD0sbIQIgFiAEIAAgD0kbIQQLIAdBAmohByALQQJqIgsgFEcNAAsLIBBFDQAgDSAHQQJ0IgBqKAIARQ0AIAcgBCACIAAgDmooAgBJGyEECyAFQcAIakEEIAQQTwsCQAJAIAUoAgAiACAEQQJ0Ig4gGCgCAGooAgAiAkYNAAJAAkAgCSAGayIUQQJNBEAgBSgCgAkiByAENgIAQQEhAiAFKAIIIgBBAUsNAQwCCyARIAUoAowJIgcgF0EBaiIbQQxsIhhqIgtHBH8gCyARKAIAIBEoAgQQLiAFKAKMCQUgBwsgGGooAgAgDmoiByAHKAIAQQEgACACQX9zanRqIg82AgACQCAJIAYiAEYNACAMKAIYIhwgDmohFiAJIQAgBiECIBNFBEAgFigCACAPSQ0BA0AgAEEBayIAIAJGBEAgAiEADAMLICAoAhggDmogACAdbEECdGooAgAgD08NACACQQFqIgIgAEcNAAsMAQsDQCAPIBYgAiATbEECdCIHaigCAEsEQCACQQFqIgIgAEcNAQwCCwNAIABBAWsiACACRgRAIAIhAAwDCyAgKAIYIAAgHWxBAnRqIhEgDmooAgAgD08NAAsgByAcaiENQQAhGUEAIQdBACELIClFBEADQCANIAdBAnQiEGoiEigCACEVIBIgECARaiISKAIANgIAIBIgFTYCACANIBBBBHIiEmoiFSgCACEaIBUgESASaiISKAIANgIAIBIgGjYCACANIBBBCHIiEmoiFSgCACEaIBUgESASaiISKAIANgIAIBIgGjYCACANIBBBDHIiEGoiEigCACEVIBIgECARaiIQKAIANgIAIBAgFTYCACAHQQRqIQcgC0EEaiILICZHDQALCyAeBEADQCANIAdBAnQiC2oiECgCACESIBAgCyARaiILKAIANgIAIAsgEjYCACAHQQFqIQcgGUEBaiIZIB5HDQALCyACQQFqIgIgAEcNAAsLIAAgBmsiCyAJIABrIhFHBEAgKCALIBFJEHoLIBRnIgJBH3MhDSAUQQF2IQcCQCALIBFJBEAgDUUNASAHIAtrIQ9BAUEeIAJrdCECQQAhBwNAIB8gB0EFdGogAiAPcUEARxATIAJBAXYhAiAHQQFqIgcgDUcNAAsMAQsgDUUNACAHIBFrIQ9BAUEeIAJrdCECQQAhBwNAIB8gB0EFdGogAiAPcUEARxATIAJBAXYhAiAHQQFqIgcgDUcNAAsLIA4gBSgCmAkiAiAhaiIHKAIAIg1qIg4gDigCAEEBajYCACACIBhqIA0gBygCBBAuIAAgBkcEQCAIKAI8IAgoAjhqIgcgCCgCMCIOIAgoAiwiAmtBAnVB8QBsQQFrQQAgAiAORxtGBEAgCEEoahAyIAgoAjggCCgCPGohByAIKAIsIQILIAIgB0HxAG4iDkECdGooAgAgByAOQfEAbGtBJGxqIgIgFzYCICACIAs2AhwgAiAENgIYIAIgDDYCECACIAA2AgwgAiAuNwIEIAIgBjYCACACIBM2AhQgCCAIKAI8QQFqNgI8CyAAIAlGDQIgCCgCPCAIKAI4aiIHIAgoAjAiBiAIKAIsIgJrQQJ1QfEAbEEBa0EAIAIgBkcbRgRAIAhBKGoQMiAIKAI4IAgoAjxqIQcgCCgCLCECCyACIAdB8QBuIgZBAnRqKAIAIAcgBkHxAGxrQSRsaiICIBs2AiAgAiARNgIcIAIgBDYCGCACIC83AhAgAiAJNgIMIAIgDDYCBCACIAA2AgAgAiATNgIIIAggCCgCPEEBaiIENgI8DAMLA0AgByACQQJ0aiAEQQFqQQAgBCAAQQFrRxsiBDYCACACQQFqIgIgBSgCCCIASQ0ACwtBACEHIAAhAiAGIAlGDQADQAJAIAJFBEBBACECDAELIAwoAhggDCgCBCAGIAdqbEECdGohCUEAIQQDQCAFKAIAIgIgBSgCgAkgBEECdGooAgBBAnQiCyAYKAIAaigCACIORwRAICcgAiAOayAJIAtqKAIAEE8gBSgCCCEACyAAIgIgBEEBaiIESw0ACwsgB0EBaiIHIBRHDQALCyAIKAI8IQQLIAQNAAsLIAhBADYCPCAIKAIwIgYgCCgCLCIEayIAQQlPBEADQCAEKAIAEAQgCCAIKAIsQQRqIgQ2AiwgCCgCMCIGIARrIgBBCEsNAAsLQTghAgJAAkACQCAAQQJ2QQFrDgIBAAILQfEAIQILIAggAjYCOAsCQCAEIAZGDQADQCAEKAIAEAQgBEEEaiIEIAZHDQALIAgoAjAiACAIKAIsIgJGDQAgCCAAIAIgAGtBA2pBfHFqNgIwCyAIKAIoIgAEQCAAEAQLIAhBQGskAAwCCxAHAAsQBwALICIgARDiASAjIAEQMSAkIAEQMSAlIAEQMQsgCkEgaiQAIAUQlwEMBgsgA0HIA2ogBhCWASECIAMgAygC9AwiADYCoAMgAyAANgKQAyADQUBrIAA2AgAgAyAANgIwIANBADYCmAMgAyADKALwDDYCiAMgAyADQfAMaiIANgKcAyADIAMpA5gDNwM4IAMgADYCjAMgAyAKNgKkAyADIAMpA4gDNwMoIAIgA0E4aiADQShqIANBpANqIAEQ6gEhACACEJcBIAANBQwGCyADQcgDaiAGEJYBIQIgAyADKAL0DCIANgKAAyADIAA2AvACIAMgADYCYCADIAA2AlAgA0EANgL4AiADIAMoAvAMNgLoAiADIANB8AxqIgA2AvwCIAMgAykD+AI3A1ggAyAANgLsAiADIAo2AqQDIAMgAykD6AI3A0ggAiADQdgAaiADQcgAaiADQaQDaiABEOoBIQAgAhCXASAADQQMBQsgA0HIA2ogBhDpASECIAMgAygC9AwiADYC4AIgAyAANgLQAiADIAA2AoABIAMgADYCcCADQQA2AtgCIAMgAygC8Aw2AsgCIAMgA0HwDGoiADYC3AIgAyADKQPYAjcDeCADIAA2AswCIAMgCjYCpAMgAyADKQPIAjcDaCACIANB+ABqIANB6ABqIANBpANqIAEQ6AEhACACEOcBIAANAwwECyADQcgDaiAGEOkBIQIgAyADKAL0DCIANgLAAiADIAA2ArACIAMgADYCoAEgAyAANgKQASADQQA2ArgCIAMgAygC8Aw2AqgCIAMgA0HwDGoiADYCvAIgAyADKQO4AjcDmAEgAyAANgKsAiADIAo2AqQDIAMgAykDqAI3A4gBIAIgA0GYAWogA0GIAWogA0GkA2ogARDoASEAIAIQ5wEgAA0CDAMLIANByANqIAYQ5gEhAiADIAMoAvQMIgA2AqACIAMgADYCkAIgAyAANgLAASADIAA2ArABIANBADYCmAIgAyADKALwDDYCiAIgAyADQfAMaiIANgKcAiADIAMpA5gCNwO4ASADIAA2AowCIAMgCjYCpAMgAyADKQOIAjcDqAEgAiADQbgBaiADQagBaiADQaQDaiABEOUBIQAgAhDkASAADQEMAgsgA0HIA2ogBhDmASECIAMgAygC9AwiADYCgAIgAyAANgLwASADIAA2AuABIAMgADYC0AEgA0EANgL4ASADIAMoAvAMNgLoASADIANB8AxqIgA2AvwBIAMgAykD+AE3A9gBIAMgADYC7AEgAyAKNgKkAyADIAMpA+gBNwPIASACIANB2AFqIANByAFqIANBpANqIAEQ5QEhACACEOQBIABFDQELQQEhFwsgAygC/AwiAARAIAMgADYCgA0gABAECyADQZANaiQAIBcLogEBAn8gACgCJCICIAAoAihHBEADQCACIANBGGxqIgIgASACKAIAKAIcEQEAGiADQQFqIgMgACgCKCAAKAIkIgJrQRhtSQ0ACwsgACgCMCICIAAoAjRHBEBBACEDA0AgAiADQQJ0aigCACICQX9zQQF0QQFyIAJBAXQgAkEASBsgARARGiADQQFqIgMgACgCNCAAKAIwIgJrQQJ1SQ0ACwtBAQuKGAIOfwF9IwBBQGoiBCQAAkAgACgCCCIMIAAoAgQiAUYEQCAAQQA2AkhBASECDAELQQEgDCABa0ECdSIDIANBAU0bIgZBA3EhCSAAKAIcKAIEIggoAgghAyAGQQFrQQNPBEAgBkF8cSELA0AgBSADIAEgAkECdCIGaigCAEECdGooAgAtABhqIAMgASAGQQRyaigCAEECdGooAgAtABhqIAMgASAGQQhyaigCAEECdGooAgAtABhqIAMgASAGQQxyaigCAEECdGooAgAtABhqIQUgAkEEaiECIApBBGoiCiALRw0ACwsgCQRAA0AgBSADIAEgAkECdGooAgBBAnRqKAIALQAYaiEFIAJBAWohAiAHQQFqIgcgCUcN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AgAgAkEEayICIAc2AgAgASAGRw0ACyAAIAM2AkQgACgCQCEDIAAgBTYCQCAAKAI8IQEgACACNgI8IAEgA0YNAwNAIANBBGsiAygCACECIANBADYCACACBEAgAhAbCyABIANHDQALDAMLEAcACxAOAAsgACADNgJEIAAgBTYCQCAAIAI2AjwLIAEEQCABEAQLCyAEKAIAIQEgBEEANgIAIAEEQCABEBsLIARB8A82AiAgBCgCKCIBRQ0EIAQgATYCLCABEAQMBAsgBEHwDzYCICAEKAIoIgAEQCAEIAA2AiwgABAEC0EAIQIMBQtBACEJAn8CQAJAIAYtABgiBUUEQEEAIQMMAQtBACECIAVBAnQiBxAFIgMhASAFQQdxIggEQANAIAFB/////wc2AgAgAUEEaiEBIAJBAWoiAiAIRw0ACwsgBUEBa0H/////A3FBB08EQCADIAdqIQIDQCABQv/////3/////wA3AhggAUL/////9/////8ANwIQIAFC//////f/////ADcCCCABQv/////3/////wA3AgAgAUEgaiIBIAJHDQALCyAGLQAYIgENAQtBACEFQQAMAQsgAUECdCIBEAUiBUEAIAEQBhogBi0AGAshAiAGKAJQRQ0BA0AgBiAJIALAIAUQmAEaAkAgBi0AGCICRQ0AQQAhASACQQFHBEAgAkH+AXEhC0EAIQcDQCADIAFBAnQiCGoiCigCACAFIAhqKAIAIg5KBEAgCiAONgIACyADIAhBBHIiCGoiCigCACAFIAhqKAIAIghKBEAgCiAINgIACyABQQJqIQEgB0ECaiIHIAtHDQALCyACQQFxRQ0AIAMgAUECdCIBaiIHKAIAIAEgBWooAgAiAUwNACAHIAE2AgALIAlBAWoiCSAGKAJQSQ0ACwwBCxAHAAtBACEBAkAgAkUNAAJAA0ACQCADIAFBAnRqIQgCQCAAKAI0IgIgACgCOEcEQCACIAgoAgA2AgAgACACQQRqNgI0DAELIAIgACgCMCICayIHQQJ1IgtBAWoiCUGAgICABE8NAUH/////AyAHQQF2IgogCSAJIApJGyAHQfz///8HTxsiCQR/IAlBgICAgARPDQQgCUECdBAFBUEACyIKIAtBAnRqIgsgCCgCADYCACAAIAogAiAHEAoiByAJQQJ0ajYCOCAAIAtBBGo2AjQgACAH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cmoiCCAGIAgoAgBBAnRqKAIANgIAIAQgBUEIcmoiCCAGIAgoAgBBAnRqKAIANgIAIAQgBUEMcmoiBSAGIAUoAgBBAnRqKAIANgIAIAFBBGohASAKQQRqIgogDEcNAAsLIAdFDQEDQCAEIAFBAnRqIgUgBiAFKAIAQQJ0aigCADYCACABQQFqIQEgC0EBaiILIAdHDQALDAELIAJBADoAVCACQcQAaiEBAkAgAigCSCACKAJEIgdrQQJ1IgUgBEkEQCABIAQgBWtBgBEQHSACKAJQIQQMAQsgBCAFTw0AIAIgByAEQQJ0ajYCSAsgBEUNACABKAIAIQVBACEBIARBBE8EQCAEQXxxIQwDQCAFIAFBAnQiB2ogBiAHaigCADYCACAFIAdBBHIiCGogBiAIaigCADYCACAFIAdBCHIiCGogBiAIaigCADYCACAFIAdBDHIiB2ogBiAHaigCADYCACABQQRqIQEgCkEEaiIKIAxHDQALCyAEQQNxIgRFDQADQCAFIAFBAnQiCmogBiAKaigCADYCACABQQFqIQEgC0EBaiILIARHDQALCyACIAk2AlALIAYQBAsgAygCKCIBBEADQCABKAIAIQIgARAEIAIiAQ0ACwsgAygCICEBIANBADYCICABBEAgARAECyADQUBrJAAgCQwBCxAHAAsMCQsgAiABELwBDAgLIAIgARC7AQwHCyACIAEQugEMBgsCQAJAAkACQCABLQAYQQFrDgQAAQIDCgsgAiABELACDAgLIAIgARCsAgwHCyACIAEQqQIMBgsgAiABEKcCDAULAkACQAJAAkAgAS0AGEEBaw4EAAECAwkLIAIgARCwAgwHCyACIAEQrAIMBgsgAiABEKkCDAULIAIgARCnAgwECwJAAkACQAJAIAEtABhBAWsOBAABAgMICyACIAEQpAIMBgsgAiABEKMCDAULIAIgARCbAgwECyACIAEQmgIMAwsCQAJAAkACQCABLQAYQQFrDgQAAQIDBwsgAiABEKQCDAULIAIgARCjAgwECyACIAEQmwIMAwsgAiABEJoCDAILAkACQAJAAkAgAS0AGEEBaw4EAAECAwYLIAIgARCZAgwECyACIAEQvAEMAwsgAiABELsBDAILIAIgARC6AQwBCwJAAkACQAJAIAEtABhBAWsOBAABAgMFCyACIAEQmQIMAwsgAiAB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A0lyIAZBAXRyIgECfyAZIBqVjSIZQwAAgE9dIBlDAAAAAGBxBEAgGakMAQtBAAsiCCABIAhLGxCJAiADKAIkIgYgBkEBayIBcUUEQCABIAJxIQgMAQsgAiAGSQRAIAIhCAwBCyACIAZwIQgLAkACQCADKAIgIAhBAnRqIgIoAgAiAUUEQCAHIAMoAig2AgAgAyAHNgIoIAIgGDYCACAHKAIAIgJFDQIgAigCBCEBAkAgBiAGQQFrIgJxRQRAIAEgAnEhAQwBCyABIAZJDQAgASAGcCEBCyADKAIgIAFBAnRqIQEMAQsgByABKAIANgIACyABIAc2AgALIAMgAygCLEEBajYCLCADKAIIIREgAygCBCESIAMoAhAhEwsgEyAEQQJ0aiAVNgIAIBVBAWohFSARIBJHBEAgEiAENgIAIAMgEkEEaiISNgIEDAELIBEgAygCACICayIBQQJ1IgVBAWoiB0GAgICABE8NA0H/////AyABQQF2IgYgByAGIAdLGyABQfz///8HTxsiAQR/IAFBgICAgARPDQUgAUECdBAFBUEACyIHIAVBAnRqIgUgBDYCACAFQQRqIRIgAiARRwRAA0AgBUEEayIFIBFBBGsiESgCADYCACACIBFHDQALCyADIAcgAUECdGoiETYCCCADIBI2AgQgAyAFNgIAIAIEQCACEAQLCyAEQQFqIgQgACgCUCICSQ0ACyACIBVHBEAgACADQRBqIAMgACgCACgCGBEFACAAIBU2AlALIAMoAgAiAEUNACADIAA2AgQgABAECyADKAIQIgAEQCADIAA2AhQgABAECyADKAIoIgQEQANAIAQoAgAhACAEEAQgACIEDQALCyADKAIgIQAgA0EANgIgIAAEQCAAEAQLIANBQGskAA8LEAcACxAOAAsQBwALTwECfyAAIAEQigICQCABQQBIDQAgACgCWCICIAAoAlQiA2tBAnUgAUwNACADIAFBAnRqIgEgAUEEaiIBIAIgAWsQChogACACQQRrNgJYCwubBAEHfyAAIAEgAhCLAgJAIAAoAlggACgCVCIDa0ECdSICIAFKDQAgAiABQQFqIgFJBEACQCABIAJrIgMgACgCXCIEIAAoAlgiAmtBAnVNBEACQCADRQ0AIAIhASADQQdxIgQEQANAIAFBATYCACABQQRqIQEgBUEBaiIFIARHDQAL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IAAoAkAhASAAQQA2AkAgAQRAIAEgASgCACgCBBECAAsgACgCOCIBKAJkIQUgACgCMCEGIAEoAmAhByADQSAQBSIBNgIAIANCkoCAgICEgICAfzcCBCABQZ4MLwAAOwAQIAFBlgwpAAA3AAggAUGODCkAADcAACABQQA6ABIgBiADQX8QSCEBIAMsAAtBAEgEQCADKAIAEAQLIAUgB2tBDG0hBQJ/AkACQAJ/AkACQAJAAkAgAUEBag4EAAIFAQULIAJFDQAgACgCMBAvIQEgBUHoB0kNAiABQQRKDQIgBEEBcw0CCyAAKAIsIQEgA0ECOgAAIAEpAxBCAFcEQCABIAEoAgQgAyADQQFqEAkLQegCEAUiAUIANwIEIAFCADcDSCABQdjSADYCACABQgA3AgwgAUIANwIUIAFCADcCHCABQgA3AiQgAUIANwIsIAFCADcCNCABQgA3AjwgAUIANwNQIAFCADcDWCABQgA3A2AgAUIANwNoIAFCADcDcCABQgA3A3ggAUIANwOAASABQYCAgPwDNgKIASABQgA3ApwBIAFCADcClAEgAUIANwKMASABQgA3A6gBIAFBfzYCpAEgAUIANwOwASABQgA3A7gBIAFBADYCwAEgAUHIAWoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIAFB6AFqIgJCADcDACACQQA6ABggAkIANwMQIAJCADcDCCABQgA3A7ACIAFCADcDqAIgAUIANwOgAiABQgA3A5gCIAFCADcDkAIgAUIANwOIAiABQQA6AOACIAFBADYC2AIgAUIANwPQAiABQoKAgIDwADcDyAIgAUL/////DzcDwAIgAUKAgICAcDcDuAIgAQwCCyACRQ0CCyAAKAIsIQEgA0EAOgAAIAEpAxBCAFcEQCABIAEoAgQgAyADQQFqEAkLQagCEAUiAUIANwIEIAFCADcDSCABQaTSADYCACABQgA3AgwgAUIANwIUIAFCADcCHCABQgA3AiQgAUIANwIsIAFCADcCNCABQgA3AjwgAUIANwNQIAFCADcDWCABQgA3A2AgAUIANwNoIAFCADcDcCABQgA3A3ggAUIANwOAASABQYCAgPwDNgKIASABQgA3ApwBIAFCADcClAEgAUIANwKMASABQgA3A6gBIAFBfzYCpAEgAUIANwOwASABQgA3A7gBIAFBADYCwAEgAUHIAWoiAkIANwIAIAJCADcCGCACQgA3AhAgAkIANwIIIAFB6AFqIgJCADcDACACQQA6ABggAkIANwMQIAJCADcDCCABQQA6AKACIAFCADcDmAIgAUIANwOQAiABQgA3A4gCIAELIQEgACgCQCECIAAgATYCQCACRQ0BIAIgAigCACgCBBECAAsgACgCQCIBDQBBAAwBCyABIAAgASgCACgCCBEBAAshACADQRBqJAAgAAsHACABLQAYCyUBAX8gAEHwDzYCACAAKAIIIgEEQCAAIAE2AgwgARAECyAAEAQLIwEBfyAAQfAPNgIAIAAoAggiAQRAIAAgATYCDCABEAQLIAALggICA38CfgJAIAAoAgwiBCAAKAIIIgNrQQJ1IgUgAS0AGCIBSQRAIABBCGogASAFaxAWIAAoAgghAyAAKAIMIQQMAQsgASAFTw0AIAAgAyABQQJ0aiIENgIMC0EAIQECQCACKQMIIAIpAxAiBiAEIANrIgStIgd8Uw0AIAMgAigCACAGp2ogBBALGiACIAIpAxAgB3wiBjcDECACKQMIIAZCBHxTDQAgACACKAIAIAanaigAADYCFCACIAIpAxAiB0IEfCIGNwMQIAIpAwggBlcNACACKAIAIAanai0AACEDIAIgB0IFfDcDECADQQFrQR1LDQAgACADNgIEQQEhAQsgAQsxACAAQdzQADYCACAAQRxqIAAoAiAQFCAAQRBqIAAoAhQQdSAAQQRqIAAoAggQFCAACzEAIABBkNAANgIAIABBHGogACgCIBAUIABBEGogACgCFBA6IABBBGogACgCCBAUIAALigEBAX8gAEHwDzYCKCAAQYTOADYCACAAKAIwIgEEQCAAIAE2AjQgARAECyAAQcAUNgIAIAAoAiQhASAAQQA2AiQgAQRAIAEgASgCACgCBBECAAsgAEHYEjYCACAAKAIgIQEgAEEANgIgIAEEQCABEBsLIAAoAhAiAQRAIAAgATYCFCABEAQLIAAQBAuIAQEBfyAAQfAPNgIoIABBhM4ANgIAIAAoAjAiAQRAIAAgATYCNCABEAQLIABBwBQ2AgAgACgCJCEBIABBADYCJCABBEAgASABKAIAKAIEEQIACyAAQdgSNgIAIAAoAiAhASAAQQA2AiAgAQRAIAEQGwsgACgCECIBBEAgACABNgIUIAEQBAsgAAt0AQJ/IwBBEGsiAyQAIABBKGoiBCAAKAIIIAEoAgQgASgCAGtBAnUQiQEhAgJAIAQgACgCCCABIAIQ2AEiBARAIAAoAiAhASAAIAI2AiAgAUUNASABEBsMAQsgA0EANgIIIAJFDQAgAhAbCyADQRBqJAAgBAsMACAAQShqIAEQ6QIL3AUCBX8BfSMAQSBrIgMkACADIAI2AhwCQCAAIAEgAhDbAUUNACABKAIEKAIIIAJBAnRqKAIAIgYoAhxBCUcNACABKAIwIQUgA0EgEAUiAjYCECADQpGAgICAhICAgH83AhQgAkHtCS0AADoAECACQeUJKQAANwAIIAJB3QkpAAA3AAAgAkEAOgARIAUgA0EcaiADQRBqQX8QNiEFIAMsABtBAEgEQCADKAIQEAQLIAVBAEwNACABKAIwIQcgA0EgEAUiAjYCECADQpOAgICAhICAgH83AhQgAkGVCygAADYADyACQY4LKQAANwAIIAJBhgspAAA3AAAgAkEAOgATAkAgByADQRxqIANBEGoQe0UNACABKAIwIQQgA0EgEAUiAjYCACADQpKAgICAhICAgH83AgQgAkGLDC8AADsAECACQYMMKQAANwAIIAJB+wspAAA3AAAgAkEAOgASIAQgA0EcaiADEHshBCADLAALQQBODQAgAygCABAECyADLAAbQQBIBEAgAygCEBAECwJAIAQEQEEAIQIgBi0AGCIEBEAgBEECdCIEEAUiAkEAIAQQBhoLIAEoAjAhByADQSAQBSIENgIQIANCk4CAgICEgICAfzcCFCAEQZULKAAANgAPIARBjgspAAA3AAggBEGGCykAADcAACAEQQA6ABMgByADQRxqIANBEGogBi0AGCACEO0BIAMsABtBAEgEQCADKAIQEAQLIAEoAjAhBCADQSAQBSIBNgIQIANCkoCAgICEgICAfzcCFCABQYsMLwAAOwAQIAFBgwwpAAA3AAggAUH7CykAADcAACABQQA6ABIgBCADQRxqIANBEGoQ7AEhCCADLAAbQQBIBEAgAygCEBAECyAAQShqIAUgAiAGLQAYIAgQ8wIhACACBEAgAhAEC0EAIQQgAA0BDAILQQAhBCAAQShqIAYgBRDvAkUNAQtBASEECyADQSBqJAAgBAv3AQIEfwF+IwBBIGsiBSQAIAMgBGsiA0EASgRAIABB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ASABQQA2ApABIAFBADYCoAEgAUIANwOYASABDAQLQegAEAUiASAFNgIEIAFBgBs2AgAgASADKQIANwIIIAEgAykCCDcCECABIAMpAhA3AhggAUEANgIoIAFCADcCICADKAIcIgUgAygCGCIARwRAIAUgAGsiBkEASA0DIAEgBhAFIgI2AiAgASACIAZBfHFqNgIoA0AgAiAAKAIANgIAIAJBBGohAiAAQQRqIgAgBUcNAAsgASACNgIkCyABIAQpAgA3AiwgASAEKQIINwI0IAFBADYCVCABQgA3AkwgAUIANwI8IAFBsB02AgAgASAEKQIANwJYIAEgBCkCCDcCYCABDAMLAn9BkAEQBSIAIAU2AgQgAEGAGzYCACAAIAMpAgA3AgggACADKQIINwIQIAAgAykCEDcCGCAAQQA2AiggAEIANwIgAkAgAygCHCIBIAMoAhgiAkcEQCABIAJrIgJBAEgNASAAIAIQBSIBNgIkIAAgATYCICAAIAEgAkF8cWo2AiggAygCGCICIAMoAhwiBUcEQANAIAEgAigCADYCACABQQRqIQEgAkEEaiICIAVHDQALCyAAIAE2AiQLIABByBo2AgAgACAEKQIANwIsIAAgBCkCCDcCNCAAQUBrQgA3AgAgAEGQJDYCPCAAQZwfNgIAIAAgBCkCADcCSCAAIAQpAgg3AlAgAEKAgID8czcCaCAAQn83AmAgAEKBgICAcDcCWCAAQYghNgI8IABCADcCcCAAQgA3AogBIABCADcCgAEgAEIANwJ4IAAMAQsQBwALIQALIAAMAQsMAwshAgwBCyAEKAI4IQAgByAJNgIUIAcgADYCECAHIAY2AhwgByAGQQxqNgIYAn8gB0EQaiEEQQAhAAJAAkACQAJAAkACQCABQQFrDgYABAQBAgMEC0E8EAUiASAFNgIEIAFBgBs2AgAgASADKQIANwIIIAEgAykCCDcCECABIAMpAhA3AhggAUEANgIoIAFCADcCICADKAIcIgUgAygCGCIARwRAIAUgAGsiBkEASA0IIAEgBhAFIgI2AiAgASACIAZBfHFqNgIoA0AgAiAAKAIANgIAIAJBBGohAiAAQQRqIgAgBUcNAAsgASACNgIkCyABIAQpAgA3AiwgASAEKQIINwI0IAFBrCQ2AgAgAQwFC0GoARAFIgEgBTYCBCABQYAbNgIAIAEgAykCADcCCCABIAMpAgg3AhAgASADKQIQNwIYIAFBADYCKCABQgA3AyAgAygCHCIFIAMoAhgiAEcEQCAFIABrIgZBAEgNByABIAYQBSICNgIgIAEgAiAGQXxxajYCKANAIAIgACgCADYCACACQQRqIQIgAEEEaiIAIAVHDQALIAEgAjYCJAsgASAEKQIANwIsIAEgBCkCCDcCNCABQgA3AjwgAUHUJzYCACABQgA3AkQgAUIANwJMIAFCADcCVCABQgA3AlwgAUIANwJkIAFBADYCbCABQgA3A4ABIAFBADYCeCABQgA3A3AgAUIANwOIASABQQA2ApABIAFBADYCoAEgAUIANwOYASABDAQLQegAEAUiASAFNgIEIAFBgBs2AgAgASADKQIANwIIIAEgAykCCDcCECABIAMpAhA3AhggAUEANgIoIAFCADcCICADKAIcIgUgAygCGCIARwRAIAUgAGsiBkEASA0DIAEgBhAFIgI2AiAgASACIAZBfHFqNgIoA0AgAiAAKAIANgIAIAJBBGohAiAAQQRqIgAgBUcNAAsgASACNgIkCyABIAQpAgA3AiwgASAEKQIINwI0IAFBADYCVCABQgA3AkwgAUIANwI8IAFBwCk2AgAgASAEKQIANwJYIAEgBCkCCDcCYCABDAMLAn9BkAEQBSIAIAU2AgQgAEGAGzYCACAAIAMpAgA3AgggACADKQIINwIQIAAgAykCEDcCGCAAQQA2AiggAEIANwIgAkAgAygCHCIBIAMoAhgiAkcEQCABIAJrIgJBAEgNASAAIAIQBSIBNgIkIAAgATYCICAAIAEgAkF8cWo2AiggAygCGCICIAMoAhwiBUcEQANAIAEgAigCADYCACABQQRqIQEgAkEEaiICIAVHDQALCyAAIAE2AiQLIABBnCc2AgAgACAEKQIANwIsIAAgBCkCCDcCNCAAQUBrQgA3AgAgAEHoLzYCPCAAQaArNgIAIAAgBCkCADcCSCAAIAQpAgg3AlAgAEKAgID8czcCaCAAQn83AmAgAEKBgICAcDcCWCAAQfwsNgI8IABCADcCcCAAQgA3AogBIABCADcCgAEgAEIANwJ4IAAMAQsQBwALIQALIAAMAQsMAgshAgsgB0EgaiQAIAIMAQsQBwALIgINAQtBLBAFIgIgCjYCBCACQYAbNgIAIAIgAykC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IQICQCADQQBMBEBBACEDDAELIANBBXYhBiADQSBPBEAgAiAFIAZBAnQQChoLIAIgBkECdCIGaiECIANBH3EiAwRAIAIgAigCAEF/QSAgA2t2IghBf3NxIAUgBmooAgAgCHFyNgIACyAAKAIwIQULIAAgASgCADYCMCABIAU2AgAgACgCNCEGIAAgASgCBDYCNCABIAY2AgQgACgCOCEGIAAgASgCCDYCOCABIAY2AgggBUUNACAFEAQLIARFDQEgAwRAIAIgAigCAEF/IAN0QX9BICADayIDIAMgBCADIARJGyIDa3ZxQX9zcTYCACAEIANrIQQgAkEEaiECCyAEQQV2IQMgBEEgTwRAIAJBACADQQJ0EAYaCyAEIARBYHFGDQEgAiADQQJ0aiICIAIoAgBBf0EgIARBH3FrdkF/c3E2AgAMAQsgACACNgI0CyABQRBqJAAMAQsQBwALC0EBIQIgACgCMCAHQQN2Qfz///8BcWoiASABKAIAQQEgB3RyNgIAIAAoAiggACgCJCIAa0ECdSAHTQ0AIAAgB0ECdGooAgBBAToAHAsgAgtQAQJ/QX8hAwJAIAAoAhQgACgCECIEa0ECdSABTA0AIAQgAUECdGooAgAiAUEASA0AIAAoAiQgAUECdGooAgAoAhAgAkECdGooAgAhAwsgAwtQAQF/An9BACAAKAIUIAAoAhAiAmtBAnUgAUwNABpBACACIAFBAnRqKAIAIgFBAEgNABogACgCJCABQQJ0aigCACIAKAIUIAAoAhBrQQJ1CwsJACAAEIsDEAQLkQMBAn8jAEEQayICJAAgAiAAKAIEIAFBAnRqKAIAIgE2AgwCQCAAKAIcIgAoAgQoAgggAUECdGooAgAiASgCHCIDQQFrQQZPBEACQCADQQlHDQAgACgCMCEDIAJBIBAFIgA2AgAgAkKRgICAgISAgIB/NwIEIABB7QktAAA6ABAgAEHlCSkAADcACCAAQd0JKQAANwAAIABBADoAESADIAJBDGogAkF/EDYhACACLAALQQBIBEAgAigCABAECyAAQQBMDQAgASgCOEEBRgRAQTAQBSIAQgA3AwAgAEIANwMoIABCADcDICAAQgA3AxggAEIANwMQIABCADcDCCAAENwBIgBBiAg2AiggAEGkMTYCACAAQX82AiwMAwtBwAAQBRDcASIAQfAPNgIoIABBhM4ANgIAIABCADcCMCAAQX82AiwgAEIANwI4DAILQSQQBSIAQQA2AiAgAEF/NgIMIABCADcCBCAAQgA3AhAgAEHYEjYCACAAQgA3ABUMAQtBKBAFENwBIQALIAJBEGokACAAC6wFAQh/AkAgACgCCCAAKAIEa0ECdSIBIAAoAigiAiAAKAIkIgRrQQJ1IgNLBEAgASADayIBIAAoAiwiBSAAKAIoIgJrQQJ1TQRAIAAgAQR/IAJBACABQQJ0IgIQBiACagUgAgs2AigMAgsCQAJAAkAgAiAAKAIkIgNrQQJ1IgYgAWoiBEGAgICABEkEQEH/////AyAFIANrIgVBAXYiByAEIAQgB0kbIAVB/P///wdPGyIEBEAgBEGAgICABE8NAiAEQQJ0EAUhCAsgCCAGQQJ0aiIFQQAgAUECdCIBEAYiByABaiEGIAggBEECdGohASACIANGDQIDQCACQQRrIgIoAgAhBCACQQA2AgAgBUEEayIFIAQ2AgAgAiADRw0ACyAAIAE2AiwgACgCKCEBIAAgBjYCKCAAKAIkIQIgACAFNgIkIAEgAkYNAwNAIAFBBGsiASgCACEDIAFBADYCACADBEAgAyADKAIAKAIEEQIACyABIAJHDQALDAMLEAcACxAOAAsgACABNgIsIAAgBjYCKCAAIAc2AiQLIAIEQCACEAQLDAELIAEgA08NACAEIAFBAnRqIgMgAkcEQANAIAJBBGsiAigCACEBIAJBADYCACABBEAgASABKAIAKAIEEQIACyACIANHDQALCyAAIAM2AigLIAAoAgggACgCBEYEQEEBDwtBACECA0AgACACIAAoAgAoAjgRAQAhAyACQQJ0IgQgACgCJGoiBSgCACEBIAUgAzYCACABBEAgASABKAIAKAIEEQIACyAAKAIkIARqKAIAIgFBAEchAyABBEACQCACIAAoAjRPDQAgACgCMCACQQN2Qfz///8BcWooAgAgAnZBAXFFDQAgAUEBOgAcCyACQQFqIgIgACgCCCAAKAIEa0ECdUkNAQsLIAMLVQEDfyAAKAIkIgIgACgCKEYEQEEBDwsDQCACIANBAnRqKAIAIgIgASACKAIAKAIYEQEAIgQEQCADQQFqIgMgACgCKCAAKAIkIgJrQQJ1SQ0BCwsgBAteAQR/IAAoAiQiAiAAKAIoRgRAQQEPCyAAQTxqIQQDQCACIANBAnRqKAIAIgIgBCABIAIoAgAoAhQRBAAiBQRAIANBAWoiAyAAKAIoIAAoAiQiAmtBAnVJDQELCyAFC1wBBH8gACgCJCIBIAAoAihGBEBBAQ8LIABBPGohAwNAIAEgAkECdGooAgAiASADIAEoAgAoAhARAQAiBARAIAJBAWoiAiAAKAIoIAAoAiQiAWtBAnVJDQELCyAEC2ABAn8CQCAAKAJIIgJFDQAgAiAAQTxqNgIEIAIgAigCACgCDBEAAEUNACAAIAAoAgAoAigRAABFDQAgACABIAAoAgAoAiwRAQBFDQAgACABIAAoAgAoAjARAQAhAwsgAwuQAQEFfyMAQRBrIgIkAAJAIAAgARD2ASIFRQ0AIAAoAiQiAyAAKAIoRg0AIAJBEGohBgNAIAIgAyAEQQJ0aigCACIDIAMoAgAoAiARAAA6AA8gASkDEEIAVwRAIAEgASgCBCACQQ9qIAYQCQsgBEEBaiIEIAAoAiggACgCJCIDa0ECdUkNAAsLIAJBEGokACAFC4cBAQN/IAAgAjYCICAAIAE2AhwCQCAAIAAoAgAoAjQRAABFDQAgACgCBCIEIAAoAghGBEBBAQ8LQQAhAgNAIAJBAnQiAyAAKAIkaigCACIFIAEgAyAEaigCACAFKAIAKAIIEQQAIgNFDQEgAkEBaiICIAAoAgggACgCBCIEa0ECdUkNAAsLIAMLPAEBfyAAQdgSNgIAIAAoAiAhASAAQQA2AiAgAQRAIAEQGwsgACgCECIBBEAgACABNgIUIAEQBAsgABAECzoBAX8gAEHYEjYCACAAKAIgIQEgAEEANgIgIAEEQCABEBsLIAAoAhAiAQRAIAAgATYCFCABEAQLIAALywEBBn9BASEEAkAgASABKAIAKAIUEQAAQQBMDQADQEEAIQQgACgCBCgCBCABIAUgASgCACgCGBEBABBUIgNBf0YNASAAKAIEIQJBACEGAkAgA0EASA0AIAIoAgQiBygCDCAHKAIIa0ECdSADTA0AIAIoAgggAigCFCADQQJ0aigCAEECdGooAgAiAiADIAIoAgAoAiQRAQAhBgsgASAGIAEoAgAoAhwRAQBFDQFBASEEIAEgASgCACgCFBEAACAFQQFqIgVKDQALCyAEC/wCAQh/QQEhCAJAAkACQCABIAEoAgAoAhQRAABBAEwNAANAIAAoAgQoAgQgASAJIAEoAgAoAhgRAQAQVCIDQX9HIQggA0F/Rg0BAkAgACgCFCICIAAoAhhHBEAgAiADNgIAIAAgAkEEajYCFAwBCyACIAAoAhAiBmsiB0ECdSIEQQFqIgVBgICAgARPDQNB/////wMgB0EBdiICIAUgAiAFSxsgB0H8////B08bIgUEfyAFQYCAgIAETw0FIAVBAnQQBQVBAAsiAiAEQQJ0aiIEIAM2AgAgACACIAYgBxAKIgIgBUECdGo2AhggACAEQQRqNgIUIAAgAjYCECAGRQ0AIAYQBAsgACgCBCEEAkAgA0EASA0AIAQoAgQiAigCDCACKAIIa0ECdSADTA0AIAQoAgggBCgCFCADQQJ0aigCAEECdGooAgAiAiADIAIoAgAoAiARAQAaCyABIAEoAgAoAhQRAAAgCUEBaiIJSg0ACwsgCA8LEAcACxAOAAsuAQF/AkAgASgCWCIBRQ0AIAEoAgBBAkcNACAAIAEoAggoAAA2AgRBASECCyACCwvfiwETAEGECAveSGAEAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAABONWRyYWNvMjhBdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtRQAA+EgAADgEAAB4CAAAY29tcHJlc3NfY29ubmVjdGl2aXR5AGluZmluaXR5AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAX19uZXh0X3ByaW1lIG92ZXJmbG93AHN0b3JlX251bWJlcl9vZl9lbmNvZGVkX3BvaW50cwBxdWFudGl6YXRpb25fYml0cwBzcGxpdF9tZXNoX29uX3NlYW1zAHN0b3JlX251bWJlcl9vZl9lbmNvZGVkX2ZhY2VzAHZlY3RvcgBwcmVkaWN0aXZlX2VkZ2VicmVha2VyAHN0YW5kYXJkX2VkZ2VicmVha2VyAHN0ZDo6ZXhjZXB0aW9uAHVzZV9idWlsdF9pbl9hdHRyaWJ1dGVfY29tcHJlc3Npb24AcXVhbnRpemF0aW9uX29yaWdpbgBuYW4Ac3ltYm9sX2VuY29kaW5nX2NvbXByZXNzaW9uX2xldmVsAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGJhc2ljX3N0cmluZwBpbmYAJWYAcHJlZGljdGlvbl9zY2hlbWUAcXVhbnRpemF0aW9uX3JhbmdlAGVkZ2VicmVha2VyX21ldGhvZABzeW1ib2xfZW5jb2RpbmdfbWV0aG9kAGVuY29kaW5nX3NwZWVkAGRlY29kaW5nX3NwZWVkAHN0ZDo6YmFkX2FsbG9jAERSQUNPAE5BTgBJTkYASW52YWxpZCBpbnB1dCBnZW9tZXRyeS4ARmFpbGVkIHRvIGVuY29kZSBtZXNoIGNvbXBvbmVudC4ARmFpbGVkIHRvIGVuY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBGYWlsZWQgdG8gcHJvY2VzcyBtZXNoIGhvbGVzLgBGYWlsZWQgdG8gaW5pdGlhbGl6ZSBlbmNvZGVyLgBBbGwgdHJpYW5nbGVzIGFyZSBkZWdlbmVyYXRlLgBJbnZhbGlkIGVuY29kaW5nIG1ldGhvZC4ARmFpbGVkIHRvIGVuY29kZSBtZXRhZGF0YS4ARmFpbGVkIHRvIGVuY29kZSBzcGxpdCBkYXRhLgBGYWlsZWQgdG8gZW5jb2RlIGludGVybmFsIGRhdGEuAEZhaWxlZCB0byBpbml0aWFsaXplIGF0dHJpYnV0ZSBkYXRhLgAobnVsbCkAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAIAAAAAAAAABMCAAADwAAABAAAAARAAAAEgAAABMAAAAUAAAAFQAAABYAAAAXAAAACwAAABgAAAAZAAAATjVkcmFjbzMwQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtRQAAAAD4SAAAIAgAAHgIAABONWRyYWNvMThBdHRyaWJ1dGVUcmFuc2Zvcm1FAAAAANBIAABYCAAA/////wAAAADcCAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAeAAAAJQAAAE41ZHJhY28xN0F0dHJpYnV0ZXNFbmNvZGVyRQDQSAAAwAgAAAAAAABECQAAJgAAACcAAAAcAAAAHQAAACgAAAAfAAAAIAAAACEAAAAiAAAAIwAAACkAAAAqAAAAKwAAAE41ZHJhY28yM0tkVHJlZUF0dHJpYnV0ZXNFbmNvZGVyRQAAAPhIAAAgCQAA3AgAAAAAAACwCQAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAATjVkcmFjbzI2U2VxdWVudGlhbEF0dHJpYnV0ZUVuY29kZXJFAAAAANBIAACICQAAAAAAACwKAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABONWRyYWNvMzdTZXF1ZW50aWFsQXR0cmlidXRlRW5jb2RlcnNDb250cm9sbGVyRQD4SAAA/AkAANwIAAAAAAAApAoAAEcAAABIAAAASQAAAC8AAABKAAAAMQAAADIAAAAzAAAASwAAADUAAAA2AAAATAAAAE0AAABOAAAATjVkcmFjbzMzU2VxdWVudGlhbEludGVnZXJBdHRyaWJ1dGVFbmNvZGVyRQD4SAAAeAoAALAJAAD/////AAAAADQNAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABONWRyYWNvNDBNZXNoUHJlZGljdGlvblNjaGVtZVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFRUUATjVkcmFjbzM3UHJlZGljdGlvblNjaGVtZVR5cGVkRW5jb2RlckludGVyZmFjZUlpaUVFAE41ZHJhY28zMlByZWRpY3Rpb25TY2hlbWVFbmNvZGVySW50ZXJmYWNlRQBONWRyYWNvMjVQcmVkaWN0aW9uU2NoZW1lSW50ZXJmYWNlRQDQSAAA2AwAAPhIAACtDAAA/AwAAPhIAAB5DAAABA0AAPhIAAAlDAAAEA0AAPhIAACPCwAAHA0AAPhIAADsCgAAKA0AAAAAAAAoDQAATwAAAFsAAAAeAAAAUgAAAB4AAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAAAeAAAAAAAAABwNAABPAAAAXAAAAB4AAABSAAAAHgAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAB4AAAAAAAAAnA4AAF0AAABeAAAAXwAAAFIAAABgAAAAVAAAAFUAAABWAAAAVwAAAFgAAABhAAAAYgAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAPhIAADoDQAAKA0AAAAAAACIDwAAYwAAAGQAAABlAAAAUgAAAGYAAABnAAAAaAAAAGkAAABXAAAAWAAAAGoAAABrAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAOAOAAAoDQAAAAAAAHQQAABsAAAAbQAAAG4AAABSAAAAbwAAAHAAAABxAAAAcgAAAFcAAABYAAAAcwAAAHQAAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAAAD4SAAAzA8AACgNAAAAAAAA/BEAAHUAAAB2AAAAdwAAAHgAAAB5AAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAADQSAAARxEAAPhIAACcEAAA9BEAAAAAAAD0EQAAdQAAAHoAAAAeAAAAeAAAAB4AAAAAAAAAiBMAAE8AAAB7AAAAfAAAAFIAAAB9AAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAfgAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAPhIAADyEgAAHA0AAPhIAABcEgAAfBMAAAAAAAB8EwAATwAAAH8AAAAeAAAAUgAAAB4AAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAAAeAAAAAAAAAKwUAACAAAAAgQAAAIIAAABSAAAAgwAAAFQAAABVAAAAVgAAAFcAAABYAAAAhAAAAIUAAABONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAAD4SAAABBQAAHwTAAAAAAAAjBUAAIYAAACHAAAAiAAAAFIAAACJAAAAigAAAIsAAACMAAAAVwAAAFgAAACNAAAAjgAAAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAADwFAAAfBMAAAAAAABoFgAAjwAAAJAAAACRAAAAUgAAAJIAAACTAAAAlAAAAJUAAABXAAAAWAAAAJYAAACXAAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxFbmNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQD4SAAA0BUAAHwTAAAAAAAA1BcAAJgAAACZAAAAmgAAAJsAAACcAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRW5jb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBFbmNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFANBIAAAuFwAA+EgAAJAWAADMFwAAAAAAAMwXAACYAAAAnQAAAB4AAACbAAAAHgAAAAAAAACQGAAATwAAAJ4AAACfAAAAUgAAAKAAAABUAAAAVQAAAFYAAABXAAAAWAAAAFkAAAChAAAATjVkcmFjbzI4UHJlZGljdGlvblNjaGVtZURlbHRhRW5jb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcEVuY29kaW5nVHJhbnNmb3JtSWlpRUVFRQAAAAD4SAAANBgAABwNAAAAAAAACBkAAKIAAACjAAAApAAAAC8AAABKAAAAMQAAAKUAAACmAAAApwAAADUAAAA2AAAATAAAAKgAAACpAAAATjVkcmFjbzMyU2VxdWVudGlhbE5vcm1hbEF0dHJpYnV0ZUVuY29kZXJFAAD4SAAA3BgAAKQKAAAAAAAAPBsAAKoAAACrAAAArAAAAK0AAACuAAAArwAAALAAAACxAAAAsgAAALMAAAC0AAAAtQAAAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVFRQAAAAD4SAAAtRoAABANAAD4SAAABxoAACQbAAD4SAAATBkAADAbAAAAAAAATBwAALYAAAC3AAAAuAAAAK0AAAC5AAAArwAAALAAAACxAAAAsgAAALMAAAC6AAAAuwAAAE41ZHJhY281Nk1lc2hQcmVkaWN0aW9uU2NoZW1lQ29uc3RyYWluZWRNdWx0aVBhcmFsbGVsb2dyYW1FbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAPhIAACAGwAAMBsAAAAAAABQHQAAvAAAAL0AAAC+AAAArQAAAL8AAADAAAAAwQAAAMIAAACyAAAAswAAAMMAAADEAAAATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZUVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAA+EgAAJAcAAAwGwAAAAAAAFQeAADFAAAAxgAAAMcAAACtAAAAyAAAAMkAAADKAAAAywAAALIAAACzAAAAzAAAAM0AAABONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbEVuY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQAAAAD4SAAAlB0AADAbAAAAAAAADCAAAM4AAADPAAAA0AAAANEAAADSAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUAAADQSAAAPx8AAPhIAAB8HgAABCAAAAAAAACsIQAAqgAAANMAAADUAAAArQAAANUAAACvAAAAsAAAALEAAACyAAAAswAAALQAAADWAAAATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAA+EgAAP4gAAAkGwAA+EgAAFAgAACgIQAAAAAAALAiAADXAAAA2AAAANkAAACtAAAA2gAAAK8AAACwAAAAsQAAALIAAACzAAAA2wAAANwAAABONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRW5jb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWRFbmNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUAAAD4SAAA8CEAAKAhAAAAAAAAqCMAAN0AAADeAAAA3wAAAK0AAADgAAAA4QAAAOIAAADjAAAAsgAAALMAAADkAAAA5QAAAE41ZHJhY280NE1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzUG9ydGFibGVFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQAAAPhIAAD0IgAAoCEAAAAAAACcJAAA5gAAAOcAAADoAAAArQAAAOkAAADqAAAA6wAAAOwAAACyAAAAswAAAO0AAADuAAAATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQD4SAAA7CMAAKAhAAAAAAAAOCYAAO8AAADwAAAA8QAAAPIAAADzAAAATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRW5jb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFANBIAAB6JQAA+EgAAMQkAAAwJgAAAAAAAPAmAACqAAAA9AAAAPUAAACtAAAA9gAAAK8AAACwAAAAsQAAALIAAACzAAAAtAAAAPcAAABONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFFbmNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZEVuY29kaW5nVHJhbnNmb3JtSWlFRUVFAAAAAPhIAAB8JgAAJBsAAAAAAABwJwAA+AAAAPkAAAD6AAAALwAAAEoAAAAxAAAA+wAAAPwAAAD9AAAANQAAADYAAABMAAAATQAAAP4AAABONWRyYWNvMzhTZXF1ZW50aWFsUXVhbnRpemF0aW9uQXR0cmlidXRlRW5jb2RlckUAAAAA+EgAADwnAACkCgAAAAAAAPwnAAD/AAAAAAEAAAEBAAACAQAATjVkcmFjbzdFbmNvZGVyRQBONWRyYWNvMTFFbmNvZGVyQmFzZUlOU18xOEVuY29kZXJPcHRpb25zQmFzZUlOU18xN0dlb21ldHJ5QXR0cmlidXRlNFR5cGVFRUVFRQAA0EgAAKUnAAD4SAAAlCcAAPQnAAAAAAAATCgAAAMBAAAEAQAATjVkcmFjbzExRW5jb2RlckJhc2VJTlNfMThFbmNvZGVyT3B0aW9uc0Jhc2VJaUVFRUUAANBIAAAYKAAAAAAAAPQnAAD/AAAABQEAQezQAAuWBpAoAAADAQAABgEAAE41ZHJhY28xM0V4cGVydEVuY29kZXJFAPhIAAB4KAAATCgAAAAAAAAQKQAABwEAAAgBAAAJAQAACgEAAAsBAAAMAQAADQEAAA4BAAAPAQAAEAEAABEBAAASAQAAEwEAABQBAAAVAQAAFgEAABcBAAAYAQAATjVkcmFjbzIyTWVzaEVkZ2VicmVha2VyRW5jb2RlckUAAAAA+EgAAOwoAADkLwAAAAAAAAgqAAAZAQAAGgEAABsBAAAcAQAAHQEAAB4BAAAfAQAAIAEAACEBAAAiAQAAIwEAAAAAAABoKgAAJAEAACUBAAAmAQAAJwEAACgBAAApAQAAKgEAACsBAAAsAQAALQEAAC4BAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJFbmNvZGVySW1wbElOU18zMU1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbEVuY29kZXJFRUUATjVkcmFjbzM1TWVzaEVkZ2VicmVha2VyRW5jb2RlckltcGxJbnRlcmZhY2VFAAAA0EgAANApAAD4SAAAhCkAAAAqAABONWRyYWNvMjZNZXNoRWRnZWJyZWFrZXJFbmNvZGVySW1wbElOU18zOE1lc2hFZGdlYnJlYWtlclRyYXZlcnNhbFZhbGVuY2VFbmNvZGVyRUVFAAD4SAAAFCoAAAAqAAAAAAAAZCsAAC8BAAAwAQAAMQEAAE41ZHJhY28xOURlcHRoRmlyc3RUcmF2ZXJzZXJJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzFfRUVFRQBONWRyYWNvMTNUcmF2ZXJzZXJCYXNlSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUA0EgAAPUqAAD4SAAAiCoAAFwrAAAAAAAAXCsAADIBAAAzAQAAMQEAQZDXAAvmBwEAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAEAAAAFAAAAAgAAAAUAAAADAAAABQAAAAQAAAAAAAAAlCwAADQBAAA1AQAANgEAADcBAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzI4TWF4UHJlZGljdGlvbkRlZ3JlZVRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMyX0VFRUVFRQBONWRyYWNvMTVQb2ludHNTZXF1ZW5jZXJFAAAAANBIAABvLAAA+EgAAOgrAACMLAAA/////wAAAACELQAAOAEAADkBAAA6AQAATjVkcmFjbzI4TWF4UHJlZGljdGlvbkRlZ3JlZVRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUATjVkcmFjbzEzVHJhdmVyc2VyQmFzZUlOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUAANBIAAAhLQAA+EgAALgsAAB8LQAAAAAAAHwtAAA7AQAAPAEAADoBAAAAAAAAPC4AAD0BAAA+AQAAPwEAAEABAABONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMyX0VFRUVFRQAAAPhIAAC8LQAAjCwAAAAAAAC8LgAAQQEAAEIBAAA6AQAATjVkcmFjbzE5RGVwdGhGaXJzdFRyYXZlcnNlcklOU18xMUNvcm5lclRhYmxlRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMxX0VFRUUA+EgAAFwuAAB8LQAAAAAAAGwvAABDAQAARAEAAEUBAABGAQAATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18xOURlcHRoRmlyc3RUcmF2ZXJzZXJJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFTlNfMzZNZXNoQXR0cmlidXRlSW5kaWNlc0VuY29kaW5nT2JzZXJ2ZXJJUzJfRUVFRUVFAAD4SAAA4C4AAIwsAEGA3wAL5gTkLwAARwEAAEgBAAAJAQAAHgAAAEkBAAAMAQAADQEAAA4BAAAPAQAAHgAAAEoBAAASAQAAHgAAAEsBAABMAQAATQEAAB4AAAAeAAAATjVkcmFjbzExTWVzaEVuY29kZXJFAAAA+EgAAMwvAAAEMQAAAAAAAGAwAABHAQAATgEAAAkBAABPAQAASQEAAAwBAAANAQAADgEAAA8BAABQAQAASgEAABIBAABRAQAASwEAAEwBAABNAQAAUgEAAFMBAABONWRyYWNvMjFNZXNoU2VxdWVudGlhbEVuY29kZXJFAPhIAABAMAAA5C8AAAAAAACgMAAAVAEAAFUBAABWAQAAVwEAAE41ZHJhY28xNUxpbmVhclNlcXVlbmNlckUAAAD4SAAAhDAAAIwsAAAAAAAABDEAAEcBAABYAQAAWQEAAB4AAABJAQAADAEAAFoBAAAOAQAADwEAAB4AAABKAQAAEgEAAB4AAABONWRyYWNvMTdQb2ludENsb3VkRW5jb2RlckUA0EgAAOgwAAAAAAAAbDEAAEcBAABbAQAAWQEAAFwBAABJAQAADAEAAF0BAAAOAQAADwEAAF4BAABKAQAAEgEAAF8BAABONWRyYWNvMjNQb2ludENsb3VkS2RUcmVlRW5jb2RlckUAAAD4SAAASDEAAAQxAAAAAAAA3DEAAEcBAABgAQAAWQEAAGEBAABJAQAADAEAAGIBAAAOAQAADwEAAGMBAABKAQAAEgEAAGQBAABONWRyYWNvMjdQb2ludENsb3VkU2VxdWVudGlhbEVuY29kZXJFAAAA+EgAALQxAAAEMQBBhOQAC90jAQAAAFZVVVUCAAAAAAAAAAIAAACamZmZAwAAAFZVVVUDAAAAJUmSJAMAAAAAAAAAAwAAAMhxHMcEAAAAmpmZmQQAAABGF110BAAAAFZVVVUEAAAAPLETOwQAAAAlSZIkBAAAABIREREEAAAAAAAAAAQAAADi4eHhBQAAAMhxHMcFAAAAy2sorwUAAACamZmZBQAAAIdhGIYFAAAARhdddAUAAACRhSxkBQAAAFZVVVUFAAAAexSuRwUAAAA8sRM7BQAAANtLaC8FAAAAJUmSJAUAAAASlnsaBQAAABIREREFAAAAhRBCCAUAAAAAAAAABQAAAAgffPAGAAAA4uHh4QYAAADVQR3UBgAAAMhxHMcGAAAATZHPugYAAADLayivBgAAAKVBGqQGAAAAmpmZmQYAAAD6GJyPBgAAAIdhGIYGAAAAGPQFfQYAAABGF110BgAAAG3BFmwGAAAAkYUsZAYAAAC6gphcBgAAAFZVVVUGAAAAcwpeTgYAAAB7FK5HBgAAAEJBQUEGAAAAPLETOwYAAACzzyE1BgAAANtLaC8GAAAAnxLkKQYAAAAlSZIkBgAAAN1HcB8GAAAAEpZ7GgYAAAD45bEVBgAAABIREREGAAAA/BSXDAYAAACFEEIIBgAAAAVBEAQGAAAAAAAAAAYAAAD5gR/4BwAAAAgffPAHAAAAwBoT6QcAAADi4eHhBwAAAGwH5toHAAAA1UEd1AcAAACRaIXNBwAAAMhxHMcHAAAAOXDgwAcAAABNkc+6BwAAAE8b6LQHAAAAy2sorwcAAAAH9o6pBwAAAKVBGqQHAAAAUunIngcAAACamZmZBwAAAM4Pi5QHAAAA+hicjwcAAAD3kMuKBwAAAIdhGIYHAAAAgoGBgQcAAAAY9AV9BwAAABjIpHgHAAAARhdddAcAAADBBS5wBwAAAG3BFmwHAAAAaYEWaAcAAACRhSxkBwAAAAYWWGAHAAAAuoKYXAcAAAAJI+1YBwAAAFZVVVUHAAAAr37QUQcAAABzCl5OBwAAAAZq/UoHAAAAexSuRwcAAABXhm9EBwAAAEJBQUEHAAAAz8siPgcAAAA8sRM7BwAAADmBEzgHAAAAs88hNQcAAACjND4yBwAAANtLaC8HAAAA2bSfLAcAAACfEuQpBwAAAIkLNScHAAAAJUmSJAcAAAATePshBwAAAN1HcB8HAAAA22rwHAcAAAASlnsaBwAAABmBERgHAAAA+OWxFQcAAAAUgVwTBwAAABIREREHAAAAv1bPDgcAAAD8FJcMBwAAAKcQaAoHAAAAhRBCCAcAAAAw3SQGBwAAAAVBEAQHAAAAEQgEAgcAAAAAAAAABwAAACDwB/wIAAAA+YEf+AgAAADlWUb0CAAAAAgffPAIAAAAMXvA7AgAAADAGhPpCAAAAJGsc+UIAAAA4uHh4QgAAABAbl3eCAAAAGwH5toIAAAATGV71wgAAADVQR3UCAAAAPdYy9AIAAAAkWiFzQgAAABWMEvKCAAAAMhxHMcIAAAAHfD4wwgAAAA5cODACAAAAJq40r0IAAAATZHPuggAAADew9a3CAAAAE8b6LQIAAAAB2QDsggAAADLayivCAAAAK0BV6wIAAAAB/aOqQgAAABuGtCmCAAAAKVBGqQIAAAAmD9toQgAAABS6cieCAAAAO8ULZwIAAAAmpmZmQgAAACBTw6XCAAAAM4Pi5QIAAAAnrQPkggAAAD6GJyPCAAAANQYMI0IAAAA95DLiggAAAALX26ICAAAAIdhGIYIAAAArHfJgwgAAACCgYGBCAAAANFfQH8IAAAAGPQFfQgAAACPINJ6CAAAABjIpHgIAAAARM59dggAAABGF110CAAAAPWHQnIIAAAAwQUucAgAAAC1dh9uCAAAAG3BFmwIAAAAFs0TaggAAABpgRZoCAAAAKbGHmYIAAAAkYUsZAgAAABxpz9iCAAAAAYWWGAIAAAAjrt1XggAAAC6gphcCAAAALFWwFoIAAAACSPtWAgAAADG0x5XCAAAAFZVVVUIAAAAkJSQUwgAAACvftBRCAAAAFEBFVAIAAAAcwpeTggAAABziKtMCAAAAAZq/UoIAAAAPJ5TSQgAAAB7FK5HCAAAAIC8DEYIAAAAV4ZvRAgAAABeYtZCCAAAAEJBQUEIAAAA/BOwPwgAAADPyyI+CAAAAEhamTwIAAAAPLETOwgAAADCwpE5CAAAADmBEzgIAAAAPt+YNggAAACzzyE1CAAAALZFrjMIAAAAozQ+MggAAAAUkNEwCAAAANtLaC8IAAAABVwCLggAAADZtJ8sCAAAANFKQCsIAAAAnxLkKQgAAAApAYsoCAAAAIkLNScIAAAACSfiJQgAAAAlSZIkCAAAAIpnRSMIAAAAE3j7IQgAAADHcLQgCAAAAN1HcB8IAAAAtPMuHggAAADbavAcCAAAAAWktBsIAAAAEpZ7GggAAAAJOEUZCAAAABmBERgIAAAAlWjgFggAAAD45bEVCAAAAOHwhRQIAAAAFIFcEwgAAAB2jjUSCAAAABIREREIAAAAEAHvDwgAAAC/Vs8OCAAAAIkKsg0IAAAA/BSXDAgAAADDbn4LCAAAAKcQaAoIAAAAkfNTCQgAAACFEEIICAAAAKVgMgcIAAAAMN0kBggAAAB+fxkFCAAAAAVBEAQIAAAAUhsJAwgAAAARCAQCCAAAAAIBAQEIAAAAAQAAAAEAAAACAAAAAgAAAAQAAAAEAAAACAAAAAgAAAAEAAAACAAAAAEAAAAAAAAA/////wAAAABYOgAAZQEAAGYBAABnAQAAaAEAAGkBAABqAQAAawEAAE41ZHJhY280TWVzaEUAAAD4SAAASDoAAKg6AAD/////AAAAAAAAAACoOgAAbAEAAG0BAABuAQAAbwEAAGkBAABqAQAAcAEAAE41ZHJhY28xMFBvaW50Q2xvdWRFAAAAANBIAACQOgAA/////wAAAAAAACBlRxX3PwCi7y78Bec9OYMrZUcV57++BDrcCcfeP/svcGRHFde/SEwDUGx30j+8kuoos8fOvy75F+ElYso//oIrZUcV57/3AzrcCcfePz98K2VHFde/5FvwUGx30j/lj3bdCcfOvzbnxB52Yco/m6dkvD8Vx79KG/BU0YTEPzw4LKfkicK/Zu5aKC+zwD/4rLFrKCT3PwCwze5fCeG/oczSZvfh9j8A0Ha9lITgv4rUMA49ofY/APjorkMB4L+FbNAy7GH2PwBACzbF/t6/+JgRlfoj9j8A4Lca2f3dv2wCz6Rb5/U/AJDHDK7/3L+4TyFaBaz1PwCg/RE4BNy/Hm4WD+1x9T8A4DoyZwvbvzX4C1kJOfU/ALAtWi8V2r/drWHtTwH1PwBg+Fp/Idm/0HtIjrjK9D8AkHGwTTDYv+5PM7Q5lfQ/AOCp+YlB179p1a/fy2D0PwCQGbUrVda/U7nkTmYt9D8AEJuiI2vVv6bYHREB+/M/AKBfD2WD1L82WAy3lcnzPwCg9jfpndO/Sv22ShyZ8z8AYI1TobrSv7WZ4AyOafM/AEDKQIPZ0b+y5xOC5DrzPwDgQDqF+tC/sb2FGRkN8z8AMOcynB3Qv9dxssol4PI/AGD6on2Fzr+CzRPPBLTyPwCAPWPI08y/UMt8LLCI8j8AoBRMAybLv+VNlGMiXvI/AOBPLxx8yb+xFYY9VjTyPwAAgD8C1se/OK8+40YL8j8A4AUapzPGv92jzf3u4vE/AABX6fWUxL8wOQtYSrvxPwCg4CTk+cK/ACJ/hFOU8T8AwP1aWWLBvzzX1cAGbvE/AIC9dZqcv7/C5LdHX0jxPwDA+VtXe7y/0YUArVgj8T8AgPQPxmC5vyciUw/w/vA/AAC2R+JMtr+POtB3INvwPwBAAbJ4P7O/2YBZ1ua38D8AwEIafTiwv41Ae/4+lfA/AAC1CJJvqr+DO8XKJXPwPwAAd0+VeqS/XBsN5JdR8D8AAAzFqCOdv6KOIMGRMPA/AAB4KSZqkb8hfrMlEBDwPwAA6Nj4IHe/a6fK+X7A7z8AAFCxU/6GP4Tx9tNlRO8/AIAP4cwcoT9/EISfB8zuPwCAi4z8Taw/6FqXmTpX7j8AQFceMqqzP+Y9vfDW5e0/AICL0KAYuT+zOP+BtnftPwBABNrpcr4/Q+lNcrUM7T8AYH9Q0tzBP2N1DtyypOw/AKDeA6t2xD9Ry9bojj/sPwAg4ndDB8c/TAwCTyvd6z8AQKmL3o7JP8oVYABsfes/AODSargNzD+PMy5uNiDrPwDgzq8KhM4/OVApJnDF6j8AgGe0CnnQP90xJ7wBbeo/AMABaAWs0T+L8T+80xbqPwDg/tQR29I/rf5nSdHC6T8AgMVORgbUPwKZfPTkcOk/APA6Cb4t1T/yvII5+yDpPwDQUCCQUdY/8Vn3hwHT6D8A8OrN0nHXP232uevlhug/AJB9hZyO2D+UuVi2lzzoPwBg4VUBqNk/IhDG/wX05z8A0NNuGL7aP8oVFBgirec/AOCgrvLQ2z+M/5753GfnPwBAvz2k4Nw/jgq5EgAg5j8FtkQGqwSJPKY0VwQAYOY/qfdi6pv/YTzF8iXD/5/mP7qQPMvPfoI8BFq5OADg5j8mk3NWiP+IPOOUmeD/H+c/sYJfJ0D9ijwQDlkVAGDnP0GDI7R1/XK81VtlEgCg5z92KyR85gh4PKbpWTIA4Oc/tyL2JuQIYrzSsrTt/x/oPy/JpR5GAoS8w/z6LQBg6D8fmvKi9PdtPFBrjPf/n+g//ZVJCVMEjrxmFWc5AODoP0V7x77zBIq8RRe/4v8f6T88IA5ANPp3vNGfXMz/X+k/XWmgBYD/drxnR7o7AKDpPwN+7MTE+HA8pS255//f6T8CRoxH2X+OPK/9Ltf/H+o/fq7NTVUMaryV/wTe/1/qP2uy6YypfYY8K41eyv+f6j/eE0y1yYSCvOoDrd3/3+o/PC5g6sgSWDxNPQ3x/x/rP5x4J63d+o68WhYhzv9f6z83EsYZF8tTPHTmUNn/n+s/AM6UQdn3czyvqJwTAODrP8CbXSHECnU8md9GWwAg7D/JwelTpu5rPK73uUAAYOw/1nBKJ58HfLyK/VViAKDsPx9M6HZAC3q8XQlM2f/f7D/XtZr5M/mIPM/Wdfn/H+0/vuFfZggsWLyTHFai/1/tP/OV0psoBHu8DIsinf+f7T82og80UQKHPBZ+vGUA4O0/DNikFh4BdbyRR/YCACDuP+Bi7wkvgIk82KbXVwBg7j/69wxYdQt+vAzA7ScAoO4/EZhFCYOEjLx8y/VsAODuP/R2FZUngI+8zH0reAAg7z+PU3Ry2YGPvApFDCYAYO8/3P8nJwBxQLwz1Yzo/5/vP7Co/eHcG1i8iYYP1f/f7z9ujpHLGvmHPGcjKQQAIPA/gUYyZfN/mzxo1uPj/1/wP3uVrt0I+oY8V6eFCgCg8D+R+9OA3uJXvMw/XxoA4PA/FPDFBTOCkbz1uq/4/x/xP8K6gGa7+ou8rZFN5f9f8T/v5zcXEn+dvOE2rBEAoPE///UWBQoAnDxIQsgZAODxP6Bd2uT7gpC8bl7+DwAg8j9D+5xM0P2IvJHYnyYAYPI/gtGUeSr+jDza5qYpAKDyP8WLXnFzAnC8OT4p4P/f8j/5prLaOXybPILw3Pf/H/M/VFLcbjPxfTxgi1rw/1/zP+sxzUxWA568zK4OLgCg8z93pNNL5/B1PDayOwQA4PM/M4idFMt9nDz/h9ECACD0Pyg9Lc+vCH48sXw4DQBg9D+mmWWFNwiCPImfVgQAoPQ/0rxPkFz6ibzzQzUEAOD0PylTF+0lEXi8D38CzP8f9T/cVHeE2IOYPG+zh/3/X/U/ByjQMecJh7y69x3y/5/1PwJ7cmif94c8gTT86//f9T8+6TAukICRvAAAAAAAAAAA0XSeAFedvSqAcFIP//8+JwoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFGAAAADUAAABxAAAAa////877//+Sv///AAAAAAAAAAAZAAoAGRkZAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABkAEQoZGRkDCgcAAQAJCxgAAAkGCwAACwAGGQAAABkZGQBB8YcBCyEOAAAAAAAAAAAZAAoNGRkZAA0AAAIACQ4AAAAJAA4AAA4AQauIAQsBDABBt4gBCxUTAAAAABMAAAAACQwAAAAAAAwAAAwAQeWIAQsBEABB8YgBCxUPAAAABA8AAAAACRAAAAAAABAAABAAQZ+JAQsBEgBBq4kBCx4RAAAAABEAAAAACRIAAAAAABIAABIAABoAAAAaGhoAQeKJAQsOGgAAABoaGgAAAAAAAAkAQZOKAQsBFABBn4oBCxUXAAAAABcAAAAACRQAAAAAABQAABQAQc2KAQsBFgBB2YoBC6QDFQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGAAAAAAIAAAADAAAABQAAAAcAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAH8AAACDAAAAiQAAAIsAAACVAAAAlwAAAJ0AAACjAAAApwAAAK0AAACzAAAAtQAAAL8AAADBAAAAxQAAAMcAAADTAAAAAQAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAeQAAAH8AAACDAAAAiQAAAIsAAACPAAAAlQAAAJcAAACdAAAAowAAAKcAAACpAAAArQAAALMAAAC1AAAAuwAAAL8AAADBAAAAxQAAAMcAAADRAEGUjgEL/gYKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjsAAAAAAAAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5TjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAA+EgAAAhIAACMSgAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAA+EgAADhIAAAsSAAATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAAAA+EgAAGhIAAAsSAAATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UA+EgAAJhIAACMSAAAAAAAAFxIAAB0AQAAdQEAAHYBAAB3AQAAeAEAAHkBAAB6AQAAewEAAAAAAABASQAAdAEAAHwBAAB2AQAAdwEAAHgBAAB9AQAAfgEAAH8BAABOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UAAAAA+EgAABhJAABcSAAAAAAAALBJAAAOAAAAgAEAAIEBAAAAAAAA2EkAAA4AAACCAQAAgwEAAAAAAACYSQAADgAAAIQBAACFAQAAU3Q5ZXhjZXB0aW9uAAAAANBIAACISQAAU3Q5YmFkX2FsbG9jAAAAAPhIAACgSQAAmEkAAFN0MjBiYWRfYXJyYXlfbmV3X2xlbmd0aAAAAAD4SAAAvEkAALBJAAAAAAAACEoAAAEAAACGAQAAhwEAAFN0MTFsb2dpY19lcnJvcgD4SAAA+EkAAJhJAAAAAAAAPEoAAAEAAACIAQAAhwEAAFN0MTJsZW5ndGhfZXJyb3IAAAAA+EgAAChKAAAISgAAAAAAAHBKAAABAAAAiQEAAIcBAABTdDEyb3V0X29mX3JhbmdlAAAAAPhIAABcSgAACEoAAFN0OXR5cGVfaW5mbwAAAADQSAAAfEoAQZSVAQsDwE0B\\\";var hQ=ai(gi(),1);var Ci=function(){\\\"use strict\\\";var B=\\\"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FHRAOCUFHOXBKKAVC+QDF8kJJJJBK/uLEVUCUAICDTGVAICffffI0eGOCBYD1+KJJBhJJJJBBHRALALYD9gGWCDTFARbDBALAWCEFbD9gABARbDBAOCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDLCUADCDTADCffffI0eCBYD1+KJJBhJJJJBBHRALALYD9gGOCDTFARbDBALAOCEFbD9gABARbDWABYDBCBAVZ+TJJJB8aADCI9uHWDNADtMBABYDBHOAEHLADHRINAOALYDBCDTFGVAVYDBCEFbDBALCLFHLARCUFGRMBKKDNAItMBABYDBHLABYDLHRCBHVAIHOINARAVbDBARCLFHRALYDBAVFHVALCLFHLAOCUFGOMBKKDNADCI6MBAWCEAWCE0eHdABYDLHRABYDWHVCBHLINAECWFYDBHOAECLFYDBHDARAEYDBCDTFGWAWYDBGWCEFbDBAVAWCDTFALbDBARADCDTFGDADYDBGDCEFbDBAVADCDTFALbDBARAOCDTFGOAOYDBGOCEFbDBAVAOCDTFALbDBAECXFHEAdALCEFGL9HMBKKDNAItMBABYDLHEABYDBHLINAEAEYDBALYDB9rbDBALCLFHLAECLFHEAICUFGIMBKKKqBABAEADAIC+01JJBZ+MJJJBKqBABAEADAIC+c+JJJBZ+MJJJBK9dEEUABCfEAICDTZ+TJJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD+M+KJJBGEABCIFC98gFGBbD+M+KJJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD+M+KJJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD+M+KJJBFGDbD+M+KJJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKKXBABAEZ+YJJJBK+BEEIUDNAB+8GDCl4GICfEgGLCfEsMBDNALMBDNABjBBBB9cMBAECBbDBABSKABjBBJ9fnAEZ+XJJJBHBAEAEYDBCNFbDBABSKAEAICfEgC+CUFbDBADCfff+D94gCJJJ/4Iv++HBKABK+gEBDNDNAECJE9IMBABjBBBUnHBDNAECfE9PMBAEC+BUFHEXDKABjBBBUnHBAECPDAECPD6eC+C9+FHEXEKAEC+BU9KMBABjBBJXnHBDNAEC+b9+9NMBAEC/mBFHEXEKABjBBJXnHBAEC+299AEC+2990eC/MEFHEKABAEClTCJJJ/8IF++nKK+eDDBCJWK+EDB4+H9W9n94+p+Gw+J9o+YE9pBBBBBBEBBBDBBBEBBBDBBBBBBBDBBBBBBBEBBBBBBB+L29Hz/69+9Kz/n/76z/RG97z/Z/O9Xz8j/b85z/+/U9Yz/B/K9hz+2/z9dz9E+L9Mz59a8kz+R/t3z+a+Zyz79ohz/J4++8++y+d9v8+BBBB9S+49+z8r+Hbz9m9m/m8+l/Z/O8+/8+pg89Q/X+j878r+Hq8++m+b/E87BBBBBBJzBBJzBBJz+e/v/n8++y+dSz9I/h/68+XD/r8+/H0838+/w+nOzBBBB+wv9o8+UF888+9I/h/68+9C9g/l89/N/M9M89/d8kO8+BBBBF+8Tz9M836zs+2azl/Zpzz818ez9E+LXz/u98f8+819e/68+BC+EQKXEBBBDBBBAwBB\\\",A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=\\\"object\\\")return{supported:!1};var I,C=WebAssembly.instantiate(g(B),{}).then(function(r){I=r.instance,I.exports.__wasm_call_ctors(),I.exports.meshopt_encodeVertexVersion(0),I.exports.meshopt_encodeIndexVersion(1)});function g(r){for(var N=new Uint8Array(r.length),w=0;w<r.length;++w){var U=r.charCodeAt(w);N[w]=U>96?U-71:U>64?U-65:U>47?U+4:U>46?63:62}for(var H=0,w=0;w<r.length;++w)N[H++]=N[w]<60?A[N[w]]:(N[w]-60)*64+N[++w];return N.buffer.slice(0,H)}function E(r){if(!r)throw new Error(\\\"Assertion failed\\\")}function Q(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function o(r,N,w){var U=I.exports.sbrk,H=U(r.length*4),R=U(N*4),q=new Uint8Array(I.exports.memory.buffer),J=Q(r);q.set(J,H),w&&w(H,H,r.length,N);var k=I.exports.meshopt_optimizeVertexFetchRemap(R,H,r.length,N);q=new Uint8Array(I.exports.memory.buffer);var K=new Uint32Array(N);new Uint8Array(K.buffer).set(q.subarray(R,R+N*4)),J.set(q.subarray(H,H+r.length*4)),U(H-U(0));for(var L=0;L<r.length;++L)r[L]=K[r[L]];return[K,k]}function s(r,N,w,U,H){var R=I.exports.sbrk,q=R(N),J=R(U*H),k=new Uint8Array(I.exports.memory.buffer);k.set(Q(w),J);var K=r(q,N,J,U,H),L=new Uint8Array(K);return L.set(k.subarray(q,q+K)),R(q-R(0)),L}function y(r){for(var N=0,w=0;w<r.length;++w){var U=r[w];N=N<U?U:N}return N}function G(r,N){if(E(N==2||N==4),N==4)return new Uint32Array(r.buffer,r.byteOffset,r.byteLength/4);var w=new Uint16Array(r.buffer,r.byteOffset,r.byteLength/2);return new Uint32Array(w)}function M(r,N,w,U,H,R){var q=I.exports.sbrk,J=q(w*U),k=q(w*R),K=new Uint8Array(I.exports.memory.buffer);K.set(Q(N),k),r(J,w,U,H,k);var L=new Uint8Array(w*U);return L.set(K.subarray(J,J+w*U)),q(J-q(0)),L}return{ready:C,supported:!0,reorderMesh:function(r,N,w){var U=N?w?I.exports.meshopt_optimizeVertexCacheStrip:I.exports.meshopt_optimizeVertexCache:void 0;return o(r,y(r)+1,U)},encodeVertexBuffer:function(r,N,w){E(w>0&&w<=256),E(w%4==0);var U=I.exports.meshopt_encodeVertexBufferBound(N,w);return s(I.exports.meshopt_encodeVertexBuffer,U,r,N,w)},encodeIndexBuffer:function(r,N,w){E(w==2||w==4),E(N%3==0);var U=G(r,w),H=I.exports.meshopt_encodeIndexBufferBound(N,y(U)+1);return s(I.exports.meshopt_encodeIndexBuffer,H,U,N,4)},encodeIndexSequence:function(r,N,w){E(w==2||w==4);var U=G(r,w),H=I.exports.meshopt_encodeIndexSequenceBound(N,y(U)+1);return s(I.exports.meshopt_encodeIndexSequence,H,U,N,4)},encodeGltfBuffer:function(r,N,w,U){var H={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return E(H[U]),H[U](r,N,w)},encodeFilterOct:function(r,N,w,U){return E(w==4||w==8),E(U>=1&&U<=16),M(I.exports.meshopt_encodeFilterOct,r,N,w,U,16)},encodeFilterQuat:function(r,N,w,U){return E(w==8),E(U>=4&&U<=16),M(I.exports.meshopt_encodeFilterQuat,r,N,w,U,16)},encodeFilterExp:function(r,N,w,U){return E(w>0&&w%4==0),E(U>=1&&U<=24),M(I.exports.meshopt_encodeFilterExp,r,N,w,U,w)}}}();var Bi=function(){\\\"use strict\\\";var B=\\\"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\\\",A=\\\"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\\\",I=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),C=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=\\\"object\\\")return{supported:!1};var g=B;WebAssembly.validate(I)&&(g=A);var E,Q=WebAssembly.instantiate(o(g),{}).then(function(M){E=M.instance,E.exports.__wasm_call_ctors()});function o(M){for(var r=new Uint8Array(M.length),N=0;N<M.length;++N){var w=M.charCodeAt(N);r[N]=w>96?w-71:w>64?w-65:w>47?w+4:w>46?63:62}for(var U=0,N=0;N<M.length;++N)r[U++]=r[N]<60?C[r[N]]:(r[N]-60)*64+r[++N];return r.buffer.slice(0,U)}function s(M,r,N,w,U,H){var R=E.exports.sbrk,q=N+3&-4,J=R(q*w),k=R(U.length),K=new Uint8Array(E.exports.memory.buffer);K.set(U,k);var L=M(J,N,w,k,U.length);if(L==0&&H&&H(J,q,w),r.set(K.subarray(J,J+N*w)),R(J-R(0)),L!=0)throw new Error(\\\"Malformed buffer data: \\\"+L)}var y={0:\\\"\\\",1:\\\"meshopt_decodeFilterOct\\\",2:\\\"meshopt_decodeFilterQuat\\\",3:\\\"meshopt_decodeFilterExp\\\",NONE:\\\"\\\",OCTAHEDRAL:\\\"meshopt_decodeFilterOct\\\",QUATERNION:\\\"meshopt_decodeFilterQuat\\\",EXPONENTIAL:\\\"meshopt_decodeFilterExp\\\"},G={0:\\\"meshopt_decodeVertexBuffer\\\",1:\\\"meshopt_decodeIndexBuffer\\\",2:\\\"meshopt_decodeIndexSequence\\\",ATTRIBUTES:\\\"meshopt_decodeVertexBuffer\\\",TRIANGLES:\\\"meshopt_decodeIndexBuffer\\\",INDICES:\\\"meshopt_decodeIndexSequence\\\"};return{ready:Q,supported:!0,decodeVertexBuffer:function(M,r,N,w,U){s(E.exports.meshopt_decodeVertexBuffer,M,r,N,w,E.exports[y[U]])},decodeIndexBuffer:function(M,r,N,w){s(E.exports.meshopt_decodeIndexBuffer,M,r,N,w)},decodeIndexSequence:function(M,r,N,w){s(E.exports.meshopt_decodeIndexSequence,M,r,N,w)},decodeGltfBuffer:function(M,r,N,w,U,H){s(E.exports[G[U]],M,r,N,w,E.exports[y[H]])}}}();var Ct=function(){\\\"use strict\\\";var B=\\\"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iDZGK+TjBBBB+XGQALiDLALiDcGX+TGMAMAQ9deGQALiDWALiDkGM+TGpApAQ9deHpDNABtMBADtMBjBBBBjBBJzAp+VApjBBBB9beHQINABAQABiDBAK+TnuDBABCLFGIAQAIiDBAX+TnuDBABCWFGIAQAIiDBAM+TnuDBABCXFHBADCUFGDMBKKApK+qDIDUI99DUCBHI8jJJJJBCA9rGLCZFCWFCBYD11JJBbDBALCB8pDJ1JJB83IZALCWFCBYDn1JJBbDBALCB8pD+M1JJB83IBDNDNAEMBjBBJfHVjBBJfHOjBBJfHRXEKADCD4CDTHWINCBHDINALCZFADFGdABADFiDBGOAdiDBGRARAO9eeuDBALADFGdAOAdiDBGRARAO9deuDBADCLFGDCX9HMBKABAWFHBAICEFGIAE9HMBKALiDWALiDk+THRALiDLALiDc+THOALiDBALiDZ+THVKAVjBBBB+XGVAOAOAV9deGOARARAO9deK9dEEUABCfEAICDTZ1JJJBHLCBHIDNADtMBINDNALAEYDBCDTFGBYDBCU9HMBABAIbDBAICEFHIKAECLFHEADCUFGDMBKKAIK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK/lEEEUDNDNAEABvCIgtMBABHIXEKDNDNADCZ9PMBABHIXEKABHIINAIAEYDBbDBAICLFAECLFYDBbDBAICWFAECWFYDBbDBAICXFAECXFYDBbDBAICZFHIAECZFHEADC9wFGDCS0MBKKADCL6MBINAIAEYDBbDBAECLFHEAICLFHIADC98FGDCI0MBKKDNADtMBINAIAErBB86BBAICEFHIAECEFHEADCUFGDMBKKABK/AEEDUDNDNABCIgtMBABHIXEKAECfEgC+B+C+EW2HLDNDNADCZ9PMBABHIXEKABHIINAIALbDBAICXFALbDBAICWFALbDBAICLFALbDBAICZFHIADC9wFGDCS0MBKKADCL6MBINAIALbDBAICLFHIADC98FGDCI0MBKKDNADtMBINAIAE86BBAICEFHIADCUFGDMBKKABK9TEIUCBCBYD/01JJBGEABCIFC98gFGBbD/01JJBDNDNABzBCZTGD9NMBCUHIABAD9rCffIFCZ4NBCUsMEKAEHIKAIK9+EIUzBHEDNDNCBYD/01JJBGDAECZTGI9NMBCUHEADAI9rCffIFCZ4NBCUsMEKADHEKCBABAE9rCIFC98gCBYD/01JJBFGDbD/01JJBDNADzBCZTGE9NMBADAE9rCffIFCZ4NB8aKK6EIUCBHIDNADtMBDNINABrBBGLAErBBGV9HMEAECEFHEABCEFHBADCUFGDMBXDKKALAV9rHIKAIKK+CEDBCJWK9pffUUffUUffUUffUfffUfffUfBBBBBBBBEEEBEEBEBBEEEBEBBBBBEBEBBBBBEBBBDBBBBBBBBBBBBBBBEEEEEBEBBBBBEBBBBBEEBBBBBBC/sWKXEBBBDBBBJ9kBB\\\",A=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!=\\\"object\\\")return{supported:!1};var I,C=WebAssembly.instantiate(g(B),{}).then(function(r){I=r.instance,I.exports.__wasm_call_ctors()});function g(r){for(var N=new Uint8Array(r.length),w=0;w<r.length;++w){var U=r.charCodeAt(w);N[w]=U>96?U-71:U>64?U-65:U>47?U+4:U>46?63:62}for(var H=0,w=0;w<r.length;++w)N[H++]=N[w]<60?A[N[w]]:(N[w]-60)*64+N[++w];return N.buffer.slice(0,H)}function E(r){if(!r)throw new Error(\\\"Assertion failed\\\")}function Q(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function o(r,N){var w=I.exports.sbrk,U=w(r.length*4),H=w(N*4),R=new Uint8Array(I.exports.memory.buffer),q=Q(r);R.set(q,U);var J=I.exports.meshopt_optimizeVertexFetchRemap(H,U,r.length,N);R=new Uint8Array(I.exports.memory.buffer);var k=new Uint32Array(N);new Uint8Array(k.buffer).set(R.subarray(H,H+N*4)),q.set(R.subarray(U,U+r.length*4)),w(U-w(0));for(var K=0;K<r.length;++K)r[K]=k[r[K]];return[k,J]}function s(r){for(var N=0,w=0;w<r.length;++w){var U=r[w];N=N<U?U:N}return N}function y(r,N,w,U,H,R,q,J,k){var K=I.exports.sbrk,L=K(4),c=K(w*4),Y=K(H*R),p=K(w*4),f=new Uint8Array(I.exports.memory.buffer);f.set(Q(U),Y),f.set(Q(N),p);var l=r(c,p,w,Y,H,R,q,J,k,L);f=new Uint8Array(I.exports.memory.buffer);var _=new Uint32Array(l);Q(_).set(f.subarray(c,c+l*4));var T=new Float32Array(1);return Q(T).set(f.subarray(L,L+4)),K(L-K(0)),[_,T[0]]}function G(r,N,w,U){var H=I.exports.sbrk,R=H(w*U),q=new Uint8Array(I.exports.memory.buffer);q.set(Q(N),R);var J=r(R,w,U);return H(R-H(0)),J}var M={LockBorder:1};return{ready:C,supported:!0,compactMesh:function(r){E(r instanceof Uint32Array||r instanceof Int32Array||r instanceof Uint16Array||r instanceof Int16Array),E(r.length%3==0);var N=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r);return o(N,s(r)+1)},simplify:function(r,N,w,U,H,R){E(r instanceof Uint32Array||r instanceof Int32Array||r instanceof Uint16Array||r instanceof Int16Array),E(r.length%3==0),E(N instanceof Float32Array),E(N.length%w==0),E(w>=3),E(U%3==0);for(var q=0,J=0;J<(R?R.length:0);++J)q|=M[R[J]];var k=r.BYTES_PER_ELEMENT==4?r:new Uint32Array(r),K=y(I.exports.meshopt_simplify,k,r.length,N,N.length,w*4,U,H,q);return K[0]=r instanceof Uint32Array?K[0]:new r.constructor(K[0]),K},getScale:function(r,N){return E(r instanceof Float32Array),E(r.length%N==0),G(I.exports.meshopt_simplifyScale,r,r.length,N*4)}}}();var zB=class{cacheName=\\\"gltf-processed-v1\\\";cache=null;async init(){try{this.cache=await caches.open(this.cacheName)}catch(A){console.warn(\\\"Cache API not available, cache will be disabled:\\\",A)}}generateCacheKey(A,I){return`${A}?processed=true&maxTextureSize=${I}`}async get(A,I){if(A.startsWith(\\\"data:\\\"))return null;if(!this.cache)return console.warn(\\\"Cache not initialized\\\"),null;try{let C=this.generateCacheKey(A,I),g=await this.cache.match(C);if(g)return await g.arrayBuffer()}catch(C){console.warn(\\\"Cache lookup failed:\\\",C)}return null}async set(A,I,C){if(!A.startsWith(\\\"data:\\\")&&this.cache)try{let g=this.generateCacheKey(A,I),E=new Response(C,{headers:{\\\"Content-Type\\\":\\\"application/octet-stream\\\",\\\"Cache-Control\\\":\\\"max-age=86400\\\"}});await this.cache.put(g,E)}catch(g){console.warn(\\\"Failed to cache processed GLTF:\\\",g)}}};function Ei(B){let A=atob(B),I=new Uint8Array(A.length);for(let C=0;C<A.length;C++)I[C]=A.charCodeAt(C);return I.buffer}var lo=Ei(zE),qo=Ei(vE),To=[\\\"image/ktx2\\\",\\\"image/ktx\\\",\\\"image/basis\\\",\\\"image/vnd-ms.dds\\\",\\\"image/dds\\\"],SQ=class{io=null;sourceCanvas;sourceCtx;targetCanvas;targetCtx;cache;canvas;ctx;constructor(){this.canvas=new OffscreenCanvas(1,1);let A=this.canvas.getContext(\\\"2d\\\",{willReadFrequently:!0});if(!A)throw new Error(\\\"Could not get 2D context for OffscreenCanvas\\\");this.ctx=A,this.cache=new zB,this.initializeCache(),this.initializeIO(),this.sourceCanvas=new OffscreenCanvas(1,1),this.targetCanvas=new OffscreenCanvas(1,1);let I=this.sourceCanvas.getContext(\\\"2d\\\",{willReadFrequently:!0}),C=this.targetCanvas.getContext(\\\"2d\\\",{willReadFrequently:!0});if(!I||!C)throw new Error(\\\"Could not get 2D contexts\\\");this.sourceCtx=I,this.targetCtx=C}async initializeCache(){await this.cache.init()}async initializeIO(){let A=await hQ.default.createDecoderModule({wasmBinary:lo}),I=await hQ.default.createEncoderModule({wasmBinary:qo});this.io=new oB().registerExtensions(jE).registerDependencies({\\\"draco3d.decoder\\\":A,\\\"draco3d.encoder\\\":I,\\\"meshopt.decoder\\\":Bi,\\\"meshopt.encoder\\\":Ci})}async ensureIOReady(){for(;this.io===null;)await new Promise(A=>setTimeout(A,10));return this.io}async resizeImageData(A,I){let{width:C,height:g}=A,E=C/g,Q=C,o=g;C>I&&(Q=I,o=Math.round(Q/E)),o>I&&(o=I,Q=Math.round(o*E)),(this.sourceCanvas.width!==C||this.sourceCanvas.height!==g)&&(this.sourceCanvas.width=C,this.sourceCanvas.height=g),(this.targetCanvas.width!==Q||this.targetCanvas.height!==o)&&(this.targetCanvas.width=Q,this.targetCanvas.height=o),this.sourceCtx.putImageData(A,0,0),this.targetCtx.drawImage(this.sourceCanvas,0,0,Q,o);let y=await(await this.targetCanvas.convertToBlob({type:\\\"image/png\\\"})).arrayBuffer();return{data:new Uint8Array(y),width:Q,height:o}}async processTexture(A,I){let C=A.getImage();if(!C)return;let g=A.getMimeType();if(!To.includes(g))try{let E=new Blob([C],{type:g}),Q=await createImageBitmap(E);(this.canvas.width!==Q.width||this.canvas.height!==Q.height)&&(this.canvas.width=Q.width,this.canvas.height=Q.height),this.ctx.drawImage(Q,0,0);let o=this.ctx.getImageData(0,0,Q.width,Q.height);if(!(Q.width<=I&&Q.height<=I)){let{data:s}=await this.resizeImageData(o,I);A.setImage(s).setMimeType(\\\"image/png\\\")}Q.close()}catch(E){console.warn(\\\"Failed to process texture:\\\",E)}}async loadGLTF(A,I,C){if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");try{let Q=await this.cache.get(A,I);if(Q)return new Uint8Array(Q)}catch(Q){console.warn(\\\"Cache lookup failed:\\\",Q)}if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let g=3,E=null;for(let Q=1;Q<=g;Q++)try{if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let o=A;if(Q>1){let R=new URL(o);R.searchParams.set(\\\"retry\\\",Q.toString()),R.searchParams.set(\\\"t\\\",Date.now().toString()),o=R.toString()}let s=await fetch(o,{signal:C?.signal});if(!s.ok)throw new Error(`Failed to fetch gLTF file: ${s.statusText}`);if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let y=await s.arrayBuffer(),G=new Uint8Array(y),M=s.headers.get(\\\"Content-Length\\\"),r=M?parseInt(M,10):null;if(r&&G.length<r){let R=new Error(`Response truncated: expected ${r} bytes but got ${G.length} bytes`);if(console.error(\\\"Truncated response detected:\\\",{fileUrl:A,attempt:Q,expectedSize:r,actualSize:G.length,contentType:s.headers.get(\\\"Content-Type\\\"),responseCode:s.status}),Q===g)throw R;E=R;continue}if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let N=await this.ensureIOReady(),w=await N.readBinary(G);if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let U=w.getRoot().listTextures();for(let R of U){if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");await this.processTexture(R,I)}if(C?.signal.aborted)throw new Error(\\\"Operation canceled\\\");let H=await N.writeBinary(w);if(!C?.signal.aborted)try{await this.cache.set(A,I,H.buffer)}catch(R){console.warn(\\\"Failed to cache result:\\\",R)}return new Uint8Array(H)}catch(o){if(E=o instanceof Error?o:new Error(String(o)),C?.signal.aborted||E.message===\\\"Operation canceled\\\"||Q===g||!E.message.includes(\\\"truncated\\\"))throw E;console.warn(`Fetch attempt ${Q} failed, retrying...`,E.message),await new Promise(s=>setTimeout(s,Math.pow(2,Q-1)*100))}throw E||new Error(\\\"Failed to load GLTF after retries\\\")}},_o=new SQ,MQ=class{maxConcurrentRequests=2;activeRequests=0;requestQueue=[];requestMap=new Map;enqueue(A){this.requestMap.set(A.id,A),this.requestQueue.push(A),this.processQueue()}async processQueue(){for(;this.activeRequests<this.maxConcurrentRequests&&this.requestQueue.length>0;){let A=this.requestQueue.shift();if(!A.abortController.signal.aborted){this.activeRequests++;try{let I=await _o.loadGLTF(A.fileUrl,A.maxTextureSize,A.abortController),C={id:A.id,type:\\\"success\\\",gltfBuffer:I};self.postMessage(C)}catch(I){console.error(\\\"Error in task:\\\",I);let C={id:A.id,type:\\\"error\\\",error:I instanceof Error?I.message:\\\"Unknown error\\\"};self.postMessage(C)}finally{this.activeRequests--,this.requestMap.delete(A.id),this.processQueue()}}}}cancelRequest(A){let I=this.requestMap.get(A);if(I){I.abortController.abort(),this.requestMap.delete(A);return}this.requestQueue.find(g=>g.id===A)&&(this.requestQueue=this.requestQueue.filter(g=>g.id!==A))}getStats(){return{active:this.activeRequests,queued:this.requestQueue.length,maxConcurrent:this.maxConcurrentRequests}}},Qi=new MQ;self.onmessage=async function(B){let{id:A,type:I}=B.data;try{if(I===\\\"load-gltf\\\"){let{fileUrl:C,maxTextureSize:g}=B.data;if(!C||g===void 0)throw new Error(\\\"fileUrl and maxTextureSize are required for load-gltf\\\");Qi.enqueue({id:A,fileUrl:C,maxTextureSize:g,abortController:new AbortController})}else if(I===\\\"cancel-load-gltf\\\")Qi.cancelRequest(A);else throw new Error(`Unknown request type: ${I}`)}catch(C){let g={id:A,type:\\\"error\\\",error:C instanceof Error?C.message:\\\"Unknown error\\\"};self.postMessage(g)}};var mo=\\\"\\\",yt=mo;})();\\n\";\n const blob = new Blob([workerCode], { type: 'application/javascript' });\n export default URL.createObjectURL(blob);\n ", "// Import the worker as a URL using the esbuild plugin\nimport gltfWorkerUrl from \"./GLTFLoadingWorker.worker\";\nimport { GLTFWorkerRequest, GLTFWorkerResponse } from \"./GLTFLoadingWorkerTypes\";\n\n/**\n * GLTFLoadingWorkerPool - gLTF loading and texture processing using Web Workers\n *\n * Features:\n * - Loads gLTF files entirely in workers (off main thread)\n * - Uses gltf-transform for gLTF manipulation\n * - Processes and resizes textures in the worker\n * - Caches processed gLTF files\n */\nexport class GLTFLoadingWorkerPool {\n private workers: Worker[] = [];\n private activeJobs = new Map<\n string,\n {\n resolve: (result: ArrayBuffer) => void;\n reject: (error: Error) => void;\n timeout: ReturnType<typeof setTimeout>;\n worker: Worker;\n abortController?: AbortController;\n fileUrl: string;\n }\n >();\n private workerIndex = 0;\n private readonly maxWorkers = Math.min(navigator.hardwareConcurrency || 4, 2);\n\n constructor() {\n // Create worker pool using the compiled worker URL\n for (let i = 0; i < this.maxWorkers; i++) {\n const worker = new Worker(gltfWorkerUrl);\n worker.onmessage = this.handleWorkerMessage.bind(this);\n worker.onerror = this.handleWorkerError.bind(this);\n this.workers.push(worker);\n }\n }\n\n private handleWorkerMessage(e: MessageEvent<GLTFWorkerResponse>): void {\n if (!e.data) {\n return;\n }\n const { id, type } = e.data;\n\n const job = this.activeJobs.get(id);\n if (!job) {\n console.warn(`Received message for unknown job ID: ${id}`);\n return;\n }\n\n // Clear timeout and remove job\n clearTimeout(job.timeout);\n this.activeJobs.delete(id);\n\n if (type === \"success\") {\n const { gltfBuffer } = e.data;\n const asArrayBuffer = gltfBuffer.buffer as ArrayBuffer;\n job.resolve(asArrayBuffer);\n } else if (type === \"error\") {\n const { error } = e.data;\n job.reject(new Error(error || \"Unknown worker error\"));\n }\n }\n\n private handleWorkerError(error: ErrorEvent): void {\n console.error(\"gLTF texture worker error:\", error);\n }\n\n private getNextWorker(): Worker {\n const worker = this.workers[this.workerIndex];\n this.workerIndex = (this.workerIndex + 1) % this.workers.length;\n return worker;\n }\n\n public async processGLTF(\n fileUrl: string,\n maxTextureSize: number,\n abortController?: AbortController,\n ): Promise<ArrayBuffer> {\n return new Promise((resolve, reject) => {\n const worker = this.getNextWorker();\n const id = `gltf_${Date.now()}_${Math.random()}`;\n const message: GLTFWorkerRequest = {\n id,\n type: \"load-gltf\",\n fileUrl,\n maxTextureSize,\n };\n\n // Set up timeout\n const timeout = setTimeout(() => {\n if (this.activeJobs.has(id)) {\n this.activeJobs.delete(id);\n reject(new Error(\"gLTF process timeout\"));\n }\n }, 60000);\n\n // Set up cancellation handler\n let abortHandler: (() => void) | undefined;\n if (abortController) {\n if (abortController.signal.aborted) {\n // Already canceled\n clearTimeout(timeout);\n reject(new Error(\"Operation canceled\"));\n return;\n }\n\n abortHandler = () => {\n const existingJob = this.activeJobs.get(id);\n if (existingJob) {\n // Clear timeout and remove job\n clearTimeout(timeout);\n this.activeJobs.delete(id);\n\n // Send cancel message to worker\n existingJob.worker.postMessage({\n id,\n type: \"cancel-load-gltf\",\n } satisfies GLTFWorkerRequest);\n reject(new Error(\"Operation canceled\"));\n }\n };\n abortController.signal.addEventListener(\"abort\", abortHandler);\n }\n\n this.activeJobs.set(id, {\n resolve: (result: ArrayBuffer) => {\n if (abortHandler && abortController) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n resolve(result);\n },\n reject: (error: Error) => {\n if (abortHandler && abortController) {\n abortController.signal.removeEventListener(\"abort\", abortHandler);\n }\n reject(error);\n },\n worker,\n timeout,\n abortController,\n fileUrl,\n });\n worker.postMessage(message satisfies GLTFWorkerRequest);\n });\n }\n\n public dispose(): void {\n // Clear active jobs and their timeouts\n for (const [id, job] of this.activeJobs) {\n clearTimeout(job.timeout);\n // Clean up abort listeners if they exist\n if (job.abortController && job.abortController.signal) {\n // Note: We can't remove specific listeners without references, but they will be cleaned up\n // when the AbortController is garbage collected\n }\n job.reject(new Error(\"GLTFTextureWorkerPool disposed\"));\n }\n this.activeJobs.clear();\n\n // Terminate workers\n for (const worker of this.workers) {\n worker.terminate();\n }\n this.workers = [];\n }\n}\n\n// Legacy export for backwards compatibility\nexport const TextureWorkerPool = GLTFLoadingWorkerPool;\n", "import {\n CharacterRenderState,\n EulXYZ,\n IVect3,\n Quat,\n RenderState,\n Vect3,\n} from \"@mml-io/3d-web-client-core\";\nimport { Euler, Group, Quaternion, Vector3 } from \"three\";\n\nimport { ThreeJSCameraManager } from \"../camera/ThreeJSCameraManager\";\nimport { Composer } from \"../composer\";\n\nimport { Character, LoadedAnimations } from \"./Character\";\nimport { colorArrayToColors } from \"./CharacterModel\";\nimport { CharacterInstances } from \"./instancing/CharacterInstances\";\nimport { CharacterModelLoader } from \"./loading/CharacterModelLoader\";\n\ntype LoadedCharacterState = {\n character: Character;\n characterLoaded: boolean;\n abortController?: AbortController;\n};\n\ntype CharacterReadyForScene = {\n id: number;\n character: Character;\n};\n\nexport class ThreeJSCharacterManager {\n private characterGroup: Group;\n private characterModelLoader: CharacterModelLoader;\n private animationsPromise: Promise<LoadedAnimations>;\n private characterInstances: CharacterInstances | null = null;\n private characterInstancesReady = false;\n private pendingInstanceCharacters = new Map<number, CharacterRenderState>();\n\n // Track loaded characters (promoted from instances)\n private loadedCharacters = new Map<number, LoadedCharacterState>();\n private loadingCharacters = new Set<number>();\n private charactersReadyForScene: CharacterReadyForScene[] = [];\n\n private readonly MAX_SCENE_ADDITIONS_PER_FRAME = 3;\n private readonly MAX_REAL_REMOTE_CHARACTERS = 30;\n private readonly LOD_CHANGE_COOLDOWN_MS = 2000;\n\n private lastLODEvaluation = new Map<number, number>();\n private cachedHeadPosition = new Vector3();\n\n constructor(\n characterGroup: Group,\n animationsPromise: Promise<LoadedAnimations>,\n characterModelLoader: CharacterModelLoader,\n private threeJSCameraManager: ThreeJSCameraManager,\n private composer: Composer,\n ) {\n this.characterGroup = characterGroup;\n this.characterModelLoader = characterModelLoader;\n this.animationsPromise = animationsPromise;\n\n // Initialize character instances\n const characterInstances = new CharacterInstances({\n animationsPromise,\n characterModelLoader: this.characterModelLoader,\n cameraManager: this.threeJSCameraManager,\n debug: false,\n });\n\n characterInstances.initialize().then((instancedMesh) => {\n if (instancedMesh) {\n this.characterGroup.add(instancedMesh);\n characterInstances.setupFrustumCulling();\n this.characterInstances = characterInstances;\n this.characterInstancesReady = true;\n } else {\n console.error(\"Failed to initialize character instances\");\n }\n });\n }\n\n update(state: RenderState, deltaTimeSeconds: number): void {\n // Process queued characters ready for scene (throttled)\n const charactersToAdd = this.charactersReadyForScene.splice(\n 0,\n this.MAX_SCENE_ADDITIONS_PER_FRAME,\n );\n for (const { character } of charactersToAdd) {\n this.characterGroup.add(character);\n }\n\n // Process all characters\n for (const [id, charState] of state.characters) {\n const loadedChar = this.loadedCharacters.get(id);\n const isLoaded = loadedChar?.characterLoaded ?? false;\n const isPending = this.pendingInstanceCharacters.has(id);\n const hasInstance = this.characterInstances?.hasInstance(id) ?? false;\n\n if (!isLoaded && !hasInstance && !isPending) {\n // New character - spawn it as instance\n this.spawnCharacter(charState);\n } else if (!isLoaded && isPending && !hasInstance && this.characterInstancesReady) {\n // Pending character and instances are now ready - spawn it\n this.spawnCharacter(charState);\n } else if (!isLoaded) {\n // Existing instance or pending - update transform\n // This includes characters that are loading (in loadedCharacters but characterLoaded is false)\n this.updateCharacterTransform(charState);\n }\n }\n\n // Handle description changes (sparse check)\n for (const characterId of state.updatedCharacterDescriptions) {\n const charState = state.characters.get(characterId);\n if (charState) {\n this.updateCharacterDescription(charState);\n }\n }\n\n // Evaluate LOD (promote/demote characters based on distance)\n // Local characters are always promoted to real meshes\n // Skip until characterInstances is ready\n if (this.characterInstancesReady) {\n this.evaluateLOD(state);\n\n // Update character instances\n if (this.characterInstances) {\n this.characterInstances.update(deltaTimeSeconds);\n }\n }\n\n // Update loaded characters\n // This applies to both local and remote characters\n for (const [id, loadedChar] of this.loadedCharacters) {\n const charState = state.characters.get(id);\n if (charState && loadedChar.characterLoaded) {\n // Directly apply position and rotation from state\n loadedChar.character.position.set(\n charState.position.x,\n charState.position.y,\n charState.position.z,\n );\n const euler = new Euler(charState.rotation.x, charState.rotation.y, charState.rotation.z);\n const quaternion = new Quaternion().setFromEuler(euler);\n loadedChar.character.quaternion.set(quaternion.x, quaternion.y, quaternion.z, quaternion.w);\n\n // Use animation weights and times from core instead of single state transitions\n loadedChar.character.applyAnimationWeights(charState.animationWeights);\n loadedChar.character.applyAnimationTimes(charState.animationTimes);\n\n loadedChar.character.update(deltaTimeSeconds);\n } else if (!charState) {\n console.warn(`[Renderer] Loaded character ${id} not found in state.characters`);\n }\n }\n }\n\n despawnCharacter(characterId: number): void {\n // Remove loaded character if exists\n const loadedChar = this.loadedCharacters.get(characterId);\n if (loadedChar) {\n if (loadedChar.abortController) {\n loadedChar.abortController.abort();\n }\n this.characterGroup.remove(loadedChar.character);\n loadedChar.character.dispose();\n this.loadedCharacters.delete(characterId);\n }\n\n // Remove from loading set\n this.loadingCharacters.delete(characterId);\n\n // Remove from ready queue\n const queueIndex = this.charactersReadyForScene.findIndex((c) => c.id === characterId);\n if (queueIndex !== -1) {\n this.charactersReadyForScene.splice(queueIndex, 1);\n }\n\n // Remove from pending state\n this.pendingInstanceCharacters.delete(characterId);\n\n // Remove instance\n if (this.characterInstances) {\n this.characterInstances.despawnInstance(characterId);\n }\n }\n\n getLocalCharacterPosition(localCharacterId: number | null): IVect3 | null {\n if (localCharacterId === null) {\n return null;\n }\n\n const loadedChar = this.loadedCharacters.get(localCharacterId);\n if (loadedChar && loadedChar.characterLoaded) {\n return loadedChar.character.position;\n }\n\n return null;\n }\n\n getCharacterHeadPosition(characterId: number): Vector3 | null {\n const loadedChar = this.loadedCharacters.get(characterId);\n if (loadedChar && loadedChar.characterLoaded) {\n const headPos = loadedChar.character.getHeadWorldPosition();\n if (headPos) {\n this.cachedHeadPosition.set(headPos.x, headPos.y, headPos.z);\n return this.cachedHeadPosition;\n }\n }\n return null;\n }\n\n addChatBubble(characterId: number, message: string): void {\n const loadedChar = this.loadedCharacters.get(characterId);\n if (loadedChar && loadedChar.characterLoaded) {\n loadedChar.character.addChatBubble(message);\n }\n }\n\n getLocalCharacterForMML(localCharacterId: number | null): {\n position: { x: number; y: number; z: number };\n rotation: { x: number; y: number; z: number };\n } | null {\n if (localCharacterId !== null) {\n const loadedChar = this.loadedCharacters.get(localCharacterId);\n if (loadedChar && loadedChar.characterLoaded) {\n return {\n position: loadedChar.character.position,\n rotation: {\n x: loadedChar.character.rotation.x * (180 / Math.PI),\n y: loadedChar.character.rotation.y * (180 / Math.PI),\n z: loadedChar.character.rotation.z * (180 / Math.PI),\n },\n };\n }\n }\n return null;\n }\n\n dispose(): void {\n // Dispose all loaded characters\n for (const [, loadedChar] of this.loadedCharacters) {\n if (loadedChar.abortController) {\n loadedChar.abortController.abort();\n }\n this.characterGroup.remove(loadedChar.character);\n loadedChar.character.dispose();\n }\n this.loadedCharacters.clear();\n this.loadingCharacters.clear();\n this.charactersReadyForScene.length = 0;\n this.pendingInstanceCharacters.clear();\n\n // Dispose character instances\n if (this.characterInstances) {\n this.characterInstances.dispose();\n this.characterInstances = null;\n }\n }\n\n private spawnCharacter(charState: CharacterRenderState): void {\n // All characters start as instances (may be promoted to full characters via LOD)\n if (!this.characterInstances) {\n // Store the character state for when instances are ready\n this.pendingInstanceCharacters.set(charState.id, charState);\n return;\n }\n\n this.spawnCharacterInstance(charState);\n }\n\n private spawnCharacterInstance(charState: CharacterRenderState): void {\n if (!this.characterInstances) {\n return;\n }\n\n // Check if instance already exists (defensive check)\n if (this.characterInstances.hasInstance(charState.id)) {\n // Remove from pending if present and return\n this.pendingInstanceCharacters.delete(charState.id);\n return;\n }\n\n // Remove from pending if present\n this.pendingInstanceCharacters.delete(charState.id);\n\n const colorMap = colorArrayToColors(charState.colors ?? []);\n\n this.characterInstances.spawnInstance(\n charState.id,\n colorMap,\n charState.position,\n charState.rotation,\n charState.animationState,\n );\n }\n\n private updateCharacterTransform(charState: CharacterRenderState): void {\n if (!this.characterInstances) {\n // Update the stored character state for when instances are ready\n this.pendingInstanceCharacters.set(charState.id, charState);\n return;\n }\n\n const loadedChar = this.loadedCharacters.get(charState.id);\n if (!loadedChar || !loadedChar.characterLoaded) {\n // Update instance transform\n this.characterInstances.updateInstance(\n charState.id,\n charState.position,\n charState.rotation,\n charState.animationState,\n charState.animationWeights,\n );\n }\n }\n\n private updateCharacterDescription(charState: CharacterRenderState): void {\n const loadedChar = this.loadedCharacters.get(charState.id);\n if (loadedChar && loadedChar.characterLoaded) {\n // Update loaded character description (works for both local and remote)\n const abortController = new AbortController();\n loadedChar.character.updateCharacter(\n charState.username,\n charState.characterDescription,\n abortController,\n () => {\n if (abortController.signal.aborted) {\n return;\n }\n },\n (error) => {\n console.error(\"Character model load failed\", charState.id, error);\n },\n );\n loadedChar.abortController = abortController;\n }\n\n // Update instance colors if character has instance\n if (\n this.characterInstances &&\n charState.colors &&\n this.characterInstances.hasInstance(charState.id)\n ) {\n const colorMap = colorArrayToColors(charState.colors);\n this.characterInstances.updateInstanceColors(charState.id, colorMap);\n }\n }\n\n private evaluateLOD(state: RenderState): void {\n if (!this.characterInstances) {\n return;\n }\n\n // Get local character position from state (don't require it to be loaded)\n const localCharState =\n state.localCharacterId !== null ? state.characters.get(state.localCharacterId) : null;\n if (!localCharState) {\n return;\n }\n const localPosition = localCharState.position;\n\n const now = Date.now();\n\n // Process all characters to determine if they should be real or instances\n for (const [id, charState] of state.characters) {\n const isLocal = id === state.localCharacterId;\n const isReal = this.loadedCharacters.has(id) || this.loadingCharacters.has(id);\n\n // Local characters should always be real meshes\n let shouldBeReal = isLocal;\n\n if (!isLocal) {\n // For remote characters, calculate distance and determine LOD\n const dx = charState.position.x - localPosition.x;\n const dy = charState.position.y - localPosition.y;\n const dz = charState.position.z - localPosition.z;\n const distanceSquared = dx * dx + dy * dy + dz * dz;\n\n // Find how many characters are closer (including local character)\n let closerCount = 1; // Local character is always closer\n for (const [otherId, otherCharState] of state.characters) {\n if (otherId === id || otherId === state.localCharacterId) {\n continue;\n }\n const otherDx = otherCharState.position.x - localPosition.x;\n const otherDy = otherCharState.position.y - localPosition.y;\n const otherDz = otherCharState.position.z - localPosition.z;\n const otherDistanceSquared = otherDx * otherDx + otherDy * otherDy + otherDz * otherDz;\n if (otherDistanceSquared < distanceSquared) {\n closerCount++;\n }\n }\n\n // Promote closest remote characters to real\n shouldBeReal = closerCount <= this.MAX_REAL_REMOTE_CHARACTERS;\n }\n\n if (isReal !== shouldBeReal) {\n // Local characters should be promoted immediately without cooldown\n if (!isLocal) {\n const lastChange = this.lastLODEvaluation.get(id) ?? 0;\n const timeSinceLastChange = now - lastChange;\n\n if (timeSinceLastChange < this.LOD_CHANGE_COOLDOWN_MS) {\n continue;\n }\n }\n\n this.lastLODEvaluation.set(id, now);\n\n if (shouldBeReal) {\n this.promoteToReal(charState);\n } else {\n this.demoteToInstance(id, charState);\n }\n }\n }\n }\n\n private promoteToReal(charState: CharacterRenderState): void {\n if (this.loadedCharacters.has(charState.id) || this.loadingCharacters.has(charState.id)) {\n return;\n }\n\n this.loadingCharacters.add(charState.id);\n const abortController = new AbortController();\n\n // Get position from instance if available, otherwise use state position\n let position = new Vect3(charState.position.x, charState.position.y, charState.position.z);\n const instancePosition = this.characterInstances?.getPositionForInstance(charState.id);\n if (instancePosition) {\n position = instancePosition;\n }\n\n // Remove from pending instances if present\n this.pendingInstanceCharacters.delete(charState.id);\n\n const character = new Character({\n username: charState.username,\n characterDescription: charState.characterDescription,\n animationsPromise: this.animationsPromise,\n characterModelLoader: this.characterModelLoader,\n characterId: charState.id,\n modelLoadedCallback: () => {\n if (abortController.signal.aborted) {\n return;\n }\n\n const loadedCharState = this.loadedCharacters.get(charState.id);\n if (!loadedCharState) {\n return;\n }\n\n loadedCharState.characterLoaded = true;\n this.loadingCharacters.delete(charState.id);\n\n // Add to scene queue\n this.charactersReadyForScene.push({\n id: charState.id,\n character,\n });\n\n // Shadow the instance if it exists (for remote characters promoted from instances)\n if (this.characterInstances?.hasInstance(charState.id)) {\n this.characterInstances.shadowInstance(charState.id);\n }\n },\n modelLoadFailedCallback: (error: Error) => {\n if (abortController.signal.aborted) {\n return;\n }\n\n console.warn(`Character ${charState.id} model failed to load, keeping instance visible`);\n\n this.loadingCharacters.delete(charState.id);\n\n const loadedCharState = this.loadedCharacters.get(charState.id);\n if (loadedCharState && loadedCharState.character.parent) {\n this.characterGroup.remove(loadedCharState.character);\n }\n\n if (loadedCharState) {\n loadedCharState.character.dispose();\n this.loadedCharacters.delete(charState.id);\n }\n },\n cameraManager: this.threeJSCameraManager,\n composer: this.composer,\n isLocal: charState.isLocal,\n abortController,\n });\n\n const spawnQuaternion = new Quat().setFromEulerXYZ(charState.rotation);\n character.position.set(position.x, position.y, position.z);\n character.quaternion.set(\n spawnQuaternion.x,\n spawnQuaternion.y,\n spawnQuaternion.z,\n spawnQuaternion.w,\n );\n\n this.loadedCharacters.set(charState.id, {\n character,\n characterLoaded: false,\n abortController,\n });\n }\n\n private demoteToInstance(characterId: number, charState: CharacterRenderState): void {\n // Local characters should never be demoted to instances\n if (charState.isLocal) {\n return;\n }\n\n const wasLoading = this.loadingCharacters.has(characterId);\n this.loadingCharacters.delete(characterId);\n\n const loadedChar = this.loadedCharacters.get(characterId);\n if (!loadedChar) {\n return;\n }\n\n // Cancel loading if in progress\n if (loadedChar.abortController && wasLoading) {\n loadedChar.abortController.abort();\n loadedChar.abortController = undefined;\n }\n\n // Remove from scene queue\n const queueIndex = this.charactersReadyForScene.findIndex((c) => c.id === characterId);\n if (queueIndex !== -1) {\n this.charactersReadyForScene.splice(queueIndex, 1);\n }\n\n // Capture real character position\n const realPosition = new Vect3(\n loadedChar.character.position.x,\n loadedChar.character.position.y,\n loadedChar.character.position.z,\n );\n const realRotation = new EulXYZ().setFromQuaternion(\n new Quat(\n loadedChar.character.quaternion.x,\n loadedChar.character.quaternion.y,\n loadedChar.character.quaternion.z,\n loadedChar.character.quaternion.w,\n ),\n );\n\n // Remove real character\n this.characterGroup.remove(loadedChar.character);\n loadedChar.character.dispose();\n this.loadedCharacters.delete(characterId);\n\n // Unshadow and position instance\n if (this.characterInstances) {\n this.characterInstances.unshadowInstance(\n characterId,\n realPosition,\n realRotation,\n charState.animationState,\n );\n }\n }\n}\n", "import { MMLCharacter } from \"@mml-io/3d-web-avatar\";\nimport { EulXYZ, Vect3, AnimationState, AnimationWeights } from \"@mml-io/3d-web-client-core\";\nimport {\n AnimationAction,\n AnimationClip,\n AnimationMixer,\n Color,\n Euler,\n Group,\n Interpolant,\n Matrix4,\n Object3D,\n PropertyMixer,\n Quaternion,\n SkinnedMesh,\n Texture,\n Vector3,\n} from \"three\";\nimport * as SkeletonUtils from \"three/examples/jsm/utils/SkeletonUtils.js\";\n\nimport { ThreeJSCameraManager } from \"../../camera/ThreeJSCameraManager\";\nimport { LoadedAnimations } from \"../Character\";\nimport { ColorPartName } from \"../CharacterModel\";\nimport { CharacterModelLoader } from \"../loading/CharacterModelLoader\";\nimport { lowPolyLoDModelURL } from \"../LowPolyModel\";\n\nimport { createSingleTimeline, SegmentTime } from \"./CharacterInstancingAnimationUtils\";\nimport { mergeSkinnedMeshes, validateAndCleanSkeleton } from \"./CharacterInstancingUtils\";\nimport { createInstancedMesh2From, Entity, InstancedMesh2 } from \"./vendor\";\n\nexport type CharacterInstancesConfig = {\n animationsPromise: Promise<LoadedAnimations>;\n characterModelLoader: CharacterModelLoader;\n cameraManager: ThreeJSCameraManager;\n debug?: boolean;\n};\n\nexport type InstanceData = {\n characterId: number;\n instanceId: number;\n isActive: boolean;\n isShadowed: boolean;\n\n time: number;\n speed: number;\n offset: number;\n\n currentAnimationState: string;\n animationTime: number;\n\n targetPosition: Vector3;\n targetQuaternion: Quaternion;\n lerpSpeed: number;\n hasNewTarget: boolean;\n};\n\n// Show all instances as grey by default (if no color is provided)\nconst defaultColor = new Color().setRGB(0.5, 0.5, 0.5);\nconst defaultColorMap = new Map<ColorPartName, Color>([\n [\"hair\", defaultColor],\n [\"shirt_short\", defaultColor],\n [\"shirt_long\", defaultColor],\n [\"pants_short\", defaultColor],\n [\"pants_long\", defaultColor],\n [\"shoes\", defaultColor],\n [\"skin\", defaultColor],\n [\"lips\", defaultColor],\n]);\n\nexport class CharacterInstances {\n private mixer: AnimationMixer | null = null;\n private action: AnimationAction | null = null;\n private instancedMesh: InstancedMesh2<InstanceData> | null = null;\n private skinnedMesh: SkinnedMesh | null = null;\n private clonedMaterials: any[] = []; // Store cloned materials for disposal\n\n private propertyBindings: PropertyMixer[] = [];\n private interpolants: Interpolant[] = [];\n private propertyBindingsLOD: PropertyMixer[] = [];\n private interpolantsLOD: Interpolant[] = [];\n\n private invMatrixWorld = new Matrix4();\n private cameraLocalPosition = new Vector3();\n\n private delta = 0;\n\n private characterScale = 1;\n\n private currentBindingMode: \"full\" | \"lod\" | null = null;\n\n private debug = false;\n\n // Single merged animation with time segments\n private animationClip: AnimationClip | null = null;\n private animationSegments: Map<string, SegmentTime> = new Map();\n\n private characterIdToInstanceIdMap = new Map<number, number>();\n\n private animationStateToSegmentName(state: AnimationState): string {\n switch (state) {\n case AnimationState.idle:\n return \"idle\";\n case AnimationState.walking:\n return \"walking\";\n case AnimationState.running:\n return \"running\";\n case AnimationState.air:\n return \"air\";\n case AnimationState.doubleJump:\n return \"doubleJump\";\n default:\n console.warn(`Unknown AnimationState: ${state}, defaulting to idle`);\n return \"idle\";\n }\n }\n\n /**\n * Apply colors to an instance at the given index\n * @param instanceIndex The index of the instance to apply colors to\n * @param colors Optional specific colors to apply, if not provided, random colors will be used\n */\n private applyInstanceColors(instanceIndex: number, colors?: Map<ColorPartName, Color>): void {\n if (!this.instancedMesh) return;\n\n if (colors && colors.size > 0) {\n // Use specific colors provided\n this.instancedMesh.setMaterialColorsAt(instanceIndex, colors);\n } else {\n // Use default random colors\n this.instancedMesh.setMaterialColorsAt(instanceIndex, defaultColorMap);\n }\n\n // Update texture if needed\n if (this.instancedMesh.materialColorsTexture) {\n this.instancedMesh.materialColorsTexture.needsUpdate = true;\n this.instancedMesh.materialsNeedsUpdate();\n }\n }\n\n constructor(private config: CharacterInstancesConfig) {\n this.debug = config.debug || false;\n }\n\n public async initialize(): Promise<Object3D | null> {\n try {\n const lowPolyModel = await MMLCharacter.load(lowPolyLoDModelURL, [], {\n load: async (url: string, abortController?: AbortController) => {\n const model = await this.config.characterModelLoader.loadModel(url, 32, abortController);\n if (!model) {\n return null;\n }\n return {\n group: new Group().add(model as Object3D),\n animations: [],\n };\n },\n });\n if (!lowPolyModel) {\n throw new Error(`Failed to load model from file ${lowPolyLoDModelURL}`);\n }\n this.setMainMesh(lowPolyModel);\n\n if (!this.skinnedMesh) {\n console.error(\"Failed to set character mesh for instancing\");\n return null;\n }\n\n // prepare the single animation clip combining all animations\n await this.loadAnimation();\n\n if (!this.animationClip) {\n console.error(\"Failed to load animation for instancing\");\n return null;\n }\n\n // create the instanced mesh\n await this.createInstancedMesh();\n this.setupAnimationOptimization();\n this.instancedMesh!.addInstances(0);\n this.initializeSkeletonData();\n\n return this.instancedMesh as unknown as Object3D;\n } catch (error) {\n console.error(\"Failed to initialize CharacterInstances:\", error);\n return null;\n }\n }\n\n public spawnInstance(\n characterId: number,\n colors: Map<ColorPartName, Color>,\n position: Vect3,\n rotation: EulXYZ,\n animationState: AnimationState,\n ) {\n const animationSegmentName = this.animationStateToSegmentName(animationState);\n if (!this.instancedMesh) {\n throw new Error(\"CharacterInstances: Cannot spawn instance, mesh not initialized.\");\n }\n\n if (this.characterIdToInstanceIdMap.has(characterId)) {\n throw new Error(\n `CharacterInstances: Character ${characterId} already spawned, ignoring duplicate spawn`,\n );\n }\n\n const instances = this.instancedMesh.instances!;\n\n // First, try to find an available instance\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n\n if (!instance.isActive) {\n instance.position.copy(position);\n instance.targetPosition.copy(instance.position);\n instance.quaternion.setFromEuler(new Euler(rotation.x, rotation.y, rotation.z));\n instance.isActive = true;\n instance.isShadowed = false;\n instance.visible = true;\n\n instance.characterId = characterId;\n this.characterIdToInstanceIdMap.set(characterId, i);\n\n instance.time = 0;\n instance.animationTime = 0;\n instance.offset = Math.random() * 0.5; // slight time offset to avoid synchronicity\n instance.speed = 1.0;\n instance.currentAnimationState = animationSegmentName; // Use provided animation state instead of defaulting to \"idle\"\n\n instance.updateMatrix();\n this.updateInstancedMeshBounds();\n\n this.applyInstanceColors(i, colors);\n return;\n }\n }\n\n // If no available instance found, expand capacity\n const expansionSize = Math.max(50, Math.ceil(instances.length * 0.5)); // Expand by 50% or minimum 50 instances\n\n if (this.debug) {\n console.log(\n `CharacterInstances: Expanding capacity from ${instances.length} to ${instances.length + expansionSize} instances (needed for character ${characterId})`,\n );\n }\n\n let isFirstNewInstance = true;\n\n this.instancedMesh.addInstances(\n expansionSize,\n (obj: Entity<InstanceData>, instanceIndex: number) => {\n obj.visible = false;\n obj.time = 0;\n obj.offset = Math.random() * 0.5;\n obj.speed = 1.0;\n obj.currentAnimationState = animationSegmentName;\n obj.animationTime = 0;\n obj.isShadowed = false;\n obj.instanceId = instanceIndex;\n\n obj.targetPosition = new Vector3();\n obj.targetQuaternion = new Quaternion();\n obj.lerpSpeed = 15.0;\n obj.hasNewTarget = false;\n\n if (isFirstNewInstance) {\n isFirstNewInstance = false;\n obj.position.copy(position);\n obj.targetPosition.copy(obj.position);\n obj.quaternion.setFromEuler(new Euler(rotation.x, rotation.y, rotation.z));\n obj.isActive = true;\n obj.visible = true;\n obj.characterId = characterId;\n obj.currentAnimationState = animationSegmentName;\n\n // Set the character mapping\n this.characterIdToInstanceIdMap.set(characterId, instanceIndex);\n\n obj.updateMatrix();\n\n this.applyInstanceColors(instanceIndex, colors);\n } else {\n obj.isActive = false;\n obj.characterId = -1;\n obj.currentAnimationState = \"idle\";\n this.applyInstanceColors(instanceIndex, undefined);\n }\n },\n );\n\n // Update bounds after expansion\n this.updateInstancedMeshBounds();\n }\n\n public despawnInstance(characterId: number): void {\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (this.instancedMesh && instanceId !== undefined) {\n this.instancedMesh.instances![instanceId].isActive = false;\n this.instancedMesh.instances![instanceId].visible = false;\n this.instancedMesh.instances![instanceId].isShadowed = false;\n this.instancedMesh.instances![instanceId].characterId = -1;\n this.instancedMesh.instances![instanceId].instanceId = -1;\n this.instancedMesh.instances![instanceId].updateMatrix();\n this.updateInstancedMeshBounds();\n }\n this.characterIdToInstanceIdMap.delete(characterId);\n }\n\n /**\n * Shadows an instance instead of fully despawning it. This keeps the instance data\n * intact (including colors) while hiding it when a real character is promoted.\n * This avoids texture updates when the character is later demoted back to an instance.\n */\n public shadowInstance(characterId: number): void {\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (this.instancedMesh && instanceId !== undefined) {\n const instance = this.instancedMesh.instances![instanceId];\n instance.isShadowed = true;\n instance.visible = false;\n instance.updateMatrix();\n this.updateInstancedMeshBounds();\n }\n }\n\n /**\n * Reactivates a previously shadowed instance. This is used when a real character\n * is demoted back to an instance, allowing us to reuse the existing instance data\n * and avoid texture updates from creating a new instance.\n */\n public unshadowInstance(\n characterId: number,\n position: Vect3,\n rotation: EulXYZ,\n animationState: AnimationState,\n ) {\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (!this.instancedMesh || instanceId === undefined) {\n throw new Error(\n `CharacterInstances: Cannot unshadow instance for character ${characterId}: not found`,\n );\n }\n\n const instance = this.instancedMesh.instances![instanceId];\n if (!instance || !instance.isActive) {\n throw new Error(\n `CharacterInstances: Cannot unshadow instance for character ${characterId}: not shadowed`,\n );\n }\n\n instance.isShadowed = false;\n instance.visible = true;\n\n this.setInstancePositionImmediate(characterId, position, rotation, animationState);\n }\n\n public updateInstance(\n characterId: number,\n position: Vect3,\n rotation: EulXYZ,\n animationState: AnimationState,\n animationWeights?: AnimationWeights,\n ): void {\n if (!this.instancedMesh) {\n console.error(\"CharacterInstances: Cannot update instance, mesh not initialized.\");\n return;\n }\n\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (instanceId === undefined) {\n console.warn(`CharacterInstances: Instance not found for character ${characterId}`);\n return;\n }\n\n const instance = this.instancedMesh.instances![instanceId];\n if (!instance || !instance.isActive) {\n console.warn(\n `CharacterInstances: Instance ${instanceId} is not active for character ${characterId}`,\n );\n return;\n }\n\n // Skip updates for shadowed instances as they're hidden by real characters\n if (instance.isShadowed) {\n return;\n }\n\n const squaredDistanceFromCurrentPosition = instance.position.distanceToSquared(position);\n // More than 5m of movement in a tick\n // the character is likely teleporting rather than just moving quickly\n // snap to the new position\n if (squaredDistanceFromCurrentPosition > 5 * 5) {\n instance.position.copy(position);\n instance.quaternion.setFromEuler(new Euler(rotation.x, rotation.y, rotation.z));\n }\n\n instance.targetPosition.copy(position);\n instance.targetQuaternion.setFromEuler(new Euler(rotation.x, rotation.y, rotation.z));\n instance.hasNewTarget = true;\n instance.lerpSpeed = 15.0;\n\n // Use animation weights if provided to determine primary animation\n // CharacterInstances uses instant switching between animation segments for performance\n let targetAnimationState = animationState;\n if (animationWeights) {\n // Find the animation with highest weight\n let maxWeight = 0;\n for (const state of Object.keys(AnimationState).filter((k) => !isNaN(Number(k)))) {\n const stateValue = Number(state) as AnimationState;\n const weight = animationWeights[stateValue] || 0;\n if (weight > maxWeight) {\n maxWeight = weight;\n targetAnimationState = stateValue;\n }\n }\n }\n\n const animationSegmentName = this.animationStateToSegmentName(targetAnimationState);\n\n if (instance.currentAnimationState !== animationSegmentName) {\n if (this.animationSegments.has(animationSegmentName)) {\n instance.currentAnimationState = animationSegmentName;\n instance.animationTime = 0;\n\n if (this.debug) {\n console.log(\n `Updated character ${characterId} animation from ${instance.currentAnimationState} to ${animationSegmentName}`,\n );\n }\n } else {\n console.warn(\n `CharacterInstances: Unknown animation state: ${animationSegmentName}. Available: ${Array.from(this.animationSegments.keys()).join(\", \")}`,\n );\n return;\n }\n }\n }\n\n public updateInstanceColors(characterId: number, colors: Map<string, Color>) {\n if (!this.instancedMesh) {\n throw new Error(\"CharacterInstances: Cannot update instance colors, mesh not initialized.\");\n }\n\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (instanceId === undefined) {\n throw new Error(`CharacterInstances: Instance not found for character ${characterId}`);\n }\n\n const instance = this.instancedMesh.instances![instanceId];\n if (!instance) {\n throw new Error(\n `CharacterInstances: Instance ${instanceId} is not active for character ${characterId}`,\n );\n }\n\n // Update the colors using the helper method\n this.applyInstanceColors(instanceId, colors as Map<ColorPartName, Color>);\n }\n\n private updateInstancedMeshBounds(): void {\n if (!this.instancedMesh) return;\n\n try {\n if (this.instancedMesh.geometry) {\n this.instancedMesh.geometry.computeBoundingBox();\n this.instancedMesh.geometry.computeBoundingSphere();\n }\n\n this.instancedMesh.computeBoundingBox();\n this.instancedMesh.computeBoundingSphere();\n this.instancedMesh.instanceMatrix.needsUpdate = true;\n } catch (error) {\n console.warn(\"Error updating bounds:\", error);\n }\n }\n\n private setMainMesh(mesh: Object3D): void {\n let originalSkinnedMeshes = 0;\n const originalMaterials: any[] = [];\n\n mesh.traverse((child) => {\n if (child instanceof SkinnedMesh || (child as SkinnedMesh).isSkinnedMesh) {\n const asSkinnedMesh = child as SkinnedMesh;\n originalSkinnedMeshes++;\n if (Array.isArray(asSkinnedMesh.material)) {\n originalMaterials.push(...asSkinnedMesh.material);\n } else {\n originalMaterials.push(asSkinnedMesh.material);\n }\n }\n });\n\n let mainMesh;\n try {\n mainMesh = SkeletonUtils.clone(mesh);\n let clonedSkinnedMeshes = 0;\n const clonedMaterials: any[] = [];\n\n mainMesh.traverse((child) => {\n if (child instanceof SkinnedMesh || (child as SkinnedMesh).isSkinnedMesh) {\n const asSkinnedMesh = child as SkinnedMesh;\n clonedSkinnedMeshes++;\n if (Array.isArray(asSkinnedMesh.material)) {\n clonedMaterials.push(...asSkinnedMesh.material);\n } else {\n clonedMaterials.push(asSkinnedMesh.material);\n }\n }\n });\n\n if (this.debug) {\n console.log(\n `SkeletonUtils clone:\n ${clonedSkinnedMeshes} SkinnedMeshes\n ${clonedMaterials.length} materials`,\n );\n }\n\n if (\n clonedSkinnedMeshes !== originalSkinnedMeshes ||\n clonedMaterials.length !== originalMaterials.length\n ) {\n throw new Error(\n `SkeletonUtils.clone lost parts: ${originalSkinnedMeshes}->${clonedSkinnedMeshes} meshes, ${originalMaterials.length}->${clonedMaterials.length} materials`,\n );\n }\n } catch (error) {\n console.error(\"SkeletonUtils.clone failed:\", error);\n mainMesh = mesh.clone();\n }\n\n this.characterScale = mesh.scale.x;\n\n mainMesh.position.set(0, 0, 0);\n mainMesh.rotation.set(0, 0, 0);\n mainMesh.scale.set(1, 1, 1);\n\n // merge all skinnedMeshes\n const skinnedMeshes: SkinnedMesh[] = [];\n mainMesh.traverse((child) => {\n if (child instanceof SkinnedMesh || (child as SkinnedMesh).isSkinnedMesh) {\n skinnedMeshes.push(child as SkinnedMesh);\n }\n });\n\n if (skinnedMeshes.length === 0) {\n throw new Error(\"No SkinnedMeshes found after cloning\");\n }\n\n if (skinnedMeshes.length === 1) {\n // single mesh we're done here\n this.skinnedMesh = skinnedMeshes[0];\n } else {\n if (this.debug) {\n console.log(`Merging ${skinnedMeshes.length} SkinnedMeshes into one...`);\n }\n this.skinnedMesh = mergeSkinnedMeshes(skinnedMeshes);\n }\n\n validateAndCleanSkeleton(this.skinnedMesh);\n }\n\n private async loadAnimation(): Promise<void> {\n const animationConfig = await this.config.animationsPromise;\n const animationConfigs = {\n idle: animationConfig.idleAnimation,\n walking: animationConfig.jogAnimation,\n running: animationConfig.sprintAnimation,\n air: animationConfig.airAnimation,\n doubleJump: animationConfig.doubleJumpAnimation,\n };\n\n const individualClips: Map<string, AnimationClip> = new Map();\n\n for (const [stateName, clip] of Object.entries(animationConfigs)) {\n try {\n individualClips.set(stateName, clip);\n if (this.debug) {\n console.log(`Loaded ${stateName} animation: ${clip.duration.toFixed(3)}s`);\n }\n } catch (error) {\n console.warn(`Failed to load animation ${stateName}:`, error);\n }\n }\n\n if (individualClips.size === 0) {\n console.error(\"No animations loaded!\");\n return;\n }\n\n // create a single animation by merging all animations\n const [segments, singleAnimationClip] = createSingleTimeline(individualClips);\n this.animationSegments = segments;\n this.animationClip = singleAnimationClip;\n\n if (this.animationClip && this.skinnedMesh) {\n // filter tracks for available bones\n const availableBones = new Set<string>();\n for (const bone of this.skinnedMesh.skeleton.bones) {\n availableBones.add(bone.name);\n }\n\n this.animationClip.tracks = this.animationClip.tracks.filter((track) => {\n const [trackName, trackProperty] = track.name.split(\".\");\n\n if (trackName === \"root\" && trackProperty === \"position\") {\n return availableBones.has(\"root\");\n }\n\n return availableBones.has(trackName);\n });\n\n this.mixer = new AnimationMixer(this.skinnedMesh);\n this.action = this.mixer.clipAction(this.animationClip);\n this.action.play();\n this.animationClip = this.animationClip;\n\n if (this.debug) {\n console.log(\n `Created single animation timeline with ${this.animationSegments.size} animation segments:`,\n );\n for (const [name, segment] of this.animationSegments.entries()) {\n console.log(\n ` ${name}: ${segment.startTime.toFixed(3)}s - ${segment.endTime.toFixed(3)}s (${segment.duration.toFixed(3)}s)`,\n );\n }\n }\n }\n }\n\n private async createInstancedMesh(): Promise<void> {\n if (!this.skinnedMesh) return;\n\n this.instancedMesh = createInstancedMesh2From<InstanceData>(this.skinnedMesh, {\n capacity: 0, // Default initial capacity\n createEntities: true,\n });\n\n if (this.instancedMesh.boneTexture) {\n this.instancedMesh.boneTexture.partialUpdate = false;\n }\n\n const materials = Array.isArray(this.instancedMesh.material)\n ? this.instancedMesh.material\n : [this.instancedMesh.material];\n\n this.clonedMaterials = materials.map((material: any) => {\n if (material) {\n const clonedMaterial = material.clone();\n clonedMaterial.name = material.name;\n return clonedMaterial;\n }\n return material;\n });\n\n if (Array.isArray(this.instancedMesh.material)) {\n this.instancedMesh.material = this.clonedMaterials;\n } else {\n this.instancedMesh.material = this.clonedMaterials[0];\n }\n\n this.clonedMaterials.forEach((material: any) => {\n if (material) {\n if (material.color) {\n if (this.debug) {\n console.log(`Original color for ${material.name}: #${material.color.getHexString()} `);\n console.log(`Set material color to white: ${material.name}`);\n }\n material.color.setHex(0xffffff);\n }\n material.vertexColors = true;\n material.needsUpdate = true;\n }\n });\n }\n\n private setupAnimationOptimization(): void {\n this.propertyBindings = ((this.action as any)._propertyBindings as PropertyMixer[]) || [];\n this.interpolants = ((this.action as any)._interpolants as Interpolant[]) || [];\n\n this.propertyBindingsLOD = [];\n this.interpolantsLOD = [];\n\n for (let i = 0; i < this.propertyBindings.length; i++) {\n const binding = this.propertyBindings[i];\n if (binding && binding.binding && binding.binding.node) {\n this.propertyBindingsLOD.push(this.propertyBindings[i]);\n this.interpolantsLOD.push(this.interpolants[i]);\n }\n }\n\n if (this.debug) {\n console.log(`${this.propertyBindings.length} bindings (bones to animate)`);\n }\n }\n\n private initializeSkeletonData(): void {\n if (!this.instancedMesh || !this.mixer || !this.instancedMesh.instances) return;\n\n for (const instance of this.instancedMesh.instances) {\n this.mixer.setTime(instance.offset);\n instance.updateBones();\n }\n }\n\n public hasInstance(characterId: number): boolean {\n return this.characterIdToInstanceIdMap.has(characterId);\n }\n\n public getPositionForInstance(characterId: number): Vect3 | null {\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (instanceId === undefined || !this.instancedMesh || !this.instancedMesh.instances) {\n console.warn(\"CharacterInstances: Mesh or instances not initialized.\");\n return null;\n }\n\n const instance = this.instancedMesh.instances[instanceId];\n if (!instance || !instance.isActive) {\n console.warn(`CharacterInstances: Instance ${instanceId} is not active.`);\n return null;\n }\n\n return new Vect3(instance.position.x, instance.position.y, instance.position.z);\n }\n\n private updateAllInstanceLerping(): void {\n if (!this.instancedMesh?.instances) return;\n\n for (const instance of this.instancedMesh.instances) {\n if (instance.isActive && instance.hasNewTarget) {\n const lerpFactor = Math.min(this.delta * instance.lerpSpeed, 1.0);\n\n instance.position.lerp(instance.targetPosition, lerpFactor);\n instance.quaternion.slerp(instance.targetQuaternion, lerpFactor);\n\n if (lerpFactor >= 0.99) {\n instance.hasNewTarget = false;\n }\n\n instance.updateMatrix();\n }\n }\n\n this.updateInstancedMeshBounds();\n }\n\n public update(deltaTime: number): void {\n if (!this.instancedMesh || !this.mixer || !this.action) return;\n\n this.delta = deltaTime;\n\n const camera = this.config.cameraManager.mainCamera;\n camera.updateMatrixWorld();\n\n this.invMatrixWorld.copy(this.instancedMesh.matrixWorld).invert();\n this.cameraLocalPosition\n .setFromMatrixPosition(camera.matrixWorld)\n .applyMatrix4(this.invMatrixWorld);\n\n this.updateAllInstanceLerping();\n }\n\n public setupFrustumCulling(): void {\n if (!this.instancedMesh || !this.mixer || !this.action) return;\n\n const maxFps = 60;\n const minFps = 10;\n\n this.instancedMesh.onFrustumEnter = (\n index: number,\n camera: any,\n cameraLOD: any,\n LODindex: number,\n ) => {\n if (!this.instancedMesh?.instances) return false;\n const instance = this.instancedMesh.instances[index];\n\n const cameraDistance =\n this.cameraLocalPosition.distanceTo(instance.position) * this.characterScale;\n\n const fps = Math.min(maxFps, Math.max(minFps, 60 - cameraDistance * 2));\n\n instance.time += this.delta;\n\n // for very close instances (dist < 5), update every frame for smoothness\n const shouldUpdate = cameraDistance < 5 || instance.time >= 1 / fps;\n\n if (shouldUpdate) {\n // calculate delta since last update for this instance\n const timeSinceLastUpdate = cameraDistance >= 5 ? 1 / fps : this.delta;\n\n if (cameraDistance >= 5) {\n instance.time %= 1 / fps;\n }\n\n // get animation segment for instance's current state\n const segment = this.animationSegments.get(instance.currentAnimationState);\n\n if (segment && this.mixer) {\n // update instance's animation time within the segment\n // all instances have to animate at the same speed regardless of distance\n instance.animationTime += timeSinceLastUpdate * instance.speed;\n\n // segment looping\n if (instance.animationTime >= segment.duration) {\n instance.animationTime %= segment.duration;\n }\n\n // apply offset within the segment duration to prevent leaking into other animations\n const offsetAnimationTime = (instance.animationTime + instance.offset) % segment.duration;\n\n // absolute time in the single timeline\n const singleTimelineTime = segment.startTime + offsetAnimationTime;\n\n // hysteresis to prevent rapid switching at boundaries\n const currentMode = this.currentBindingMode;\n const useFullAnimation =\n currentMode === \"full\"\n ? cameraDistance < 12 // stay in full until distance > 12\n : cameraDistance < 8; // switch to full when distance < 8\n\n if (useFullAnimation) {\n if (this.currentBindingMode !== \"full\") {\n (this.mixer as any)._bindings = this.propertyBindings;\n (this.mixer as any)._nActiveBindings = this.propertyBindings.length;\n (this.action as any)._propertyBindings = this.propertyBindings;\n (this.action as any)._interpolants = this.interpolants;\n this.currentBindingMode = \"full\";\n }\n this.mixer.setTime(singleTimelineTime);\n instance.updateBones();\n } else {\n if (this.currentBindingMode !== \"lod\") {\n (this.mixer as any)._bindings = this.propertyBindingsLOD;\n (this.mixer as any)._nActiveBindings = this.propertyBindingsLOD.length;\n (this.action as any)._propertyBindings = this.propertyBindingsLOD;\n (this.action as any)._interpolants = this.interpolantsLOD;\n this.currentBindingMode = \"lod\";\n }\n this.mixer.setTime(singleTimelineTime);\n instance.updateBones(true);\n }\n }\n }\n\n return true;\n };\n }\n\n public clear() {\n // Remove all instances as if they had been despawned\n if (this.instancedMesh) {\n for (const [, instanceId] of this.characterIdToInstanceIdMap.entries()) {\n if (instanceId !== undefined) {\n this.instancedMesh.instances![instanceId].isActive = false;\n this.instancedMesh.instances![instanceId].visible = false;\n this.instancedMesh.instances![instanceId].isShadowed = false;\n this.instancedMesh.instances![instanceId].characterId = -1;\n this.instancedMesh.instances![instanceId].instanceId = -1;\n this.instancedMesh.instances![instanceId].updateMatrix();\n }\n }\n this.updateInstancedMeshBounds();\n this.characterIdToInstanceIdMap.clear();\n }\n }\n\n public dispose(): void {\n // Dispose cloned materials and their textures\n if (this.clonedMaterials.length > 0) {\n for (const material of this.clonedMaterials) {\n if (material) {\n // Dispose textures from cloned materials\n for (const key in material) {\n const value = (material as any)[key];\n if (value instanceof Texture) {\n value.dispose();\n }\n }\n material.dispose();\n }\n }\n this.clonedMaterials = [];\n }\n\n // Dispose instanced mesh (this disposes its internal textures like matricesTexture, colorsTexture, etc.)\n if (this.instancedMesh) {\n this.instancedMesh.dispose();\n this.instancedMesh = null;\n }\n\n if (this.mixer) {\n this.mixer.stopAllAction();\n this.mixer = null;\n }\n this.skinnedMesh = null;\n }\n\n /**\n * Immediately sets an instance position without lerping. Used when unshadowing\n * instances to position them at the real character's last known position.\n */\n public setInstancePositionImmediate(\n characterId: number,\n position: Vect3,\n rotation: EulXYZ,\n animationState: AnimationState,\n ): boolean {\n if (!this.instancedMesh) {\n console.error(\"CharacterInstances: Cannot set instance position, mesh not initialized.\");\n return false;\n }\n\n const instanceId = this.characterIdToInstanceIdMap.get(characterId);\n if (instanceId === undefined) {\n console.warn(`CharacterInstances: Instance not found for character ${characterId}`);\n return false;\n }\n\n const instance = this.instancedMesh.instances![instanceId];\n if (!instance || !instance.isActive) {\n console.warn(\n `CharacterInstances: Instance ${instanceId} is not active for character ${characterId}`,\n );\n return false;\n }\n\n instance.position.copy(position);\n instance.quaternion.setFromEuler(new Euler(rotation.x, rotation.y, rotation.z));\n instance.targetPosition.copy(instance.position); // Set target to current to prevent lerping\n instance.targetQuaternion.copy(instance.quaternion);\n instance.hasNewTarget = false; // No lerping needed\n\n // Update animation state\n const animationSegmentName = this.animationStateToSegmentName(animationState);\n if (instance.currentAnimationState !== animationSegmentName) {\n if (this.animationSegments.has(animationSegmentName)) {\n instance.currentAnimationState = animationSegmentName;\n instance.animationTime = 0;\n\n if (this.debug) {\n console.log(\n `Set character ${characterId} animation to ${animationSegmentName} (immediate)`,\n );\n }\n } else {\n console.warn(\n `CharacterInstances: Unknown animation state: ${animationSegmentName}. Available: ${Array.from(this.animationSegments.keys()).join(\", \")}`,\n );\n }\n }\n\n instance.updateMatrix();\n this.updateInstancedMeshBounds();\n\n return true;\n }\n}\n", "import {\n AnimationClip,\n NumberKeyframeTrack,\n QuaternionKeyframeTrack,\n VectorKeyframeTrack,\n} from \"three\";\n\nexport type SegmentTime = {\n startTime: number;\n endTime: number;\n duration: number;\n};\n\nexport function createSingleTimeline(\n individualClips: Map<string, AnimationClip>,\n): [Map<string, SegmentTime>, AnimationClip] {\n const segments = new Map<\n string,\n { clip: AnimationClip; startTime: number; endTime: number; duration: number }\n >();\n let currentTime = 0;\n\n // increased gap between animations to prevent interpolation leaking\n const gap = 1.0;\n\n // segments for each animation\n for (const [name, clip] of individualClips.entries()) {\n const startTime = currentTime;\n const duration = clip.duration;\n const endTime = startTime + duration;\n\n segments.set(name, { clip, startTime, endTime, duration });\n\n currentTime = endTime + gap;\n }\n\n // create the tracks\n const allTracks: Array<VectorKeyframeTrack | QuaternionKeyframeTrack | NumberKeyframeTrack> = [];\n const totalDuration = currentTime - gap;\n\n // name them from the respective clips\n const allTrackNames = new Set<string>();\n for (const [, segment] of segments) {\n for (const track of segment.clip.tracks) {\n allTrackNames.add(track.name);\n }\n }\n\n const lastKnownValues = new Map<string, number[]>();\n\n // create a merged track for each\n for (const trackName of allTrackNames) {\n const mergedTimes: number[] = [];\n const mergedValues: number[] = [];\n let valueSize = 0;\n\n for (const [, segment] of segments) {\n // find the track in this segment's clip\n const track = segment.clip.tracks.find((t) => t.name === trackName);\n\n if (track) {\n valueSize = track.getValueSize();\n\n // add track's keyframes, offset by the segment's start time\n const trackValueSize = track.getValueSize();\n valueSize = trackValueSize;\n\n const segmentOffsetTimes: number[] = [];\n const segmentOffsetValues: number[][] = [];\n\n for (let i = 0; i < track.times.length; i++) {\n const offsetTime = track.times[i] + segment.startTime;\n const value: number[] = [];\n\n for (let j = 0; j < trackValueSize; j++) {\n value.push(track.values[i * trackValueSize + j]);\n }\n\n segmentOffsetTimes.push(offsetTime);\n segmentOffsetValues.push(value);\n }\n\n // append all times/values to merged track\n for (let i = 0; i < segmentOffsetTimes.length; i++) {\n mergedTimes.push(segmentOffsetTimes[i]);\n mergedValues.push(...segmentOffsetValues[i]);\n }\n\n // we must enforce pose at segment.endTime if last keyframe is before it\n const lastTime = segmentOffsetTimes[segmentOffsetTimes.length - 1];\n const lastValue = segmentOffsetValues[segmentOffsetValues.length - 1];\n\n if (lastTime < segment.endTime - 1e-5) {\n mergedTimes.push(segment.endTime);\n mergedValues.push(...lastValue);\n }\n\n // add boundary keyframes in the gap to prevent interpolation leaking\n // and hold last pose throughout the entire gap period\n if (gap > 0 && segment.endTime < totalDuration - 1e-5) {\n const gapStart = segment.endTime + 1e-6; // Just after segment ends\n const gapEnd = Math.min(segment.endTime + gap - 1e-6, totalDuration - 1e-5); // Just before next starts\n\n // Add multiple keyframes throughout the gap to ensure no interpolation\n mergedTimes.push(gapStart);\n mergedValues.push(...lastValue);\n\n if (gapEnd > gapStart) {\n mergedTimes.push(gapEnd);\n mergedValues.push(...lastValue);\n }\n }\n\n // cache last known value for fallback\n lastKnownValues.set(trackName, lastValue);\n } else {\n // track is missing in this segment, reuse last known value if available\n let fallbackValues = lastKnownValues.get(trackName);\n\n if (!fallbackValues) {\n // fallback to identity/default if never seen before\n valueSize = valueSize || 3;\n fallbackValues = getDefaultTrackValues(trackName, valueSize);\n }\n\n // push hold keyframes at start and end of segment\n mergedTimes.push(segment.startTime);\n mergedValues.push(...fallbackValues);\n\n mergedTimes.push(segment.endTime);\n mergedValues.push(...fallbackValues);\n\n // add gap keyframes for missing tracks to maintain consistency\n if (gap > 0 && segment.endTime < totalDuration - 1e-5) {\n const gapStart = segment.endTime + 1e-6;\n const gapEnd = Math.min(segment.endTime + gap - 1e-6, totalDuration - 1e-5);\n\n mergedTimes.push(gapStart);\n mergedValues.push(...fallbackValues);\n\n if (gapEnd > gapStart) {\n mergedTimes.push(gapEnd);\n mergedValues.push(...fallbackValues);\n }\n }\n }\n }\n\n if (mergedTimes.length > 0 && valueSize > 0) {\n const TrackType = getTrackTypeFromName(trackName);\n const mergedTrack = new TrackType(trackName, mergedTimes, mergedValues);\n allTracks.push(mergedTrack);\n }\n }\n\n return [segments, new AnimationClip(\"SingleInstanceTimeline\", totalDuration, allTracks)];\n}\n\nfunction getDefaultTrackValues(trackName: string, valueSize: number): number[] {\n const [, property] = trackName.split(\".\");\n if (property === \"position\") {\n return [0, 0, 0];\n } else if (property === \"quaternion\") {\n return [0, 0, 0, 1];\n } else if (property === \"scale\") {\n return [1, 1, 1];\n }\n return new Array(valueSize).fill(0);\n}\n\nfunction getTrackTypeFromName(\n trackName: string,\n): typeof VectorKeyframeTrack | typeof QuaternionKeyframeTrack | typeof NumberKeyframeTrack {\n const [, property] = trackName.split(\".\");\n if (property === \"position\") {\n return VectorKeyframeTrack;\n } else if (property === \"quaternion\") {\n return QuaternionKeyframeTrack;\n } else if (property === \"scale\") {\n return VectorKeyframeTrack;\n }\n return NumberKeyframeTrack;\n}\n", "import { BufferAttribute, BufferGeometry, Material, SkinnedMesh } from \"three\";\nimport * as BufferGeometryUtils from \"three/examples/jsm/utils/BufferGeometryUtils.js\";\n\nexport function mergeSkinnedMeshes(skinnedMeshes: SkinnedMesh[], debug?: boolean): SkinnedMesh {\n const geometries: BufferGeometry[] = [];\n const materials: Material[] = [];\n const skeleton = skinnedMeshes[0].skeleton;\n\n for (const skinnedMesh of skinnedMeshes) {\n const geometry = skinnedMesh.geometry.clone();\n\n const materialIndex = materials.length;\n if (Array.isArray(skinnedMesh.material)) {\n materials.push(...skinnedMesh.material);\n for (let i = 0; i < skinnedMesh.material.length; i++) {\n geometry.addGroup(\n 0,\n geometry.index ? geometry.index.count : geometry.attributes.position.count,\n materialIndex + i,\n );\n }\n } else {\n materials.push(skinnedMesh.material);\n geometry.addGroup(\n 0,\n geometry.index ? geometry.index.count : geometry.attributes.position.count,\n materialIndex,\n );\n }\n\n geometries.push(geometry);\n }\n\n const mergedGeometry = BufferGeometryUtils.mergeGeometries(geometries, true);\n\n if (!mergedGeometry) {\n throw new Error(\"Failed to merge geometries\");\n }\n\n const mergedMesh = new SkinnedMesh(mergedGeometry, materials);\n mergedMesh.skeleton = skeleton;\n mergedMesh.bindMatrix.copy(skinnedMeshes[0].bindMatrix);\n mergedMesh.bindMatrixInverse.copy(skinnedMeshes[0].bindMatrixInverse);\n mergedMesh.bind(skeleton, mergedMesh.bindMatrix);\n\n if (debug) {\n console.log(`Merged into single mesh with ${materials.length} materials`);\n }\n\n addVertexColorsToGeometry(mergedGeometry, materials, debug);\n\n return mergedMesh;\n}\n\nexport function validateAndCleanSkeleton(skinnedMesh: SkinnedMesh): void {\n const skeleton = skinnedMesh.skeleton;\n const nullBoneIndices: number[] = [];\n for (let i = 0; i < skeleton.bones.length; i++) {\n if (!skeleton.bones[i]) {\n nullBoneIndices.push(i);\n }\n }\n if (nullBoneIndices.length > 0) {\n skeleton.bones = skeleton.bones.filter((bone) => bone !== null && bone !== undefined);\n skeleton.update();\n }\n}\n\nfunction addVertexColorsToGeometry(\n geometry: BufferGeometry,\n materials: Material[],\n debug?: boolean,\n): void {\n const positionAttribute = geometry.getAttribute(\"position\");\n\n if (!positionAttribute) {\n console.error(\"No position attribute found in geometry\");\n return;\n }\n\n const vertexCount = positionAttribute.count;\n if (debug) {\n console.log(`Geometry has ${vertexCount} vertices`);\n }\n\n const colors = new Float32Array(vertexCount * 3);\n\n for (let i = 0; i < vertexCount; i++) {\n colors[i * 3] = 1.0; // R\n colors[i * 3 + 1] = 1.0; // G\n colors[i * 3 + 2] = 1.0; // B\n }\n\n const materialColorCodes = {\n // bin material IDs to be replaced by the final colors on the GPU\n hair: [0.0, 0.0, 0.0],\n shirt_short: [0.0, 0.0, 1.0],\n shirt_long: [0.0, 1.0, 0.0],\n pants_short: [0.0, 1.0, 1.0],\n pants_long: [1.0, 0.0, 0.0],\n shoes: [1.0, 0.0, 1.0],\n skin: [1.0, 1.0, 0.0],\n lips: [1.0, 1.0, 1.0],\n eyes_black: [0.5, 0.0, 0.0],\n eyes_white: [0.0, 0.5, 0.0],\n };\n\n if (debug) {\n console.log(\"Geometry groups:\", geometry.groups);\n console.log(\n \"Materials:\",\n materials.map((m: any) => m.name),\n );\n }\n\n // apply colors based on groups\n if (geometry.groups && geometry.groups.length > 0) {\n geometry.groups.forEach((group, groupIndex) => {\n const material = materials[group.materialIndex || groupIndex];\n const materialName = material?.name || `material_${groupIndex}`;\n\n if (debug) {\n console.log(\n `Processing group ${groupIndex}: material \"${materialName}\", start: ${group.start}, count: ${group.count}`,\n );\n }\n\n const materialColor = materialColorCodes[materialName as keyof typeof materialColorCodes] || [\n 1.0, 1.0, 1.0,\n ];\n if (debug) {\n console.log(\n `Using ID color [${materialColor.join(\", \")}] for material \"${materialName}\" (${materialColor[0] === 1.0 && materialColor[1] === 1.0 && materialColor[2] === 0.0 ? \"YELLOW=SKIN\" : materialColor[0] === 0.0 && materialColor[1] === 0.0 && materialColor[2] === 1.0 ? \"BLUE=SHIRT\" : \"OTHER\"})`,\n );\n }\n\n const indexAttribute = geometry.getIndex();\n if (indexAttribute) {\n for (let i = group.start; i < group.start + group.count; i++) {\n const vertexIndex = indexAttribute.getX(i);\n colors[vertexIndex * 3] = materialColor[0];\n colors[vertexIndex * 3 + 1] = materialColor[1];\n colors[vertexIndex * 3 + 2] = materialColor[2];\n }\n } else {\n const startVertex = group.start / 3;\n const vertexCount = group.count / 3;\n for (let i = 0; i < vertexCount; i++) {\n const vertexIndex = startVertex + i;\n colors[vertexIndex * 3] = materialColor[0];\n colors[vertexIndex * 3 + 1] = materialColor[1];\n colors[vertexIndex * 3 + 2] = materialColor[2];\n }\n }\n });\n } else {\n console.warn(\"No geometry groups found, using single material coloring\");\n }\n\n geometry.setAttribute(\"color\", new BufferAttribute(colors, 3));\n if (debug) {\n console.log(`Added per-material vertex colors to ${vertexCount} vertices`);\n }\n}\n", "import {\n Color,\n ColorRepresentation,\n Euler,\n Matrix4,\n Mesh,\n Object3D,\n Quaternion,\n Vector3,\n} from \"three\";\n\nimport { InstancedMesh2 } from \"./InstancedMesh2\";\nimport { UniformValue, UniformValueObj } from \"./utils/SquareDataTexture\";\n\n// TODO add other object3D methods\n// TODO implement parent\n\n/**\n * Represents an instance in an `InstancedMesh2`.\n * This class stores transformation data (position, rotation, scale) and provides methods to manipulate them.\n */\nexport class InstancedEntity {\n /**\n * Indicates if this is an `InstancedEntity`.\n */\n public readonly isInstanceEntity = true;\n /**\n * The unique identifier for this instance (relative to the `InstancedMesh2` it references).\n */\n public readonly id: number;\n /**\n * `InstancedMesh2` to which this instance refers.\n */\n public readonly owner: InstancedMesh2;\n /**\n * The local position.\n */\n public position = new Vector3();\n /**\n * The local scale.\n */\n public scale = new Vector3(1, 1, 1);\n /**\n * The local rotation as `Quaternion`.\n */\n public quaternion = new Quaternion();\n /**\n * The local rotation as `Euler`.\n * This works only if `allowsEuler` is set to `true` in the `InstancedMesh2` constructor parameters.\n */\n public rotation: Euler;\n\n /**\n * The visibility state set and got from `owner.availabilityArray`.\n */\n public get visible(): boolean {\n return this.owner.getVisibilityAt(this.id);\n }\n public set visible(value: boolean) {\n this.owner.setVisibilityAt(this.id, value);\n }\n\n /**\n * The availability set and got from `owner.availabilityArray`.\n */\n public get active(): boolean {\n return this.owner.getActiveAt(this.id);\n }\n public set active(value: boolean) {\n this.owner.setActiveAt(this.id, value);\n }\n\n /**\n * Color set and got from `owner.colorsTexture`.\n */\n public get color(): Color {\n return this.owner.getColorAt(this.id);\n }\n public set color(value: ColorRepresentation) {\n this.owner.setColorAt(this.id, value);\n }\n\n /**\n * Opacity set and got from `owner.colorsTexture`.\n */\n public get opacity(): number {\n return this.owner.getOpacityAt(this.id);\n }\n public set opacity(value: number) {\n this.owner.setOpacityAt(this.id, value);\n }\n\n /**\n * Morph target influences set and got from `owner.morphTexture`.\n */\n public get morph(): Mesh {\n return this.owner.getMorphAt(this.id);\n }\n public set morph(value: Mesh) {\n this.owner.setMorphAt(this.id, value);\n }\n\n /**\n * The local transform matrix got from `owner.matricesTexture`.\n */\n public get matrix(): Matrix4 {\n return this.owner.getMatrixAt(this.id);\n }\n\n /**\n * The world transform matrix got by multiplying the matrix got from `owner.matricesTexture` and `this.owner.matrixWorld`.\n */\n public get matrixWorld(): Matrix4 {\n return this.matrix.premultiply(this.owner.matrixWorld);\n }\n\n /**\n * This object is instantiated automatically by setting `createEntities` to `true` in the `InstancedMesh2` constructor parameters.\n * Dont instantiate this manually.\n * @param owner The `InstancedMesh2` that owns this instance.\n * @param id The unique identifier for this instance within the `InstancedMesh2`.\n * @param useEuler Whether to use Euler rotations in addition to quaternion rotations.\n */\n constructor(owner: InstancedMesh2, id: number, useEuler: boolean) {\n this.id = id;\n this.owner = owner;\n\n if (useEuler) {\n const quaternion = this.quaternion;\n const rotation = (this.rotation = new Euler());\n\n rotation._onChange(() => quaternion.setFromEuler(rotation, false));\n quaternion._onChange(() => rotation.setFromQuaternion(quaternion, undefined, false));\n }\n }\n\n /**\n * Set the transformation matrix to identity matrix.\n */\n public setMatrixIdentity(): void {\n const owner = this.owner;\n const te = owner.matricesTexture._data;\n const id = this.id;\n const offset = id * 16;\n\n te[offset + 0] = 1;\n te[offset + 1] = 0;\n te[offset + 2] = 0;\n te[offset + 3] = 0;\n\n te[offset + 4] = 0;\n te[offset + 5] = 1;\n te[offset + 6] = 0;\n te[offset + 7] = 0;\n\n te[offset + 8] = 0;\n te[offset + 9] = 0;\n te[offset + 10] = 1;\n te[offset + 11] = 0;\n\n te[offset + 12] = 0;\n te[offset + 13] = 0;\n te[offset + 14] = 0;\n te[offset + 15] = 1;\n\n owner.matricesTexture.enqueueUpdate(id);\n owner.bvh?.move(id);\n }\n\n /**\n * Updates the transformation matrix with its current position, quaternion, and scale.\n * The updated matrix is stored in the `owner.matricesTexture`.\n */\n public updateMatrix(): void {\n const owner = this.owner;\n const position = this.position;\n const quaternion = this.quaternion as any;\n const scale = this.scale;\n const te = owner.matricesTexture._data;\n const id = this.id;\n const offset = id * 16;\n\n const x = quaternion._x,\n y = quaternion._y,\n z = quaternion._z,\n w = quaternion._w;\n const x2 = x + x,\n y2 = y + y,\n z2 = z + z;\n const xx = x * x2,\n xy = x * y2,\n xz = x * z2;\n const yy = y * y2,\n yz = y * z2,\n zz = z * z2;\n const wx = w * x2,\n wy = w * y2,\n wz = w * z2;\n\n const sx = scale.x,\n sy = scale.y,\n sz = scale.z;\n\n te[offset + 0] = (1 - (yy + zz)) * sx;\n te[offset + 1] = (xy + wz) * sx;\n te[offset + 2] = (xz - wy) * sx;\n te[offset + 3] = 0;\n\n te[offset + 4] = (xy - wz) * sy;\n te[offset + 5] = (1 - (xx + zz)) * sy;\n te[offset + 6] = (yz + wx) * sy;\n te[offset + 7] = 0;\n\n te[offset + 8] = (xz + wy) * sz;\n te[offset + 9] = (yz - wx) * sz;\n te[offset + 10] = (1 - (xx + yy)) * sz;\n te[offset + 11] = 0;\n\n te[offset + 12] = position.x;\n te[offset + 13] = position.y;\n te[offset + 14] = position.z;\n te[offset + 15] = 1;\n\n owner.matricesTexture.enqueueUpdate(id);\n owner.bvh?.move(id);\n }\n\n /**\n * Updates only the position component of the transformation matrix.\n * This is useful if only position changes, avoiding recalculating the full matrix.\n * The updated matrix is stored in the `owner.matricesTexture`.\n */\n public updateMatrixPosition(): void {\n const owner = this.owner;\n const position = this.position;\n const te = owner.matricesTexture._data;\n const id = this.id;\n const offset = id * 16;\n\n te[offset + 12] = position.x;\n te[offset + 13] = position.y;\n te[offset + 14] = position.z;\n\n owner.matricesTexture.enqueueUpdate(id);\n owner.bvh?.move(id);\n }\n\n /**\n * Retrieves the uniform value associated with the given name.\n * @param name The name of the uniform to retrieve.\n * @param target Optional target object where the uniform value will be written.\n * @returns The retrieved uniform value.\n */\n public getUniform(name: string, target?: UniformValueObj): UniformValue {\n return this.owner.getUniformAt(this.id, name, target);\n }\n\n /**\n * Updates the bones of the skeleton to the instance.\n * @param updateBonesMatrices Whether to update the matrices of the bones. Default is `true`.\n */\n public updateBones(updateBonesMatrices = true): void {\n this.owner.setBonesAt(this.id, updateBonesMatrices);\n }\n\n /**\n * Sets the uniform value for the given name\n * @param name The name of the uniform to set.\n * @param value The new value for the uniform.\n */\n public setUniform(name: string, value: UniformValue): void {\n this.owner.setUniformAt(this.id, name, value);\n }\n\n /**\n * Copies the transformation properties (`position`, `scale`, `quaternion`) of this instance to the specified `Object3D`.\n * @param target The `Object3D` where the transformation properties will be copied.\n */\n public copyTo(target: Object3D): void {\n target.position.copy(this.position);\n target.scale.copy(this.scale);\n target.quaternion.copy(this.quaternion);\n if (this.rotation) target.rotation.copy(this.rotation); // TODO check if this is necessary.. it's probably already synched\n }\n\n /**\n * Applies the matrix transform to the object and updates the object's position, rotation and scale.\n * @param m The matrix to apply.\n * @returns The instance of the object.\n */\n public applyMatrix4(m: Matrix4): this {\n this.matrix.premultiply(m).decompose(this.position, this.quaternion, this.scale);\n return this;\n }\n\n /**\n * Applies the rotation represented by the quaternion to the object.\n * @param q The quaternion representing the rotation to apply.\n * @returns The instance of the object.\n */\n public applyQuaternion(q: Quaternion): this {\n this.quaternion.premultiply(q);\n return this;\n }\n\n /**\n * Rotate an object along an axis in object space. The axis is assumed to be normalized.\n * @param axis A normalized vector in object space.\n * @param angle The angle in radians.\n * @returns The instance of the object.\n */\n public rotateOnAxis(axis: Vector3, angle: number): this {\n _quat.setFromAxisAngle(axis, angle);\n this.quaternion.multiply(_quat);\n return this;\n }\n\n /**\n * Rotate an object along an axis in world space. The axis is assumed to be normalized. Method Assumes no rotated parent.\n * @param axis A normalized vector in world space.\n * @param angle The angle in radians.\n * @returns The instance of the object.\n */\n public rotateOnWorldAxis(axis: Vector3, angle: number): this {\n _quat.setFromAxisAngle(axis, angle);\n this.quaternion.premultiply(_quat);\n return this;\n }\n\n /**\n * Rotates the object around x axis in local space.\n * @param angle The angle to rotate in radians.\n * @returns The instance of the object.\n */\n public rotateX(angle: number): this {\n return this.rotateOnAxis(_xAxis, angle);\n }\n\n /**\n * Rotates the object around y axis in local space.\n * @param angle The angle to rotate in radians.\n * @returns The instance of the object.\n */\n public rotateY(angle: number): this {\n return this.rotateOnAxis(_yAxis, angle);\n }\n\n /**\n * Rotates the object around z axis in local space.\n * @param angle The angle to rotate in radians.\n * @returns The instance of the object.\n */\n public rotateZ(angle: number): this {\n return this.rotateOnAxis(_zAxis, angle);\n }\n\n /**\n * Translate an object by distance along an axis in object space. The axis is assumed to be normalized.\n * @param axis A normalized vector in object space.\n * @param distance The distance to translate.\n * @returns The instance of the object.\n */\n public translateOnAxis(axis: Vector3, distance: number): this {\n _vec3.copy(axis).applyQuaternion(this.quaternion);\n this.position.add(_vec3.multiplyScalar(distance));\n return this;\n }\n\n /**\n * Translates object along x axis in object space by distance units.\n * @param distance The distance to translate.\n * @returns The instance of the object.\n */\n public translateX(distance: number): this {\n return this.translateOnAxis(_xAxis, distance);\n }\n\n /**\n * Translates object along y axis in object space by distance units.\n * @param distance The distance to translate.\n * @returns The instance of the object.\n */\n public translateY(distance: number): this {\n return this.translateOnAxis(_yAxis, distance);\n }\n\n /**\n * Translates object along z axis in object space by distance units.\n * @param distance The distance to translate.\n * @returns The instance of the object.\n */\n public translateZ(distance: number): this {\n return this.translateOnAxis(_zAxis, distance);\n }\n\n /**\n * Removes this entity from its owner instance.\n * @returns The instance of the object.\n */\n public remove(): this {\n this.owner.removeInstances(this.id);\n return this;\n }\n}\n\nconst _quat = new Quaternion();\nconst _vec3 = new Vector3();\nconst _xAxis = new Vector3(1, 0, 0);\nconst _yAxis = new Vector3(0, 1, 0);\nconst _zAxis = new Vector3(0, 0, 1);\n", "import {\n AttachedBindMode,\n BindMode,\n Box3,\n BufferAttribute,\n BufferGeometry,\n Camera,\n Color,\n ColorManagement,\n ColorRepresentation,\n DataTexture,\n DetachedBindMode,\n InstancedBufferAttribute,\n Material,\n Matrix4,\n Mesh,\n Object3D,\n Object3DEventMap,\n Scene,\n Skeleton,\n Sphere,\n TypedArray,\n Vector3,\n WebGLProgramParametersWithUniforms,\n WebGLRenderer,\n} from \"three\";\n\nimport { ColorPartName } from \"../../../CharacterModel\";\n\nimport { CustomSortCallback, OnFrustumEnterCallback } from \"./feature/FrustumCulling\";\nimport { Entity } from \"./feature/Instances\";\nimport { LODInfo } from \"./feature/LOD\";\nimport { InstancedEntity } from \"./InstancedEntity\";\nimport { BVHParams, InstancedMeshBVH } from \"./InstancedMeshBVH\";\nimport { GLInstancedBufferAttribute } from \"./utils/GLInstancedBufferAttribute\";\nimport { SquareDataTexture } from \"./utils/SquareDataTexture\";\n\n// TODO: Add check to not update partial texture if needsuupdate already true\n// TODO: if bvh present, can override?\n// TODO: Use BVH only for raycasting\n// TODO LOD: instancedMeshLOD rendering first nearest levels, look out to transparent\n// TODO LOD: shared customDepthMaterial and customDistanceMaterial?\n// TODO LOD: BVH and handle raycastOnlyFrustum?;\n\n/**\n * Parameters for configuring an `InstancedMesh2` instance.\n */\nexport interface InstancedMesh2Params {\n /**\n * Determines the maximum number of instances that buffers can hold.\n * The buffers will be expanded automatically if necessary.\n * @default 1000\n */\n capacity?: number;\n /**\n * Determines whether to create an array of `InstancedEntity` to easily manipulate instances at the cost of more memory.\n * @default false\n */\n createEntities?: boolean;\n /**\n * Determines whether `InstancedEntity` can use the `rotation` property.\n * If `true` `quaternion` and `rotation` will be synchronized, affecting performance.\n * @default false\n */\n allowsEuler?: boolean;\n /**\n * WebGL renderer instance.\n * If not provided, buffers will be initialized during the first render, resulting in no instances being rendered initially.\n * @default null\n */\n renderer?: WebGLRenderer;\n}\n\n/**\n * Alternative `InstancedMesh` class to support additional features like frustum culling, fast raycasting, LOD and more.\n * @template TData Type for additional instance data.\n * @template TGeometry Type extending `BufferGeometry`.\n * @template TMaterial Type extending `Material` or an array of `Material`.\n * @template TEventMap Type extending `Object3DEventMap`.\n */\nexport class InstancedMesh2<\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n TData = {},\n TGeometry extends BufferGeometry = BufferGeometry,\n TMaterial extends Material | Material[] = Material | Material[],\n TEventMap extends Object3DEventMap = Object3DEventMap,\n> extends Mesh<TGeometry, TMaterial, TEventMap> {\n /**\n * The number of instances rendered in the last frame.\n */\n declare public count: number;\n /**\n * @defaultValue `InstancedMesh2`\n */\n public override readonly type = \"InstancedMesh2\";\n /**\n * Indicates if this is an `InstancedMesh2`.\n */\n public readonly isInstancedMesh2 = true;\n /**\n * An array of `Entity` representing individual instances.\n * This array is only initialized if `createEntities` is set to `true` in the constructor parameters.\n */\n public instances: Entity<TData>[] | null = null;\n /**\n * Attribute storing indices of the instances to be rendered.\n */\n public instanceIndex: GLInstancedBufferAttribute | null = null;\n /**\n * Texture storing matrices for instances.\n */\n public matricesTexture: SquareDataTexture;\n /**\n * Texture storing colors for instances.\n */\n public colorsTexture: SquareDataTexture | null = null;\n /**\n * Texture storing multiple colors per instance for per-material coloring.\n * Stores 8 colors per instance (hair, shirt_short, shirt_long, pants_short, pants_long, shoes, skin, lips)\n * Each row stores 2 colors (8 floats), so we need 4 pixels per instance (4 * 2 = 8 colors)\n */\n public materialColorsTexture: SquareDataTexture | null = null;\n /**\n * Texture storing morph target influences for instances.\n */\n public morphTexture: DataTexture | null = null;\n /**\n * Texture storing bones for instances.\n */\n public boneTexture: SquareDataTexture | null = null;\n /**\n * Texture storing custom uniforms per instance.\n */\n public uniformsTexture: SquareDataTexture | null = null;\n /**\n * This bounding box encloses all instances, which can be calculated with `computeBoundingBox` method.\n * Bounding box isn't computed by default. It needs to be explicitly computed, otherwise it's `null`.\n */\n public boundingBox: Box3 | null = null;\n /**\n * This bounding sphere encloses all instances, which can be calculated with `computeBoundingSphere` method.\n * Bounding sphere is computed during its first render. You may need to recompute it if an instance is transformed.\n */\n public boundingSphere: Sphere | null = null;\n /**\n * BVH structure for optimized culling and intersection testing.\n * It's possible to create the BVH using the `computeBVH` method. Once created it will be updated automatically.\n */\n public bvh: InstancedMeshBVH | null = null;\n /**\n * Custom sort function for instances.\n * It's possible to create the radix sort using the `createRadixSort` method.\n * @default null\n */\n public customSort: CustomSortCallback | null = null;\n /**\n * Flag indicating if raycasting should only consider the last frame frustum culled instances.\n * This is ignored if the bvh has been created.\n * @default false\n */\n public raycastOnlyFrustum = false;\n /**\n * Array storing visibility and availability for instances.\n * [visible0, active0, visible1, active1, ...]\n */\n public readonly availabilityArray: boolean[];\n /**\n * Contains data for managing LOD, allowing different levels of detail for rendering and shadow casting.\n */\n public LODinfo: LODInfo<TData> | null = null;\n /**\n * Flag indicating whether to automatically perform frustum culling before rendering.\n * @default true\n */\n public autoUpdate = true;\n /**\n * Either `AttachedBindMode` or `DetachedBindMode`. `AttachedBindMode` means the skinned mesh shares the same world space as the skeleton.\n * This is not true when using `DetachedBindMode` which is useful when sharing a skeleton across multiple skinned meshes.\n * @default `AttachedBindMode`\n */\n public bindMode: BindMode = AttachedBindMode;\n /**\n * The base matrix that is used for the bound bone transforms.\n */\n public bindMatrix: Matrix4 | null = null;\n /**\n * The base matrix that is used for resetting the bound bone transforms.\n */\n public bindMatrixInverse: Matrix4 | null = null;\n /**\n * Skeleton representing the bone hierarchy of the skinned mesh.\n */\n public skeleton: Skeleton | null = null;\n /**\n * Callback function called if an instance is inside the frustum.\n */\n public onFrustumEnter: OnFrustumEnterCallback | null = null;\n /** @internal */ _renderer: WebGLRenderer | null = null;\n /** @internal */ _instancesCount = 0;\n /** @internal */ _instancesArrayCount = 0;\n /** @internal */ _perObjectFrustumCulled = true;\n /** @internal */ _sortObjects = false;\n /** @internal */ _capacity: number;\n /** @internal */ _indexArrayNeedsUpdate = false;\n /** @internal */ _geometry: TGeometry;\n /** @internal */ _parentLOD: InstancedMesh2;\n protected readonly _allowsEuler: boolean;\n protected readonly _tempInstance: InstancedEntity;\n protected _useOpacity = false;\n protected _currentMaterial: Material | null = null;\n protected _customProgramCacheKeyBase: (() => string) | null = null;\n protected _onBeforeCompileBase:\n | ((parameters: WebGLProgramParametersWithUniforms, renderer: WebGLRenderer) => void)\n | null = null;\n protected _propertiesGetBase: ((obj: unknown) => unknown) | null = null;\n protected _propertiesGetMap = new WeakMap<Material, (obj: unknown) => unknown>();\n protected _properties = new WeakMap<Material, unknown>();\n protected _freeIds: number[] = [];\n protected _createEntities: boolean;\n\n // HACK TO MAKE IT WORK WITHOUT UPDATE CORE\n /** @internal */ isInstancedMesh = true; // must be set to use instancing rendering\n /** @internal */ instanceMatrix = new InstancedBufferAttribute(new Float32Array(0), 16); // must be init to avoid exception\n /** @internal */ instanceColor = null; // must be null to avoid exception\n\n /**\n * The capacity of the instance buffers.\n */\n public get capacity(): number {\n return this._capacity;\n }\n\n /**\n * The number of active instances.\n */\n public get instancesCount(): number {\n return this._instancesCount;\n }\n\n /**\n * Determines if per-instance frustum culling is enabled.\n * @default true\n */\n public get perObjectFrustumCulled(): boolean {\n return this._perObjectFrustumCulled;\n }\n public set perObjectFrustumCulled(value: boolean) {\n this._perObjectFrustumCulled = value;\n this._indexArrayNeedsUpdate = true;\n }\n\n /**\n * Determines if objects should be sorted before rendering.\n * @default false\n */\n public get sortObjects(): boolean {\n return this._sortObjects;\n }\n public set sortObjects(value: boolean) {\n this._sortObjects = value;\n this._indexArrayNeedsUpdate = true;\n }\n\n /**\n * An instance of `BufferGeometry` (or derived classes), defining the object's structure.\n */\n // @ts-expect-error It's defined as a property, but is overridden as an accessor.\n public override get geometry(): TGeometry {\n return this._geometry;\n }\n public override set geometry(value: TGeometry) {\n this._geometry = value;\n this.patchGeometry(value);\n }\n\n /** @internal */\n // eslint-disable-next-line @typescript-eslint/unified-signatures\n constructor(\n geometry: TGeometry,\n material: TMaterial,\n params?: InstancedMesh2Params,\n LOD?: InstancedMesh2,\n );\n constructor(geometry: TGeometry, material: TMaterial, params?: InstancedMesh2Params);\n /**\n * @remarks Geometry cannot be shared. If reused, it will be cloned.\n * @param geometry An instance of `BufferGeometry`.\n * @param material A single or an array of `Material`.\n * @param params Optional configuration parameters object. See `InstancedMesh2Params` for details.\n */\n constructor(\n geometry: TGeometry,\n material: TMaterial,\n params: InstancedMesh2Params = {},\n LOD?: InstancedMesh2,\n ) {\n if (!geometry) throw new Error('\"geometry\" is mandatory.');\n if (!material) throw new Error('\"material\" is mandatory.');\n\n const { allowsEuler, renderer, createEntities, capacity } = params;\n\n super(geometry, material);\n\n const finalCapacity = capacity && capacity > 0 ? capacity : _defaultCapacity;\n this._renderer = renderer ?? null;\n this._capacity = finalCapacity;\n this._parentLOD = LOD!;\n this._geometry = geometry;\n this.material = material;\n this._allowsEuler = allowsEuler ?? false;\n // @ts-ignore\n this._tempInstance = new InstancedEntity(this, -1, allowsEuler ?? false);\n this.availabilityArray = LOD?.availabilityArray ?? new Array(finalCapacity * 2);\n this._createEntities = createEntities ?? false;\n\n this.initIndexAttribute();\n this.initMatricesTexture();\n }\n\n public override onBeforeShadow(\n renderer: WebGLRenderer,\n scene: Scene,\n camera: Camera,\n shadowCamera: Camera,\n geometry: BufferGeometry,\n depthMaterial: Material,\n group: any,\n ): void {\n this.patchMaterial(renderer, depthMaterial);\n\n // if multimaterial we compute frustum culling only on first material\n if (!this.instanceIndex || (group && !this.isFirstGroup(group.materialIndex))) return;\n\n if (this.autoUpdate) {\n this.performFrustumCulling(shadowCamera, shadowCamera);\n }\n\n this.matricesTexture.update(renderer);\n this.colorsTexture?.update(renderer);\n this.uniformsTexture?.update(renderer);\n this.boneTexture?.update(renderer);\n // TODO convert also morph texture to squared texture to use partial update\n }\n\n public override onBeforeRender(\n renderer: WebGLRenderer,\n scene: Scene,\n camera: Camera,\n geometry: BufferGeometry,\n material: Material,\n group: any,\n ): void {\n this.patchMaterial(renderer, material);\n\n if (!this.instanceIndex) {\n this._renderer = renderer;\n return;\n }\n\n // if multimaterial we compute frustum culling only on first material\n if (group && !this.isFirstGroup(group.materialIndex)) return;\n\n if (this.autoUpdate) {\n this.performFrustumCulling(camera);\n }\n\n this.matricesTexture.update(renderer);\n this.colorsTexture?.update(renderer);\n this.uniformsTexture?.update(renderer);\n this.boneTexture?.update(renderer);\n // TODO convert also morph texture to squared texture to use partial update\n }\n\n public override onAfterShadow(\n renderer: WebGLRenderer,\n scene: Scene,\n camera: Camera,\n shadowCamera: Camera,\n geometry: BufferGeometry,\n depthMaterial: Material,\n group: any,\n ): void {\n this.unpatchMaterial(renderer, depthMaterial);\n }\n\n public override onAfterRender(\n renderer: WebGLRenderer,\n scene: Scene,\n camera: Camera,\n geometry: BufferGeometry,\n material: Material,\n group: any,\n ): void {\n this.unpatchMaterial(renderer, material);\n if (this.instanceIndex || (group && !this.isLastGroup(group.materialIndex))) return;\n this.initIndexAttribute();\n }\n\n protected isFirstGroup(materialIndex: number): boolean {\n const materials = this.material as Material[];\n\n for (let i = 0; i <= materialIndex; i++) {\n if (materials[i].visible) {\n return i === materialIndex;\n }\n }\n return false;\n }\n\n protected isLastGroup(materialIndex: number): boolean {\n const materials = this.material as Material[];\n for (let i = materials.length - 1; i >= materialIndex; i--) {\n if (materials[i].visible) {\n return i === materialIndex;\n }\n }\n return false;\n }\n\n protected initIndexAttribute(): void {\n if (!this._renderer) {\n this.count = 0;\n return;\n }\n\n const gl = this._renderer.getContext() as WebGL2RenderingContext;\n const capacity = this._capacity;\n const array = new Uint32Array(capacity);\n\n for (let i = 0; i < capacity; i++) {\n array[i] = i;\n }\n\n this.instanceIndex = new GLInstancedBufferAttribute(gl, gl.UNSIGNED_INT, 1, 4, array);\n this._geometry.setAttribute(\"instanceIndex\", this.instanceIndex as unknown as BufferAttribute);\n }\n\n protected initMatricesTexture(): void {\n if (!this._parentLOD) {\n this.matricesTexture = new SquareDataTexture(Float32Array, 4, 4, this._capacity);\n }\n }\n\n protected initColorsTexture(): void {\n if (!this._parentLOD) {\n this.colorsTexture = new SquareDataTexture(Float32Array, 4, 1, this._capacity);\n this.colorsTexture.colorSpace = ColorManagement.workingColorSpace;\n this.colorsTexture._data.fill(1);\n this.materialsNeedsUpdate();\n }\n }\n\n protected initMaterialColorsTexture(): void {\n if (!this._parentLOD) {\n // 8 colors per instance: hair, shirt_short, shirt_long, pants_short, pants_long, shoes, skin, lips\n // Each color is 4 floats (RGBA), each pixel stores 1 color, so 8 pixels per instance\n this.materialColorsTexture = new SquareDataTexture(Float32Array, 4, 8, this._capacity);\n this.materialColorsTexture.colorSpace = ColorManagement.workingColorSpace;\n this.materialColorsTexture._data.fill(1);\n this.materialsNeedsUpdate();\n }\n }\n\n public materialsNeedsUpdate(): void {\n if ((this.material as Material).isMaterial) {\n (this.material as Material).needsUpdate = true;\n return;\n }\n\n for (const material of this.material as Material[]) {\n material.needsUpdate = true;\n }\n }\n\n protected patchGeometry(geometry: TGeometry): void {\n const instanceIndex = geometry.getAttribute(\n \"instanceIndex\",\n ) as unknown as GLInstancedBufferAttribute; // TODO fix d.ts\n\n if (instanceIndex) {\n if (instanceIndex === this.instanceIndex) return;\n\n console.warn(\"The geometry has been cloned because it was already used.\");\n geometry = geometry.clone();\n geometry.deleteAttribute(\"instanceIndex\"); // TODO rename it it ez_instancedIndex\n }\n\n if (this.instanceIndex) {\n geometry.setAttribute(\"instanceIndex\", this.instanceIndex as unknown as BufferAttribute); // TODO fix d.ts\n }\n }\n\n protected _customProgramCacheKey = (): string => {\n const baseKey = this._customProgramCacheKeyBase\n ? this._customProgramCacheKeyBase.call(this._currentMaterial)\n : \"\";\n return `ezInstancedMesh2_${this.id}_${!!this.colorsTexture}_${this._useOpacity}_${!!this.boneTexture}_${!!this.uniformsTexture}_${!!this.materialColorsTexture}_${baseKey}`;\n };\n\n protected _onBeforeCompile = (\n shader: WebGLProgramParametersWithUniforms,\n renderer: WebGLRenderer,\n ): void => {\n if (this._onBeforeCompileBase)\n this._onBeforeCompileBase.call(this._currentMaterial, shader, renderer);\n\n shader.instancing = false;\n\n shader.defines ??= {};\n shader.defines[\"USE_INSTANCING_INDIRECT\"] = \"\";\n\n shader.uniforms.matricesTexture = { value: this.matricesTexture };\n\n if (this.uniformsTexture) {\n shader.uniforms.uniformsTexture = { value: this.uniformsTexture };\n const { vertex, fragment } = this.uniformsTexture.getUniformsGLSL(\n \"uniformsTexture\",\n \"instanceIndex\",\n \"uint\",\n );\n shader.vertexShader = shader.vertexShader.replace(\"void main() {\", vertex);\n shader.fragmentShader = shader.fragmentShader.replace(\"void main() {\", fragment);\n }\n\n if (this.colorsTexture && shader.fragmentShader.includes(\"#include <color_pars_fragment>\")) {\n shader.defines[\"USE_INSTANCING_COLOR_INDIRECT\"] = \"\";\n shader.uniforms.colorsTexture = { value: this.colorsTexture };\n shader.vertexShader = shader.vertexShader.replace(\n \"<color_vertex>\",\n \"<instanced_color_vertex>\",\n );\n\n if (shader.vertexColors) {\n shader.defines[\"USE_VERTEX_COLOR\"] = \"\";\n }\n\n if (this._useOpacity) {\n shader.defines[\"USE_COLOR_ALPHA\"] = \"\";\n } else {\n shader.defines[\"USE_COLOR\"] = \"\";\n }\n }\n\n if (\n this.materialColorsTexture &&\n shader.fragmentShader.includes(\"#include <color_pars_fragment>\")\n ) {\n shader.defines[\"USE_INSTANCING_MATERIAL_COLORS\"] = \"\";\n shader.uniforms.materialColorsTexture = { value: this.materialColorsTexture };\n shader.vertexShader = shader.vertexShader.replace(\n \"#include <color_vertex>\",\n \"#include <instanced_material_color_vertex>\",\n );\n\n if (shader.vertexColors) {\n shader.defines[\"USE_VERTEX_COLOR\"] = \"\";\n }\n }\n\n if (this.boneTexture) {\n shader.defines[\"USE_SKINNING\"] = \"\";\n shader.defines[\"USE_INSTANCING_SKINNING\"] = \"\";\n shader.uniforms.bindMatrix = { value: this.bindMatrix };\n shader.uniforms.bindMatrixInverse = { value: this.bindMatrixInverse };\n shader.uniforms.bonesPerInstance = { value: this.skeleton!.bones.length };\n shader.uniforms.boneTexture = { value: this.boneTexture };\n }\n };\n\n protected patchMaterial(renderer: WebGLRenderer, material: Material): void {\n this._currentMaterial = material;\n this._customProgramCacheKeyBase = material.customProgramCacheKey; // avoid .bind(material); to prevent memory leak\n this._onBeforeCompileBase = material.onBeforeCompile;\n material.customProgramCacheKey = this._customProgramCacheKey;\n material.onBeforeCompile = this._onBeforeCompile;\n\n const propertiesBase = renderer.properties;\n\n if (!this._properties.has(material)) {\n const materialProperties = {};\n this._properties.set(material, materialProperties);\n\n const propertiesGetBase = (this._propertiesGetBase = propertiesBase.get);\n\n this._propertiesGetMap.set(material, (object) => {\n if (object === material) return materialProperties;\n return propertiesGetBase!(object);\n });\n }\n\n const mappedGet = this._propertiesGetMap.get(material);\n if (mappedGet) {\n propertiesBase.get = mappedGet;\n }\n }\n\n protected unpatchMaterial(renderer: WebGLRenderer, material: Material): void {\n this._currentMaterial = null;\n if (this._propertiesGetBase) {\n renderer.properties.get = this._propertiesGetBase;\n }\n material.onBeforeCompile = this._onBeforeCompileBase!;\n material.customProgramCacheKey = this._customProgramCacheKeyBase!;\n this._onBeforeCompileBase = null;\n this._customProgramCacheKeyBase = null;\n }\n\n /**\n * Creates and computes the BVH (Bounding Volume Hierarchy) for the instances.\n * It's recommended to create it when all the instance matrices have been assigned.\n * Once created it will be updated automatically.\n * @param config Optional configuration parameters object. See `BVHParams` for details.\n */\n public computeBVH(config: BVHParams = {}): void {\n if (!this.bvh)\n this.bvh = new InstancedMeshBVH(\n // @ts-ignore\n this,\n config.margin,\n config.getBBoxFromBSphere,\n config.accurateCulling,\n );\n this.bvh.clear();\n this.bvh.create();\n }\n\n /**\n * Disposes of the BVH structure.\n */\n public disposeBVH(): void {\n this.bvh = null;\n }\n\n /**\n * Sets the local transformation matrix for a specific instance.\n * @param id The index of the instance.\n * @param matrix A `Matrix4` representing the local transformation to apply to the instance.\n */\n public setMatrixAt(id: number, matrix: Matrix4): void {\n matrix.toArray(this.matricesTexture._data, id * 16);\n\n if (this.instances) {\n const instance = this.instances[id];\n matrix.decompose(instance.position, instance.quaternion, instance.scale);\n }\n\n this.matricesTexture.enqueueUpdate(id);\n this.bvh?.move(id);\n }\n\n /**\n * Gets the local transformation matrix of a specific instance.\n * @param id The index of the instance.\n * @param matrix Optional `Matrix4` to store the result.\n * @returns The transformation matrix of the instance.\n */\n public getMatrixAt(id: number, matrix = _tempMat4): Matrix4 {\n return matrix.fromArray(this.matricesTexture._data, id * 16);\n }\n\n /**\n * Retrieves the position of a specific instance.\n * @param index The index of the instance.\n * @param target Optional `Vector3` to store the result.\n * @returns The position of the instance as a `Vector3`.\n */\n public getPositionAt(index: number, target = _position): Vector3 {\n const offset = index * 16;\n const array = this.matricesTexture._data;\n\n target.x = array[offset + 12];\n target.y = array[offset + 13];\n target.z = array[offset + 14];\n\n return target;\n }\n\n /** @internal */\n public getPositionAndMaxScaleOnAxisAt(index: number, position: Vector3): number {\n const offset = index * 16;\n const array = this.matricesTexture._data;\n\n const te0 = array[offset + 0];\n const te1 = array[offset + 1];\n const te2 = array[offset + 2];\n const scaleXSq = te0 * te0 + te1 * te1 + te2 * te2;\n\n const te4 = array[offset + 4];\n const te5 = array[offset + 5];\n const te6 = array[offset + 6];\n const scaleYSq = te4 * te4 + te5 * te5 + te6 * te6;\n\n const te8 = array[offset + 8];\n const te9 = array[offset + 9];\n const te10 = array[offset + 10];\n const scaleZSq = te8 * te8 + te9 * te9 + te10 * te10;\n\n position.x = array[offset + 12];\n position.y = array[offset + 13];\n position.z = array[offset + 14];\n\n return Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n }\n\n /** @internal */\n public applyMatrixAtToSphere(\n index: number,\n sphere: Sphere,\n center: Vector3,\n radius: number,\n ): void {\n const offset = index * 16;\n const array = this.matricesTexture._data;\n\n const te0 = array[offset + 0];\n const te1 = array[offset + 1];\n const te2 = array[offset + 2];\n const te3 = array[offset + 3];\n const te4 = array[offset + 4];\n const te5 = array[offset + 5];\n const te6 = array[offset + 6];\n const te7 = array[offset + 7];\n const te8 = array[offset + 8];\n const te9 = array[offset + 9];\n const te10 = array[offset + 10];\n const te11 = array[offset + 11];\n const te12 = array[offset + 12];\n const te13 = array[offset + 13];\n const te14 = array[offset + 14];\n const te15 = array[offset + 15];\n\n const position = sphere.center;\n const x = center.x;\n const y = center.y;\n const z = center.z;\n const w = 1 / (te3 * x + te7 * y + te11 * z + te15);\n\n position.x = (te0 * x + te4 * y + te8 * z + te12) * w;\n position.y = (te1 * x + te5 * y + te9 * z + te13) * w;\n position.z = (te2 * x + te6 * y + te10 * z + te14) * w;\n\n const scaleXSq = te0 * te0 + te1 * te1 + te2 * te2;\n const scaleYSq = te4 * te4 + te5 * te5 + te6 * te6;\n const scaleZSq = te8 * te8 + te9 * te9 + te10 * te10;\n\n sphere.radius = radius * Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n }\n\n /**\n * Sets the visibility of a specific instance.\n * @param id The index of the instance.\n * @param visible Whether the instance should be visible.\n */\n public setVisibilityAt(id: number, visible: boolean): void {\n this.availabilityArray[id * 2] = visible;\n this._indexArrayNeedsUpdate = true;\n }\n\n /**\n * Gets the visibility of a specific instance.\n * @param id The index of the instance.\n * @returns Whether the instance is visible.\n */\n public getVisibilityAt(id: number): boolean {\n return this.availabilityArray[id * 2];\n }\n\n /**\n * Sets the availability of a specific instance.\n * @param id The index of the instance.\n * @param active Whether the instance is active (not deleted).\n */\n public setActiveAt(id: number, active: boolean): void {\n this.availabilityArray[id * 2 + 1] = active;\n this._indexArrayNeedsUpdate = true;\n }\n\n /**\n * Gets the availability of a specific instance.\n * @param id The index of the instance.\n * @returns Whether the instance is active (not deleted).\n */\n public getActiveAt(id: number): boolean {\n return this.availabilityArray[id * 2 + 1];\n }\n\n /**\n * Indicates if a specific instance is visible and active.\n * @param id The index of the instance.\n * @returns Whether the instance is visible and active.\n */\n public getActiveAndVisibilityAt(id: number): boolean {\n const offset = id * 2;\n const availabilityArray = this.availabilityArray;\n return availabilityArray[offset] && availabilityArray[offset + 1];\n }\n\n /**\n * Set if a specific instance is visible and active.\n * @param id The index of the instance.\n * @param value Whether the instance is active and active (not deleted).\n */\n public setActiveAndVisibilityAt(id: number, value: boolean): void {\n const offset = id * 2;\n const availabilityArray = this.availabilityArray;\n availabilityArray[offset] = value;\n availabilityArray[offset + 1] = value;\n this._indexArrayNeedsUpdate = true;\n }\n\n /**\n * Sets the color of a specific instance.\n * @param id The index of the instance.\n * @param color The color to assign to the instance.\n */\n public setColorAt(id: number, color: ColorRepresentation): void {\n if (this.colorsTexture === null) {\n this.initColorsTexture();\n }\n\n if ((color as Color).isColor) {\n (color as Color).toArray(this.colorsTexture!._data, id * 4);\n } else {\n _tempCol.set(color).toArray(this.colorsTexture!._data, id * 4);\n }\n\n this.colorsTexture!.enqueueUpdate(id);\n }\n\n /**\n * Gets the color of a specific instance.\n * @param id The index of the instance.\n * @param color Optional `Color` to store the result.\n * @returns The color of the instance.\n */\n public getColorAt(id: number, color = _tempCol): Color {\n return color.fromArray(this.colorsTexture!._data, id * 4);\n }\n\n /**\n * Sets the opacity of a specific instance.\n * @param id The index of the instance.\n * @param value The opacity value to assign.\n */\n public setOpacityAt(id: number, value: number): void {\n if (!this._useOpacity) {\n if (this.colorsTexture === null) {\n this.initColorsTexture();\n } else {\n this.materialsNeedsUpdate();\n }\n this._useOpacity = true;\n }\n\n this.colorsTexture!._data[id * 4 + 3] = value;\n this.colorsTexture!.enqueueUpdate(id);\n }\n\n /**\n * Gets the opacity of a specific instance.\n * @param id The index of the instance.\n * @returns The opacity of the instance.\n */\n public getOpacityAt(id: number): number {\n if (!this._useOpacity) return 1;\n return this.colorsTexture!._data[id * 4 + 3];\n }\n\n /**\n * Sets material-specific colors for an instance.\n * @param id The index of the instance.\n * @param materialColors Object containing colors for different materials.\n */\n public setMaterialColorsAt(id: number, materialColors: Map<ColorPartName, Color>): void {\n if (this.materialColorsTexture === null) {\n this.initMaterialColorsTexture();\n }\n\n const materialOrder = [\n \"hair\",\n \"shirt_short\",\n \"shirt_long\",\n \"pants_short\",\n \"pants_long\",\n \"shoes\",\n \"skin\",\n \"lips\",\n ];\n const baseOffset = id * 8 * 4; // 8 colors per instance, 4 floats per color\n\n materialOrder.forEach((materialName, index) => {\n const color = materialColors.get(materialName as ColorPartName);\n if (color !== undefined) {\n const offset = baseOffset + index * 4;\n this.materialColorsTexture!._data[offset] = color.r;\n this.materialColorsTexture!._data[offset + 1] = color.g;\n this.materialColorsTexture!._data[offset + 2] = color.b;\n this.materialColorsTexture!._data[offset + 3] = 1.0; // Alpha\n }\n });\n\n this.materialColorsTexture!.enqueueUpdate(id);\n }\n\n /**\n * Gets material-specific colors for an instance.\n * @param id The index of the instance.\n * @returns Object containing colors for different materials.\n */\n public getMaterialColorsAt(id: number): {\n hair: Color;\n shirt_short: Color;\n shirt_long: Color;\n pants_short: Color;\n pants_long: Color;\n shoes: Color;\n skin: Color;\n lips: Color;\n } | null {\n if (!this.materialColorsTexture) return null;\n\n const materialOrder = [\n \"hair\",\n \"shirt_short\",\n \"shirt_long\",\n \"pants_short\",\n \"pants_long\",\n \"shoes\",\n \"skin\",\n \"lips\",\n ];\n const baseOffset = id * 8 * 4; // 8 colors per instance, 4 floats per color\n const result = {} as any;\n\n materialOrder.forEach((materialName, index) => {\n const offset = baseOffset + index * 4;\n const r = this.materialColorsTexture!._data[offset];\n const g = this.materialColorsTexture!._data[offset + 1];\n const b = this.materialColorsTexture!._data[offset + 2];\n result[materialName] = new Color(r, g, b);\n });\n\n return result;\n }\n\n /**\n * Copies `position`, `quaternion`, and `scale` of a specific instance to the specified target `Object3D`.\n * @param id The index of the instance.\n * @param target The `Object3D` where to copy transformation data.\n */\n public copyTo(id: number, target: Object3D): void {\n this.getMatrixAt(id, target.matrix).decompose(target.position, target.quaternion, target.scale);\n }\n\n /**\n * Computes the bounding box that encloses all instances, and updates the `boundingBox` attribute.\n */\n public computeBoundingBox(): void {\n const geometry = this._geometry;\n const count = this._instancesArrayCount;\n\n this.boundingBox ??= new Box3();\n if (geometry.boundingBox === null) geometry.computeBoundingBox();\n\n const geoBoundingBox = geometry.boundingBox!;\n const boundingBox = this.boundingBox;\n\n boundingBox.makeEmpty();\n\n for (let i = 0; i < count; i++) {\n if (!this.getActiveAt(i)) continue;\n _box3.copy(geoBoundingBox).applyMatrix4(this.getMatrixAt(i));\n boundingBox.union(_box3);\n }\n }\n\n /**\n * Computes the bounding sphere that encloses all instances, and updates the `boundingSphere` attribute.\n */\n public computeBoundingSphere(): void {\n const geometry = this._geometry;\n const count = this._instancesArrayCount;\n\n this.boundingSphere ??= new Sphere();\n if (geometry.boundingSphere === null) geometry.computeBoundingSphere();\n\n const geoBoundingSphere = geometry.boundingSphere!;\n const boundingSphere = this.boundingSphere;\n\n boundingSphere.makeEmpty();\n\n for (let i = 0; i < count; i++) {\n if (!this.getActiveAt(i)) continue;\n _sphere.copy(geoBoundingSphere).applyMatrix4(this.getMatrixAt(i));\n boundingSphere.union(_sphere);\n }\n }\n\n public override clone(recursive?: boolean): this {\n // wrong three d.ts\n const params: InstancedMesh2Params = {\n capacity: this._capacity,\n renderer: this._renderer!,\n allowsEuler: this._allowsEuler,\n createEntities: this._createEntities,\n };\n return new (this as any).constructor(this.geometry, this.material, params).copy(\n this,\n recursive,\n );\n }\n\n public override copy(argSource: Object3D, recursive?: boolean): this {\n // @ts-ignore\n super.copy(argSource, recursive);\n\n const source = argSource as unknown as InstancedMesh2<TData>;\n\n this.count = source._capacity;\n this._instancesCount = source._instancesCount;\n this._instancesArrayCount = source._instancesArrayCount;\n this._capacity = source._capacity;\n\n if (source.boundingBox !== null) this.boundingBox = source.boundingBox.clone();\n if (source.boundingSphere !== null) this.boundingSphere = source.boundingSphere.clone();\n\n this.matricesTexture = source.matricesTexture.clone(); // TODO we can avoid cloning it because it already exists\n // @ts-ignore\n this.matricesTexture.image.data = (this.matricesTexture.image.data as TypedArray).slice();\n\n if (source.colorsTexture !== null) {\n this.colorsTexture = source.colorsTexture.clone();\n // @ts-ignore\n this.colorsTexture.image.data = (this.colorsTexture.image.data as TypedArray).slice();\n }\n\n if (source.uniformsTexture !== null) {\n this.uniformsTexture = source.uniformsTexture.clone();\n // @ts-ignore\n this.uniformsTexture.image.data = (this.uniformsTexture.image.data as TypedArray).slice();\n }\n\n if (source.morphTexture !== null) {\n this.morphTexture = source.morphTexture.clone();\n // @ts-ignore\n this.morphTexture.image.data = (this.morphTexture.image.data as TypedArray).slice();\n }\n\n if (source.boneTexture !== null) {\n this.boneTexture = source.boneTexture.clone();\n // @ts-ignore\n this.boneTexture.image.data = (this.boneTexture.image.data as TypedArray).slice(); // TODO check if they fix d.ts\n }\n\n // TODO copies and handle LOD?\n\n return this;\n }\n\n /**\n * Frees the GPU-related resources allocated.\n */\n public dispose(): void {\n this.dispatchEvent<any>({ type: \"dispose\" });\n\n this.matricesTexture.dispose();\n this.colorsTexture?.dispose();\n this.morphTexture?.dispose();\n this.boneTexture?.dispose();\n this.uniformsTexture?.dispose();\n }\n\n public override updateMatrixWorld(force?: boolean): void {\n super.updateMatrixWorld(force);\n\n if (!this.bindMatrixInverse) return;\n\n if (this.bindMode === AttachedBindMode) {\n this.bindMatrixInverse.copy(this.matrixWorld).invert();\n } else if (this.bindMode === DetachedBindMode) {\n this.bindMatrixInverse.copy(this.bindMatrix!).invert();\n } else {\n console.warn(\"Unrecognized bindMode: \" + this.bindMode);\n }\n }\n}\n\nconst _defaultCapacity = 1000;\nconst _box3 = new Box3();\nconst _sphere = new Sphere();\nconst _tempMat4 = new Matrix4();\nconst _tempCol = new Color();\nconst _position = new Vector3();\n", "import { Box3, Matrix4, Raycaster, Sphere, Vector3 } from \"three\";\nimport { MeshBVH } from \"three-mesh-bvh\";\n\nimport { LODLevel } from \"./feature/LOD\";\nimport { InstancedMesh2 } from \"./InstancedMesh2\";\n\n// Type definitions for callback functions (simplified for three-mesh-bvh)\nexport type onFrustumIntersectionCallback<T, U> = (nodeIndex: number) => void;\nexport type onFrustumIntersectionLODCallback<T, U> = (nodeIndex: number, level: number) => void;\nexport type onIntersectionCallback<T> = (nodeIndex: number) => void;\nexport type onIntersectionRayCallback<T> = (nodeIndex: number) => void;\n\n// Helper functions (adapted from bvh.js)\nfunction box3ToArray(box: Box3, array: Float32Array): Float32Array {\n array[0] = box.min.x;\n array[1] = box.max.x;\n array[2] = box.min.y;\n array[3] = box.max.y;\n array[4] = box.min.z;\n array[5] = box.max.z;\n return array;\n}\n\nfunction vec3ToArray(vec: Vector3, array: Float32Array): Float32Array {\n array[0] = vec.x;\n array[1] = vec.y;\n array[2] = vec.z;\n return array;\n}\n\n// TODO getBoxFromSphere updated if change geometry (and create accessor)\n// TODO accurateCulling in bvh.js?\n// TODO use params in constructor\n// TODO: intersectBox optional intersectCallback\n\n/**\n * Parameters for configuring the BVH (Bounding Volume Hierarchy).\n */\nexport interface BVHParams {\n /**\n * Margin applied to accommodate animated or moving objects.\n * Improves BVH update performance but slows down frustum culling and raycasting.\n * For static objects, set to 0 to optimize culling and raycasting efficiency.\n * @default 0\n */\n margin?: number;\n /**\n * Uses the geometry bounding sphere to compute instance bounding boxes.\n * Otherwise it's calculated by applying the object's matrix to all 8 bounding box points.\n * This is faster but less precise. Useful for moving objects.\n * Only works if the geometry's bounding sphere is centered at the origin.\n * @default false\n */\n getBBoxFromBSphere?: boolean;\n /**\n * Enables accurate frustum culling by checking intersections without applying margin to the bounding box.\n * @default true\n */\n accurateCulling?: boolean;\n}\n\ninterface SphereTarget {\n centerX: number;\n centerY: number;\n centerZ: number;\n maxScale: number;\n}\n\n/**\n * Class to manage BVH (Bounding Volume Hierarchy) for `InstancedMesh2`.\n * Provides methods for managing bounding volumes, frustum culling, raycasting, and bounding box computation.\n */\nexport class InstancedMeshBVH {\n /**\n * The target `InstancedMesh2` object that the BVH is managing.\n */\n public target: InstancedMesh2;\n /**\n * The geometry bounding box of the target.\n */\n public geoBoundingBox: Box3;\n /**\n * The BVH instance used to organize bounding volumes.\n */\n public bvh: MeshBVH | null = null;\n /**\n * A map that stores the BVH nodes for each instance.\n */\n public nodesMap = new Map<number, any>();\n /**\n * Enables accurate frustum culling by checking intersections without applying margin to the bounding box.\n */\n public accurateCulling: boolean;\n protected LODsMap = new Map<LODLevel[], Float32Array>();\n protected _margin: number;\n protected _origin: Float32Array;\n protected _dir: Float32Array;\n protected _boxArray: Float32Array | null = null;\n protected _cameraPos: Float32Array;\n protected _getBoxFromSphere: boolean;\n protected _geoBoundingSphere: Sphere | null = null;\n protected _sphereTarget: SphereTarget | null = null;\n\n /**\n * @param target The target `InstancedMesh2`.\n * @param margin The margin applied for bounding box calculations (default is 0).\n * @param getBBoxFromBSphere Flag to determine if instance bounding boxes should be computed from the geometry bounding sphere. Faster but less precise (default is false).\n * @param accurateCulling Flag to enable accurate frustum culling without considering margin (default is true).\n */\n constructor(\n target: InstancedMesh2,\n margin = 0,\n getBBoxFromBSphere = false,\n accurateCulling = true,\n ) {\n this.target = target;\n this.accurateCulling = accurateCulling;\n this._margin = margin;\n\n const geometry = target._geometry;\n\n if (!geometry.boundingBox) geometry.computeBoundingBox();\n this.geoBoundingBox = geometry.boundingBox!;\n\n if (getBBoxFromBSphere) {\n if (!geometry.boundingSphere) geometry.computeBoundingSphere();\n\n const center = geometry.boundingSphere!.center;\n if (center.x === 0 && center.y === 0 && center.z === 0) {\n this._geoBoundingSphere = geometry.boundingSphere!;\n this._sphereTarget = { centerX: 0, centerY: 0, centerZ: 0, maxScale: 0 };\n } else {\n console.warn('\"getBoxFromSphere\" is ignored because geometry is not centered.');\n getBBoxFromBSphere = false;\n }\n }\n\n // Note: three-mesh-bvh works differently - we'll create a simplified implementation\n this.bvh = null; // Will be created when needed\n this._origin = new Float32Array(3);\n this._dir = new Float32Array(3);\n this._cameraPos = new Float32Array(3);\n this._getBoxFromSphere = getBBoxFromBSphere;\n }\n\n /**\n * Builds the BVH from the target mesh's instances using a top-down construction method.\n * This approach is more efficient and accurate compared to incremental methods, which add one instance at a time.\n * Note: Simplified implementation for three-mesh-bvh compatibility\n */\n public create(): void {\n // TODO: Implement proper three-mesh-bvh integration\n this.clear();\n console.warn(\"BVH create() - simplified implementation, full BVH functionality disabled\");\n }\n\n /**\n * Inserts an instance into the BVH.\n * @param id The id of the instance to insert.\n */\n public insert(id: number): void {\n // TODO: Implement proper three-mesh-bvh integration\n console.warn(\"BVH insert() - simplified implementation, full BVH functionality disabled\");\n }\n\n /**\n * Inserts a range of instances into the BVH.\n * @param ids An array of ids to insert.\n */\n public insertRange(ids: number[]): void {\n // TODO: Implement proper three-mesh-bvh integration\n console.warn(\"BVH insertRange() - simplified implementation, full BVH functionality disabled\");\n }\n\n /**\n * Moves an instance within the BVH.\n * @param id The id of the instance to move.\n */\n public move(id: number): void {\n // TODO: Implement proper three-mesh-bvh integration\n // For now, do nothing - this is called from setMatrixAt\n }\n\n /**\n * Deletes an instance from the BVH.\n * @param id The id of the instance to delete.\n */\n public delete(id: number): void {\n // TODO: Implement proper three-mesh-bvh integration\n this.nodesMap.delete(id);\n }\n\n /**\n * Clears the BVH.\n */\n public clear(): void {\n this.bvh = null;\n this.nodesMap.clear();\n }\n\n /**\n * Performs frustum culling to determine which instances are visible based on the provided projection matrix.\n * @param projScreenMatrix The projection screen matrix for frustum culling.\n * @param onFrustumIntersection Callback function invoked when an instance intersects the frustum.\n * Note: Simplified implementation - BVH frustum culling disabled\n */\n public frustumCulling(\n projScreenMatrix: Matrix4,\n onFrustumIntersection: onFrustumIntersectionCallback<object, number>,\n ): void {\n // TODO: Implement proper three-mesh-bvh frustum culling\n console.warn(\n \"BVH frustumCulling() - simplified implementation, full BVH functionality disabled\",\n );\n\n // Fallback: call callback for all active instances (no culling)\n const instancesArrayCount = this.target._instancesArrayCount;\n for (let i = 0; i < instancesArrayCount; i++) {\n if (this.target.getActiveAt(i)) {\n onFrustumIntersection(i);\n }\n }\n }\n\n /**\n * Performs frustum culling with Level of Detail (LOD) consideration.\n * @param projScreenMatrix The projection screen matrix for frustum culling.\n * @param cameraPosition The camera's position used for LOD calculations.\n * @param levels An array of LOD levels.\n * @param onFrustumIntersection Callback function invoked when an instance intersects the frustum.\n * Note: Simplified implementation - BVH LOD culling disabled\n */\n public frustumCullingLOD(\n projScreenMatrix: Matrix4,\n cameraPosition: Vector3,\n levels: LODLevel[],\n onFrustumIntersection: onFrustumIntersectionLODCallback<object, number>,\n ): void {\n // TODO: Implement proper three-mesh-bvh LOD frustum culling\n console.warn(\n \"BVH frustumCullingLOD() - simplified implementation, full BVH functionality disabled\",\n );\n\n // Fallback: call callback for all active instances with level 0\n const instancesArrayCount = this.target._instancesArrayCount;\n for (let i = 0; i < instancesArrayCount; i++) {\n if (this.target.getActiveAt(i)) {\n onFrustumIntersection(i, 0);\n }\n }\n }\n\n /**\n * Performs raycasting to check if a ray intersects any instances.\n * @param raycaster The raycaster used for raycasting.\n * @param onIntersection Callback function invoked when a ray intersects an instance.\n * Note: Simplified implementation - BVH raycasting disabled\n */\n public raycast(raycaster: Raycaster, onIntersection: onIntersectionRayCallback<number>): void {\n // TODO: Implement proper three-mesh-bvh raycasting\n console.warn(\"BVH raycast() - simplified implementation, full BVH functionality disabled\");\n }\n\n /**\n * Checks if a given box intersects with any instance bounding box.\n * @param target The target bounding box.\n * @param onIntersection Callback function invoked when an intersection occurs.\n * @returns `True` if there is an intersection, otherwise `false`.\n * Note: Simplified implementation - BVH box intersection disabled\n */\n public intersectBox(target: Box3, onIntersection: onIntersectionCallback<number>): boolean {\n // TODO: Implement proper three-mesh-bvh box intersection\n console.warn(\"BVH intersectBox() - simplified implementation, full BVH functionality disabled\");\n return false;\n }\n\n protected getBox(id: number, array: Float32Array): Float32Array {\n if (this._getBoxFromSphere) {\n const matrixArray = this.target.matricesTexture._data as Float32Array;\n const { centerX, centerY, centerZ, maxScale } = this.getSphereFromMatrix_centeredGeometry(\n id,\n matrixArray,\n this._sphereTarget!,\n );\n const radius = this._geoBoundingSphere!.radius * maxScale;\n array[0] = centerX - radius;\n array[1] = centerX + radius;\n array[2] = centerY - radius;\n array[3] = centerY + radius;\n array[4] = centerZ - radius;\n array[5] = centerZ + radius;\n } else {\n _box3.copy(this.geoBoundingBox).applyMatrix4(this.target.getMatrixAt(id));\n box3ToArray(_box3, array);\n }\n\n return array;\n }\n\n protected getSphereFromMatrix_centeredGeometry(\n id: number,\n array: Float32Array,\n target: SphereTarget,\n ): SphereTarget {\n const offset = id * 16;\n\n const m0 = array[offset + 0];\n const m1 = array[offset + 1];\n const m2 = array[offset + 2];\n const m4 = array[offset + 4];\n const m5 = array[offset + 5];\n const m6 = array[offset + 6];\n const m8 = array[offset + 8];\n const m9 = array[offset + 9];\n const m10 = array[offset + 10];\n\n const scaleXSq = m0 * m0 + m1 * m1 + m2 * m2;\n const scaleYSq = m4 * m4 + m5 * m5 + m6 * m6;\n const scaleZSq = m8 * m8 + m9 * m9 + m10 * m10;\n\n target.maxScale = Math.sqrt(Math.max(scaleXSq, scaleYSq, scaleZSq));\n\n target.centerX = array[offset + 12];\n target.centerY = array[offset + 13];\n target.centerZ = array[offset + 14];\n\n return target;\n }\n}\n\nconst _box3 = new Box3();\n", "import { GLBufferAttribute, TypedArray, WebGLRenderer } from \"three\";\n\n/**\n * A class that extends `GLBufferAttribute` to handle instanced buffer attributes.\n * This class was specifically created to allow updating instanced buffer attributes during the `onBeforeRender` callback,\n * providing an efficient way to modify the buffer data dynamically before rendering.\n */\nexport class GLInstancedBufferAttribute extends GLBufferAttribute {\n /**\n * Indicates if this is an `isGLInstancedBufferAttribute`.\n */\n public isGLInstancedBufferAttribute = true;\n /**\n * The number of meshes that share the same attribute data.\n */\n public meshPerAttribute: number;\n /**\n * The data array that holds the attribute values.\n */\n public array: TypedArray;\n protected _cacheArray: TypedArray;\n /** @internal */ _needsUpdate = false;\n\n // HACK TO MAKE IT WORK WITHOUT UPDATE CORE\n /** @internal */ isInstancedBufferAttribute = true;\n\n /**\n * @param gl The WebGL2RenderingContext used to create the buffer.\n * @param type The type of data in the attribute.\n * @param itemSize The number of elements per attribute.\n * @param elementSize The size of individual elements in the array.\n * @param array The data array that holds the attribute values.\n * @param meshPerAttribute The number of meshes that share the same attribute data.\n */\n constructor(\n gl: WebGL2RenderingContext,\n type: GLenum,\n itemSize: number,\n elementSize: 1 | 2 | 4,\n array: TypedArray,\n meshPerAttribute = 1,\n ) {\n const buffer = gl.createBuffer();\n super(buffer, type, itemSize, elementSize, array.length / itemSize);\n\n this.meshPerAttribute = meshPerAttribute;\n this.array = array;\n this._cacheArray = array;\n\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, array, gl.DYNAMIC_DRAW);\n }\n\n /**\n * Updates the buffer data.\n * This method is designed to be called during the `onBeforeRender` callback.\n * It ensures that the attribute data is updated just before the rendering process begins.\n * @param renderer The WebGLRenderer used to render the scene.\n * @param count The number of elements to update in the buffer.\n */\n public update(renderer: WebGLRenderer, count: number): void {\n if (!this._needsUpdate || count === 0) return;\n\n const gl = renderer.getContext();\n gl.bindBuffer(gl.ARRAY_BUFFER, this.buffer);\n\n if (this.array === this._cacheArray) {\n gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.array, 0, count);\n } else {\n gl.bufferData(gl.ARRAY_BUFFER, this.array, gl.DYNAMIC_DRAW);\n this._cacheArray = this.array;\n }\n\n this._needsUpdate = false;\n }\n\n /** @internal */\n public clone(): this {\n // This method is intentionally empty but necessary to avoid exceptions when cloning geometry.\n return this;\n }\n}\n", "import {\n Color,\n ColorManagement,\n DataTexture,\n FloatType,\n IntType,\n Matrix3,\n Matrix4,\n NoColorSpace,\n PixelFormat,\n RedFormat,\n RedIntegerFormat,\n RGBAFormat,\n RGBAIntegerFormat,\n RGFormat,\n RGIntegerFormat,\n TextureDataType,\n TypedArray,\n UnsignedIntType,\n Vector2,\n Vector3,\n Vector4,\n WebGLRenderer,\n WebGLUtils,\n} from \"three\";\n\n/**\n * Represents the number of elements per pixel.\n */\nexport type ChannelSize = 1 | 2 | 3 | 4;\n/**\n * A constructor signature for creating TypedArray.\n */\nexport type TypedArrayConstructor = new (count: number) => TypedArray;\n/**\n * Represents the texture information including its data, size, format, and data type.\n */\nexport type TextureInfo = {\n array: TypedArray;\n size: number;\n format: PixelFormat;\n type: TextureDataType;\n};\n/**\n * Represents information for updating rows in the texture, including the row index and number of rows.\n */\nexport type UpdateRowInfo = { row: number; count: number };\n/**\n * Defines the possible types of uniforms that can be used in shaders.\n */\nexport type UniformType = \"float\" | \"vec2\" | \"vec3\" | \"vec4\" | \"mat3\" | \"mat4\";\n/**\n * Represents a value that can be used as a uniform.\n */\nexport type UniformValueObj = Vector2 | Vector3 | Vector4 | Matrix3 | Matrix4 | Color;\n/**\n * Defines a uniform value as either a number or a compatible Three.js object.\n */\nexport type UniformValue = number | UniformValueObj;\n/**\n * Represents the schema for a uniform, defining its offset, size, and type.\n */\nexport type UniformMapType = { offset: number; size: number; type: UniformType };\n/**\n * Represents a map of uniform names to their schema definitions.\n */\nexport type UniformMap = Map<string, UniformMapType>;\n\n/**\n * Calculates the square texture size based on the capacity and pixels per instance.\n * This ensures the texture is large enough to store all instances in a square layout.\n * @param capacity The maximum number of instances allowed in the texture.\n * @param pixelsPerInstance The number of pixels required for each instance.\n * @returns The size of the square texture needed to store all the instances.\n */\nexport function getSquareTextureSize(capacity: number, pixelsPerInstance: number): number {\n return Math.max(\n pixelsPerInstance,\n Math.ceil(Math.sqrt(capacity / pixelsPerInstance)) * pixelsPerInstance,\n );\n}\n\n/**\n * Generates texture information (size, format, type) for a square texture based on the provided parameters.\n * @param arrayType The constructor for the TypedArray.\n * @param channels The number of channels in the texture.\n * @param pixelsPerInstance The number of pixels required for each instance.\n * @param capacity The maximum number of instances allowed in the texture.\n * @returns An object containing the texture's array, size, format, and data type.\n */\nexport function getSquareTextureInfo(\n arrayType: TypedArrayConstructor,\n channels: ChannelSize,\n pixelsPerInstance: number,\n capacity: number,\n): TextureInfo {\n if (channels === 3) {\n console.warn(\n '\"channels\" cannot be 3. Set to 4. More info: https://github.com/mrdoob/three.js/pull/23228',\n );\n channels = 4;\n }\n\n const size = getSquareTextureSize(capacity, pixelsPerInstance);\n const array = new arrayType(size * size * channels);\n const isFloat = arrayType.name.includes(\"Float\");\n const isUnsignedInt = arrayType.name.includes(\"Uint\");\n const type: TextureDataType = isFloat ? FloatType : isUnsignedInt ? UnsignedIntType : IntType;\n let format: PixelFormat;\n\n switch (channels) {\n case 1:\n format = isFloat ? RedFormat : RedIntegerFormat;\n break;\n case 2:\n format = isFloat ? RGFormat : RGIntegerFormat;\n break;\n case 4:\n format = isFloat ? RGBAFormat : RGBAIntegerFormat;\n break;\n }\n\n return { array, size, type, format };\n}\n\n/**\n * A class that extends `DataTexture` to manage a square texture optimized for instances rendering.\n * It supports dynamic resizing, partial update based on rows, and allows setting/getting uniforms per instance.\n */\nexport class SquareDataTexture extends DataTexture {\n /**\n * Whether to enable partial texture updates by row. If `false`, the entire texture will be updated.\n * @default true.\n */\n public partialUpdate = true;\n /**\n * The maximum number of update calls per frame.\n * @default Infinity\n */\n public maxUpdateCalls = Infinity;\n /** @internal */ _data: TypedArray; // TODO make it public or remove it?\n protected _channels: ChannelSize;\n protected _pixelsPerInstance: number;\n protected _stride: number;\n protected _rowToUpdate: boolean[];\n protected _uniformMap?: UniformMap;\n protected _fetchUniformsInFragmentShader?: boolean;\n protected _utils?: WebGLUtils; // TODO add it to renderer instead of creating for each texture\n protected _lastWidth?: number;\n\n /**\n * @param arrayType The constructor for the TypedArray.\n * @param channels The number of channels in the texture.\n * @param pixelsPerInstance The number of pixels required for each instance.\n * @param capacity The total number of instances.\n * @param uniformMap Optional map for handling uniform values.\n * @param fetchInFragmentShader Optional flag that determines if uniform values should be fetched in the fragment shader instead of the vertex shader.\n */\n constructor(\n arrayType: TypedArrayConstructor,\n channels: ChannelSize,\n pixelsPerInstance: number,\n capacity: number,\n uniformMap?: UniformMap,\n fetchInFragmentShader?: boolean,\n ) {\n if (channels === 3) channels = 4;\n const { array, format, size, type } = getSquareTextureInfo(\n arrayType,\n channels,\n pixelsPerInstance,\n capacity,\n );\n super(array, size, size, format, type);\n this._data = array;\n this._channels = channels;\n this._pixelsPerInstance = pixelsPerInstance;\n this._stride = pixelsPerInstance * channels;\n this._rowToUpdate = new Array(size);\n this._uniformMap = uniformMap;\n this._fetchUniformsInFragmentShader = fetchInFragmentShader;\n this.needsUpdate = true; // necessary to init texture\n }\n\n /**\n * Resizes the texture to accommodate a new number of instances.\n * @param count The new total number of instances.\n */\n public resize(count: number): void {\n const size = getSquareTextureSize(count, this._pixelsPerInstance);\n if (size === this.image.width) return;\n\n const currentData = this._data;\n const channels = this._channels;\n this._rowToUpdate.length = size;\n const arrayType = (currentData as any).constructor;\n\n const data = new arrayType(size * size * channels);\n const minLength = Math.min(currentData.length, data.length);\n data.set(new arrayType(currentData.buffer, 0, minLength));\n\n this.dispose();\n this.image = { data, height: size, width: size };\n this._data = data;\n }\n\n /**\n * Marks a row of the texture for update during the next render cycle.\n * This helps in optimizing texture updates by only modifying the rows that have changed.\n * @param index The index of the instance to update.\n */\n public enqueueUpdate(index: number): void {\n this.needsUpdate = true;\n if (!this.partialUpdate) return;\n\n const elementsPerRow = this.image.width / this._pixelsPerInstance;\n const rowIndex = Math.floor(index / elementsPerRow);\n this._rowToUpdate[rowIndex] = true;\n }\n\n /**\n * Updates the texture data based on the rows that need updating.\n * This method is optimized to only update the rows that have changed, improving performance.\n * @param renderer The WebGLRenderer used for rendering.\n */\n public update(renderer: WebGLRenderer): void {\n const textureProperties: any = renderer.properties.get(this);\n const versionChanged = this.version > 0 && textureProperties.__version !== this.version;\n const sizeChanged = this._lastWidth !== null && this._lastWidth !== this.image.width;\n if (!this.needsUpdate || !textureProperties.__webglTexture || versionChanged || sizeChanged) {\n this._lastWidth = this.image.width;\n this.needsUpdate = false;\n return;\n }\n\n this.needsUpdate = false;\n\n if (!this.partialUpdate) {\n this.needsUpdate = true; // three.js will update the whole texture\n return;\n }\n\n const rowsInfo = this.getUpdateRowsInfo();\n if (rowsInfo.length === 0) return;\n\n if (rowsInfo.length > this.maxUpdateCalls) {\n this.needsUpdate = true; // three.js will update the whole texture\n } else {\n this.updateRows(textureProperties, renderer, rowsInfo);\n }\n\n this._rowToUpdate.fill(false);\n }\n\n // TODO reuse same objects to prevent memory leak\n protected getUpdateRowsInfo(): UpdateRowInfo[] {\n const rowsToUpdate = this._rowToUpdate;\n const result: UpdateRowInfo[] = [];\n\n for (let i = 0, l = rowsToUpdate.length; i < l; i++) {\n if (rowsToUpdate[i]) {\n const row = i;\n for (; i < l; i++) {\n if (!rowsToUpdate[i]) break;\n }\n result.push({ row, count: i - row });\n }\n }\n\n return result;\n }\n\n protected updateRows(\n textureProperties: any,\n renderer: WebGLRenderer,\n info: UpdateRowInfo[],\n ): void {\n const state = renderer.state;\n const gl = renderer.getContext() as WebGL2RenderingContext;\n // @ts-expect-error Expected 2 arguments, but got 3.\n this._utils ??= new WebGLUtils(gl, renderer.extensions, renderer.capabilities); // third argument is necessary for older three versions\n const glFormat = this._utils.convert(this.format)!;\n const glType = this._utils.convert(this.type)!;\n const { data, width } = this.image;\n const channels = this._channels;\n\n state.bindTexture(gl.TEXTURE_2D, textureProperties.__webglTexture);\n\n const workingPrimaries = ColorManagement.getPrimaries(ColorManagement.workingColorSpace);\n const texturePrimaries =\n this.colorSpace === NoColorSpace ? null : ColorManagement.getPrimaries(this.colorSpace);\n const unpackConversion =\n this.colorSpace === NoColorSpace || workingPrimaries === texturePrimaries\n ? gl.NONE\n : gl.BROWSER_DEFAULT_WEBGL;\n\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this.flipY);\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this.premultiplyAlpha);\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, this.unpackAlignment);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, unpackConversion);\n\n for (const { count, row } of info) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n row,\n width,\n count,\n glFormat,\n glType,\n data!,\n row * width * channels,\n );\n }\n\n // @ts-ignore\n if (this.onUpdate) this.onUpdate(this);\n }\n\n /**\n * Sets a uniform value at the specified instance ID in the texture.\n * @param id The instance ID to set the uniform for.\n * @param name The name of the uniform.\n * @param value The value to set for the uniform.\n */\n public setUniformAt(id: number, name: string, value: UniformValue): void {\n const { offset, size } = this._uniformMap!.get(name)!;\n const stride = this._stride;\n\n if (size === 1) {\n this._data[id * stride + offset] = value as number;\n } else {\n (value as UniformValueObj).toArray(this._data, id * stride + offset);\n }\n }\n\n /**\n * Retrieves a uniform value at the specified instance ID from the texture.\n * @param id The instance ID to retrieve the uniform from.\n * @param name The name of the uniform.\n * @param target Optional target object to store the uniform value.\n * @returns The uniform value for the specified instance.\n */\n public getUniformAt(id: number, name: string, target?: UniformValueObj): UniformValue {\n const { offset, size } = this._uniformMap!.get(name)!;\n const stride = this._stride;\n\n if (size === 1) {\n return this._data[id * stride + offset];\n }\n\n return target!.fromArray(this._data, id * stride + offset);\n }\n\n /**\n * Generates the GLSL code for accessing the uniform data stored in the texture.\n * @param textureName The name of the texture in the GLSL shader.\n * @param indexName The name of the index in the GLSL shader.\n * @param indexType The type of the index in the GLSL shader.\n * @returns An object containing the GLSL code for the vertex and fragment shaders.\n */\n public getUniformsGLSL(\n textureName: string,\n indexName: string,\n indexType: string,\n ): { vertex: string; fragment: string } {\n const vertex = this.getUniformsVertexGLSL(textureName, indexName, indexType);\n const fragment = this.getUniformsFragmentGLSL(textureName, indexName, indexType);\n return { vertex, fragment };\n }\n\n protected getUniformsVertexGLSL(\n textureName: string,\n indexName: string,\n indexType: string,\n ): string {\n if (this._fetchUniformsInFragmentShader) {\n return `\n flat varying ${indexType} ez_v${indexName}; \n void main() {\n ez_v${indexName} = ${indexName};`;\n }\n\n const texelsFetch = this.texelsFetchGLSL(textureName, indexName);\n const getFromTexels = this.getFromTexelsGLSL();\n const { assignVarying, declareVarying } = this.getVarying();\n\n return `\n uniform highp sampler2D ${textureName}; \n ${declareVarying}\n void main() {\n ${texelsFetch}\n ${getFromTexels}\n ${assignVarying}`;\n }\n\n protected getUniformsFragmentGLSL(\n textureName: string,\n indexName: string,\n indexType: string,\n ): string {\n if (!this._fetchUniformsInFragmentShader) {\n const { declareVarying, getVarying } = this.getVarying();\n\n return `\n ${declareVarying}\n void main() {\n ${getVarying}`;\n }\n\n const texelsFetch = this.texelsFetchGLSL(textureName, `ez_v${indexName}`);\n const getFromTexels = this.getFromTexelsGLSL();\n\n return `\n uniform highp sampler2D ${textureName}; \n flat varying ${indexType} ez_v${indexName};\n void main() {\n ${texelsFetch}\n ${getFromTexels}`;\n }\n\n protected texelsFetchGLSL(textureName: string, indexName: string): string {\n const pixelsPerInstance = this._pixelsPerInstance;\n\n let texelsFetch = `\n int size = textureSize(${textureName}, 0).x;\n int j = int(${indexName}) * ${pixelsPerInstance};\n int x = j % size;\n int y = j / size;\n `;\n\n for (let i = 0; i < pixelsPerInstance; i++) {\n texelsFetch += `vec4 ez_texel${i} = texelFetch(${textureName}, ivec2(x + ${i}, y), 0);\\n`;\n }\n\n return texelsFetch;\n }\n\n protected getFromTexelsGLSL(): string {\n const uniforms = this._uniformMap;\n let getFromTexels = \"\";\n\n for (const [name, { type, offset, size }] of uniforms!) {\n const tId = Math.floor(offset / this._channels);\n\n if (type === \"mat3\") {\n getFromTexels += `mat3 ${name} = mat3(ez_texel${tId}.rgb, vec3(ez_texel${tId}.a, ez_texel${tId + 1}.rg), vec3(ez_texel${tId + 1}.ba, ez_texel${tId + 2}.r));\\n`;\n } else if (type === \"mat4\") {\n getFromTexels += `mat4 ${name} = mat4(ez_texel${tId}, ez_texel${tId + 1}, ez_texel${tId + 2}, ez_texel${tId + 3});\\n`;\n } else {\n const components = this.getUniformComponents(offset, size);\n getFromTexels += `${type} ${name} = ez_texel${tId}.${components};\\n`;\n }\n }\n\n return getFromTexels;\n }\n\n protected getVarying(): { declareVarying: string; assignVarying: string; getVarying: string } {\n const uniforms = this._uniformMap;\n let declareVarying = \"\";\n let assignVarying = \"\";\n let getVarying = \"\";\n\n for (const [name, { type }] of uniforms!) {\n declareVarying += `flat varying ${type} ez_v${name};\\n`;\n assignVarying += `ez_v${name} = ${name};\\n`;\n getVarying += `${type} ${name} = ez_v${name};\\n`;\n }\n\n return { declareVarying, assignVarying, getVarying };\n }\n\n protected getUniformComponents(offset: number, size: number): string {\n const startIndex = offset % this._channels;\n let components = \"\";\n\n for (let i = 0; i < size; i++) {\n components += componentsArray[startIndex + i];\n }\n\n return components;\n }\n\n public override copy(source: SquareDataTexture): this {\n super.copy(source);\n\n this.partialUpdate = source.partialUpdate;\n this.maxUpdateCalls = source.maxUpdateCalls;\n this._channels = source._channels;\n this._pixelsPerInstance = source._pixelsPerInstance;\n this._stride = source._stride;\n this._rowToUpdate = source._rowToUpdate;\n this._uniformMap = source._uniformMap;\n this._fetchUniformsInFragmentShader = source._fetchUniformsInFragmentShader;\n\n return this;\n }\n}\n\nconst componentsArray = [\"r\", \"g\", \"b\", \"a\"];\n", "import { DataTexture, FloatType, RedFormat, TypedArray } from \"three\";\n\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /**\n * Resizes internal buffers to accommodate the specified capacity.\n * This ensures that the buffers are large enough to handle the required number of instances.\n * @param capacity The new capacity of the buffers.\n * @returns The current `InstancedMesh2` instance.\n */\n resizeBuffers(capacity: number): this;\n /** @internal */ setInstancesArrayCount(count: number): void;\n }\n}\n\nInstancedMesh2.prototype.resizeBuffers = function (capacity: number): InstancedMesh2 {\n const oldCapacity = this._capacity;\n this._capacity = capacity;\n const minCapacity = Math.min(capacity, oldCapacity);\n\n if (this.instanceIndex) {\n const indexArray = new Uint32Array(capacity);\n indexArray.set(new Uint32Array(this.instanceIndex.array.buffer, 0, minCapacity)); // safely copy TODO method\n this.instanceIndex.array = indexArray;\n }\n\n if (this.LODinfo) {\n for (const obj of this.LODinfo.objects) {\n obj._capacity = capacity;\n\n if (obj.instanceIndex) {\n const indexArray = new Uint32Array(capacity);\n indexArray.set(new Uint32Array(obj.instanceIndex.array.buffer, 0, minCapacity)); // safely copy TODO method\n obj.instanceIndex.array = indexArray;\n }\n }\n }\n\n this.availabilityArray.length = capacity * 2;\n\n this.matricesTexture.resize(capacity);\n\n if (this.colorsTexture) {\n this.colorsTexture.resize(capacity);\n if (capacity > oldCapacity) {\n this.colorsTexture._data.fill(1, oldCapacity * 4);\n }\n }\n\n if (this.morphTexture) {\n // test it\n const oldArray = this.morphTexture.image.data as TypedArray; // TODO check if they fix d.ts\n const size = oldArray.length / oldCapacity;\n this.morphTexture.dispose();\n this.morphTexture = new DataTexture(\n new Float32Array(size * capacity),\n size,\n capacity,\n RedFormat,\n FloatType,\n );\n (this.morphTexture.image.data as TypedArray).set(oldArray); // FIX if reduce\n }\n\n this.uniformsTexture?.resize(capacity);\n\n return this;\n};\n\nInstancedMesh2.prototype.setInstancesArrayCount = function (count: number): void {\n if (count < this._instancesArrayCount) {\n const bvh = this.bvh;\n if (bvh) {\n for (let i = this._instancesArrayCount - 1; i >= count; i--) {\n if (!this.getActiveAt(i)) continue;\n bvh.delete(i);\n }\n }\n\n this._instancesArrayCount = count;\n return;\n }\n\n if (count > this._capacity) {\n let newCapacity = this._capacity + (this._capacity >> 1) + 512;\n while (newCapacity < count) {\n newCapacity += (newCapacity >> 1) + 512;\n }\n\n this.resizeBuffers(newCapacity);\n }\n\n const start = this._instancesArrayCount;\n this._instancesArrayCount = count;\n if (this._createEntities) this.createEntities(start);\n};\n", "import { Camera, Frustum, Material, Matrix4, Sphere, Vector3 } from \"three\";\n\nimport { sortOpaque, sortTransparent } from \"../../utils/SortingUtils\";\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\nimport { InstancedRenderItem, InstancedRenderList } from \"../utils/InstancedRenderList\";\n\nimport { LODRenderList } from \"./LOD\";\n\n// BVHNode simplified type (since we're using three-mesh-bvh now)\ntype BVHNode<T, U> = { object: U };\n\n// TODO: fix shadowMap LOD sorting objects?\n\n/**\n * A custom sorting callback for render items.\n */\nexport type CustomSortCallback = (list: InstancedRenderItem[]) => void;\n\n/**\n * Callback invoked when an instance is within the frustum.\n * @param index The index of the instance.\n * @param camera The camera used for rendering.\n * @param cameraLOD The camera used for LOD calculations (provided only if LODs are initialized).\n * @param LODindex The LOD level of the instance (provided only if LODs are initialized and `sortObjects` is false).\n * @returns True if the instance should be rendered, false otherwise.\n */\nexport type OnFrustumEnterCallback = (\n index: number,\n camera: Camera,\n cameraLOD?: Camera,\n LODindex?: number,\n) => boolean;\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /**\n * Performs frustum culling and manages LOD visibility.\n * @param camera The main camera used for rendering.\n * @param cameraLOD An optional camera for LOD calculations. Defaults to the main camera.\n */\n performFrustumCulling(camera: Camera, cameraLOD?: Camera): void;\n\n /** @internal */ frustumCulling(camera: Camera): void;\n /** @internal */ updateIndexArray(): void;\n /** @internal */ updateRenderList(): void;\n /** @internal */ BVHCulling(camera: Camera): void;\n /** @internal */ linearCulling(camera: Camera): void;\n\n /** @internal */ frustumCullingLOD(\n LODrenderList: LODRenderList,\n camera: Camera,\n cameraLOD: Camera,\n ): void;\n /** @internal */ BVHCullingLOD(\n LODrenderList: LODRenderList,\n indexes: Uint32Array[],\n sortObjects: boolean,\n camera: Camera,\n cameraLOD: Camera,\n ): void;\n /** @internal */ linearCullingLOD(\n LODrenderList: LODRenderList,\n indexes: Uint32Array[],\n sortObjects: boolean,\n camera: Camera,\n cameraLOD: Camera,\n ): void;\n /** @internal */ getObjectLODIndexForDistance(\n levels: { distance: number }[],\n distance: number,\n ): number;\n }\n}\n\nconst _frustum = new Frustum();\nconst _renderList = new InstancedRenderList();\nconst _projScreenMatrix = new Matrix4();\nconst _invMatrixWorld = new Matrix4();\nconst _forward = new Vector3();\nconst _cameraPos = new Vector3();\nconst _cameraLODPos = new Vector3();\nconst _position = new Vector3();\nconst _sphere = new Sphere();\n\nInstancedMesh2.prototype.performFrustumCulling = function (camera: Camera, cameraLOD = camera) {\n if (!this._parentLOD && this._instancesArrayCount === 0) {\n this.count = 0;\n return;\n }\n\n const LODinfo = this.LODinfo;\n const isShadowRendering = camera !== cameraLOD;\n let LODrenderList: LODRenderList | undefined;\n\n if (LODinfo) {\n LODrenderList = !isShadowRendering ? LODinfo.render : (LODinfo.shadowRender ?? LODinfo.render);\n\n for (const object of LODinfo.objects) {\n object.count = 0;\n }\n }\n\n if (LODrenderList && LODrenderList.levels.length > 0)\n this.frustumCullingLOD(LODrenderList, camera, cameraLOD);\n else if (!this._parentLOD) this.frustumCulling(camera);\n\n this.instanceIndex.update(this._renderer, this.count);\n};\n\nInstancedMesh2.prototype.frustumCulling = function (camera: Camera) {\n const sortObjects = this._sortObjects;\n const perObjectFrustumCulled = this._perObjectFrustumCulled;\n const array = this.instanceIndex.array;\n\n this.instanceIndex._needsUpdate = true; // TODO improve\n\n if (!perObjectFrustumCulled && !sortObjects) {\n this.updateIndexArray();\n return;\n }\n\n if (sortObjects) {\n _invMatrixWorld.copy(this.matrixWorld).invert();\n _cameraPos.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_invMatrixWorld);\n _forward\n .set(0, 0, -1)\n .transformDirection(camera.matrixWorld)\n .transformDirection(_invMatrixWorld);\n }\n\n if (!perObjectFrustumCulled) {\n this.updateRenderList();\n } else {\n _projScreenMatrix\n .multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse)\n .multiply(this.matrixWorld);\n\n if (this.bvh) this.BVHCulling(camera);\n else this.linearCulling(camera);\n }\n\n if (sortObjects) {\n const customSort = this.customSort;\n\n if (customSort === null) {\n _renderList.array.sort(\n !(this.material as Material)?.transparent ? sortOpaque : sortTransparent,\n );\n } else {\n customSort(_renderList.array);\n }\n\n const list = _renderList.array;\n const count = list.length;\n for (let i = 0; i < count; i++) {\n array[i] = list[i].index;\n }\n\n this.count = count;\n _renderList.reset();\n }\n};\n\nInstancedMesh2.prototype.updateIndexArray = function () {\n if (!this._indexArrayNeedsUpdate) return;\n\n const array = this.instanceIndex.array;\n const instancesArrayCount = this._instancesArrayCount;\n let count = 0;\n\n for (let i = 0; i < instancesArrayCount; i++) {\n if (this.getActiveAndVisibilityAt(i)) {\n array[count++] = i;\n }\n }\n\n this.count = count;\n this._indexArrayNeedsUpdate = false;\n};\n\nInstancedMesh2.prototype.updateRenderList = function () {\n const instancesArrayCount = this._instancesArrayCount;\n\n for (let i = 0; i < instancesArrayCount; i++) {\n if (this.getActiveAndVisibilityAt(i)) {\n const depth = this.getPositionAt(i).sub(_cameraPos).dot(_forward);\n _renderList.push(depth, i);\n }\n }\n};\n\nInstancedMesh2.prototype.BVHCulling = function (camera: Camera) {\n const array = this.instanceIndex.array;\n const instancesArrayCount = this._instancesArrayCount;\n const sortObjects = this._sortObjects;\n const onFrustumEnter = this.onFrustumEnter;\n let count = 0;\n\n this.bvh.frustumCulling(_projScreenMatrix, (node: BVHNode<object, number>) => {\n const index = node.object;\n\n // TODO check if (index < instancesArrayCount) is still necessary after last update\n\n // we don't check if active because we remove inactive instances from BVH\n if (\n index < instancesArrayCount &&\n this.getVisibilityAt(index) &&\n (!onFrustumEnter || onFrustumEnter(index, camera))\n ) {\n if (sortObjects) {\n const depth = this.getPositionAt(index).sub(_cameraPos).dot(_forward);\n _renderList.push(depth, index);\n } else {\n array[count++] = index;\n }\n }\n });\n\n this.count = count;\n};\n\nInstancedMesh2.prototype.linearCulling = function (camera: Camera) {\n const array = this.instanceIndex.array;\n if (!this.geometry.boundingSphere) this.geometry.computeBoundingSphere();\n const bSphere = this._geometry.boundingSphere;\n const radius = bSphere.radius;\n const center = bSphere.center;\n const instancesArrayCount = this._instancesArrayCount;\n const geometryCentered = center.x === 0 && center.y === 0 && center.z === 0;\n const sortObjects = this._sortObjects;\n const onFrustumEnter = this.onFrustumEnter;\n let count = 0;\n\n _frustum.setFromProjectionMatrix(_projScreenMatrix);\n\n for (let i = 0; i < instancesArrayCount; i++) {\n if (!this.getActiveAndVisibilityAt(i)) continue;\n\n if (geometryCentered) {\n const maxScale = this.getPositionAndMaxScaleOnAxisAt(i, _sphere.center);\n _sphere.radius = radius * maxScale;\n } else {\n this.applyMatrixAtToSphere(i, _sphere, center, radius);\n }\n\n if (_frustum.intersectsSphere(_sphere) && (!onFrustumEnter || onFrustumEnter(i, camera))) {\n if (sortObjects) {\n const depth = _position.subVectors(_sphere.center, _cameraPos).dot(_forward);\n _renderList.push(depth, i);\n } else {\n array[count++] = i;\n }\n }\n }\n\n this.count = count;\n};\n\nInstancedMesh2.prototype.frustumCullingLOD = function (\n LODrenderList: LODRenderList,\n camera: Camera,\n cameraLOD: Camera,\n) {\n const { count, levels } = LODrenderList;\n const isShadowRendering = camera !== cameraLOD;\n const sortObjects = !isShadowRendering && this._sortObjects; // sort is disabled when render shadows\n\n for (let i = 0; i < levels.length; i++) {\n count[i] = 0;\n\n if (levels[i].object.instanceIndex) {\n levels[i].object.instanceIndex!._needsUpdate = true; // TODO improve\n }\n }\n\n _projScreenMatrix\n .multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse)\n .multiply(this.matrixWorld);\n _invMatrixWorld.copy(this.matrixWorld).invert();\n _cameraPos.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_invMatrixWorld);\n _cameraLODPos.setFromMatrixPosition(cameraLOD.matrixWorld).applyMatrix4(_invMatrixWorld);\n\n const indexes = LODrenderList.levels.map((x) => x.object.instanceIndex!.array) as Uint32Array[];\n\n if (this.bvh) this.BVHCullingLOD(LODrenderList, indexes, sortObjects, camera, cameraLOD);\n else this.linearCullingLOD(LODrenderList, indexes, sortObjects, camera, cameraLOD);\n\n if (sortObjects) {\n const customSort = this.customSort;\n const list = _renderList.array;\n let levelIndex = 0;\n let levelDistance = levels[1].distance;\n\n if (customSort === null) {\n list.sort(\n !(levels[0].object.material as Material)?.transparent ? sortOpaque : sortTransparent,\n ); // TODO improve multimaterial handling\n } else {\n customSort(list);\n }\n\n for (let i = 0, l = list.length; i < l; i++) {\n const item = list[i];\n\n if (item.depth > levelDistance) {\n levelIndex++;\n levelDistance = levels[levelIndex + 1]?.distance ?? Infinity; // improve this condition and use for of instead\n }\n\n indexes[levelIndex][count[levelIndex]++] = item.index;\n }\n\n _renderList.reset();\n }\n\n for (let i = 0; i < levels.length; i++) {\n const object = levels[i].object;\n object.count = count[i];\n }\n};\n\nInstancedMesh2.prototype.BVHCullingLOD = function (\n LODrenderList: LODRenderList,\n indexes: Uint32Array[],\n sortObjects: boolean,\n camera: Camera,\n cameraLOD: Camera,\n) {\n const { count, levels } = LODrenderList;\n const instancesArrayCount = this._instancesArrayCount;\n const onFrustumEnter = this.onFrustumEnter;\n\n if (sortObjects) {\n this.bvh.frustumCulling(_projScreenMatrix, (node: BVHNode<object, number>) => {\n const index = node.object;\n // we don't check if active because we remove inactive instances from BVH\n if (\n index < instancesArrayCount &&\n this.getVisibilityAt(index) &&\n (!onFrustumEnter || onFrustumEnter(index, camera, cameraLOD))\n ) {\n const distance = this.getPositionAt(index).distanceToSquared(_cameraLODPos);\n _renderList.push(distance, index);\n }\n });\n } else {\n this.bvh.frustumCullingLOD(\n _projScreenMatrix,\n _cameraLODPos,\n levels,\n (node: BVHNode<object, number>, level: number) => {\n const index = node.object;\n if (index < instancesArrayCount && this.getVisibilityAt(index)) {\n if (level === null) {\n const distance = this.getPositionAt(index).distanceToSquared(_cameraLODPos); // distance can be get by BVH, but is not the distance from center\n level = this.getObjectLODIndexForDistance(levels, distance);\n }\n\n if (!onFrustumEnter || onFrustumEnter(index, camera, cameraLOD, level)) {\n indexes[level][count[level]++] = index;\n }\n }\n },\n );\n }\n};\n\nInstancedMesh2.prototype.linearCullingLOD = function (\n LODrenderList: LODRenderList,\n indexes: Uint32Array[],\n sortObjects: boolean,\n camera: Camera,\n cameraLOD: Camera,\n) {\n const { count, levels } = LODrenderList;\n if (!this.geometry.boundingSphere) this.geometry.computeBoundingSphere();\n const bSphere = this._geometry.boundingSphere;\n const radius = bSphere.radius;\n const center = bSphere.center;\n const instancesArrayCount = this._instancesArrayCount;\n const geometryCentered = center.x === 0 && center.y === 0 && center.z === 0;\n const onFrustumEnter = this.onFrustumEnter;\n\n _frustum.setFromProjectionMatrix(_projScreenMatrix);\n\n for (let i = 0; i < instancesArrayCount; i++) {\n if (!this.getActiveAndVisibilityAt(i)) continue;\n\n if (geometryCentered) {\n const maxScale = this.getPositionAndMaxScaleOnAxisAt(i, _sphere.center);\n _sphere.radius = radius * maxScale;\n } else {\n this.applyMatrixAtToSphere(i, _sphere, center, radius);\n }\n\n if (_frustum.intersectsSphere(_sphere)) {\n if (sortObjects) {\n if (!onFrustumEnter || onFrustumEnter(i, camera, cameraLOD)) {\n const distance = _sphere.center.distanceToSquared(_cameraLODPos);\n _renderList.push(distance, i);\n }\n } else {\n const distance = _sphere.center.distanceToSquared(_cameraLODPos);\n const levelIndex = this.getObjectLODIndexForDistance(levels, distance);\n\n if (!onFrustumEnter || onFrustumEnter(i, camera, cameraLOD, levelIndex)) {\n indexes[levelIndex][count[levelIndex]++] = i;\n }\n }\n }\n }\n};\n", "import { Material } from \"three\";\nimport { radixSort, RadixSortOptions } from \"three/examples/jsm/utils/SortUtils.js\";\n\nimport { InstancedMesh2 } from \"../core/InstancedMesh2\";\nimport { InstancedRenderItem } from \"../core/utils/InstancedRenderList\";\n\ntype radixSortCallback = (list: InstancedRenderItem[]) => void;\n\n/**\n * Creates a radix sort function specifically for sorting `InstancedMesh2` instances.\n * The sorting is based on the `depth` property of each `InstancedRenderItem`.\n * This function dynamically adjusts for transparent materials by reversing the sort order if necessary.\n * @param target The `InstancedMesh2` instance that contains the instances to be sorted.\n * @returns A radix sort function.\n */\n// Reference: https://github.com/mrdoob/three.js/blob/master/examples/webgl_mesh_batch.html#L291\nexport function createRadixSort(target: InstancedMesh2): radixSortCallback {\n const options: RadixSortOptions<InstancedRenderItem> = {\n get: (el) => el.depthSort,\n aux: new Array(target._capacity),\n reversed: false,\n };\n\n return function sortFunction(list: InstancedRenderItem[]): void {\n options.reversed = !!(target.material as Material)?.transparent;\n\n if (target._capacity > options.aux!.length) {\n options.aux!.length = target._capacity;\n }\n\n let minZ = Infinity;\n let maxZ = -Infinity;\n\n for (const { depth } of list) {\n if (depth > maxZ) maxZ = depth;\n if (depth < minZ) minZ = depth;\n }\n\n const depthDelta = maxZ - minZ;\n const factor = (2 ** 32 - 1) / depthDelta;\n\n for (const item of list) {\n item.depthSort = (item.depth - minZ) * factor;\n }\n\n radixSort(list, options);\n };\n}\n\n/** @internal */\nexport function sortOpaque(a: InstancedRenderItem, b: InstancedRenderItem): number {\n return a.depth - b.depth;\n}\n\n/** @internal */\nexport function sortTransparent(a: InstancedRenderItem, b: InstancedRenderItem): number {\n return b.depth - a.depth;\n}\n", "export type InstancedRenderItem = { index: number; depth: number; depthSort: number };\n\n/**\n * A class that creates and manages a list of render items, used to determine the rendering order based on depth.\n */\nexport class InstancedRenderList {\n /**\n * The main array that holds the list of render items for instanced rendering.\n */\n public array: InstancedRenderItem[] = [];\n protected pool: InstancedRenderItem[] = [];\n\n /**\n * Adds a new render item to the list.\n * @param depth The depth value used for sorting or determining the rendering order.\n * @param index The unique instance id of the render item.\n */\n public push(depth: number, index: number): void {\n const pool = this.pool;\n const list = this.array;\n const count = list.length;\n\n if (count >= pool.length) {\n pool.push({ depth: 0, index: 0, depthSort: 0 });\n }\n\n const item = pool[count];\n item.depth = depth;\n item.index = index;\n\n list.push(item);\n }\n\n /**\n * Resets the render list by clearing the array.\n */\n public reset(): void {\n this.array.length = 0;\n }\n}\n", "import { BufferGeometry, Material, ShaderMaterial } from \"three\";\n\nimport { InstancedMesh2, InstancedMesh2Params } from \"../InstancedMesh2\";\n\n// TODO check squaured distance in comments and code\n\n/**\n * Represents information about Level of Detail (LOD).\n * @template TData Type for additional instance data.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface LODInfo<TData = {}> {\n /**\n * Render settings for the LOD.\n */\n render: LODRenderList<TData>;\n /**\n * Shadow rendering settings for the LOD.\n */\n shadowRender: LODRenderList<TData>;\n /**\n * List of `InstancedMesh2` associated to LODs.\n */\n objects: InstancedMesh2<TData>[];\n}\n\n/**\n * Represents a list of render levels for LOD.\n * @template TData Type for additional instance data.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface LODRenderList<TData = {}> {\n /**\n * Array of LOD levels.\n */\n levels: LODLevel<TData>[];\n /**\n * Array of instance counts per LOD level, used internally.\n */\n count: number[];\n}\n\n/**\n * Represents a single LOD level.\n * @template TData Type for additional instance data.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface LODLevel<TData = {}> {\n /**\n * The squared distance at which this LOD level becomes active.\n */\n distance: number;\n /**\n * Hysteresis value to prevent LOD flickering when transitioning.\n */\n hysteresis: number;\n /**\n * The `InstancedMesh2` object associated with this LOD level.\n */\n object: InstancedMesh2<TData>;\n}\n\ndeclare module \"../InstancedMesh2\" {\n // @ts-ignore - This is a workaround to avoid type errors because of how InstancedMesh2 is extended\n interface InstancedMesh2 {\n /**\n * Retrieves the index of the LOD level for a given distance.\n * @param levels The array of LOD levels.\n * @param distance The squared distance from the camera to the object.\n * @returns The index of the LOD level that should be used.\n */\n getObjectLODIndexForDistance(levels: LODLevel[], distance: number): number;\n /**\n * Sets the first LOD (using current geometry) distance and hysteresis.\n * @param distance The distance for the first LOD.\n * @param hysteresis The hysteresis value for the first LOD.\n * @returns The current `InstancedMesh2` instance.\n */\n setFirstLODDistance(distance?: number, hysteresis?: number): this;\n /**\n * Adds a new LOD level with the given geometry, material, and distance.\n * @param geometry The geometry for the LOD level.\n * @param material The material for the LOD level.\n * @param distance The distance for this LOD level.\n * @param hysteresis The hysteresis value for this LOD level.\n * @returns The current `InstancedMesh2` instance.\n */\n addLOD(\n geometry: BufferGeometry,\n material: Material | Material[],\n distance?: number,\n hysteresis?: number,\n ): this;\n /**\n * Adds a shadow-specific LOD level with the given geometry and distance.\n * @param geometry The geometry for the shadow LOD.\n * @param distance The distance for this LOD level.\n * @param hysteresis The hysteresis value for this LOD level.\n * @returns The current `InstancedMesh2` instance.\n */\n addShadowLOD(geometry: BufferGeometry, distance?: number, hysteresis?: number): this;\n /** @internal */ addLevel(\n renderList: LODRenderList,\n geometry: BufferGeometry,\n material: Material | Material[],\n distance: number,\n hysteresis: number,\n ): InstancedMesh2;\n /** @internal */ patchLevel(obj: InstancedMesh2): void;\n }\n}\n\nInstancedMesh2.prototype.getObjectLODIndexForDistance = function (\n levels: LODLevel[],\n distance: number,\n): number {\n for (let i = levels.length - 1; i > 0; i--) {\n const level = levels[i];\n const levelDistance = level.distance - level.distance * level.hysteresis;\n if (distance >= levelDistance) return i;\n }\n\n return 0;\n};\n\nInstancedMesh2.prototype.setFirstLODDistance = function (\n distance = 0,\n hysteresis = 0,\n): InstancedMesh2 {\n if (this._parentLOD) {\n throw new Error(\"Cannot create LOD for this InstancedMesh2.\");\n }\n\n if (!this.LODinfo) {\n this.LODinfo = { render: null, shadowRender: null, objects: [this] };\n }\n\n if (!this.LODinfo.render) {\n this.LODinfo.render = {\n levels: [{ distance, hysteresis, object: this }],\n count: [0],\n };\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.addLOD = function (\n geometry: BufferGeometry,\n material: Material | Material[],\n distance = 0,\n hysteresis = 0,\n): InstancedMesh2 {\n if (this._parentLOD) {\n throw new Error(\"Cannot create LOD for this InstancedMesh2.\");\n }\n\n if (!this.LODinfo?.render && distance === 0) {\n throw new Error(\n 'Cannot set distance to 0 for the first LOD. Use \"setFirstLODDistance\" before use \"addLOD\".',\n );\n }\n\n this.setFirstLODDistance(0, hysteresis);\n\n this.addLevel(this.LODinfo.render, geometry, material, distance, hysteresis);\n\n return this;\n};\n\nInstancedMesh2.prototype.addShadowLOD = function (\n geometry: BufferGeometry,\n distance = 0,\n hysteresis = 0,\n): InstancedMesh2 {\n if (this._parentLOD) {\n throw new Error(\"Cannot create LOD for this InstancedMesh2.\");\n }\n\n if (!this.LODinfo) {\n this.LODinfo = { render: null, shadowRender: null, objects: [this] };\n }\n\n if (!this.LODinfo.shadowRender) {\n this.LODinfo.shadowRender = { levels: [], count: [] };\n }\n\n const object = this.addLevel(this.LODinfo.shadowRender, geometry, null, distance, hysteresis);\n object.castShadow = true;\n this.castShadow = true;\n\n return this;\n};\n\nInstancedMesh2.prototype.addLevel = function (\n renderList: LODRenderList,\n geometry: BufferGeometry,\n material: Material,\n distance: number,\n hysteresis: number,\n): InstancedMesh2 {\n const objectsList = this.LODinfo.objects;\n const levels = renderList.levels;\n let index;\n let object: InstancedMesh2;\n distance = distance ** 2; // to avoid to use Math.sqrt every time\n\n const objIndex = objectsList.findIndex((e: InstancedMesh2) => e.geometry === geometry);\n if (objIndex === -1) {\n const params: InstancedMesh2Params = { capacity: this._capacity, renderer: this._renderer };\n object = new InstancedMesh2(geometry, material ?? new ShaderMaterial(), params, this);\n object.frustumCulled = false;\n this.patchLevel(object);\n objectsList.push(object);\n this.add(object); // TODO handle render order?\n } else {\n object = objectsList[objIndex];\n if (material) object.material = material;\n }\n\n for (index = 0; index < levels.length; index++) {\n if (distance < levels[index].distance) break;\n }\n\n levels.splice(index, 0, { distance, hysteresis, object });\n renderList.count.push(0);\n\n return object;\n};\n\nInstancedMesh2.prototype.patchLevel = function (obj: InstancedMesh2): void {\n Object.defineProperty(obj, \"matricesTexture\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.matricesTexture;\n },\n });\n\n Object.defineProperty(obj, \"colorsTexture\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.colorsTexture;\n },\n });\n\n Object.defineProperty(obj, \"uniformsTexture\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.uniformsTexture;\n },\n });\n\n Object.defineProperty(obj, \"morphTexture\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.morphTexture;\n },\n });\n\n Object.defineProperty(obj, \"boneTexture\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.boneTexture;\n },\n });\n\n Object.defineProperty(obj, \"skeleton\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.skeleton;\n },\n });\n\n Object.defineProperty(obj, \"bindMatrixInverse\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.bindMatrixInverse;\n },\n });\n\n Object.defineProperty(obj, \"bindMatrix\", {\n get(this: InstancedMesh2) {\n return this._parentLOD.bindMatrix;\n },\n });\n};\n", "import { DataTexture, FloatType, Mesh, RedFormat } from \"three\";\n\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /**\n * Gets the morph target data for a specific instance.\n * @param id The index of the instance.\n * @param object Optional `Mesh` to store the morph target data.\n * @returns The mesh object with updated morph target influences.\n */\n getMorphAt(id: number, object?: Mesh): Mesh;\n /**\n * Sets the morph target influences for a specific instance.\n * @param id The index of the instance.\n * @param object The `Mesh` containing the morph target influences to apply.\n */\n setMorphAt(id: number, object: Mesh): void;\n }\n}\n\nconst _tempMesh = new Mesh();\n\nInstancedMesh2.prototype.getMorphAt = function (id: number, object = _tempMesh): Mesh {\n const objectInfluences = object.morphTargetInfluences!;\n const array = this.morphTexture.source.data.data;\n const len = objectInfluences.length + 1; // All influences + the baseInfluenceSum\n const dataIndex = id * len + 1; // Skip the baseInfluenceSum at the beginning\n\n for (let i = 0; i < objectInfluences.length; i++) {\n objectInfluences[i] = array[dataIndex + i];\n }\n\n return object;\n};\n\nInstancedMesh2.prototype.setMorphAt = function (id: number, object: Mesh): void {\n const objectInfluences = object.morphTargetInfluences!;\n const len = objectInfluences.length + 1;\n\n if (this.morphTexture === null && !this._parentLOD) {\n this.morphTexture = new DataTexture(\n new Float32Array(len * this._capacity),\n len,\n this._capacity,\n RedFormat,\n FloatType,\n );\n }\n\n const array = this.morphTexture.source.data.data;\n let morphInfluencesSum = 0;\n\n for (const objectInfluence of objectInfluences) {\n morphInfluencesSum += objectInfluence;\n }\n\n const morphBaseInfluence = this._geometry.morphTargetsRelative ? 1 : 1 - morphInfluencesSum;\n const dataIndex = len * id;\n array[dataIndex] = morphBaseInfluence;\n array.set(objectInfluences, dataIndex + 1);\n this.morphTexture.needsUpdate = true;\n};\n", "import { Intersection, Matrix4, Mesh, Ray, Raycaster, Sphere, Vector3 } from \"three\";\n\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /** @internal */ raycastInstances(raycaster: Raycaster, result: Intersection[]): void;\n /** @internal */ checkObjectIntersection(\n raycaster: Raycaster,\n objectIndex: number,\n result: Intersection[],\n ): void;\n }\n}\n\nconst _intersections: Intersection[] = [];\nconst _mesh = new Mesh();\nconst _ray = new Ray();\nconst _direction = new Vector3();\nconst _worldScale = new Vector3();\nconst _invMatrixWorld = new Matrix4();\nconst _sphere = new Sphere();\n\nInstancedMesh2.prototype.raycast = function (raycaster, result) {\n if (this._parentLOD || !this.material || this._instancesArrayCount === 0 || !this.instanceIndex)\n return;\n\n _mesh.geometry = this._geometry;\n _mesh.material = this.material;\n\n const originalRay = raycaster.ray;\n const originalNear = raycaster.near;\n const originalFar = raycaster.far;\n\n _invMatrixWorld.copy(this.matrixWorld).invert();\n\n _worldScale.setFromMatrixScale(this.matrixWorld);\n _direction.copy(raycaster.ray.direction).multiply(_worldScale);\n const scaleFactor = _direction.length();\n\n raycaster.ray = _ray.copy(raycaster.ray).applyMatrix4(_invMatrixWorld);\n raycaster.near /= scaleFactor;\n raycaster.far /= scaleFactor;\n\n this.raycastInstances(raycaster, result);\n\n raycaster.ray = originalRay;\n raycaster.near = originalNear;\n raycaster.far = originalFar;\n};\n\nInstancedMesh2.prototype.raycastInstances = function (raycaster, result) {\n if (this.bvh) {\n this.bvh.raycast(raycaster, (instanceId: number) =>\n this.checkObjectIntersection(raycaster, instanceId, result),\n );\n // TODO test with three-mesh-bvh\n } else {\n if (this.boundingSphere === null) this.computeBoundingSphere();\n _sphere.copy(this.boundingSphere);\n if (!raycaster.ray.intersectsSphere(_sphere)) return;\n\n const instancesToCheck = this.instanceIndex.array; // TODO this is unsorted and it's slower to iterate. If raycastFrustum is false, don't use it.\n const raycastFrustum = this.raycastOnlyFrustum && this._perObjectFrustumCulled;\n const checkCount = raycastFrustum ? this.count : this._instancesArrayCount;\n\n for (let i = 0; i < checkCount; i++) {\n this.checkObjectIntersection(raycaster, instancesToCheck[i], result);\n }\n }\n};\n\nInstancedMesh2.prototype.checkObjectIntersection = function (raycaster, objectIndex, result) {\n // TODO check objectIndex > this._instancesArrayCount is necessary\n if (objectIndex > this._instancesArrayCount || !this.getActiveAndVisibilityAt(objectIndex))\n return;\n\n this.getMatrixAt(objectIndex, _mesh.matrixWorld);\n\n _mesh.raycast(raycaster, _intersections);\n\n for (const intersect of _intersections) {\n intersect.instanceId = objectIndex;\n intersect.object = this;\n result.push(intersect);\n }\n\n _intersections.length = 0;\n};\n", "import { Matrix4, Skeleton } from \"three\";\n\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\nimport { SquareDataTexture } from \"../utils/SquareDataTexture\";\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /**\n * Initialize the skeleton of the instances.\n * @param skeleton The skeleton to initialize.\n * @param disableMatrixAutoUpdate Whether to disable the matrix auto update of the bones. Default is `true`.\n */\n initSkeleton(skeleton: Skeleton, disableMatrixAutoUpdate?: boolean): void;\n /**\n * Set the bones of the skeleton to the instance at the specified index.\n * @param id The index of the instance.\n * @param updateBonesMatrices Whether to update the matrices of the bones. Default is `true`.\n * @param excludeBonesSet An optional set of bone names to exclude from updates, skipping their local matrix updates.\n */\n setBonesAt(id: number, updateBonesMatrices?: boolean): void;\n /** internal */ multiplyBoneMatricesAt(\n instanceIndex: number,\n boneIndex: number,\n m1: Matrix4,\n m2: Matrix4,\n ): void;\n }\n}\n\nInstancedMesh2.prototype.initSkeleton = function (\n skeleton: Skeleton,\n disableMatrixAutoUpdate = true,\n) {\n if (skeleton && this.skeleton !== skeleton && !this._parentLOD) {\n // TODO remove !this._parentLOD\n const bones = skeleton.bones;\n this.skeleton = skeleton;\n this.bindMatrix = new Matrix4();\n this.bindMatrixInverse = new Matrix4();\n this.boneTexture = new SquareDataTexture(Float32Array, 4, 4 * bones.length, this._capacity);\n\n if (disableMatrixAutoUpdate) {\n for (const bone of bones) {\n bone.matrixAutoUpdate = false;\n bone.matrixWorldAutoUpdate = false;\n }\n }\n\n this.materialsNeedsUpdate(); // TODO this may not work if change already present skeleton\n }\n};\n\nInstancedMesh2.prototype.setBonesAt = function (id: number, updateBonesMatrices = true) {\n const skeleton = this.skeleton;\n if (!skeleton) {\n throw new Error('\"setBonesAt\" cannot be called before \"initSkeleton\"');\n }\n\n const bones = skeleton.bones;\n const boneInverses = skeleton.boneInverses;\n\n for (let i = 0, l = bones.length; i < l; i++) {\n const bone = bones[i];\n\n if (updateBonesMatrices) {\n bone.updateMatrix();\n bone.matrixWorld.multiplyMatrices(bone.parent.matrixWorld, bone.matrix);\n }\n\n this.multiplyBoneMatricesAt(id, i, bone.matrixWorld, boneInverses[i]);\n }\n\n this.boneTexture.enqueueUpdate(id);\n};\n\nInstancedMesh2.prototype.multiplyBoneMatricesAt = function (\n instanceIndex: number,\n boneIndex: number,\n m1: Matrix4,\n m2: Matrix4,\n) {\n const offset = (instanceIndex * this.skeleton.bones.length + boneIndex) * 16;\n const ae = m1.elements;\n const be = m2.elements;\n const te = this.boneTexture._data;\n\n const a11 = ae[0],\n a12 = ae[4],\n a13 = ae[8],\n a14 = ae[12];\n const a21 = ae[1],\n a22 = ae[5],\n a23 = ae[9],\n a24 = ae[13];\n const a31 = ae[2],\n a32 = ae[6],\n a33 = ae[10],\n a34 = ae[14];\n const a41 = ae[3],\n a42 = ae[7],\n a43 = ae[11],\n a44 = ae[15];\n\n const b11 = be[0],\n b12 = be[4],\n b13 = be[8],\n b14 = be[12];\n const b21 = be[1],\n b22 = be[5],\n b23 = be[9],\n b24 = be[13];\n const b31 = be[2],\n b32 = be[6],\n b33 = be[10],\n b34 = be[14];\n const b41 = be[3],\n b42 = be[7],\n b43 = be[11],\n b44 = be[15];\n\n te[offset + 0] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n te[offset + 4] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n te[offset + 8] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n te[offset + 12] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n te[offset + 1] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n te[offset + 5] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n te[offset + 9] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n te[offset + 13] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n te[offset + 2] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n te[offset + 6] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n te[offset + 10] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n te[offset + 14] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n te[offset + 3] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n te[offset + 7] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n te[offset + 11] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n te[offset + 15] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n};\n", "import { InstancedMesh2 } from \"../InstancedMesh2\";\nimport {\n ChannelSize,\n SquareDataTexture,\n UniformMap,\n UniformMapType,\n UniformType,\n UniformValue,\n UniformValueObj,\n} from \"../utils/SquareDataTexture\";\n\ntype UniformSchema = { [x: string]: UniformType };\ntype UniformSchemaShader = { vertex?: UniformSchema; fragment?: UniformSchema };\n\ntype UniformSchemaResult = {\n channels: ChannelSize;\n pixelsPerInstance: number;\n uniformMap: UniformMap;\n fetchInFragmentShader: boolean;\n};\n\ndeclare module \"../InstancedMesh2\" {\n interface InstancedMesh2 {\n /**\n * Retrieves a uniform value for a specific instance.\n * @param id The index of the instance.\n * @param name The name of the uniform.\n * @param target Optional target object to store the uniform value.\n * @returns The uniform value for the specified instance.\n */\n getUniformAt(id: number, name: string, target?: UniformValueObj): UniformValue;\n /**\n * Sets a uniform value for a specific instance.\n * @param id The index of the instance.\n * @param name The name of the uniform.\n * @param value The value to set for the uniform.\n */\n setUniformAt(id: number, name: string, value: UniformValue): void;\n /**\n * Initializes per-instance uniforms using a schema.\n * @param schema The schema defining the uniforms.\n */\n initUniformsPerInstance(schema: UniformSchemaShader): void;\n /** @internal */ getUniformSchemaResult(schema: UniformSchemaShader): UniformSchemaResult;\n /** @internal */ getUniformOffset(size: number, tempOffset: number[]): number;\n /** @internal */ getUniformSize(type: UniformType): number;\n }\n}\n\nInstancedMesh2.prototype.getUniformAt = function (\n id: number,\n name: string,\n target?: UniformValueObj,\n): UniformValue {\n if (!this.uniformsTexture) {\n throw new Error('Before get/set uniform, it\\'s necessary to use \"initUniformsPerInstance\".');\n }\n return this.uniformsTexture.getUniformAt(id, name, target);\n};\n\nInstancedMesh2.prototype.setUniformAt = function (\n id: number,\n name: string,\n value: UniformValue,\n): void {\n if (!this.uniformsTexture) {\n throw new Error('Before get/set uniform, it\\'s necessary to use \"initUniformsPerInstance\".');\n }\n this.uniformsTexture.setUniformAt(id, name, value);\n this.uniformsTexture.enqueueUpdate(id);\n};\n\nInstancedMesh2.prototype.initUniformsPerInstance = function (schema: UniformSchemaShader): void {\n if (!this._parentLOD) {\n const { channels, pixelsPerInstance, uniformMap, fetchInFragmentShader } =\n this.getUniformSchemaResult(schema);\n this.uniformsTexture = new SquareDataTexture(\n Float32Array,\n channels,\n pixelsPerInstance,\n this._capacity,\n uniformMap,\n fetchInFragmentShader,\n );\n this.materialsNeedsUpdate();\n }\n};\n\nInstancedMesh2.prototype.getUniformSchemaResult = function (\n schema: UniformSchemaShader,\n): UniformSchemaResult {\n let totalSize = 0;\n const uniformMap = new Map<string, UniformMapType>();\n const uniforms: { type: UniformType; name: string; size: number }[] = [];\n const vertexSchema = schema.vertex ?? {};\n const fragmentSchema = schema.fragment ?? {};\n let fetchInFragmentShader = true;\n\n for (const name in vertexSchema) {\n const type = vertexSchema[name];\n const size = this.getUniformSize(type);\n totalSize += size;\n uniforms.push({ name, type, size });\n fetchInFragmentShader = false;\n }\n\n for (const name in fragmentSchema) {\n if (!vertexSchema[name]) {\n const type = fragmentSchema[name];\n const size = this.getUniformSize(type);\n totalSize += size;\n uniforms.push({ name, type, size });\n }\n }\n\n uniforms.sort((a, b) => b.size - a.size);\n\n const tempOffset: number[] = [];\n for (const { name, size, type } of uniforms) {\n const offset = this.getUniformOffset(size, tempOffset);\n uniformMap.set(name, { offset, size, type });\n }\n\n const pixelsPerInstance = Math.ceil(totalSize / 4);\n const channels = Math.min(totalSize, 4) as ChannelSize;\n\n return { channels, pixelsPerInstance, uniformMap, fetchInFragmentShader };\n};\n\nInstancedMesh2.prototype.getUniformOffset = function (size: number, tempOffset: number[]): number {\n if (size < 4) {\n for (let i = 0; i < tempOffset.length; i++) {\n if (tempOffset[i] + size <= 4) {\n const offset = i * 4 + tempOffset[i];\n tempOffset[i] += size;\n return offset;\n }\n }\n }\n\n const offset = tempOffset.length * 4;\n for (; size > 0; size -= 4) {\n tempOffset.push(size);\n }\n\n return offset;\n};\n\nInstancedMesh2.prototype.getUniformSize = function (type: UniformType): number {\n switch (type) {\n case \"float\":\n return 1;\n case \"vec2\":\n return 2;\n case \"vec3\":\n return 3;\n case \"vec4\":\n return 4;\n case \"mat3\":\n return 9;\n case \"mat4\":\n return 16;\n default:\n throw new Error(`Invalid uniform type: ${type}`);\n }\n};\n", "import { InstancedEntity } from \"../InstancedEntity\";\nimport { InstancedMesh2 } from \"../InstancedMesh2\";\n\n// TODO: optimize method to fill 'holes'.\n\n/**\n * Represents an extended entity type with custom data.\n */\nexport type Entity<T> = InstancedEntity & T;\n/**\n * A callback function used to update or initialize an entity.\n */\nexport type UpdateEntityCallback<T = InstancedEntity> = (obj: Entity<T>, index: number) => void;\n\ndeclare module \"../InstancedMesh2\" {\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n interface InstancedMesh2<TData = {}> {\n /**\n * Updates instances by applying a callback function to each instance. It calls `updateMatrix` for each instance.\n * @param onUpdate A callback function to update each entity.\n * @returns The current `InstancedMesh2` instance.\n */\n updateInstances(onUpdate: UpdateEntityCallback<Entity<TData>>): this;\n /**\n * Updates instances position by applying a callback function to each instance. It calls `updateMatrixPosition` for each instance.\n * This method updates only the position attributes of the matrix.\n * @param onUpdate A callback function to update each entity.\n * @returns The current `InstancedMesh2` instance.\n */\n updateInstancesPosition(onUpdate: UpdateEntityCallback<Entity<TData>>): this;\n /**\n * Adds new instances and optionally initializes them using a callback function.\n * @param count The number of new instances to add.\n * @param onCreation An optional callback to initialize each new entity.\n * @returns The current `InstancedMesh2` instance.\n */\n addInstances(count: number, onCreation?: UpdateEntityCallback<Entity<TData>>): this;\n /**\n * Removes instances by their ids.\n * @param ids The ids of the instances to remove.\n * @returns The current `InstancedMesh2` instance.\n */\n removeInstances(...ids: number[]): this;\n /**\n * Clears all instances and resets the instance count.\n * @returns The current `InstancedMesh2` instance.\n */\n clearInstances(): this;\n /** @internal */ clearTempInstance(index: number): InstancedEntity;\n /** @internal */ clearTempInstancePosition(index: number): InstancedEntity;\n /** @internal */ clearInstance(instance: InstancedEntity): InstancedEntity;\n /** @internal */ createEntities(start: number): this;\n /** @internal */ addInstance(id: number, onCreation?: UpdateEntityCallback): void;\n }\n}\n\nInstancedMesh2.prototype.clearTempInstance = function (index: number) {\n const instance = this._tempInstance;\n instance.id = index;\n return this.clearInstance(instance);\n};\n\nInstancedMesh2.prototype.clearTempInstancePosition = function (index: number) {\n const instance = this._tempInstance;\n instance.id = index;\n instance.position.set(0, 0, 0);\n return instance;\n};\n\nInstancedMesh2.prototype.clearInstance = function (instance: InstancedEntity) {\n instance.position.set(0, 0, 0);\n instance.scale.set(1, 1, 1);\n instance.quaternion.identity();\n return instance;\n};\n\nInstancedMesh2.prototype.updateInstances = function (\n this: InstancedMesh2,\n onUpdate: UpdateEntityCallback,\n) {\n const end = this._instancesArrayCount;\n const instances = this.instances;\n\n for (let i = 0; i < end; i++) {\n if (!this.getActiveAt(i)) continue;\n const instance = instances ? instances[i] : this.clearTempInstance(i);\n onUpdate(instance, i);\n instance.updateMatrix();\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.updateInstancesPosition = function (\n this: InstancedMesh2,\n onUpdate: UpdateEntityCallback,\n) {\n const end = this._instancesArrayCount;\n const instances = this.instances;\n\n for (let i = 0; i < end; i++) {\n if (!this.getActiveAt(i)) continue;\n const instance = instances ? instances[i] : this.clearTempInstancePosition(i);\n onUpdate(instance, i);\n instance.updateMatrixPosition();\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.createEntities = function (this: InstancedMesh2, start: number) {\n const end = this._instancesArrayCount;\n\n if (!this.instances) {\n this.instances = new Array(end);\n } else if (this.instances.length < end) {\n this.instances.length = end;\n } else {\n return this;\n }\n\n // we can also revert this for and put 'break' instead of 'continue' but no it's memory consecutive\n const instances = this.instances;\n for (let i = start; i < end; i++) {\n if (instances[i]) continue;\n instances[i] = new InstancedEntity(this, i, this._allowsEuler);\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.addInstances = function (\n count: number,\n onCreation?: UpdateEntityCallback,\n) {\n if (!onCreation && this.bvh) {\n console.warn(\n \"InstancedMesh2: if `computeBVH()` has already been called, it is better to valorize the instances in the `onCreation` callback for better performance.\",\n );\n }\n\n // refill holes created from removeInstances\n const freeIds = this._freeIds;\n if (freeIds.length > 0) {\n let maxId = -1;\n const freeIdsUsed = Math.min(freeIds.length, count);\n const freeidsEnd = freeIds.length - freeIdsUsed;\n\n for (let i = freeIds.length - 1; i >= freeidsEnd; i--) {\n const id = freeIds[i];\n if (id > maxId) maxId = id;\n this.addInstance(id, onCreation);\n }\n\n freeIds.length -= freeIdsUsed;\n count -= freeIdsUsed;\n this._instancesArrayCount = Math.max(maxId + 1, this._instancesArrayCount);\n }\n\n const start = this._instancesArrayCount;\n const end = start + count;\n this.setInstancesArrayCount(end);\n\n for (let i = start; i < end; i++) {\n this.addInstance(i, onCreation);\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.addInstance = function (id: number, onCreation?: UpdateEntityCallback) {\n this._instancesCount++;\n this.setActiveAndVisibilityAt(id, true);\n const instance = this.instances\n ? this.clearInstance(this.instances[id])\n : this.clearTempInstance(id);\n\n if (onCreation) {\n onCreation(instance, id);\n instance.updateMatrix();\n } else {\n instance.setMatrixIdentity();\n }\n\n this.bvh?.insert(id);\n};\n\nInstancedMesh2.prototype.removeInstances = function (...ids: number[]) {\n const freeIds = this._freeIds;\n const bvh = this.bvh;\n\n for (const id of ids) {\n if (id < this._instancesArrayCount && this.getActiveAt(id)) {\n this.setActiveAt(id, false);\n freeIds.push(id);\n bvh?.delete(id);\n this._instancesCount--;\n }\n }\n\n for (let i = this._instancesArrayCount - 1; i >= 0; i--) {\n if (this.getActiveAt(i)) break;\n this._instancesArrayCount--;\n }\n\n return this;\n};\n\nInstancedMesh2.prototype.clearInstances = function () {\n this._instancesCount = 0;\n this._instancesArrayCount = 0;\n this._freeIds.length = 0;\n\n this.bvh?.clear();\n\n if (this.LODinfo) {\n for (const obj of this.LODinfo.objects) {\n obj.count = 0;\n }\n }\n\n return this;\n};\n", "import { ShaderChunk } from \"three\";\n\nimport { instanced_color_pars_vertex } from \"./chunks/instanced_color_pars_vertex\";\nimport { instanced_color_vertex } from \"./chunks/instanced_color_vertex\";\nimport { instanced_material_color_pars_vertex } from \"./chunks/instanced_material_color_pars_vertex\";\nimport { instanced_material_color_vertex } from \"./chunks/instanced_material_color_vertex\";\nimport { instanced_pars_vertex } from \"./chunks/instanced_pars_vertex\";\nimport { instanced_skinning_pars_vertex } from \"./chunks/instanced_skinning_pars_vertex\";\nimport { instanced_vertex } from \"./chunks/instanced_vertex\";\n\n(ShaderChunk as any)[\"instanced_pars_vertex\"] = instanced_pars_vertex;\n(ShaderChunk as any)[\"instanced_color_pars_vertex\"] = instanced_color_pars_vertex;\n(ShaderChunk as any)[\"instanced_vertex\"] = instanced_vertex;\n(ShaderChunk as any)[\"instanced_color_vertex\"] = instanced_color_vertex;\n(ShaderChunk as any)[\"instanced_material_color_pars_vertex\"] = instanced_material_color_pars_vertex;\n(ShaderChunk as any)[\"instanced_material_color_vertex\"] = instanced_material_color_vertex;\n\nexport function patchShader(shader: string): string {\n return shader.replace(\n \"#ifdef USE_INSTANCING\",\n \"#if defined USE_INSTANCING || defined USE_INSTANCING_INDIRECT\",\n );\n}\n\nShaderChunk.project_vertex = patchShader(ShaderChunk.project_vertex);\nShaderChunk.worldpos_vertex = patchShader(ShaderChunk.worldpos_vertex);\nShaderChunk.defaultnormal_vertex = patchShader(ShaderChunk.defaultnormal_vertex);\n\nShaderChunk.batching_pars_vertex = ShaderChunk.batching_pars_vertex.concat(\n \"\\n#include <instanced_pars_vertex>\",\n);\nShaderChunk.color_pars_vertex = ShaderChunk.color_pars_vertex.concat(\n \"\\n#include <instanced_color_pars_vertex>\",\n \"\\n#include <instanced_material_color_pars_vertex>\",\n);\n(ShaderChunk as any)[\"batching_vertex\"] = (ShaderChunk as any)[\"batching_vertex\"].concat(\n \"\\n#include <instanced_vertex>\",\n);\n\nShaderChunk.skinning_pars_vertex = instanced_skinning_pars_vertex;\n\nif ((ShaderChunk as any)[\"morphinstance_vertex\"]) {\n (ShaderChunk as any)[\"morphinstance_vertex\"] = (ShaderChunk as any)[\n \"morphinstance_vertex\"\n ].replaceAll(\"gl_InstanceID\", \"instanceIndex\");\n}\n", "export const instanced_color_pars_vertex = /* glsl */ `\n\n#ifdef USE_INSTANCING_COLOR_INDIRECT\n uniform highp sampler2D colorsTexture;\n\n #ifdef USE_COLOR_ALPHA\n vec4 getColorTexture() {\n int size = textureSize( colorsTexture, 0 ).x;\n int j = int( instanceIndex );\n int x = j % size;\n int y = j / size;\n return texelFetch( colorsTexture, ivec2( x, y ), 0 );\n }\n #else\n vec3 getColorTexture() {\n int size = textureSize( colorsTexture, 0 ).x;\n int j = int( instanceIndex );\n int x = j % size;\n int y = j / size;\n return texelFetch( colorsTexture, ivec2( x, y ), 0 ).rgb;\n }\n #endif\n#endif\n`;\n", "export const instanced_color_vertex = /* glsl */ `\n#ifdef USE_INSTANCING_COLOR_INDIRECT\n #ifdef USE_VERTEX_COLOR\n vColor = color;\n #else\n #ifdef USE_COLOR_ALPHA\n vColor = vec4( 1.0 );\n #else\n vColor = vec3( 1.0 );\n #endif\n #endif\n#endif\n`;\n", "export const instanced_material_color_pars_vertex = /* glsl */ `\n#ifdef USE_INSTANCING_MATERIAL_COLORS\n uniform highp sampler2D materialColorsTexture;\n\n // material indices for the LUT\n #define MATERIAL_HAIR 0\n #define MATERIAL_SHIRT_SHORT 1\n #define MATERIAL_SHIRT_LONG 2\n #define MATERIAL_PANTS_SHORT 3\n #define MATERIAL_PANTS_LONG 4\n #define MATERIAL_SHOES 5\n #define MATERIAL_SKIN 6\n #define MATERIAL_LIPS 7\n\n vec3 getMaterialColorTexture(int materialIndex) {\n int size = textureSize(materialColorsTexture, 0).x;\n int instanceId = int(instanceIndex);\n int colorIndex = instanceId * 8 + materialIndex;\n int x = colorIndex % size;\n int y = colorIndex / size;\n return texelFetch(materialColorsTexture, ivec2(x, y), 0).rgb;\n }\n#endif\n`;\n", "export const instanced_material_color_vertex = /* glsl */ `\n#ifdef USE_INSTANCING_MATERIAL_COLORS\n #ifdef USE_VERTEX_COLOR\n vec3 vertexColor = color;\n vec3 instanceColor = vec3(1.0);\n \n if (vertexColor.r == 0.0 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Hair material (0, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_HAIR);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 0.0 && vertexColor.b == 1.0) {\n // Shirt short material (0, 0, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_SHIRT_SHORT);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 1.0 && vertexColor.b == 0.0) {\n // Shirt long material (0, 1, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SHIRT_LONG);\n } else if (vertexColor.r == 0.0 && vertexColor.g == 1.0 && vertexColor.b == 1.0) {\n // Pants short material (0, 1, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_PANTS_SHORT);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Pants long material (1, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_PANTS_LONG);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 0.0 && vertexColor.b == 1.0) {\n // Shoes material (1, 0, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_SHOES);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 1.0 && vertexColor.b == 0.0) {\n // Skin material (1, 1, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN);\n } else if (vertexColor.r == 1.0 && vertexColor.g == 1.0 && vertexColor.b == 1.0) {\n // Lips material (1, 1, 1)\n instanceColor = getMaterialColorTexture(MATERIAL_LIPS);\n } else if (vertexColor.r == 0.5 && vertexColor.g == 0.0 && vertexColor.b == 0.0) {\n // Eyes black material (0.5, 0, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN); // Using skin index for now\n } else if (vertexColor.r == 0.0 && vertexColor.g == 0.5 && vertexColor.b == 0.0) {\n // Eyes white material (0, 0.5, 0)\n instanceColor = getMaterialColorTexture(MATERIAL_SKIN); // Using skin index for now\n }\n \n vColor = instanceColor;\n #else\n vColor = vec3(1.0);\n #endif\n#endif\n`;\n", "export const instanced_pars_vertex = /* glsl */ `\n#ifdef USE_INSTANCING_INDIRECT\n attribute uint instanceIndex;\n uniform highp sampler2D matricesTexture; \n\n mat4 getInstancedMatrix() {\n int size = textureSize( matricesTexture, 0 ).x;\n int j = int( instanceIndex ) * 4;\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( matricesTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( matricesTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( matricesTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( matricesTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif\n`;\n", "export const instanced_skinning_pars_vertex = /* glsl */ `\n#ifdef USE_SKINNING\n uniform mat4 bindMatrix;\n uniform mat4 bindMatrixInverse;\n uniform highp sampler2D boneTexture;\n\n #ifdef USE_INSTANCING_SKINNING\n uniform int bonesPerInstance;\n #endif\n\n mat4 getBoneMatrix( const in float i ) {\n int size = textureSize( boneTexture, 0 ).x;\n\n #ifdef USE_INSTANCING_SKINNING\n int j = ( bonesPerInstance * int( instanceIndex ) + int( i ) ) * 4;\n #else\n int j = int( i ) * 4;\n #endif\n\n int x = j % size;\n int y = j / size;\n vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );\n vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );\n vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );\n vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );\n return mat4( v1, v2, v3, v4 );\n }\n#endif\n`;\n", "export const instanced_vertex = /* glsl */ `\n#ifdef USE_INSTANCING_INDIRECT\n mat4 instanceMatrix = getInstancedMatrix();\n\n #ifdef USE_INSTANCING_COLOR_INDIRECT\n vColor *= getColorTexture();\n #endif\n#endif\n`;\n", "import { InstancedBufferAttribute, InstancedMesh, Mesh, SkinnedMesh } from \"three\";\n\nimport { InstancedMesh2, InstancedMesh2Params } from \"../core/InstancedMesh2\";\n\n/**\n * Create an `InstancedMesh2` instance from an existing `Mesh` or `InstancedMesh`.\n * @param mesh The `Mesh` or `InstancedMesh` to create an `InstanceMesh2` from.\n * @param params Optional configuration parameters object. See `InstancedMesh2Params` for details.\n * @returns The created `InstancedMesh2` instance.\n */\nexport function createInstancedMesh2From<TData = object>(\n mesh: Mesh,\n params: InstancedMesh2Params = {},\n): InstancedMesh2<TData> {\n if ((mesh as SkinnedMesh).isSkinnedMesh) return createFromSkinnedMesh(mesh as SkinnedMesh);\n if ((mesh as InstancedMesh).isInstancedMesh)\n return createFromInstancedMesh(mesh as InstancedMesh);\n // TODO add morph support\n return new InstancedMesh2<TData>(mesh.geometry, mesh.material, params);\n\n function createFromSkinnedMesh<TData = object>(mesh: SkinnedMesh): InstancedMesh2<TData> {\n const instancedMesh = new InstancedMesh2<TData>(mesh.geometry, mesh.material, params);\n (instancedMesh as any).initSkeleton(mesh.skeleton);\n return instancedMesh;\n }\n\n function createFromInstancedMesh<TData = object>(mesh: InstancedMesh): InstancedMesh2<TData> {\n params.capacity = Math.max(mesh.count, params.capacity ?? 1000);\n\n const geometry = mesh.geometry.clone();\n geometry.deleteAttribute(\"instanceIndex\");\n warnIfInstancedAttribute();\n\n const instancedMesh = new InstancedMesh2<TData>(geometry, mesh.material, params);\n\n instancedMesh.position.copy(mesh.position);\n instancedMesh.quaternion.copy(mesh.quaternion);\n instancedMesh.scale.copy(mesh.scale);\n\n copyInstances();\n copyMatrices();\n copyColors();\n // TODO copy morph target?\n\n return instancedMesh;\n\n function copyInstances(): void {\n instancedMesh.setInstancesArrayCount(mesh.count);\n instancedMesh._instancesCount = mesh.count;\n instancedMesh.availabilityArray.fill(true, 0, mesh.count * 2);\n }\n\n function copyMatrices(): void {\n (instancedMesh.matricesTexture.image.data as unknown as Float32Array).set(\n mesh.instanceMatrix.array,\n );\n }\n\n function copyColors(): void {\n if (mesh.instanceColor) {\n (instancedMesh as any).initColorsTexture();\n\n const rgbArray = mesh.instanceColor.array;\n const rgbaArray = instancedMesh.colorsTexture!.image.data as unknown as Float32Array;\n\n for (let i = 0, j = 0; i < rgbArray.length; i += 3, j += 4) {\n rgbaArray[j] = rgbArray[i];\n rgbaArray[j + 1] = rgbArray[i + 1];\n rgbaArray[j + 2] = rgbArray[i + 2];\n rgbaArray[j + 3] = 1;\n }\n }\n }\n\n function warnIfInstancedAttribute(): void {\n const attributes = geometry.attributes;\n for (const name in attributes) {\n if ((attributes[name] as InstancedBufferAttribute).isInstancedBufferAttribute) {\n console.warn(`InstancedBufferAttribute \"${name}\" is not supported. It will be ignored.`);\n }\n }\n }\n }\n}\n", "import { Matr4, CollisionMesh } from \"@mml-io/3d-web-client-core\";\nimport {\n BufferGeometry,\n InstancedMesh,\n Matrix4,\n Group,\n Object3D,\n Mesh,\n MeshBasicMaterial,\n LineBasicMaterial,\n Color,\n Scene,\n Float32BufferAttribute,\n} from \"three\";\nimport { VertexNormalsHelper } from \"three/examples/jsm/helpers/VertexNormalsHelper.js\";\nimport * as BufferGeometryUtils from \"three/examples/jsm/utils/BufferGeometryUtils.js\";\nimport { MeshBVH, MeshBVHHelper } from \"three-mesh-bvh\";\n\nexport class ThreeJSCollisionManager {\n private tempMatrixThree = new Matrix4();\n private collisionDebugGroups = new Map<Group, Group>();\n private collisionMeshBVHs = new Map<Group, MeshBVH>();\n\n constructor(private scene: Scene) {}\n\n public createCollisionMesh(group: Group): CollisionMesh {\n const geometries: Array<BufferGeometry> = [];\n group.updateWorldMatrix(true, false);\n group.traverse((child: Object3D) => {\n const asMesh = child as Mesh;\n if (asMesh.isMesh) {\n const asInstancedMesh = asMesh as InstancedMesh;\n if (asInstancedMesh.isInstancedMesh) {\n // Compute the InstancedMesh's transformation relative to the group\n const instancedMeshRelativeMatrix = new Matrix4();\n let currentObject: Object3D | null = asInstancedMesh;\n while (currentObject && currentObject !== group) {\n currentObject.updateMatrix();\n instancedMeshRelativeMatrix.premultiply(currentObject.matrix);\n currentObject = currentObject.parent;\n }\n\n for (let i = 0; i < asInstancedMesh.count; i++) {\n const clonedGeometry = asInstancedMesh.geometry.clone();\n for (const key in clonedGeometry.attributes) {\n if (key !== \"position\") {\n clonedGeometry.deleteAttribute(key);\n }\n }\n // Apply instance matrix first, then the InstancedMesh's relative transformation\n clonedGeometry.applyMatrix4(\n this.tempMatrixThree.fromArray(asInstancedMesh.instanceMatrix.array, i * 16),\n );\n clonedGeometry.applyMatrix4(instancedMeshRelativeMatrix);\n if (clonedGeometry.index) {\n geometries.push(clonedGeometry.toNonIndexed());\n } else {\n geometries.push(clonedGeometry);\n }\n }\n } else {\n const clonedGeometry = asMesh.geometry.clone();\n for (const key in clonedGeometry.attributes) {\n if (key !== \"position\") {\n clonedGeometry.deleteAttribute(key);\n }\n }\n\n // Compute the mesh's transformation relative to the group by accumulating local matrices\n this.tempMatrixThree.identity();\n let currentObject: Object3D | null = asMesh;\n while (currentObject && currentObject !== group) {\n currentObject.updateMatrix();\n this.tempMatrixThree.premultiply(currentObject.matrix);\n currentObject = currentObject.parent;\n }\n\n clonedGeometry.applyMatrix4(this.tempMatrixThree);\n if (clonedGeometry.index) {\n geometries.push(clonedGeometry.toNonIndexed());\n } else {\n geometries.push(clonedGeometry);\n }\n }\n }\n });\n\n let bufferGeometry: BufferGeometry;\n if (geometries.length === 0) {\n bufferGeometry = new BufferGeometry();\n bufferGeometry.setAttribute(\"position\", new Float32BufferAttribute(new Float32Array(), 3));\n } else {\n bufferGeometry = BufferGeometryUtils.mergeGeometries(geometries, false);\n bufferGeometry.computeVertexNormals();\n }\n const meshBVH = new MeshBVH(bufferGeometry);\n\n return {\n meshBVH,\n matrix: new Matr4().fromArray(group.matrixWorld.elements),\n localScale: {\n x: group.scale.x,\n y: group.scale.y,\n z: group.scale.z,\n },\n };\n }\n\n public updateDebugVisualization(enabled: boolean, source: Group, meshBVH: MeshBVH): void {\n this.collisionMeshBVHs.set(source, meshBVH);\n\n if (enabled) {\n if (!this.collisionDebugGroups.has(source)) {\n const debugGroup = this.createCollisionDebugVisuals(source, meshBVH);\n this.collisionDebugGroups.set(source, debugGroup);\n this.scene.add(debugGroup);\n }\n } else {\n const debugGroup = this.collisionDebugGroups.get(source);\n if (debugGroup) {\n this.scene.remove(debugGroup);\n // Dispose of all resources used by the debug visuals\n debugGroup.traverse((object) => {\n if (typeof (object as any).dispose === \"function\") {\n (object as any).dispose();\n }\n });\n debugGroup.clear();\n this.collisionDebugGroups.delete(source);\n }\n }\n }\n\n public removeDebugVisualization(source: Group): void {\n const debugGroup = this.collisionDebugGroups.get(source);\n if (debugGroup) {\n this.scene.remove(debugGroup);\n debugGroup.traverse((object) => {\n if (typeof (object as any).dispose === \"function\") {\n (object as any).dispose();\n }\n });\n debugGroup.clear();\n this.collisionDebugGroups.delete(source);\n }\n this.collisionMeshBVHs.delete(source);\n }\n\n public updateDebugPosition(source: Group): void {\n const debugGroup = this.collisionDebugGroups.get(source);\n if (debugGroup) {\n source.updateWorldMatrix(true, false);\n source.matrixWorld.decompose(debugGroup.position, debugGroup.quaternion, debugGroup.scale);\n }\n }\n\n public toggleDebugForAll(enabled: boolean): void {\n this.collisionMeshBVHs.forEach((meshBVH, source) => {\n this.updateDebugVisualization(enabled, source, meshBVH);\n });\n }\n\n public clearAllDebugVisualizations(): void {\n this.collisionDebugGroups.forEach((debugGroup) => {\n this.scene.remove(debugGroup);\n debugGroup.traverse((object) => {\n if (typeof (object as any).dispose === \"function\") {\n (object as any).dispose();\n }\n });\n debugGroup.clear();\n });\n this.collisionDebugGroups.clear();\n this.collisionMeshBVHs.clear();\n }\n\n private createCollisionDebugVisuals(source: Group, meshBVH: MeshBVH): Group {\n const geometry = meshBVH.geometry;\n\n // Add the boundsTree property to the geometry so that the MeshBVHHelper can find it\n geometry.boundsTree = meshBVH;\n const wireframeMesh = new Mesh(geometry, new MeshBasicMaterial({ wireframe: true }));\n wireframeMesh.name = \"wireframe mesh\";\n const normalsHelper = new VertexNormalsHelper(wireframeMesh, 0.25, 0x00ff00);\n normalsHelper.name = \"normals helper\";\n const visualizer = new MeshBVHHelper(wireframeMesh, 4);\n visualizer.name = \"meshBVH visualizer\";\n (visualizer.edgeMaterial as LineBasicMaterial).color = new Color(\"blue\");\n\n const debugGroup = new Group();\n debugGroup.add(wireframeMesh, normalsHelper, visualizer);\n source.matrixWorld.decompose(debugGroup.position, debugGroup.quaternion, debugGroup.scale);\n visualizer.update();\n\n return debugGroup;\n }\n}\n", "import { HDRJPGLoader } from \"@monogrid/gainmap-js\";\nimport {\n AmbientLight,\n Color,\n CubeCamera,\n EquirectangularReflectionMapping,\n Euler,\n Fog,\n HalfFloatType,\n LinearMipmapLinearFilter,\n LinearSRGBColorSpace,\n LoadingManager,\n MathUtils,\n PerspectiveCamera,\n PMREMGenerator,\n Scene,\n ShadowMapType,\n SRGBColorSpace,\n Texture,\n ToneMapping,\n Vector3,\n WebGLCubeRenderTarget,\n WebGLRenderer,\n} from \"three\";\nimport { RGBELoader } from \"three/examples/jsm/loaders/RGBELoader.js\";\nimport { Sky } from \"three/examples/jsm/objects/Sky.js\";\n\nimport { ThreeJSCameraManager } from \"./camera/ThreeJSCameraManager\";\nimport { PostProcessingManager } from \"./post-effects/PostProcessingManager\";\nimport { Sun } from \"./sun/Sun\";\nimport {\n createDefaultEnvValues,\n createDefaultSunValues,\n EnvValues,\n SunValues,\n} from \"./tweakpane/blades/environmentFolder\";\nimport { createDefaultRendererValues, RendererValues } from \"./tweakpane/blades/rendererFolder\";\n\ntype ComposerContructorArgs = {\n scene: Scene;\n cameraManager: ThreeJSCameraManager;\n spawnSun: boolean;\n environmentConfiguration?: EnvironmentConfiguration;\n postProcessingEnabled?: boolean;\n};\n\nexport type EnvironmentConfiguration = {\n groundPlane?: boolean;\n skybox?: {\n intensity?: number;\n blurriness?: number;\n azimuthalAngle?: number;\n polarAngle?: number;\n } & (\n | {\n hdrJpgUrl: string;\n }\n | {\n hdrUrl: string;\n }\n );\n envMap?: {\n intensity?: number;\n };\n sun?: {\n intensity?: number;\n polarAngle?: number;\n azimuthalAngle?: number;\n };\n fog?: {\n fogNear?: number;\n fogFar?: number;\n fogColor?: {\n r: number;\n g: number;\n b: number;\n };\n };\n postProcessing?: {\n bloomIntensity?: number;\n };\n ambientLight?: {\n intensity?: number;\n };\n};\n\nexport class Composer {\n private width: number = 1;\n private height: number = 1;\n private resizeListener: () => void;\n\n private readonly scene: Scene;\n public postPostScene: Scene;\n private threeJSCameraManager: ThreeJSCameraManager;\n public readonly renderer: WebGLRenderer;\n\n private postProcessingManager: PostProcessingManager;\n private currentCamera: PerspectiveCamera;\n\n private ambientLight: AmbientLight | null = null;\n private environmentConfiguration?: EnvironmentConfiguration;\n\n private skyboxState: {\n src: {\n hdrJpgUrl?: string;\n hdrUrl?: string;\n };\n latestPromise: Promise<unknown> | null;\n } = { src: {}, latestPromise: null };\n\n public sun: Sun | null = null;\n public spawnSun: boolean;\n private sky: Sky | null = null;\n private skyDirty = true;\n private skyCubeCamera: CubeCamera | null = null;\n private skyRenderTarget: WebGLCubeRenderTarget | null = null;\n\n private currentAzimuthalAngle: number = 0;\n private currentPolarAngle: number = 0;\n private targetAzimuthalAngle: number = 0;\n private targetPolarAngle: number = 0;\n private currentIntensity: number = 0;\n private targetIntensity: number = 0;\n private readonly lerpSpeed: number = 0.05;\n\n private postProcessingEnabled: boolean | undefined;\n\n public readonly sunValues: SunValues;\n public readonly envValues: EnvValues;\n public readonly rendererValues: RendererValues;\n\n constructor({\n scene,\n cameraManager,\n spawnSun = false,\n environmentConfiguration,\n postProcessingEnabled,\n }: ComposerContructorArgs) {\n this.scene = scene;\n this.threeJSCameraManager = cameraManager;\n this.postPostScene = new Scene();\n this.spawnSun = spawnSun;\n this.postProcessingEnabled = postProcessingEnabled;\n\n this.sunValues = createDefaultSunValues();\n this.envValues = createDefaultEnvValues();\n this.rendererValues = createDefaultRendererValues();\n\n this.renderer = new WebGLRenderer({\n powerPreference: \"high-performance\",\n antialias: true,\n });\n this.renderer.outputColorSpace = SRGBColorSpace;\n this.renderer.info.autoReset = false;\n this.renderer.setSize(this.width, this.height);\n this.renderer.shadowMap.enabled = true;\n this.renderer.shadowMap.type = this.rendererValues.shadowMap as ShadowMapType;\n this.renderer.toneMapping = this.rendererValues.toneMapping as ToneMapping;\n this.renderer.toneMappingExposure = this.rendererValues.exposure;\n\n this.environmentConfiguration = environmentConfiguration;\n\n this.currentAzimuthalAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunAzimuthalAngle);\n this.currentPolarAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunPolarAngle);\n this.targetAzimuthalAngle = this.currentAzimuthalAngle;\n this.targetPolarAngle = this.currentPolarAngle;\n this.currentIntensity = this.sunValues.sunIntensity;\n this.targetIntensity = this.currentIntensity;\n\n this.currentCamera = this.threeJSCameraManager.getActiveCamera();\n this.postProcessingManager = new PostProcessingManager(\n this.renderer,\n this.scene,\n this.currentCamera,\n this.width,\n this.height,\n {\n enabled: this.postProcessingEnabled,\n bloom: { intensity: environmentConfiguration?.postProcessing?.bloomIntensity },\n },\n );\n\n this.updateSkyboxAndEnvValues();\n this.updateAmbientLightValues();\n this.updateFogValues();\n\n if (this.spawnSun === true) {\n this.sun = new Sun(this.sunValues);\n this.scene.add(this.sun);\n }\n\n if (this.environmentConfiguration?.skybox) {\n if (\"hdrJpgUrl\" in this.environmentConfiguration.skybox) {\n this.useHDRJPG(this.environmentConfiguration.skybox.hdrJpgUrl);\n } else if (\"hdrUrl\" in this.environmentConfiguration.skybox) {\n this.useHDRI(this.environmentConfiguration.skybox.hdrUrl);\n }\n }\n\n this.updateSunValues();\n this.setupSkyShader();\n\n this.resizeListener = () => {\n this.fitContainer();\n };\n\n window.addEventListener(\"resize\", this.resizeListener, false);\n\n this.fitContainer();\n }\n\n private setupSkyShader() {\n if (this.hasHDR()) {\n return;\n }\n this.sky = new Sky();\n this.sky.scale.setScalar(50000);\n\n this.sky.material.uniforms.sunPosition.value = new Vector3().setFromSphericalCoords(\n 1,\n MathUtils.degToRad(this.sunValues.sunPosition.sunPolarAngle),\n MathUtils.degToRad(this.sunValues.sunPosition.sunAzimuthalAngle),\n );\n\n this.sky.material.uniforms.turbidity.value = this.sunValues.skyTurbidity;\n this.sky.material.uniforms.rayleigh.value = this.sunValues.skyRayleigh;\n this.sky.material.uniforms.mieCoefficient.value = this.sunValues.skyMieCoefficient;\n this.sky.material.uniforms.mieDirectionalG.value = this.sunValues.skyMieDirectionalG;\n\n this.skyRenderTarget = new WebGLCubeRenderTarget(512, {\n type: HalfFloatType,\n generateMipmaps: true,\n minFilter: LinearMipmapLinearFilter,\n });\n\n this.skyCubeCamera = new CubeCamera(1, 1.1, this.skyRenderTarget);\n this.skyCubeCamera.update(this.renderer, this.sky);\n this.scene.environment = this.skyRenderTarget.texture;\n this.scene.add(this.sky);\n }\n\n public updateEnvironmentConfiguration(environmentConfiguration: EnvironmentConfiguration) {\n this.environmentConfiguration = environmentConfiguration;\n\n if (environmentConfiguration.skybox) {\n if (\"hdrJpgUrl\" in environmentConfiguration.skybox) {\n this.useHDRJPG(environmentConfiguration.skybox.hdrJpgUrl);\n } else if (\"hdrUrl\" in environmentConfiguration.skybox) {\n this.useHDRI(environmentConfiguration.skybox.hdrUrl);\n }\n }\n\n this.updateSkyboxAndEnvValues();\n this.updateAmbientLightValues();\n this.updateBloomValues();\n this.updateSunValues();\n this.updateFogValues();\n }\n\n public dispose() {\n window.removeEventListener(\"resize\", this.resizeListener);\n this.renderer.dispose();\n this.postProcessingManager.dispose();\n }\n\n public fitContainer() {\n const parentElement = this.renderer.domElement.parentNode as HTMLElement;\n if (!parentElement) {\n return;\n }\n this.width = parentElement.clientWidth;\n this.height = parentElement.clientHeight;\n this.threeJSCameraManager.updateAspect(this.width / this.height);\n this.renderer.setPixelRatio(window.devicePixelRatio);\n\n // delegate post-processing resize to manager\n this.postProcessingManager.resizeActiveEffects(this.width, this.height);\n this.renderer.setSize(this.width, this.height);\n }\n\n public render(): void {\n // check if camera has changed and update PostProcessingManager\n if (this.currentCamera !== this.threeJSCameraManager.getActiveCamera()) {\n this.currentCamera = this.threeJSCameraManager.getActiveCamera();\n this.postProcessingManager.updateCamera(this.currentCamera);\n }\n\n this.updateSun();\n\n this.renderer.info.reset();\n if (this.sky && this.skyCubeCamera && this.skyRenderTarget) {\n if (this.skyDirty) {\n this.skyDirty = false;\n this.skyCubeCamera?.update(this.renderer, this.sky);\n }\n this.scene.environment = this.skyRenderTarget.texture;\n }\n if (this.postProcessingManager.isGloballyEnabled) {\n this.postProcessingManager.render();\n } else {\n this.renderer.render(this.scene, this.threeJSCameraManager.getActiveCamera());\n }\n this.renderer.clearDepth();\n this.renderer.render(this.postPostScene, this.threeJSCameraManager.getActiveCamera());\n }\n\n private hasHDR(): boolean {\n if (!this.environmentConfiguration?.skybox) {\n return false;\n } else {\n const hasHDRJPG = \"hdrJpgUrl\" in this.environmentConfiguration.skybox;\n const hasHDRi = \"hdrUrl\" in this.environmentConfiguration.skybox;\n return hasHDRJPG || hasHDRi;\n }\n }\n\n public updateSkyboxRotation() {\n if (this.sky) {\n return;\n }\n this.scene.backgroundRotation = new Euler(\n MathUtils.degToRad(this.envValues.skyboxPolarAngle),\n MathUtils.degToRad(this.envValues.skyboxAzimuthalAngle),\n 0,\n );\n this.scene.environmentRotation = new Euler(\n MathUtils.degToRad(this.envValues.skyboxPolarAngle),\n MathUtils.degToRad(this.envValues.skyboxAzimuthalAngle),\n 0,\n );\n }\n\n private async loadHDRJPG(url: string): Promise<Texture> {\n return new Promise((resolve, reject) => {\n const pmremGenerator = new PMREMGenerator(this.renderer);\n const hdrJpg = new HDRJPGLoader(this.renderer).load(url, () => {\n const hdrJpgEquirectangularMap = hdrJpg.renderTarget.texture;\n hdrJpgEquirectangularMap.mapping = EquirectangularReflectionMapping;\n hdrJpgEquirectangularMap.needsUpdate = true;\n\n const envMap = pmremGenerator!.fromEquirectangular(hdrJpgEquirectangularMap).texture;\n hdrJpgEquirectangularMap.dispose();\n pmremGenerator!.dispose();\n hdrJpg.dispose();\n if (envMap) {\n envMap.colorSpace = LinearSRGBColorSpace;\n envMap.needsUpdate = true;\n resolve(envMap);\n } else {\n reject(\"Failed to generate environment map\");\n }\n });\n });\n }\n\n private async loadHDRi(url: string): Promise<Texture> {\n return new Promise((resolve, reject) => {\n const pmremGenerator = new PMREMGenerator(this.renderer);\n new RGBELoader(new LoadingManager()).load(url, (texture) => {\n const envMap = pmremGenerator!.fromEquirectangular(texture).texture;\n texture.dispose();\n pmremGenerator!.dispose();\n if (envMap) {\n envMap.colorSpace = LinearSRGBColorSpace;\n envMap.needsUpdate = true;\n resolve(envMap);\n } else {\n reject(\"Failed to generate environment map\");\n }\n });\n });\n }\n\n public useHDRJPG(url: string): void {\n if (this.skyboxState.src.hdrJpgUrl === url) {\n return;\n }\n\n const hdrJPGPromise = this.loadHDRJPG(url);\n this.skyboxState.src = { hdrJpgUrl: url };\n this.skyboxState.latestPromise = hdrJPGPromise;\n hdrJPGPromise.then((envMap) => {\n if (this.skyboxState.latestPromise !== hdrJPGPromise) {\n return;\n }\n this.applyEnvMap(envMap);\n });\n }\n\n public useHDRI(url: string): void {\n if (this.skyboxState.src.hdrUrl === url) {\n return;\n }\n const hdrPromise = this.loadHDRi(url);\n this.skyboxState.src = { hdrUrl: url };\n this.skyboxState.latestPromise = hdrPromise;\n hdrPromise.then((envMap) => {\n if (this.skyboxState.latestPromise !== hdrPromise) {\n return;\n }\n this.applyEnvMap(envMap);\n });\n }\n\n public setHDRIFromFile(): void {\n if (!this.renderer) return;\n const fileInput = document.createElement(\"input\");\n fileInput.type = \"file\";\n fileInput.accept = \".hdr,.jpg\";\n fileInput.addEventListener(\"change\", () => {\n const file = fileInput.files?.[0];\n if (!file) {\n console.log(\"no file\");\n return;\n }\n const extension = file.name.split(\".\").pop();\n const fileURL = URL.createObjectURL(file);\n if (fileURL) {\n if (extension === \"hdr\") {\n this.useHDRI(fileURL);\n } else if (extension === \"jpg\") {\n this.useHDRJPG(fileURL);\n } else {\n console.error(`Unrecognized extension for HDR file ${file.name}`);\n }\n URL.revokeObjectURL(fileURL);\n document.body.removeChild(fileInput);\n }\n });\n document.body.appendChild(fileInput);\n fileInput.click();\n }\n\n public setFog(): void {\n if (this.envValues.fog.fogFar === 0) {\n this.scene.fog = null;\n return;\n }\n const fogColor = new Color().setRGB(\n this.envValues.fog.fogColor.r,\n this.envValues.fog.fogColor.g,\n this.envValues.fog.fogColor.b,\n );\n this.scene.fog = new Fog(fogColor, this.envValues.fog.fogNear, this.envValues.fog.fogFar);\n }\n\n public setAmbientLight(): void {\n if (this.ambientLight) {\n this.scene.remove(this.ambientLight);\n this.ambientLight.dispose();\n }\n const ambientLightColor = new Color().setRGB(\n this.envValues.ambientLight.ambientLightColor.r,\n this.envValues.ambientLight.ambientLightColor.g,\n this.envValues.ambientLight.ambientLightColor.b,\n );\n this.ambientLight = new AmbientLight(\n ambientLightColor,\n this.envValues.ambientLight.ambientLightIntensity,\n );\n this.scene.add(this.ambientLight);\n }\n\n public updateSkyShaderValues() {\n if (!this.sky) {\n return;\n }\n const polarAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunPolarAngle);\n const azimuthalAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunAzimuthalAngle);\n const sunPosition = new Vector3().setFromSphericalCoords(1, polarAngle, azimuthalAngle);\n\n this.sky.material.uniforms.sunPosition.value = sunPosition;\n this.sky.material.uniforms.turbidity.value = this.sunValues.skyTurbidity;\n this.sky.material.uniforms.rayleigh.value = this.sunValues.skyRayleigh;\n this.sky.material.uniforms.mieCoefficient.value = this.sunValues.skyMieCoefficient;\n this.sky.material.uniforms.mieDirectionalG.value = this.sunValues.skyMieDirectionalG;\n this.skyDirty = true;\n }\n\n public updateSunValues() {\n if (typeof this.environmentConfiguration?.sun?.intensity === \"number\") {\n this.sunValues.sunIntensity = this.environmentConfiguration.sun.intensity;\n }\n if (typeof this.environmentConfiguration?.sun?.azimuthalAngle === \"number\") {\n this.sunValues.sunPosition.sunAzimuthalAngle =\n this.environmentConfiguration.sun.azimuthalAngle;\n }\n if (typeof this.environmentConfiguration?.sun?.polarAngle === \"number\") {\n this.sunValues.sunPosition.sunPolarAngle = this.environmentConfiguration.sun.polarAngle;\n }\n const { sunAzimuthalAngle, sunPolarAngle } = this.sunValues.sunPosition;\n this.targetAzimuthalAngle = MathUtils.degToRad(sunAzimuthalAngle);\n this.targetPolarAngle = MathUtils.degToRad(sunPolarAngle);\n this.targetIntensity = this.sunValues.sunIntensity;\n }\n\n public updateSun() {\n if (!this.sun) {\n return;\n }\n\n this.targetAzimuthalAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunAzimuthalAngle);\n this.targetPolarAngle = MathUtils.degToRad(this.sunValues.sunPosition.sunPolarAngle);\n this.targetIntensity = this.sunValues.sunIntensity;\n\n let hasDiff = false;\n\n // Lerp towards target angles and intensity\n if (this.currentAzimuthalAngle !== this.targetAzimuthalAngle) {\n hasDiff = true;\n }\n this.currentAzimuthalAngle = this.lerpAngle(\n this.currentAzimuthalAngle,\n this.targetAzimuthalAngle,\n this.lerpSpeed,\n );\n if (Math.abs(this.currentAzimuthalAngle - this.targetAzimuthalAngle) < 0.001) {\n this.currentAzimuthalAngle = this.targetAzimuthalAngle;\n }\n\n if (this.currentPolarAngle !== this.targetPolarAngle) {\n hasDiff = true;\n }\n this.currentPolarAngle = this.lerpAngle(\n this.currentPolarAngle,\n this.targetPolarAngle,\n this.lerpSpeed,\n );\n if (Math.abs(this.currentPolarAngle - this.targetPolarAngle) < 0.001) {\n this.currentPolarAngle = this.targetPolarAngle;\n }\n\n if (this.currentIntensity !== this.targetIntensity) {\n hasDiff = true;\n }\n this.currentIntensity = this.lerp(this.currentIntensity, this.targetIntensity, this.lerpSpeed);\n if (Math.abs(this.currentIntensity - this.targetIntensity) < 0.001) {\n this.currentIntensity = this.targetIntensity;\n }\n\n this.sun.setColor();\n\n if (!hasDiff) {\n return; // No changes, skip update\n }\n // Update sun with lerped values\n this.sun.setAzimuthalAngle(this.currentAzimuthalAngle);\n this.sun.setPolarAngle(this.currentPolarAngle);\n this.sun.setIntensity(this.currentIntensity);\n\n // Update sky shader with lerped angles\n if (this.sky) {\n this.updateSkyShaderValuesWithLerpedAngles();\n }\n }\n\n private lerp(current: number, target: number, speed: number): number {\n return current + (target - current) * speed;\n }\n\n private lerpAngle(current: number, target: number, speed: number): number {\n // Calculate the shortest angular distance\n let diff = target - current;\n\n // Normalize the difference to [-\u03C0, \u03C0]\n while (diff > Math.PI) {\n diff -= 2 * Math.PI;\n }\n while (diff < -Math.PI) {\n diff += 2 * Math.PI;\n }\n\n // Lerp using the shortest path\n return current + diff * speed;\n }\n\n private updateSkyShaderValuesWithLerpedAngles() {\n if (!this.sky) {\n return;\n }\n const sunPosition = new Vector3().setFromSphericalCoords(\n 1,\n this.currentPolarAngle,\n this.currentAzimuthalAngle,\n );\n\n this.sky.material.uniforms.sunPosition.value = sunPosition;\n this.sky.material.uniforms.turbidity.value = this.sunValues.skyTurbidity;\n this.sky.material.uniforms.rayleigh.value = this.sunValues.skyRayleigh;\n this.sky.material.uniforms.mieCoefficient.value = this.sunValues.skyMieCoefficient;\n this.sky.material.uniforms.mieDirectionalG.value = this.sunValues.skyMieDirectionalG;\n this.skyDirty = true;\n }\n\n private updateFogValues() {\n if (typeof this.environmentConfiguration?.fog?.fogNear === \"number\") {\n this.envValues.fog.fogNear = this.environmentConfiguration.fog.fogNear;\n }\n if (typeof this.environmentConfiguration?.fog?.fogFar === \"number\") {\n this.envValues.fog.fogFar = this.environmentConfiguration.fog.fogFar;\n }\n if (\n typeof this.environmentConfiguration?.fog?.fogColor?.r === \"number\" &&\n typeof this.environmentConfiguration?.fog?.fogColor?.g === \"number\" &&\n typeof this.environmentConfiguration?.fog?.fogColor?.b === \"number\"\n ) {\n this.envValues.fog.fogColor.r = this.environmentConfiguration.fog.fogColor.r;\n this.envValues.fog.fogColor.g = this.environmentConfiguration.fog.fogColor.g;\n this.envValues.fog.fogColor.b = this.environmentConfiguration.fog.fogColor.b;\n }\n this.setFog();\n }\n\n private updateSkyboxAndEnvValues() {\n if (typeof this.environmentConfiguration?.envMap?.intensity === \"number\") {\n this.envValues.envMapIntensity = this.environmentConfiguration?.envMap.intensity;\n }\n this.scene.environmentIntensity = this.envValues.envMapIntensity;\n\n if (typeof this.environmentConfiguration?.skybox?.intensity === \"number\") {\n this.envValues.skyboxIntensity = this.environmentConfiguration?.skybox.intensity;\n }\n this.scene.backgroundIntensity = this.envValues.skyboxIntensity;\n\n if (typeof this.environmentConfiguration?.skybox?.blurriness === \"number\") {\n this.envValues.skyboxBlurriness = this.environmentConfiguration?.skybox.blurriness;\n }\n this.scene.backgroundBlurriness = this.envValues.skyboxBlurriness;\n\n if (typeof this.environmentConfiguration?.skybox?.azimuthalAngle === \"number\") {\n this.envValues.skyboxAzimuthalAngle = this.environmentConfiguration?.skybox.azimuthalAngle;\n this.updateSkyboxRotation();\n }\n\n if (typeof this.environmentConfiguration?.skybox?.polarAngle === \"number\") {\n this.envValues.skyboxPolarAngle = this.environmentConfiguration?.skybox.polarAngle;\n this.updateSkyboxRotation();\n }\n }\n\n private updateBloomValues() {\n if (typeof this.environmentConfiguration?.postProcessing?.bloomIntensity === \"number\") {\n this.postProcessingManager.updateEffectConfiguration({\n bloom: { intensity: this.environmentConfiguration.postProcessing.bloomIntensity },\n });\n }\n }\n\n private updateAmbientLightValues() {\n if (typeof this.environmentConfiguration?.ambientLight?.intensity === \"number\") {\n this.envValues.ambientLight.ambientLightIntensity =\n this.environmentConfiguration.ambientLight.intensity;\n }\n this.setAmbientLight();\n }\n\n public togglePostProcessing(enabled: boolean) {\n this.postProcessingManager.toggleGlobalPostProcessing(enabled);\n }\n\n private applyEnvMap(envMap: Texture) {\n if (this.sky) {\n return;\n }\n this.scene.environment = envMap;\n this.scene.environmentIntensity = this.envValues.envMapIntensity;\n this.scene.environmentRotation = new Euler(\n MathUtils.degToRad(this.envValues.skyboxPolarAngle),\n MathUtils.degToRad(this.envValues.skyboxAzimuthalAngle),\n 0,\n );\n this.scene.background = envMap;\n this.scene.backgroundIntensity = this.envValues.skyboxIntensity;\n this.scene.backgroundBlurriness = this.envValues.skyboxBlurriness;\n this.scene.backgroundRotation = new Euler(\n MathUtils.degToRad(this.envValues.skyboxPolarAngle),\n MathUtils.degToRad(this.envValues.skyboxAzimuthalAngle),\n 0,\n );\n }\n}\n", "import {\n BloomEffect,\n EffectComposer,\n EffectPass,\n RenderPass,\n ShaderPass,\n ToneMappingEffect,\n FXAAEffect,\n} from \"postprocessing\";\nimport { PerspectiveCamera, HalfFloatType, Scene, Vector2, WebGLRenderer } from \"three\";\n\nimport { BCSValues, createDefaultBCSValues } from \"../tweakpane/blades/effects/bcsFolder\";\nimport {\n BloomAndGrainValues,\n createDefaultBloomAndGrainValues,\n} from \"../tweakpane/blades/effects/bloomAndGrain\";\nimport { N8SSAOValues, createDefaultN8SSAOValues } from \"../tweakpane/blades/effects/ssaoFolder\";\nimport {\n ToneMappingValues,\n createDefaultToneMappingValues,\n} from \"../tweakpane/blades/effects/toneMappingFolder\";\nimport {\n PostProcessingGlobalValues,\n createDefaultPostProcessingGlobalValues,\n} from \"../tweakpane/blades/postProcessingFolder\";\n\nimport { BrightnessContrastSaturation } from \"./bright-contrast-sat\";\nimport { GaussGrainEffect } from \"./gauss-grain\";\nimport { N8SSAOPass } from \"./n8-ssao/N8SSAOPass\";\n\nexport const PP_GLOBALLY_ENABLED = false;\n\nexport interface EffectState {\n name: string;\n enabled: boolean;\n wasEnabledBeforeGlobalDisable: boolean;\n instance: any; // Effect, Pass, or ShaderPass\n passIndex?: number;\n}\n\nexport interface PostProcessingConfig {\n enabled?: boolean;\n bloom?: { intensity?: number };\n bcs?: {\n brightness?: number;\n contrast?: number;\n saturation?: number;\n };\n grain?: { amount?: number };\n ssao?: {\n enabled?: boolean;\n halfRes?: boolean;\n aoRadius?: number;\n distanceFalloff?: number;\n intensity?: number;\n aoSamples?: number;\n denoiseSamples?: number;\n denoiseRadius?: number;\n };\n toneMapping?: {\n mode?: number;\n resolution?: number;\n whitePoint?: number;\n middleGrey?: number;\n minLuminance?: number;\n averageLuminance?: number;\n adaptationRate?: number;\n };\n}\n\nexport class PostProcessingManager {\n public isGloballyEnabled: boolean = PP_GLOBALLY_ENABLED;\n public effectComposer: EffectComposer;\n\n private effectStates = new Map<string, EffectState>();\n private renderPass: RenderPass;\n\n private fxaaEffect: FXAAEffect;\n private fxaaPass: EffectPass;\n private bloomEffect: BloomEffect;\n private bloomPass: EffectPass;\n private toneMappingEffect: ToneMappingEffect;\n private toneMappingPass: EffectPass;\n private n8aopass: N8SSAOPass;\n private bcs = BrightnessContrastSaturation;\n private bcsPass: ShaderPass;\n private gaussGrainEffect = GaussGrainEffect;\n private gaussGrainPass: ShaderPass;\n\n public resolution: Vector2;\n\n public readonly postProcessingGlobalValues: PostProcessingGlobalValues;\n public readonly bcsValues: BCSValues;\n public readonly bloomAndGrainValues: BloomAndGrainValues;\n public readonly n8ssaoValues: N8SSAOValues;\n public readonly toneMappingValues: ToneMappingValues;\n\n constructor(\n private renderer: WebGLRenderer,\n private scene: Scene,\n private camera: PerspectiveCamera,\n private width: number,\n private height: number,\n initialConfig?: PostProcessingConfig,\n ) {\n this.postProcessingGlobalValues = createDefaultPostProcessingGlobalValues();\n this.bcsValues = createDefaultBCSValues();\n this.bloomAndGrainValues = createDefaultBloomAndGrainValues();\n this.n8ssaoValues = createDefaultN8SSAOValues();\n this.toneMappingValues = createDefaultToneMappingValues();\n\n this.isGloballyEnabled = initialConfig?.enabled ?? PP_GLOBALLY_ENABLED;\n this.resolution = new Vector2(this.width, this.height);\n\n this.effectComposer = new EffectComposer(this.renderer, {\n frameBufferType: HalfFloatType,\n });\n\n this.initializeEffects(initialConfig);\n this.setupPipeline();\n }\n\n private initializeEffects(config?: PostProcessingConfig) {\n this.fxaaEffect = new FXAAEffect();\n\n this.bloomEffect = new BloomEffect({\n intensity: config?.bloom?.intensity ?? this.bloomAndGrainValues.bloom,\n });\n\n this.toneMappingEffect = new ToneMappingEffect({\n mode: config?.toneMapping?.mode ?? this.toneMappingValues.mode,\n resolution: config?.toneMapping?.resolution ?? this.toneMappingValues.resolution,\n whitePoint: config?.toneMapping?.whitePoint ?? this.toneMappingValues.whitePoint,\n middleGrey: config?.toneMapping?.middleGrey ?? this.toneMappingValues.middleGrey,\n minLuminance: config?.toneMapping?.minLuminance ?? this.toneMappingValues.minLuminance,\n averageLuminance:\n config?.toneMapping?.averageLuminance ?? this.toneMappingValues.averageLuminance,\n adaptationRate: config?.toneMapping?.adaptationRate ?? this.toneMappingValues.adaptationRate,\n });\n\n this.n8aopass = new N8SSAOPass(this.scene, this.camera, this.width, this.height);\n\n this.n8aopass.configuration.halfRes = config?.ssao?.halfRes ?? this.n8ssaoValues.halfRes;\n this.n8aopass.configuration.aoRadius = config?.ssao?.aoRadius ?? this.n8ssaoValues.aoRadius;\n this.n8aopass.configuration.distanceFalloff =\n config?.ssao?.distanceFalloff ?? this.n8ssaoValues.distanceFalloff;\n this.n8aopass.configuration.intensity = config?.ssao?.intensity ?? this.n8ssaoValues.intensity;\n this.n8aopass.configuration.aoSamples = config?.ssao?.aoSamples ?? this.n8ssaoValues.aoSamples;\n this.n8aopass.configuration.denoiseSamples =\n config?.ssao?.denoiseSamples ?? this.n8ssaoValues.denoiseSamples;\n this.n8aopass.configuration.denoiseRadius =\n config?.ssao?.denoiseRadius ?? this.n8ssaoValues.denoiseRadius;\n\n this.fxaaPass = new EffectPass(this.camera, this.fxaaEffect);\n this.bloomPass = new EffectPass(this.camera, this.bloomEffect);\n this.toneMappingPass = new EffectPass(this.camera, this.toneMappingEffect);\n\n this.bcsPass = new ShaderPass(this.bcs, \"tDiffuse\");\n this.bcs.uniforms.brightness.value = config?.bcs?.brightness ?? this.bcsValues.brightness;\n this.bcs.uniforms.contrast.value = config?.bcs?.contrast ?? this.bcsValues.contrast;\n this.bcs.uniforms.saturation.value = config?.bcs?.saturation ?? this.bcsValues.saturation;\n\n this.gaussGrainPass = new ShaderPass(this.gaussGrainEffect, \"tDiffuse\");\n this.gaussGrainEffect.uniforms.amount.value =\n config?.grain?.amount ?? this.bloomAndGrainValues.grain;\n this.gaussGrainEffect.uniforms.alpha.value = 1.0;\n\n this.registerEffect(\n \"n8ssao\",\n this.n8aopass,\n config?.ssao?.enabled ?? this.n8ssaoValues.enabled,\n );\n this.registerEffect(\"fxaa\", this.fxaaPass, true);\n this.registerEffect(\"bloom\", this.bloomPass, true);\n this.registerEffect(\"toneMapping\", this.toneMappingPass, true);\n this.registerEffect(\"bcs\", this.bcsPass, true);\n this.registerEffect(\"grain\", this.gaussGrainPass, true);\n }\n\n private registerEffect(name: string, instance: any, defaultEnabled: boolean = true) {\n this.effectStates.set(name, {\n name,\n enabled: defaultEnabled,\n wasEnabledBeforeGlobalDisable: defaultEnabled,\n instance,\n });\n }\n\n private setupPipeline() {\n this.renderPass = new RenderPass(this.scene, this.camera);\n this.effectComposer.addPass(this.renderPass);\n this.rebuildPipeline();\n }\n\n private rebuildPipeline() {\n // remove all passes except render pass\n while (this.effectComposer.passes.length > 1) {\n this.effectComposer.removePass(this.effectComposer.passes[1]);\n }\n\n if (!this.isGloballyEnabled) return;\n\n // add enabled effects in the correct order\n const effectOrder = [\"n8ssao\", \"fxaa\", \"bloom\", \"toneMapping\", \"bcs\", \"grain\"];\n\n effectOrder.forEach((effectName) => {\n const effectState = this.effectStates.get(effectName);\n if (effectState?.enabled) {\n this.effectComposer.addPass(effectState.instance);\n effectState.passIndex = this.effectComposer.passes.length - 1;\n }\n });\n }\n\n public enableEffect(name: string) {\n const effectState = this.effectStates.get(name);\n if (effectState && !effectState.enabled) {\n effectState.enabled = true;\n effectState.wasEnabledBeforeGlobalDisable = true;\n if (this.isGloballyEnabled) {\n this.rebuildPipeline();\n }\n }\n }\n\n public disableEffect(name: string) {\n const effectState = this.effectStates.get(name);\n if (effectState && effectState.enabled) {\n effectState.enabled = false;\n effectState.wasEnabledBeforeGlobalDisable = false;\n if (this.isGloballyEnabled) {\n this.rebuildPipeline();\n }\n }\n }\n\n public toggleGlobalPostProcessing(enabled?: boolean) {\n this.isGloballyEnabled = enabled ?? !this.isGloballyEnabled;\n\n if (this.isGloballyEnabled) {\n // restore previously enabled effects\n this.effectStates.forEach((state) => {\n state.enabled = state.wasEnabledBeforeGlobalDisable;\n });\n } else {\n // store current states and disable all\n this.effectStates.forEach((state) => {\n state.wasEnabledBeforeGlobalDisable = state.enabled;\n state.enabled = false;\n });\n }\n\n this.rebuildPipeline();\n }\n\n public updateEffectConfiguration(config: PostProcessingConfig) {\n if (config.bloom?.intensity !== undefined) {\n this.bloomEffect.intensity = config.bloom.intensity;\n this.bloomAndGrainValues.bloom = config.bloom.intensity;\n }\n\n if (config.bcs?.brightness !== undefined) {\n this.bcs.uniforms.brightness.value = config.bcs.brightness;\n this.bcsValues.brightness = config.bcs.brightness;\n }\n if (config.bcs?.contrast !== undefined) {\n this.bcs.uniforms.contrast.value = config.bcs.contrast;\n this.bcsValues.contrast = config.bcs.contrast;\n }\n if (config.bcs?.saturation !== undefined) {\n this.bcs.uniforms.saturation.value = config.bcs.saturation;\n this.bcsValues.saturation = config.bcs.saturation;\n }\n\n if (config.grain?.amount !== undefined) {\n this.gaussGrainEffect.uniforms.amount.value = config.grain.amount;\n this.bloomAndGrainValues.grain = config.grain.amount;\n }\n\n if (config.ssao) {\n if (\n config.ssao.enabled !== undefined &&\n config.ssao.enabled !== this.isEffectEnabled(\"n8ssao\")\n ) {\n if (config.ssao.enabled) {\n this.enableEffect(\"n8ssao\");\n } else {\n this.disableEffect(\"n8ssao\");\n }\n }\n if (config.ssao.aoRadius !== undefined) {\n this.n8aopass.configuration.aoRadius = config.ssao.aoRadius;\n }\n if (config.ssao.distanceFalloff !== undefined) {\n this.n8aopass.configuration.distanceFalloff = config.ssao.distanceFalloff;\n }\n if (config.ssao.intensity !== undefined) {\n this.n8aopass.configuration.intensity = config.ssao.intensity;\n }\n if (config.ssao.aoSamples !== undefined) {\n this.n8aopass.configuration.aoSamples = config.ssao.aoSamples;\n }\n if (config.ssao.denoiseSamples !== undefined) {\n this.n8aopass.configuration.denoiseSamples = config.ssao.denoiseSamples;\n }\n if (config.ssao.denoiseRadius !== undefined) {\n this.n8aopass.configuration.denoiseRadius = config.ssao.denoiseRadius;\n }\n }\n\n if (config.toneMapping) {\n Object.keys(config.toneMapping).forEach((key) => {\n if (config.toneMapping![key as keyof typeof config.toneMapping] !== undefined) {\n (this.toneMappingEffect as any)[key] =\n config.toneMapping![key as keyof typeof config.toneMapping];\n }\n });\n }\n }\n\n public updateCamera(camera: PerspectiveCamera): void {\n this.camera = camera;\n // remove old render pass and create new one with updated camera\n this.effectComposer.removePass(this.renderPass);\n this.renderPass = new RenderPass(this.scene, camera);\n this.effectComposer.addPass(this.renderPass, 0); // Add at beginning\n this.rebuildPipeline();\n }\n\n public resizeActiveEffects(width: number, height: number) {\n this.width = width;\n this.height = height;\n this.resolution.set(\n this.width * window.devicePixelRatio,\n this.height * window.devicePixelRatio,\n );\n\n // EffectComposer should match renderer size (without devicePixelRatio division)\n this.effectComposer.setSize(this.width, this.height);\n this.renderPass.setSize(this.width, this.height);\n\n // only resize currently enabled effects with the same dimensions\n this.effectStates.forEach((state) => {\n if (state.enabled && state.instance.setSize) {\n state.instance.setSize(this.width, this.height);\n }\n });\n\n // update grain effect resolution\n if (this.isEffectEnabled(\"grain\")) {\n this.gaussGrainEffect.uniforms.resolution.value = new Vector2(this.width, this.height);\n }\n }\n\n public render() {\n // update time-dependent effects only if enabled\n if (this.isEffectEnabled(\"grain\")) {\n this.gaussGrainEffect.uniforms.time.value = performance.now() / 1000;\n }\n\n this.effectComposer.render();\n }\n\n public getEffectState(name: string): EffectState | undefined {\n return this.effectStates.get(name);\n }\n\n public getAllEffectStates(): EffectState[] {\n return Array.from(this.effectStates.values());\n }\n\n public isEffectEnabled(name: string): boolean {\n return this.effectStates.get(name)?.enabled ?? false;\n }\n\n public get n8ssaoPass(): N8SSAOPass {\n return this.n8aopass;\n }\n\n public get toneMappingEffectInstance(): ToneMappingEffect {\n return this.toneMappingEffect;\n }\n\n public get toneMappingPassInstance(): EffectPass {\n return this.toneMappingPass;\n }\n\n public get bcsInstance(): typeof BrightnessContrastSaturation {\n return this.bcs;\n }\n\n public get bloomEffectInstance(): BloomEffect {\n return this.bloomEffect;\n }\n\n public get gaussGrainEffectInstance(): typeof GaussGrainEffect {\n return this.gaussGrainEffect;\n }\n\n public dispose() {\n this.effectComposer.dispose();\n }\n}\n", "import { BladeController, View } from \"@tweakpane/core\";\nimport { BladeApi, FolderApi, TpChangeEvent } from \"tweakpane\";\n\nimport { BrightnessContrastSaturation } from \"../../../post-effects/bright-contrast-sat\";\n\nexport type BCSValues = {\n brightness: number;\n contrast: number;\n saturation: number;\n};\n\nexport function createDefaultBCSValues(): BCSValues {\n return {\n brightness: 0.06,\n contrast: 1.2,\n saturation: 1,\n };\n}\n\nconst bcsOptions = {\n brightness: {\n amount: { min: -1.0, max: 1.0, step: 0.01 },\n },\n contrast: {\n amount: { min: 0.0, max: 2.0, step: 0.01 },\n },\n saturation: {\n amount: { min: 0.0, max: 2.0, step: 0.01 },\n },\n};\n\nexport class BrightnessContrastSaturationFolder {\n private folder: FolderApi;\n constructor(\n parentFolder: FolderApi,\n private bcsValues: BCSValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({\n title: \"brightness / contrast / sat\",\n expanded: expand,\n });\n this.folder.addBinding(this.bcsValues, \"brightness\", bcsOptions.brightness.amount);\n this.folder.addBinding(this.bcsValues, \"contrast\", bcsOptions.contrast.amount);\n this.folder.addBinding(this.bcsValues, \"saturation\", bcsOptions.saturation.amount);\n }\n\n public setupChangeEvent(\n brightnessContrastSaturation: typeof BrightnessContrastSaturation | any,\n ): void {\n this.folder.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n switch (target) {\n case \"brightness\":\n brightnessContrastSaturation.uniforms.brightness.value = e.value;\n break;\n case \"contrast\":\n brightnessContrastSaturation.uniforms.contrast.value = e.value;\n break;\n case \"saturation\":\n brightnessContrastSaturation.uniforms.saturation.value = e.value;\n break;\n }\n });\n }\n}\n", "import { BladeController, View } from \"@tweakpane/core\";\nimport { BloomEffect } from \"postprocessing\";\nimport { BladeApi, FolderApi, TpChangeEvent } from \"tweakpane\";\n\nimport { GaussGrainEffect } from \"../../../post-effects/gauss-grain\";\n\nexport type BloomAndGrainValues = {\n grain: number;\n bloom: number;\n};\n\nexport function createDefaultBloomAndGrainValues(): BloomAndGrainValues {\n return {\n grain: 0.045,\n bloom: 0.15,\n };\n}\n\nconst bloomAndGrainOptions = {\n grain: {\n amount: { min: 0, max: 0.2, step: 0.002 },\n },\n bloom: {\n amount: { min: 0, max: 50, step: 0.05 },\n },\n};\n\nexport class BloomAndGrainFolder {\n private folder: FolderApi;\n constructor(\n parentFolder: FolderApi,\n private bloomAndGrainValues: BloomAndGrainValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({ title: \"bloom / grain\", expanded: expand });\n this.folder.addBinding(this.bloomAndGrainValues, \"bloom\", bloomAndGrainOptions.bloom.amount);\n this.folder.addBinding(this.bloomAndGrainValues, \"grain\", bloomAndGrainOptions.grain.amount);\n }\n\n public setupChangeEvent(\n bloomEffect: BloomEffect | any,\n gaussGrainEffect: typeof GaussGrainEffect | any,\n ): void {\n this.folder.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n switch (target) {\n case \"bloom\":\n bloomEffect.intensity = e.value as number;\n break;\n case \"grain\":\n gaussGrainEffect.uniforms.amount.value = e.value as number;\n break;\n default:\n break;\n }\n });\n }\n}\n", "import { BindingApi, BladeApi, BladeController, TpChangeEvent, View } from \"@tweakpane/core\";\nimport { EffectComposer } from \"postprocessing\";\nimport { Color } from \"three\";\nimport { FolderApi } from \"tweakpane\";\n\nexport type N8SSAOValues = {\n enabled: boolean;\n halfRes: boolean;\n intensity: number;\n aoRadius: number;\n distanceFalloff: number;\n color: { r: number; g: number; b: number };\n aoSamples: number;\n denoiseSamples: number;\n denoiseRadius: number;\n viewMode: string;\n};\n\nexport function createDefaultN8SSAOValues(): N8SSAOValues {\n return {\n enabled: true,\n halfRes: false,\n intensity: 0.7,\n aoRadius: 3.0,\n distanceFalloff: 3.0,\n color: { r: 0, g: 0, b: 0 },\n aoSamples: 8,\n denoiseSamples: 8,\n denoiseRadius: 12,\n viewMode: \"Combined\",\n };\n}\n\nexport const n8ssaoOptions = {\n intensity: { min: 0.1, max: 5, step: 0.1 },\n radius: { min: 0.1, max: 6, step: 0.1 },\n distanceFalloff: { min: 1, max: 6, step: 0.1 },\n aoSamples: [2, 4, 8, 16, 32, 64],\n denoiseSamples: [2, 4, 8, 16, 32, 64],\n denoiseRadius: [3, 6, 12],\n viewMode: [\"Combined\", \"AO\", \"No AO\", \"Split\", \"Split AO\", \"No AO\"],\n};\n\nexport class SSAOFolder {\n private folder: FolderApi;\n\n private aoSamples: BindingApi;\n private denoiseSamples: BindingApi;\n private denoiseRadius: BindingApi;\n private aoDisplay: BindingApi;\n\n private postProcessingSSAOIndex: number = 1;\n\n constructor(\n parentFolder: FolderApi,\n private n8ssaoValues: N8SSAOValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({ title: \"ambientOcclusion\", expanded: expand });\n {\n this.folder.addBinding({ enabled: this.n8ssaoValues.enabled }, \"enabled\");\n this.folder.addBinding({ halfRes: this.n8ssaoValues.halfRes }, \"halfRes\");\n this.folder.addBinding(this.n8ssaoValues, \"intensity\", n8ssaoOptions.intensity);\n this.folder.addBinding(this.n8ssaoValues, \"aoRadius\", n8ssaoOptions.radius);\n this.folder.addBinding(this.n8ssaoValues, \"distanceFalloff\", n8ssaoOptions.distanceFalloff);\n this.folder.addBinding(this.n8ssaoValues, \"color\", {\n color: { alpha: false, type: \"float\" },\n });\n\n this.aoSamples = this.folder.addBinding(this.n8ssaoValues, \"aoSamples\", {\n view: \"radiogrid\",\n groupName: \"aoSamples\",\n size: [3, 2],\n cells: (x: number, y: number) => ({\n title: `${n8ssaoOptions.aoSamples[y * 3 + x]}`,\n value: n8ssaoOptions.aoSamples[y * 3 + x],\n }),\n label: \"aoSamples\",\n });\n\n this.denoiseSamples = this.folder.addBinding(this.n8ssaoValues, \"denoiseSamples\", {\n view: \"radiogrid\",\n groupName: \"denoiseSamples\",\n size: [3, 2],\n cells: (x: number, y: number) => ({\n title: `${n8ssaoOptions.denoiseSamples[y * 3 + x]}`,\n value: n8ssaoOptions.denoiseSamples[y * 3 + x],\n }),\n label: \"denoiseSamples\",\n });\n\n this.denoiseRadius = this.folder.addBinding(this.n8ssaoValues, \"denoiseRadius\", {\n view: \"radiogrid\",\n groupName: \"denoiseRadius\",\n size: [3, 1],\n cells: (x: number, y: number) => ({\n title: `${n8ssaoOptions.denoiseRadius[y * 3 + x]}`,\n value: n8ssaoOptions.denoiseRadius[y * 3 + x],\n }),\n label: \"denoiseRadius\",\n });\n\n this.aoDisplay = this.folder.addBinding(this.n8ssaoValues, \"viewMode\", {\n view: \"radiogrid\",\n groupName: \"viewMode\",\n size: [3, 2],\n cells: (x: number, y: number) => ({\n title: `${n8ssaoOptions.viewMode[y * 3 + x]}`,\n value: `${n8ssaoOptions.viewMode[y * 3 + x]}`,\n }),\n label: \"viewMode\",\n });\n }\n\n this.folder.addBlade({ view: \"separator\" });\n }\n\n public setupChangeEvent(composer: EffectComposer | any, n8aopass: any): void {\n this.folder.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n switch (target) {\n case \"enabled\":\n if (e.value === true) {\n composer.addPass(n8aopass, this.postProcessingSSAOIndex + 2);\n composer.passes[this.postProcessingSSAOIndex + 2].setSize(\n window.innerWidth,\n window.innerHeight,\n );\n } else {\n composer.removePass(n8aopass);\n }\n n8aopass.enabled = e.value;\n break;\n case \"halfRes\":\n n8aopass.configuration.halfRes = e.value;\n break;\n case \"aoRadius\":\n n8aopass.configuration.aoRadius = e.value;\n break;\n case \"distanceFalloff\":\n n8aopass.configuration.distanceFalloff = e.value;\n break;\n case \"intensity\":\n n8aopass.configuration.intensity = e.value;\n break;\n case \"color\":\n const value = (e as any).value;\n n8aopass.configuration.color = new Color().setRGB(value.r, value.g, value.b);\n break;\n default:\n break;\n }\n });\n\n this.aoSamples.on(\"change\", (e: any) => {\n n8aopass.configuration.aoSamples = e.value;\n });\n\n this.denoiseSamples.on(\"change\", (e: any) => {\n n8aopass.configuration.denoiseSamples = e.value;\n });\n\n this.denoiseRadius.on(\"change\", (e: any) => {\n n8aopass.configuration.denoiseRadius = e.value;\n });\n\n this.aoDisplay.on(\"change\", (e: any) => {\n n8aopass.setDisplayMode(e.value);\n });\n }\n}\n", "import { BindingApi, BladeApi, BladeController, TpChangeEvent, View } from \"@tweakpane/core\";\nimport { ToneMappingEffect, ToneMappingMode } from \"postprocessing\";\nimport { FolderApi } from \"tweakpane\";\n\nexport type ToneMappingValues = {\n mode: ToneMappingMode;\n resolution: number;\n whitePoint: number;\n middleGrey: number;\n minLuminance: number;\n averageLuminance: number;\n adaptationRate: number;\n};\n\nexport function createDefaultToneMappingValues(): ToneMappingValues {\n return {\n mode: 7 as ToneMappingMode,\n resolution: 512,\n whitePoint: 32.0,\n middleGrey: 21.0,\n minLuminance: 0.01,\n averageLuminance: 0.01,\n adaptationRate: 2.0,\n };\n}\n\nconst toneMappingOptions = {\n mode: { min: 0, max: 8, step: 1 },\n resolution: { min: 64, max: 512, step: 64 },\n whitePoint: { min: 0, max: 32, step: 0.01 },\n middleGrey: { min: 0, max: 32, step: 0.01 },\n minLuminance: { min: 0, max: 32, step: 0.001 },\n averageLuminance: { min: 0.001, max: 2, step: 0.001 },\n adaptationRate: { min: 0.1, max: 2.0, step: 0.1 },\n};\n\nconst customToneMappingTypes: Record<number, string> = {\n 0: \"LINEAR\",\n 1: \"REINHARD\",\n 2: \"REINHARD2\",\n 3: \"REINHARD2_ADAPTIVE\",\n 4: \"UNCHARTED2\",\n 5: \"OPTIMIZED_CINEON\",\n 6: \"ACES_FILMIC\",\n 7: \"AGX\",\n 8: \"NEUTRAL\",\n};\n\nexport class ToneMappingFolder {\n public folder: FolderApi;\n private minLuminance: BindingApi;\n private avgLuminance: BindingApi;\n private customToneMappingBlade: {\n customToneMappingType: string;\n };\n\n constructor(\n parentFolder: FolderApi,\n private toneMappingValues: ToneMappingValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({\n title: \"customToneMapping\",\n expanded: expand,\n });\n\n this.customToneMappingBlade = {\n customToneMappingType: customToneMappingTypes[this.toneMappingValues.mode],\n };\n\n this.folder.addBinding(this.toneMappingValues, \"mode\", toneMappingOptions.mode);\n this.folder.addBinding(this.customToneMappingBlade, \"customToneMappingType\", {\n readonly: true,\n });\n this.folder.addBinding(this.toneMappingValues, \"whitePoint\", toneMappingOptions.whitePoint);\n this.folder.addBinding(this.toneMappingValues, \"middleGrey\", toneMappingOptions.middleGrey);\n this.minLuminance = this.folder.addBinding(\n this.toneMappingValues,\n \"minLuminance\",\n toneMappingOptions.minLuminance,\n );\n this.minLuminance.hidden = false;\n this.avgLuminance = this.folder.addBinding(\n this.toneMappingValues,\n \"averageLuminance\",\n toneMappingOptions.averageLuminance,\n );\n this.avgLuminance.hidden = false;\n this.folder.addBinding(\n this.toneMappingValues,\n \"adaptationRate\",\n toneMappingOptions.adaptationRate,\n );\n }\n\n public setupChangeEvent(toneMappingEffect: ToneMappingEffect | any): void {\n this.folder.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n if (target === \"mode\") {\n this.customToneMappingBlade.customToneMappingType =\n customToneMappingTypes[e.value as number];\n }\n (toneMappingEffect as any)[target] = e.value;\n return;\n });\n }\n}\n", "import { BladeController, View } from \"@tweakpane/core\";\nimport { BladeApi, FolderApi, TpChangeEvent } from \"tweakpane\";\n\nimport {\n PostProcessingManager,\n PP_GLOBALLY_ENABLED,\n} from \"../../post-effects/PostProcessingManager\";\n\nexport type PostProcessingGlobalValues = {\n enabled: boolean;\n};\n\nexport function createDefaultPostProcessingGlobalValues(): PostProcessingGlobalValues {\n return {\n enabled: PP_GLOBALLY_ENABLED,\n };\n}\n\ninterface BenchmarkResults {\n withPostProcessing: {\n averageFrameTime: number;\n fps: number;\n frameCount: number;\n };\n withoutPostProcessing: {\n averageFrameTime: number;\n fps: number;\n frameCount: number;\n };\n difference: {\n frameTimeDiff: number;\n fpsDiff: number;\n performanceImpact: number; // percentage\n };\n}\n\nconst benchmarkFrameCount = 480;\nconst benchmarkWarmupFrames = 120;\n\ninterface BenchmarkState {\n isRunning: boolean;\n currentPhase: \"first\" | \"second\" | \"complete\" | \"idle\";\n frameTimes: number[];\n frameCount: number;\n startTime: number;\n originalPPState: boolean;\n currentPPState: boolean;\n results?: BenchmarkResults;\n warmupFramesSkipped: number;\n lastFrameTime: number;\n}\n\nexport class PostProcessingFolder {\n private folder: FolderApi;\n private effectToggleBindings: Map<string, any> = new Map();\n private globalToggleBinding: any;\n private benchmarkButton: any;\n private benchmarkStatusBinding: any;\n private benchmarkResultsFolder: FolderApi;\n private postProcessingManager?: PostProcessingManager;\n\n private benchmarkState: BenchmarkState = {\n isRunning: false,\n currentPhase: \"idle\",\n frameTimes: [],\n frameCount: 0,\n startTime: 0,\n originalPPState: true,\n currentPPState: true,\n warmupFramesSkipped: 0,\n lastFrameTime: 0,\n };\n\n private benchmarkStatus = { status: \"Ready to benchmark\" };\n private benchmarkData = {\n withPP_fps: \"0.0\",\n withPP_frameTime: \"0.0ms\",\n withoutPP_fps: \"0.0\",\n withoutPP_frameTime: \"0.0ms\",\n difference_fps: \"0.0\",\n difference_frameTime: \"0.0ms\",\n performanceImpact: \"0.0%\",\n testedFirst: \"N/A\",\n };\n\n constructor(\n parentFolder: FolderApi,\n private postProcessingGlobalValues: PostProcessingGlobalValues,\n enabled: boolean | undefined,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({ title: \"postProcessing toggler\", expanded: expand });\n this.postProcessingGlobalValues.enabled = enabled ?? PP_GLOBALLY_ENABLED;\n\n this.globalToggleBinding = this.folder.addBinding(this.postProcessingGlobalValues, \"enabled\", {\n label: \"Global Post-Processing\",\n });\n\n this.folder.addBlade({ view: \"separator\" });\n this.benchmarkButton = this.folder.addButton({ title: \"Benchmark Performance\" });\n this.benchmarkStatusBinding = this.folder.addBinding(this.benchmarkStatus, \"status\", {\n readonly: true,\n label: \"Status\",\n });\n this.benchmarkResultsFolder = this.folder.addFolder({\n title: \"Benchmark Results\",\n expanded: true,\n });\n this.benchmarkResultsFolder.hidden = true;\n\n this.setupBenchmarkResults();\n this.folder.addBlade({ view: \"separator\" });\n }\n\n private setupBenchmarkResults() {\n this.benchmarkResultsFolder.addBlade({ view: \"separator\" });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"testedFirst\", {\n readonly: true,\n label: \"Tested First\",\n });\n this.benchmarkResultsFolder.addBlade({ view: \"separator\" });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"withPP_fps\", {\n readonly: true,\n label: \"With PP - FPS\",\n });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"withPP_frameTime\", {\n readonly: true,\n label: \"With PP - Frame Time\",\n });\n this.benchmarkResultsFolder.addBlade({ view: \"separator\" });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"withoutPP_fps\", {\n readonly: true,\n label: \"Without PP - FPS\",\n });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"withoutPP_frameTime\", {\n readonly: true,\n label: \"Without PP - Frame Time\",\n });\n this.benchmarkResultsFolder.addBlade({ view: \"separator\" });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"difference_fps\", {\n readonly: true,\n label: \"FPS Difference\",\n });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"difference_frameTime\", {\n readonly: true,\n label: \"Frame Time Difference\",\n });\n this.benchmarkResultsFolder.addBinding(this.benchmarkData, \"performanceImpact\", {\n readonly: true,\n label: \"Performance Impact\",\n });\n }\n\n public setupChangeEvent(postProcessingManager: PostProcessingManager): void {\n this.postProcessingManager = postProcessingManager;\n\n this.postProcessingGlobalValues.enabled =\n this.postProcessingGlobalValues.enabled ?? PP_GLOBALLY_ENABLED;\n this.globalToggleBinding.on(\n \"change\",\n (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n postProcessingManager.toggleGlobalPostProcessing(e.value as boolean);\n this.updateEffectFolderVisibility(e.value as boolean);\n },\n );\n\n this.benchmarkButton.on(\"click\", () => {\n this.startBenchmark();\n });\n\n this.setupEffectToggles(postProcessingManager);\n this.updateEffectFolderVisibility(this.postProcessingGlobalValues.enabled);\n }\n\n private setupEffectToggles(postProcessingManager: PostProcessingManager): void {\n const effectStates = postProcessingManager.getAllEffectStates();\n\n effectStates.forEach((effectState) => {\n const effectToggle = { enabled: effectState.enabled };\n\n const binding = this.folder.addBinding(effectToggle, \"enabled\", {\n label: this.getEffectDisplayName(effectState.name),\n });\n\n binding.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n if (e.value) {\n postProcessingManager.enableEffect(effectState.name);\n } else {\n postProcessingManager.disableEffect(effectState.name);\n }\n });\n\n this.effectToggleBindings.set(effectState.name, { binding, state: effectToggle });\n });\n }\n\n private getEffectDisplayName(effectName: string): string {\n const displayNames: Record<string, string> = {\n n8ssao: \"SSAO\",\n fxaa: \"FXAA\",\n bloom: \"Bloom\",\n toneMapping: \"Tone Mapping\",\n bcs: \"Brightness/Contrast/Saturation\",\n grain: \"Film Grain\",\n smaa: \"SMAA\",\n };\n return displayNames[effectName] || effectName;\n }\n\n private updateEffectFolderVisibility(globalEnabled: boolean): void {\n this.effectToggleBindings.forEach((bindingData) => {\n bindingData.binding.hidden = !globalEnabled;\n });\n }\n\n public refreshEffectStates(postProcessingManager: PostProcessingManager): void {\n const effectStates = postProcessingManager.getAllEffectStates();\n\n effectStates.forEach((effectState) => {\n const bindingData = this.effectToggleBindings.get(effectState.name);\n if (bindingData) {\n bindingData.state.enabled = effectState.enabled;\n bindingData.binding.refresh();\n }\n });\n\n this.postProcessingGlobalValues.enabled = postProcessingManager.isGloballyEnabled;\n this.updateEffectFolderVisibility(this.postProcessingGlobalValues.enabled);\n }\n\n private startBenchmark(): void {\n if (!this.postProcessingManager || this.benchmarkState.isRunning) {\n return;\n }\n\n this.benchmarkState = {\n isRunning: true,\n currentPhase: \"first\",\n frameTimes: [],\n frameCount: 0,\n startTime: 0,\n originalPPState: this.postProcessingManager.isGloballyEnabled,\n currentPPState: this.postProcessingManager.isGloballyEnabled,\n warmupFramesSkipped: 0,\n lastFrameTime: 0,\n };\n\n this.benchmarkButton.hidden = true;\n this.benchmarkStatus.status = \"Benchmarking... Phase 1/2 (warming up)\";\n this.benchmarkResultsFolder.hidden = true;\n\n console.log(`Starting benchmark - Initial PP state: ${this.benchmarkState.originalPPState}`);\n }\n\n public recordFrameTime(): void {\n if (!this.benchmarkState.isRunning) {\n return;\n }\n\n const now = performance.now();\n\n if (this.benchmarkState.lastFrameTime === 0) {\n this.benchmarkState.lastFrameTime = now;\n return;\n }\n\n const frameTime = now - this.benchmarkState.lastFrameTime;\n this.benchmarkState.lastFrameTime = now;\n\n if (this.benchmarkState.warmupFramesSkipped < benchmarkWarmupFrames) {\n this.benchmarkState.warmupFramesSkipped++;\n const phaseNum = this.benchmarkState.currentPhase === \"first\" ? 1 : 2;\n this.benchmarkStatus.status = `Benchmarking... Phase ${phaseNum}/2 (warming up: ${this.benchmarkState.warmupFramesSkipped}/${benchmarkWarmupFrames})`;\n return;\n }\n\n this.benchmarkState.frameTimes.push(frameTime);\n this.benchmarkState.frameCount++;\n\n const phaseNum = this.benchmarkState.currentPhase === \"first\" ? 1 : 2;\n this.benchmarkStatus.status = `Benchmarking... Phase ${phaseNum}/2 (${this.benchmarkState.frameCount}/${benchmarkFrameCount})`;\n\n if (this.benchmarkState.frameCount >= benchmarkFrameCount) {\n this.onPhaseComplete();\n }\n }\n\n private onPhaseComplete(): void {\n if (this.benchmarkState.currentPhase === \"first\") {\n this.storePhaseResults(this.benchmarkState.currentPPState, this.benchmarkState.frameTimes);\n\n this.benchmarkState.currentPPState = !this.benchmarkState.currentPPState;\n this.postProcessingManager!.toggleGlobalPostProcessing(this.benchmarkState.currentPPState);\n\n this.benchmarkState.currentPhase = \"second\";\n this.benchmarkState.frameTimes = [];\n this.benchmarkState.frameCount = 0;\n this.benchmarkState.warmupFramesSkipped = 0;\n this.benchmarkState.lastFrameTime = 0;\n\n this.benchmarkStatus.status = \"Benchmarking... Phase 2/2 (warming up)\";\n console.log(\n `Phase 1 complete - Switching to PP state: ${this.benchmarkState.currentPPState}`,\n );\n } else if (this.benchmarkState.currentPhase === \"second\") {\n this.storePhaseResults(this.benchmarkState.currentPPState, this.benchmarkState.frameTimes);\n this.completeBenchmark();\n }\n }\n\n private storePhaseResults(ppEnabled: boolean, frameTimes: number[]): void {\n const averageFrameTime = frameTimes.reduce((sum, time) => sum + time, 0) / frameTimes.length;\n const fps = 1000 / averageFrameTime;\n\n const results = {\n averageFrameTime,\n fps,\n frameCount: frameTimes.length,\n };\n\n if (!this.benchmarkState.results) {\n this.benchmarkState.results = {\n withPostProcessing: { averageFrameTime: 0, fps: 0, frameCount: 0 },\n withoutPostProcessing: { averageFrameTime: 0, fps: 0, frameCount: 0 },\n difference: { frameTimeDiff: 0, fpsDiff: 0, performanceImpact: 0 },\n };\n }\n\n console.log(`Phase ${this.benchmarkState.currentPhase} results:`, {\n ppEnabled,\n averageFrameTime: averageFrameTime.toFixed(3),\n fps: fps.toFixed(3),\n frameCount: frameTimes.length,\n minFrameTime: Math.min(...frameTimes).toFixed(3),\n maxFrameTime: Math.max(...frameTimes).toFixed(3),\n });\n\n if (ppEnabled) {\n this.benchmarkState.results.withPostProcessing = results;\n } else {\n this.benchmarkState.results.withoutPostProcessing = results;\n }\n }\n\n private completeBenchmark(): void {\n if (!this.benchmarkState.results) return;\n\n const withPP = this.benchmarkState.results.withPostProcessing;\n const withoutPP = this.benchmarkState.results.withoutPostProcessing;\n\n this.benchmarkState.results.difference = {\n frameTimeDiff: withPP.averageFrameTime - withoutPP.averageFrameTime,\n fpsDiff: withPP.fps - withoutPP.fps,\n performanceImpact:\n ((withPP.averageFrameTime - withoutPP.averageFrameTime) / withoutPP.averageFrameTime) * 100,\n };\n\n this.updateBenchmarkDisplay();\n\n this.postProcessingManager!.toggleGlobalPostProcessing(this.benchmarkState.originalPPState);\n this.postProcessingGlobalValues.enabled = this.benchmarkState.originalPPState;\n\n this.benchmarkState.isRunning = false;\n this.benchmarkState.currentPhase = \"complete\";\n\n this.benchmarkButton.hidden = false;\n this.benchmarkStatus.status = \"Benchmark complete\";\n this.benchmarkResultsFolder.hidden = false;\n\n console.log(\"Benchmark completed - Final results:\", {\n originalPPState: this.benchmarkState.originalPPState,\n withPostProcessing: {\n fps: withPP.fps.toFixed(3),\n frameTime: withPP.averageFrameTime.toFixed(3),\n },\n withoutPostProcessing: {\n fps: withoutPP.fps.toFixed(3),\n frameTime: withoutPP.averageFrameTime.toFixed(3),\n },\n difference: {\n fpsChange: this.benchmarkState.results.difference.fpsDiff.toFixed(3),\n frameTimeChange: this.benchmarkState.results.difference.frameTimeDiff.toFixed(3),\n performanceImpact:\n this.benchmarkState.results.difference.performanceImpact.toFixed(3) + \"%\",\n },\n });\n }\n\n private updateBenchmarkDisplay(): void {\n if (!this.benchmarkState.results) return;\n\n const { withPostProcessing, withoutPostProcessing, difference } = this.benchmarkState.results;\n\n this.benchmarkData.testedFirst = this.benchmarkState.originalPPState ? \"With PP\" : \"Without PP\";\n this.benchmarkData.withPP_fps = withPostProcessing.fps.toFixed(3);\n this.benchmarkData.withPP_frameTime = withPostProcessing.averageFrameTime.toFixed(3) + \"ms\";\n this.benchmarkData.withoutPP_fps = withoutPostProcessing.fps.toFixed(3);\n this.benchmarkData.withoutPP_frameTime =\n withoutPostProcessing.averageFrameTime.toFixed(3) + \"ms\";\n this.benchmarkData.difference_fps =\n (difference.fpsDiff > 0 ? \"+\" : \"\") + difference.fpsDiff.toFixed(3);\n this.benchmarkData.difference_frameTime =\n (difference.frameTimeDiff > 0 ? \"+\" : \"\") + difference.frameTimeDiff.toFixed(3) + \"ms\";\n this.benchmarkData.performanceImpact =\n (difference.performanceImpact > 0 ? \"+\" : \"\") + difference.performanceImpact.toFixed(3) + \"%\";\n }\n\n public isBenchmarkRunning(): boolean {\n return this.benchmarkState.isRunning;\n }\n}\n", "import { ShaderMaterial, Uniform } from \"three\";\n\nimport { vertexShader } from \"../shaders/vertex-shader\";\n\nexport const BrightnessContrastSaturation = new ShaderMaterial({\n uniforms: {\n tDiffuse: new Uniform(null),\n brightness: new Uniform(0.0),\n contrast: new Uniform(1.0),\n saturation: new Uniform(1.0),\n },\n vertexShader: vertexShader,\n fragmentShader: /* glsl */ `\n precision highp float;\n in vec2 vUv;\n\n uniform sampler2D tDiffuse;\n uniform float brightness;\n uniform float contrast;\n uniform float saturation;\n\n mat4 brightnessMatrix(float brightness) {\n return mat4(\n 1, 0, 0, 0,\n 0, 1, 0, 0,\n 0, 0, 1, 0,\n brightness, brightness, brightness, 1\n );\n }\n\n mat4 contrastMatrix(float contrast) {\n float t = (1.0 - contrast) / 2.0;\n\n return mat4(\n contrast, 0, 0, 0,\n 0, contrast, 0, 0,\n 0, 0, contrast, 0,\n t, t, t, 1\n );\n }\n\n mat4 saturationMatrix(float saturation) {\n vec3 luminance = vec3(0.3086, 0.6094, 0.0820);\n float oneMinusSat = 1.0 - saturation;\n vec3 red = vec3(luminance.x * oneMinusSat);\n red += vec3(saturation, 0, 0);\n vec3 green = vec3(luminance.y * oneMinusSat);\n green += vec3(0, saturation, 0);\n vec3 blue = vec3(luminance.z * oneMinusSat);\n blue += vec3(0, 0, saturation);\n return mat4(\n red, 0,\n green, 0,\n blue, 0,\n 0, 0, 0, 1\n );\n }\n\n void main(void) {\n vec4 color = texture(tDiffuse, vUv);\n gl_FragColor = (\n brightnessMatrix(brightness) *\n contrastMatrix(contrast) *\n saturationMatrix(saturation) *\n color\n );\n }\n `,\n dithering: true,\n});\n", "export const vertexShader = /* glsl */ `\n precision highp float;\n\n out vec2 vUv;\n void main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n }\n `;\n", "import { ShaderMaterial, Uniform, Vector2 } from \"three\";\n\nimport { vertexShader } from \"../shaders/vertex-shader\";\n\nexport const GaussGrainEffect = new ShaderMaterial({\n uniforms: {\n tDiffuse: new Uniform(null),\n resolution: new Uniform(new Vector2()),\n time: new Uniform(0.0),\n amount: new Uniform(0.0),\n alpha: new Uniform(0.0),\n },\n vertexShader: vertexShader,\n fragmentShader: /* glsl */ `\n precision highp float;\n in vec2 vUv;\n\n uniform sampler2D tDiffuse;\n uniform vec2 resolution;\n uniform float time;\n uniform float amount;\n uniform float alpha;\n\n const float PI = acos(-1.0);\n const float TAU = PI * 2.0;\n const float SQRTAU = sqrt(TAU);\n\n float gaussian(float z, float u, float o) {\n return (\n (1.0 / (o * SQRTAU)) *\n (exp(-(((z - u) * (z - u)) / (2.0 * (o * o)))))\n );\n }\n\n vec3 gaussgrain() {\n vec2 ps = vec2(1.0) / resolution.xy;\n vec2 uv = gl_FragCoord.xy * ps;\n float t = time;\n float seed = dot(uv, vec2(12.9898, 78.233));\n float noise = fract(sin(seed) * 43758.5453123 + t);\n noise = gaussian(noise, 0.0, 0.5);\n return vec3(noise);\n }\n\n void main(void) {\n vec2 uv = vUv;\n vec4 originalColor = texture(tDiffuse, uv);\n vec3 grain = gaussgrain();\n vec3 col = originalColor.rgb + (grain * amount);\n gl_FragColor = vec4(clamp(col, 0.0, 1.0), alpha);\n }\n `,\n dithering: true,\n});\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport { Pass } from \"postprocessing\";\nimport {\n Color,\n DataTexture,\n FloatType,\n Fog,\n FogExp2,\n HalfFloatType,\n LinearFilter,\n NearestFilter,\n NoColorSpace,\n OrthographicCamera,\n PerspectiveCamera,\n RGBAFormat,\n RedFormat,\n RepeatWrapping,\n Scene,\n ShaderMaterial,\n Texture,\n Uniform,\n Vector2,\n Vector3,\n WebGLRenderTarget,\n WebGLRenderer,\n} from \"three\";\n\nimport { BlueNoise } from \"./BlueNoise\";\nimport { DepthDownSample } from \"./DepthDownSample\";\nimport { EffectCompositer } from \"./EffectCompositer\";\nimport { EffectShader } from \"./EffectShader\";\nimport { FullScreenTriangle } from \"./FullScreenTriangle\";\nimport { PoissionBlur } from \"./PoissionBlur\";\n\nconst bluenoiseBits: Uint8Array = Uint8Array.from(atob(BlueNoise), (c) => c.charCodeAt(0));\n\nexport type RenderModeType = \"Combined\" | \"AO\" | \"No AO\" | \"Split\" | \"Split AO\";\n\ntype PresetsType = \"Performance\" | \"Low\" | \"Medium\" | \"High\" | \"Ultra\";\n\ninterface IConfiguration {\n aoSamples: number;\n aoRadius: number;\n denoiseSamples: number;\n denoiseRadius: number;\n distanceFalloff: number;\n intensity: number;\n denoiseIterations: number;\n renderMode: number;\n color: Color;\n gammaCorrection: boolean;\n logarithmicDepthBuffer: boolean;\n screenSpaceRadius: boolean;\n halfRes: boolean;\n depthAwareUpsampling: boolean;\n colorMultiply: boolean;\n}\n\nfunction checkTimerQuery(\n timerQuery: WebGLQuery,\n gl: WebGL2RenderingContext,\n pass: N8SSAOPass,\n): void {\n const available = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT_AVAILABLE);\n if (available) {\n const elapsedTimeInNs = gl.getQueryParameter(timerQuery, gl.QUERY_RESULT);\n const elapsedTimeInMs = elapsedTimeInNs / 1000000;\n pass.lastTime = elapsedTimeInMs;\n } else {\n setTimeout(() => checkTimerQuery(timerQuery, gl, pass), 1);\n }\n}\n\nclass N8SSAOPass extends Pass {\n private debugMode: boolean;\n\n public scene: Scene;\n public camera: PerspectiveCamera | OrthographicCamera;\n public lastTime: number = 0;\n\n private width: number;\n private height: number;\n\n public configuration: IConfiguration & ProxyHandler<IConfiguration>;\n\n private autosetGamma: boolean = true;\n private samples: Vector3[] = [];\n private samplesR: number[] = [];\n private samplesDenoise: Vector2[] = [];\n\n private copyQuadMaterial: ShaderMaterial = new ShaderMaterial({\n uniforms: { tDiffuse: new Uniform(null) },\n\n depthWrite: false,\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }\n `,\n\n fragmentShader: /* glsl */ `\n uniform sampler2D tDiffuse;\n varying vec2 vUv;\n void main(void) {\n gl_FragColor = texture2D(tDiffuse, vUv);\n }\n `,\n });\n\n private copyQuad: FullScreenTriangle = new FullScreenTriangle(this.copyQuadMaterial);\n\n private writeTargetInternal: WebGLRenderTarget;\n private readTargetInternal: WebGLRenderTarget;\n private outputTargetInternal: WebGLRenderTarget;\n private depthDownsampleTarget: WebGLRenderTarget | null;\n\n private depthDownsampleQuad: FullScreenTriangle | null;\n private effectShaderQuad: FullScreenTriangle | null;\n private effectCompositerQuad: FullScreenTriangle | null;\n private poissonBlurQuad: FullScreenTriangle | null;\n\n private depthTexture: Texture;\n private bluenoise: DataTexture;\n\n private r: Vector2;\n private c: Color;\n\n constructor(\n scene: Scene,\n camera: PerspectiveCamera | OrthographicCamera,\n width = 512,\n height = 512,\n ) {\n super();\n this.width = width;\n this.height = height;\n\n this.camera = camera;\n this.scene = scene;\n\n this.configuration = new Proxy(\n {\n aoSamples: 16,\n aoRadius: 5.0,\n denoiseSamples: 8,\n denoiseRadius: 12,\n distanceFalloff: 1.0,\n intensity: 5,\n denoiseIterations: 2.0,\n renderMode: 0,\n color: new Color(0, 0, 0),\n gammaCorrection: true,\n logarithmicDepthBuffer: false,\n screenSpaceRadius: false,\n halfRes: false,\n depthAwareUpsampling: true,\n colorMultiply: true,\n },\n {\n set: (target: any, propName: string, value: any) => {\n const oldProp = target[propName];\n target[propName] = value;\n if (propName === \"aoSamples\" && oldProp !== value) {\n this.configureAOPass(this.configuration.logarithmicDepthBuffer);\n }\n if (propName === \"denoiseSamples\" && oldProp !== value) {\n this.configureDenoisePass(this.configuration.logarithmicDepthBuffer);\n }\n if (propName === \"halfRes\" && oldProp !== value) {\n this.configureAOPass(this.configuration.logarithmicDepthBuffer);\n this.configureHalfResTargets();\n this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer);\n this.setSize(this.width, this.height);\n }\n if (propName === \"depthAwareUpsampling\" && oldProp !== value) {\n this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer);\n }\n if (propName === \"gammaCorrection\") {\n this.autosetGamma = false;\n }\n return true;\n },\n },\n );\n\n this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer);\n this.configureSampleDependentPasses();\n this.configureHalfResTargets();\n\n this.writeTargetInternal = new WebGLRenderTarget(this.width, this.height, {\n minFilter: LinearFilter,\n magFilter: LinearFilter,\n depthBuffer: false,\n });\n\n this.readTargetInternal = new WebGLRenderTarget(this.width, this.height, {\n minFilter: LinearFilter,\n magFilter: LinearFilter,\n depthBuffer: false,\n });\n\n this.outputTargetInternal = new WebGLRenderTarget(this.width, this.height, {\n minFilter: LinearFilter,\n magFilter: LinearFilter,\n depthBuffer: false,\n });\n\n this.bluenoise = new DataTexture(bluenoiseBits, 128, 128);\n this.bluenoise.colorSpace = NoColorSpace;\n this.bluenoise.wrapS = RepeatWrapping;\n this.bluenoise.wrapT = RepeatWrapping;\n this.bluenoise.minFilter = NearestFilter;\n this.bluenoise.magFilter = NearestFilter;\n this.bluenoise.needsUpdate = true;\n this.lastTime = 0;\n this.needsDepthTexture = true;\n this.needsSwap = true;\n this.r = new Vector2();\n this.c = new Color();\n }\n\n private configureHalfResTargets(): void {\n if (this.configuration.halfRes) {\n this.depthDownsampleTarget = new WebGLRenderTarget(this.width / 2, this.height / 2, {\n count: 2,\n depthBuffer: false,\n });\n this.depthDownsampleTarget.textures[0].format = RedFormat;\n this.depthDownsampleTarget.textures[0].type = FloatType;\n this.depthDownsampleTarget.textures[0].minFilter = NearestFilter;\n this.depthDownsampleTarget.textures[0].magFilter = NearestFilter;\n this.depthDownsampleTarget.textures[1].format = RGBAFormat;\n this.depthDownsampleTarget.textures[1].type = HalfFloatType;\n this.depthDownsampleTarget.textures[1].minFilter = NearestFilter;\n this.depthDownsampleTarget.textures[1].magFilter = NearestFilter;\n this.depthDownsampleQuad = new FullScreenTriangle(new ShaderMaterial(DepthDownSample));\n } else {\n if (this.depthDownsampleTarget) {\n this.depthDownsampleTarget.dispose();\n this.depthDownsampleTarget = null;\n }\n if (this.depthDownsampleQuad) {\n this.depthDownsampleQuad.dispose();\n this.depthDownsampleQuad = null;\n }\n }\n }\n\n private configureSampleDependentPasses(): void {\n this.configureAOPass(this.configuration.logarithmicDepthBuffer);\n this.configureDenoisePass(this.configuration.logarithmicDepthBuffer);\n }\n\n private configureAOPass(logarithmicDepthBuffer = false): void {\n this.samples = this.generateHemisphereSamples(this.configuration.aoSamples);\n this.samplesR = this.generateHemisphereSamplesR(this.configuration.aoSamples);\n const e = { ...EffectShader };\n e.fragmentShader = e.fragmentShader\n .replace(\"16\", this.configuration.aoSamples.toString())\n .replace(\"16.0\", this.configuration.aoSamples.toString() + \".0\");\n if (logarithmicDepthBuffer) {\n e.fragmentShader = \"#define LOGDEPTH\\n\" + e.fragmentShader;\n }\n if (this.configuration.halfRes) {\n e.fragmentShader = \"#define HALFRES\\n\" + e.fragmentShader;\n }\n if (this.effectShaderQuad) {\n this.effectShaderQuad.material.dispose();\n this.effectShaderQuad.material = new ShaderMaterial(e);\n } else {\n this.effectShaderQuad = new FullScreenTriangle(new ShaderMaterial(e));\n }\n }\n\n private configureDenoisePass(logarithmicDepthBuffer: boolean = false): void {\n this.samplesDenoise = this.generateDenoiseSamples(this.configuration.denoiseSamples, 11);\n const p = { ...PoissionBlur };\n p.fragmentShader = p.fragmentShader.replace(\"16\", this.configuration.denoiseSamples.toString());\n if (logarithmicDepthBuffer) {\n p.fragmentShader = \"#define LOGDEPTH\\n\" + p.fragmentShader;\n }\n if (this.poissonBlurQuad) {\n this.poissonBlurQuad.material.dispose();\n this.poissonBlurQuad.material = new ShaderMaterial(p);\n } else {\n this.poissonBlurQuad = new FullScreenTriangle(new ShaderMaterial(p));\n }\n }\n\n private configureEffectCompositer(logarithmicDepthBuffer: boolean = false): void {\n const e = { ...EffectCompositer };\n\n if (logarithmicDepthBuffer) {\n e.fragmentShader = \"#define LOGDEPTH\\n\" + e.fragmentShader;\n }\n\n if (this.configuration.halfRes && this.configuration.depthAwareUpsampling) {\n e.fragmentShader = \"#define HALFRES\\n\" + e.fragmentShader;\n }\n\n if (this.effectCompositerQuad) {\n this.effectCompositerQuad.material.dispose();\n this.effectCompositerQuad.material = new ShaderMaterial(e);\n } else {\n this.effectCompositerQuad = new FullScreenTriangle(new ShaderMaterial(e));\n }\n }\n\n private generateHemisphereSamples(n: number): Vector3[] {\n const points = [];\n for (let k = 0; k < n; k++) {\n const theta = 2.399963 * k;\n const r = Math.sqrt(k + 0.5) / Math.sqrt(n);\n const x = r * Math.cos(theta);\n const y = r * Math.sin(theta);\n\n const z = Math.sqrt(1 - (x * x + y * y));\n points.push(new Vector3(x, y, z));\n }\n return points;\n }\n\n private generateHemisphereSamplesR(n: number): number[] {\n const samplesR = [];\n for (let i = 0; i < n; i++) {\n samplesR.push((i + 1) / n);\n }\n return samplesR;\n }\n\n private generateDenoiseSamples(numSamples: number, numRings: number): Vector2[] {\n const angleStep = (2 * Math.PI * numRings) / numSamples;\n const invNumSamples = 1.0 / numSamples;\n const radiusStep = invNumSamples;\n const samples = [];\n let radius = invNumSamples;\n let angle = 0;\n for (let i = 0; i < numSamples; i++) {\n samples.push(\n new Vector2(Math.cos(angle), Math.sin(angle)).multiplyScalar(Math.pow(radius, 0.75)),\n );\n radius += radiusStep;\n angle += angleStep;\n }\n return samples;\n }\n\n public setSize(width: number, height: number): void {\n this.width = width;\n this.height = height;\n const c = this.configuration.halfRes ? 0.5 : 1;\n this.writeTargetInternal.setSize(width * c, height * c);\n this.readTargetInternal.setSize(width * c, height * c);\n if (this.configuration.halfRes && this.depthDownsampleTarget) {\n this.depthDownsampleTarget.setSize(width * c, height * c);\n }\n this.outputTargetInternal.setSize(width, height);\n }\n\n public setDepthTexture(depthTexture: DataTexture): void {\n this.depthTexture = depthTexture;\n }\n\n public render(\n renderer: WebGLRenderer,\n inputBuffer: WebGLRenderTarget,\n outputBuffer: WebGLRenderTarget,\n ): void {\n const xrEnabled = renderer.xr.enabled;\n renderer.xr.enabled = false;\n\n let ext: any;\n let timerQuery: WebGLQuery | null = null;\n let gl: WebGL2RenderingContext | WebGLRenderingContext | null = null;\n gl = renderer.getContext();\n\n if (this.debugMode) {\n ext = gl.getExtension(\"EXT_disjoint_timer_query_webgl2\");\n if (ext === null) {\n console.error(\"EXT_disjoint_timer_query_webgl2 not available, disabling debug mode.\");\n this.debugMode = false;\n gl = null;\n }\n }\n\n if (this.debugMode && gl) {\n timerQuery = (gl as WebGL2RenderingContext).createQuery()!;\n (gl as WebGL2RenderingContext).beginQuery(ext.TIME_ELAPSED_EXT, timerQuery);\n }\n\n if (\n renderer.capabilities.logarithmicDepthBuffer !== this.configuration.logarithmicDepthBuffer\n ) {\n this.configuration.logarithmicDepthBuffer = renderer.capabilities.logarithmicDepthBuffer;\n this.configureAOPass(this.configuration.logarithmicDepthBuffer);\n this.configureDenoisePass(this.configuration.logarithmicDepthBuffer);\n this.configureEffectCompositer(this.configuration.logarithmicDepthBuffer);\n }\n\n if (inputBuffer.texture.type !== this.outputTargetInternal.texture.type) {\n this.outputTargetInternal.texture.type = inputBuffer.texture.type;\n this.outputTargetInternal.texture.needsUpdate = true;\n }\n\n this.camera.updateMatrixWorld();\n this.r.set(this.width, this.height);\n let trueRadius = this.configuration.aoRadius;\n\n if (this.configuration.halfRes && this.configuration.screenSpaceRadius) {\n trueRadius *= 0.5;\n }\n\n if (this.configuration.halfRes && this.depthDownsampleQuad) {\n const depthDownsampleUniforms = this.depthDownsampleQuad.material.uniforms;\n renderer.setRenderTarget(this.depthDownsampleTarget);\n depthDownsampleUniforms.sceneDepth.value = this.depthTexture;\n depthDownsampleUniforms.resolution.value = this.r;\n depthDownsampleUniforms.near.value = this.camera.near;\n depthDownsampleUniforms.far.value = this.camera.far;\n depthDownsampleUniforms.projectionMatrixInv.value = this.camera.projectionMatrixInverse;\n depthDownsampleUniforms.viewMatrixInv.value = this.camera.matrixWorld;\n depthDownsampleUniforms.logDepth.value = this.configuration.logarithmicDepthBuffer;\n this.depthDownsampleQuad.render(renderer);\n }\n\n if (!this.effectShaderQuad) return;\n\n const effectShaderUniforms = this.effectShaderQuad.material.uniforms;\n\n effectShaderUniforms.sceneDiffuse.value = inputBuffer.texture;\n effectShaderUniforms.sceneDepth.value = this.configuration.halfRes\n ? this.depthDownsampleTarget!.textures[0]\n : this.depthTexture;\n effectShaderUniforms.sceneNormal.value = this.configuration.halfRes\n ? this.depthDownsampleTarget!.textures[1]\n : null;\n effectShaderUniforms.projMat.value = this.camera.projectionMatrix;\n effectShaderUniforms.viewMat.value = this.camera.matrixWorldInverse;\n effectShaderUniforms.projViewMat.value = this.camera.projectionMatrix\n .clone()\n .multiply(this.camera.matrixWorldInverse.clone());\n effectShaderUniforms.projectionMatrixInv.value = this.camera.projectionMatrixInverse;\n effectShaderUniforms.viewMatrixInv.value = this.camera.matrixWorld;\n effectShaderUniforms.cameraPos.value = this.camera.getWorldPosition(new Vector3());\n effectShaderUniforms.resolution.value = this.configuration.halfRes\n ? this.r\n .clone()\n .multiplyScalar(1 / 2)\n .floor()\n : this.r;\n effectShaderUniforms.time.value = performance.now() / 1000;\n effectShaderUniforms.samples.value = this.samples;\n effectShaderUniforms.samplesR.value = this.samplesR;\n effectShaderUniforms.bluenoise.value = this.bluenoise;\n effectShaderUniforms.radius.value = trueRadius;\n effectShaderUniforms.distanceFalloff.value = this.configuration.distanceFalloff;\n effectShaderUniforms.near.value = this.camera.near;\n effectShaderUniforms.far.value = this.camera.far;\n effectShaderUniforms.logDepth.value = renderer.capabilities.logarithmicDepthBuffer;\n effectShaderUniforms.ortho.value = this.camera instanceof OrthographicCamera;\n effectShaderUniforms.screenSpaceRadius.value = this.configuration.screenSpaceRadius;\n\n // Start the AO\n renderer.setRenderTarget(this.writeTargetInternal);\n this.effectShaderQuad.render(renderer);\n // End the AO\n\n const poissonBlurUniforms = this.poissonBlurQuad!.material.uniforms;\n\n // Start the blur\n for (let i = 0; i < this.configuration.denoiseIterations; i++) {\n if (!poissonBlurUniforms || !this.poissonBlurQuad) return;\n [this.writeTargetInternal, this.readTargetInternal] = [\n this.readTargetInternal,\n this.writeTargetInternal,\n ];\n poissonBlurUniforms.tDiffuse.value = this.readTargetInternal.texture;\n poissonBlurUniforms.sceneDepth.value = this.configuration.halfRes\n ? this.depthDownsampleTarget!.textures[0]\n : this.depthTexture;\n poissonBlurUniforms.projMat.value = this.camera.projectionMatrix;\n poissonBlurUniforms.viewMat.value = this.camera.matrixWorldInverse;\n poissonBlurUniforms.projectionMatrixInv.value = this.camera.projectionMatrixInverse;\n poissonBlurUniforms.viewMatrixInv.value = this.camera.matrixWorld;\n poissonBlurUniforms.cameraPos.value = this.camera.getWorldPosition(new Vector3());\n poissonBlurUniforms.resolution.value = this.configuration.halfRes\n ? this.r\n .clone()\n .multiplyScalar(1 / 2)\n .floor()\n : this.r;\n poissonBlurUniforms.time.value = performance.now() / 1000;\n poissonBlurUniforms.blueNoise.value = this.bluenoise;\n poissonBlurUniforms.radius.value =\n this.configuration.denoiseRadius * (this.configuration.halfRes ? 1 / 2 : 1);\n poissonBlurUniforms.worldRadius.value = trueRadius;\n poissonBlurUniforms.distanceFalloff.value = this.configuration.distanceFalloff;\n poissonBlurUniforms.index.value = i;\n poissonBlurUniforms.poissonDisk.value = this.samplesDenoise;\n poissonBlurUniforms.near.value = this.camera.near;\n poissonBlurUniforms.far.value = this.camera.far;\n poissonBlurUniforms.logDepth.value = renderer.capabilities.logarithmicDepthBuffer;\n poissonBlurUniforms.screenSpaceRadius.value = this.configuration.screenSpaceRadius;\n renderer.setRenderTarget(this.writeTargetInternal);\n this.poissonBlurQuad.render(renderer);\n }\n // End the blur\n\n const effectCompositerUniforms = this.effectCompositerQuad!.material.uniforms;\n\n // Start the composition\n if (!effectCompositerUniforms || !this.effectCompositerQuad) return;\n effectCompositerUniforms.sceneDiffuse.value = inputBuffer.texture;\n effectCompositerUniforms.sceneDepth.value = this.depthTexture;\n effectCompositerUniforms.near.value = this.camera.near;\n effectCompositerUniforms.far.value = this.camera.far;\n effectCompositerUniforms.projectionMatrixInv.value = this.camera.projectionMatrixInverse;\n effectCompositerUniforms.viewMatrixInv.value = this.camera.matrixWorld;\n effectCompositerUniforms.logDepth.value = renderer.capabilities.logarithmicDepthBuffer;\n effectCompositerUniforms.ortho.value = this.camera instanceof OrthographicCamera;\n effectCompositerUniforms.downsampledDepth.value = this.configuration.halfRes\n ? this.depthDownsampleTarget!.textures[0]\n : this.depthTexture;\n effectCompositerUniforms.resolution.value = this.r;\n effectCompositerUniforms.blueNoise.value = this.bluenoise;\n effectCompositerUniforms.intensity.value = this.configuration.intensity;\n effectCompositerUniforms.renderMode.value = this.configuration.renderMode;\n effectCompositerUniforms.screenSpaceRadius.value = this.configuration.screenSpaceRadius;\n effectCompositerUniforms.radius.value = trueRadius;\n effectCompositerUniforms.distanceFalloff.value = this.configuration.distanceFalloff;\n effectCompositerUniforms.gammaCorrection.value = this.autosetGamma\n ? this.renderToScreen\n : this.configuration.gammaCorrection;\n effectCompositerUniforms.tDiffuse.value = this.writeTargetInternal.texture;\n effectCompositerUniforms.color.value = this.c\n .copy(this.configuration.color)\n .convertSRGBToLinear();\n effectCompositerUniforms.colorMultiply.value = this.configuration.colorMultiply;\n effectCompositerUniforms.cameraPos.value = this.camera.getWorldPosition(new Vector3());\n effectCompositerUniforms.fog.value = !!this.scene.fog;\n\n if (this.scene.fog) {\n if (this.scene.fog instanceof Fog && this.scene.fog.isFog === true) {\n effectCompositerUniforms.fogExp.value = false;\n effectCompositerUniforms.fogNear.value = this.scene.fog.near;\n effectCompositerUniforms.fogFar.value = this.scene.fog.far;\n } else if (this.scene.fog instanceof FogExp2) {\n effectCompositerUniforms.fogExp.value = true;\n effectCompositerUniforms.fogDensity.value = this.scene.fog.density;\n } else {\n console.error(`Unsupported fog type ${this.scene.fog.constructor.name} in SSAOPass.`);\n }\n }\n\n renderer.setRenderTarget(this.outputTargetInternal);\n this.effectCompositerQuad.render(renderer);\n renderer.setRenderTarget(this.renderToScreen ? null : outputBuffer);\n this.copyQuad.material.uniforms.tDiffuse.value = this.outputTargetInternal.texture;\n this.copyQuad.render(renderer);\n\n if (this.debugMode && gl && timerQuery) {\n (gl as WebGL2RenderingContext).endQuery(ext.TIME_ELAPSED_EXT);\n checkTimerQuery(timerQuery as WebGLQuery, gl as WebGL2RenderingContext, this);\n }\n\n renderer.xr.enabled = xrEnabled;\n }\n\n public enableDebugMode(): void {\n this.debugMode = true;\n }\n\n public disableDebugMode(): void {\n this.debugMode = false;\n }\n\n public setDisplayMode(mode: \"Combined\" | \"AO\" | \"No AO\" | \"Split\" | \"Split AO\"): void {\n this.configuration.renderMode = [\"Combined\", \"AO\", \"No AO\", \"Split\", \"Split AO\"].indexOf(\n mode,\n ) as number;\n }\n\n public setQualityMode(mode: PresetsType): void {\n if (mode === \"Performance\") {\n this.configuration.aoSamples = 8;\n this.configuration.denoiseSamples = 4;\n this.configuration.denoiseRadius = 12;\n } else if (mode === \"Low\") {\n this.configuration.aoSamples = 16;\n this.configuration.denoiseSamples = 4;\n this.configuration.denoiseRadius = 12;\n } else if (mode === \"Medium\") {\n this.configuration.aoSamples = 16;\n this.configuration.denoiseSamples = 8;\n this.configuration.denoiseRadius = 12;\n } else if (mode === \"High\") {\n this.configuration.aoSamples = 64;\n this.configuration.denoiseSamples = 8;\n this.configuration.denoiseRadius = 6;\n } else if (mode === \"Ultra\") {\n this.configuration.aoSamples = 64;\n this.configuration.denoiseSamples = 16;\n this.configuration.denoiseRadius = 6;\n }\n }\n}\n\nexport { N8SSAOPass };\n", "// Original code from: https://github.com/N8python/n8ao\n\n/* eslint-disable max-len */\nexport const BlueNoise: string =\n \"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\";\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport { Matrix4, Uniform, Vector2 } from \"three\";\n\nconst DepthDownSample = {\n uniforms: {\n sceneDepth: new Uniform(null),\n resolution: new Uniform(new Vector2()),\n near: new Uniform(0.1),\n far: new Uniform(1000.0),\n viewMatrixInv: new Uniform(new Matrix4()),\n projectionMatrixInv: new Uniform(new Matrix4()),\n logDepth: new Uniform(false),\n },\n\n depthWrite: false,\n\n depthTest: false,\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }`,\n\n fragmentShader: /* glsl */ `\n uniform highp sampler2D sceneDepth;\n uniform vec2 resolution;\n uniform float near;\n uniform float far;\n uniform bool logDepth;\n uniform mat4 viewMatrixInv;\n uniform mat4 projectionMatrixInv;\n varying vec2 vUv;\n\n layout(location = 1) out vec4 gNormal;\n\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ = near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n\n vec3 getWorldPos(float depth, vec2 coord) {\n if (logDepth) {\n return getWorldPosLog(vec3(coord, depth));\n }\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n\n return worldSpacePosition.xyz;\n }\n\n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n vec3 ce = getWorldPos(c0, vUv).xyz;\n vec3 dpdx = (\n (dl < dr)\n ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz\n );\n vec3 dpdy = (\n (db < dt)\n ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz\n );\n return normalize(cross(dpdx, dpdy));\n }\n\n void main(void) {\n vec2 uv = vUv - vec2(0.5) / resolution;\n vec2 pixelSize = vec2(1.0) / resolution;\n vec2[] uvSamples = vec2[4](\n uv,\n uv + vec2(pixelSize.x, 0.0),\n uv + vec2(0.0, pixelSize.y),\n uv + pixelSize\n );\n float depth00 = texture2D(sceneDepth, uvSamples[0]).r;\n float depth10 = texture2D(sceneDepth, uvSamples[1]).r;\n float depth01 = texture2D(sceneDepth, uvSamples[2]).r;\n float depth11 = texture2D(sceneDepth, uvSamples[3]).r;\n float minDepth = min(min(depth00, depth10), min(depth01, depth11));\n float maxDepth = max(max(depth00, depth10), max(depth01, depth11));\n float targetDepth = minDepth;\n\n if (mod(gl_FragCoord.x + gl_FragCoord.y, 2.0) > 0.5) { \n targetDepth = maxDepth;\n }\n\n int chosenIndex = 0;\n float[] samples = float[4](depth00, depth10, depth01, depth11);\n\n for(int i = 0; i < 4; ++i) {\n if (samples[i] == targetDepth) {\n chosenIndex = i;\n break;\n }\n }\n\n gl_FragColor = vec4(samples[chosenIndex], 0.0, 0.0, 1.0);\n gNormal = vec4(\n computeNormal(\n getWorldPos(samples[chosenIndex], uvSamples[chosenIndex]), uvSamples[chosenIndex]\n ),\n 0.0\n );\n }`,\n};\n\nexport { DepthDownSample };\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport { Matrix4, Uniform, Vector2, Vector3 } from \"three\";\n\nconst EffectCompositer = {\n uniforms: {\n sceneDiffuse: new Uniform(null),\n sceneDepth: new Uniform(null),\n tDiffuse: new Uniform(null),\n projMat: new Uniform(new Matrix4()),\n viewMat: new Uniform(new Matrix4()),\n projectionMatrixInv: new Uniform(new Matrix4()),\n viewMatrixInv: new Uniform(new Matrix4()),\n cameraPos: new Uniform(new Vector3()),\n resolution: new Uniform(new Vector2()),\n color: new Uniform(new Vector3()),\n blueNoise: new Uniform(null),\n downsampledDepth: new Uniform(null),\n time: new Uniform(0.0),\n intensity: new Uniform(10.0),\n renderMode: new Uniform(0.0),\n gammaCorrection: new Uniform(false),\n logDepth: new Uniform(false),\n ortho: new Uniform(false),\n near: new Uniform(0.1),\n far: new Uniform(1000.0),\n screenSpaceRadius: new Uniform(false),\n radius: new Uniform(0.0),\n distanceFalloff: new Uniform(1.0),\n fog: new Uniform(false),\n fogExp: new Uniform(false),\n fogDensity: new Uniform(0.0),\n fogNear: new Uniform(Infinity),\n fogFar: new Uniform(Infinity),\n colorMultiply: new Uniform(true),\n },\n\n depthWrite: false,\n\n depthTest: false,\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }`,\n\n fragmentShader: /* glsl */ `\n uniform sampler2D sceneDiffuse;\n uniform highp sampler2D sceneDepth;\n uniform highp sampler2D downsampledDepth;\n uniform sampler2D tDiffuse;\n uniform sampler2D blueNoise;\n uniform vec2 resolution;\n uniform vec3 color;\n uniform mat4 projectionMatrixInv;\n uniform mat4 viewMatrixInv;\n uniform float intensity;\n uniform float renderMode;\n uniform float near;\n uniform float far;\n uniform bool gammaCorrection;\n uniform bool logDepth;\n uniform bool ortho;\n uniform bool screenSpaceRadius;\n uniform bool fog;\n uniform bool fogExp;\n uniform bool colorMultiply;\n uniform float fogDensity;\n uniform float fogNear;\n uniform float fogFar;\n uniform float radius;\n uniform float distanceFalloff;\n uniform vec3 cameraPos;\n varying vec2 vUv;\n\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar) {\n return (zFar * zNear) / (zFar - d * (zFar - zNear));\n }\n \n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return (\n ortho\n ? linearize_depth_ortho(linDepth, nearZ, farZ)\n : linearize_depth(linDepth, nearZ, farZ)\n );\n }\n\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n\n vec3 getWorldPos(float depth, vec2 coord) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n\n if (abs(viewSpacePosition.w) < 1e-6) {\n discard;\n }\n\n viewSpacePosition /= viewSpacePosition.w;\n return (viewMatrixInv * viewSpacePosition).xyz;\n }\n\n vec4 LinearTosRGB(vec4 linearRGB) {\n bvec4 cutoff = lessThan(linearRGB, vec4(0.0031308));\n vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);\n vec4 lower = linearRGB * vec4(12.92);\n return mix(higher, lower, cutoff);\n }\n\n\n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n vec3 ce = getWorldPos(c0, vUv).xyz;\n vec3 dpdx = (\n (dl < dr)\n ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz\n );\n vec3 dpdy = (\n (db < dt)\n ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz\n );\n return normalize(cross(dpdx, dpdy));\n }\n\n #include <common>\n #include <dithering_pars_fragment>\n\n void main(void) {\n vec4 sceneTexel = texture2D(sceneDiffuse, vUv);\n float depth = texture2D(sceneDepth, vUv).x;\n \n #ifdef HALFRES \n vec4 texel;\n if (depth == 1.0) {\n texel = vec4(0.0, 0.0, 0.0, 1.0);\n } else {\n vec3 worldPos = getWorldPos(depth, vUv);\n vec3 normal = computeNormal(getWorldPos(depth, vUv), vUv);\n\n float totalWeight = 0.0;\n float radiusToUse = (\n screenSpaceRadius\n ? distance(worldPos, getWorldPos(depth, vUv + vec2(radius, 0.0) / resolution))\n : radius\n );\n float distanceFalloffToUse = (\n screenSpaceRadius\n ? radiusToUse * distanceFalloff\n : distanceFalloff\n );\n for(float x = -1.0; x <= 1.0; x++) {\n for(float y = -1.0; y <= 1.0; y++) {\n vec2 offset = vec2(x, y);\n ivec2 p = ivec2((vUv * resolution * 0.5) + offset);\n vec2 pUv = vec2(p) / (resolution * 0.5);\n float sampleDepth = texelFetch(downsampledDepth,p, 0).x;\n vec4 sampleInfo = texelFetch(tDiffuse, p, 0);\n vec3 normalSample = sampleInfo.xyz * 2.0 - 1.0;\n vec3 worldPosSample = getWorldPos(sampleDepth, pUv);\n float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal));\n float rangeCheck = exp(\n -1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)) * max(dot(normal, normalSample),\n 0.0\n );\n float weight = rangeCheck;\n totalWeight += weight;\n texel += sampleInfo * weight;\n }\n }\n if (totalWeight == 0.0) {\n texel = texture2D(tDiffuse, vUv);\n } else {\n texel /= totalWeight;\n }\n }\n #else\n vec4 texel = texture2D(tDiffuse, vUv);\n #endif\n\n #ifdef LOGDEPTH\n texel.a = clamp(texel.a, 0.0, 1.0);\n if (texel.a == 0.0) {\n texel.a = 1.0;\n }\n #endif\n\n float finalAo = pow(texel.a, intensity);\n float fogFactor;\n float fogDepth = distance(cameraPos, getWorldPos(depth, vUv));\n\n if (fog) {\n if (fogExp) {\n fogFactor = 1.0 - exp(-fogDensity * fogDensity * fogDepth * fogDepth);\n } else {\n fogFactor = smoothstep(fogNear, fogFar, fogDepth);\n }\n }\n\n finalAo = mix(finalAo, 1.0, fogFactor);\n vec3 aoApplied = color * mix(vec3(1.0), sceneTexel.rgb, float(colorMultiply));\n if (renderMode == 0.0) {\n gl_FragColor = vec4( mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a);\n } else if (renderMode == 1.0) {\n gl_FragColor = vec4( mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a);\n } else if (renderMode == 2.0) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (renderMode == 3.0) {\n if (vUv.x < 0.5) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) {\n gl_FragColor = vec4(1.0);\n } else {\n gl_FragColor = vec4(mix(sceneTexel.rgb, aoApplied, 1.0 - finalAo), sceneTexel.a);\n }\n } else if (renderMode == 4.0) {\n if (vUv.x < 0.5) {\n gl_FragColor = vec4( sceneTexel.rgb, sceneTexel.a);\n } else if (abs(vUv.x - 0.5) < 1.0 / resolution.x) {\n gl_FragColor = vec4(1.0);\n } else {\n gl_FragColor = vec4(mix(vec3(1.0), aoApplied, 1.0 - finalAo), sceneTexel.a);\n }\n }\n\n #include <dithering_fragment>\n\n if (gammaCorrection) {\n gl_FragColor = LinearTosRGB(gl_FragColor);\n }\n }\n `,\n};\nexport { EffectCompositer };\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport { Matrix4, Uniform, Vector2, Vector3 } from \"three\";\n\nconst EffectShader = {\n uniforms: {\n sceneDiffuse: new Uniform(null),\n sceneDepth: new Uniform(null),\n sceneNormal: new Uniform(null),\n projMat: new Uniform(new Matrix4()),\n viewMat: new Uniform(new Matrix4()),\n projViewMat: new Uniform(new Matrix4()),\n projectionMatrixInv: new Uniform(new Matrix4()),\n viewMatrixInv: new Uniform(new Matrix4()),\n cameraPos: new Uniform(new Vector3()),\n resolution: new Uniform(new Vector2()),\n time: new Uniform(0.0),\n samples: new Uniform([]),\n samplesR: new Uniform([]),\n bluenoise: new Uniform(null),\n distanceFalloff: new Uniform(1.0),\n radius: new Uniform(5.0),\n near: new Uniform(0.1),\n far: new Uniform(1000.0),\n logDepth: new Uniform(false),\n ortho: new Uniform(false),\n screenSpaceRadius: new Uniform(false),\n },\n\n depthWrite: false,\n\n depthTest: false,\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(position, 1);\n }\n `,\n\n fragmentShader: /* glsl */ `\n #define SAMPLES 16\n #define FSAMPLES 16.0\n uniform sampler2D sceneDiffuse;\n uniform highp sampler2D sceneNormal;\n uniform highp sampler2D sceneDepth;\n uniform mat4 projectionMatrixInv;\n uniform mat4 viewMatrixInv;\n uniform mat4 projMat;\n uniform mat4 viewMat;\n uniform mat4 projViewMat;\n uniform vec3 cameraPos;\n uniform vec2 resolution;\n uniform float time;\n uniform vec3[SAMPLES] samples;\n uniform float[SAMPLES] samplesR;\n uniform float radius;\n uniform float distanceFalloff;\n uniform float near;\n uniform float far;\n uniform bool logDepth;\n uniform bool ortho;\n uniform bool screenSpaceRadius;\n uniform sampler2D bluenoise;\n varying vec2 vUv;\n\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar) {\n return (zFar * zNear) / (zFar - d * (zFar - zNear));\n }\n\n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return (\n ortho\n ? linearize_depth_ortho(linDepth, nearZ, farZ)\n : linearize_depth(linDepth, nearZ, farZ)\n );\n }\n\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n\n vec3 getWorldPos(float depth, vec2 coord) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n\n vec3 computeNormal(vec3 worldPos, vec2 vUv) {\n ivec2 p = ivec2(vUv * resolution);\n float c0 = texelFetch(sceneDepth, p, 0).x;\n float l2 = texelFetch(sceneDepth, p - ivec2(2, 0), 0).x;\n float l1 = texelFetch(sceneDepth, p - ivec2(1, 0), 0).x;\n float r1 = texelFetch(sceneDepth, p + ivec2(1, 0), 0).x;\n float r2 = texelFetch(sceneDepth, p + ivec2(2, 0), 0).x;\n float b2 = texelFetch(sceneDepth, p - ivec2(0, 2), 0).x;\n float b1 = texelFetch(sceneDepth, p - ivec2(0, 1), 0).x;\n float t1 = texelFetch(sceneDepth, p + ivec2(0, 1), 0).x;\n float t2 = texelFetch(sceneDepth, p + ivec2(0, 2), 0).x;\n float dl = abs((2.0 * l1 - l2) - c0);\n float dr = abs((2.0 * r1 - r2) - c0);\n float db = abs((2.0 * b1 - b2) - c0);\n float dt = abs((2.0 * t1 - t2) - c0);\n vec3 ce = getWorldPos(c0, vUv).xyz;\n vec3 dpdx = (\n (dl < dr)\n ? ce - getWorldPos(l1, (vUv - vec2(1.0 / resolution.x, 0.0))).xyz\n : -ce + getWorldPos(r1, (vUv + vec2(1.0 / resolution.x, 0.0))).xyz\n );\n vec3 dpdy = (\n (db < dt)\n ? ce - getWorldPos(b1, (vUv - vec2(0.0, 1.0 / resolution.y))).xyz\n : -ce + getWorldPos(t1, (vUv + vec2(0.0, 1.0 / resolution.y))).xyz\n );\n return normalize(cross(dpdx, dpdy));\n }\n\n void main(void) {\n vec4 diffuse = texture2D(sceneDiffuse, vUv);\n float depth = texture2D(sceneDepth, vUv).x;\n\n if (depth == 1.0) {\n gl_FragColor = vec4(vec3(1.0), 1.0);\n return;\n }\n\n vec3 worldPos = getWorldPos(depth, vUv);\n\n #ifdef HALFRES\n vec3 normal = texture2D(sceneNormal, vUv).rgb;\n #else\n vec3 normal = computeNormal(worldPos, vUv);\n #endif\n\n vec4 noise = texture2D(bluenoise, gl_FragCoord.xy / 128.0);\n vec3 randomVec = normalize(noise.rgb * 2.0 - 1.0);\n vec3 tangent = normalize(randomVec - normal * dot(randomVec, normal));\n vec3 bitangent = cross(normal, tangent);\n mat3 tbn = mat3(tangent, bitangent, normal);\n float occluded = 0.0;\n float totalWeight = 0.0;\n\n float radiusToUse = (\n screenSpaceRadius\n ? distance(worldPos, getWorldPos(depth, vUv + vec2(radius, 0.0) / resolution))\n : radius\n );\n float distanceFalloffToUse = (\n screenSpaceRadius\n ? radiusToUse * distanceFalloff\n : distanceFalloff\n );\n float bias = (0.1 / near) * fwidth(distance(worldPos, cameraPos)) / radiusToUse;\n for(float i = 0.0; i < FSAMPLES; i++) {\n vec3 sampleDirection = tbn * samples[int(i)];\n float moveAmt = samplesR[int(mod(i + noise.a * FSAMPLES, FSAMPLES))];\n vec3 samplePos = worldPos + radiusToUse * moveAmt * sampleDirection;\n vec4 offset = projMat * vec4(samplePos, 1.0);\n offset.xyz /= offset.w;\n offset.xyz = offset.xyz * 0.5 + 0.5;\n float sampleDepth = textureLod(sceneDepth, offset.xy, 0.0).x;\n #ifdef LOGDEPTH\n float distSample = linearize_depth_log(sampleDepth, near, far);\n #else\n float distSample = (\n ortho\n ? linearize_depth_ortho(sampleDepth, near, far)\n : linearize_depth(sampleDepth, near, far)\n );\n #endif\n float distWorld = (\n ortho\n ? linearize_depth_ortho(offset.z, near, far)\n : linearize_depth(offset.z, near, far)\n );\n float rangeCheck = smoothstep(0.0, 1.0, distanceFalloffToUse / (abs(distSample - distWorld)));\n vec2 diff = gl_FragCoord.xy - ( offset.xy * resolution);\n float weight = dot(sampleDirection, normal);\n occluded += rangeCheck * weight *\n (distSample + bias < distWorld ? 1.0 : 0.0) *\n (\n (\n dot(diff, diff) < 1.0 ||\n (sampleDepth == depth) ||\n (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) ? 0.0 : 1.0\n )\n );\n totalWeight += weight;\n }\n float occ = clamp(1.0 - occluded / totalWeight, 0.0, 1.0);\n gl_FragColor = vec4(0.5 + 0.5 * normal, occ);\n }`,\n};\n\nexport { EffectShader };\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport {\n BufferAttribute,\n BufferGeometry,\n Mesh,\n OrthographicCamera,\n ShaderMaterial,\n Sphere,\n WebGLRenderer,\n} from \"three\";\n\nexport class FullScreenTriangle {\n private camera: OrthographicCamera = new OrthographicCamera();\n private geometry: BufferGeometry = new BufferGeometry();\n private mesh: Mesh<BufferGeometry, ShaderMaterial>;\n\n constructor(material: ShaderMaterial) {\n this.geometry.setAttribute(\n \"position\",\n new BufferAttribute(new Float32Array([-1, -1, 3, -1, -1, 3]), 2),\n );\n this.geometry.setAttribute(\"uv\", new BufferAttribute(new Float32Array([0, 0, 2, 0, 0, 2]), 2));\n\n this.geometry.boundingSphere = new Sphere();\n this.geometry.computeBoundingSphere = function () {};\n\n this.mesh = new Mesh(this.geometry, material);\n this.mesh.frustumCulled = false;\n }\n\n get material(): ShaderMaterial {\n return this.mesh.material as ShaderMaterial;\n }\n\n set material(value: ShaderMaterial) {\n this.mesh.material = value;\n }\n\n public render(renderer: WebGLRenderer): void {\n renderer.render(this.mesh, this.camera);\n }\n\n public dispose(): void {\n this.mesh.material.dispose();\n this.mesh.geometry.dispose();\n }\n}\n", "// Original code from: https://github.com/N8python/n8ao\n// ported to TypeScript\n\nimport { Matrix4, Uniform, Vector2, Vector3 } from \"three\";\n\nexport const PoissionBlur = {\n uniforms: {\n sceneDiffuse: new Uniform(null),\n sceneDepth: new Uniform(null),\n tDiffuse: new Uniform(null),\n projMat: new Uniform(new Matrix4()),\n viewMat: new Uniform(new Matrix4()),\n projectionMatrixInv: new Uniform(new Matrix4()),\n viewMatrixInv: new Uniform(new Matrix4()),\n cameraPos: new Uniform(new Vector3()),\n resolution: new Uniform(new Vector2()),\n time: new Uniform(0.0),\n r: new Uniform(5.0),\n blueNoise: new Uniform(null),\n radius: new Uniform(12.0),\n worldRadius: new Uniform(5.0),\n index: new Uniform(0.0),\n poissonDisk: new Uniform([]),\n distanceFalloff: new Uniform(1.0),\n near: new Uniform(0.1),\n far: new Uniform(1000.0),\n logDepth: new Uniform(false),\n screenSpaceRadius: new Uniform(false),\n },\n\n depthWrite: false,\n\n depthTest: false,\n\n vertexShader: /* glsl */ `\n varying vec2 vUv;\n void main(void) {\n vUv = uv;\n gl_Position = vec4(position, 1.0);\n }`,\n\n fragmentShader: /* glsl */ `\n uniform sampler2D sceneDiffuse;\n uniform highp sampler2D sceneDepth;\n uniform sampler2D tDiffuse;\n uniform sampler2D blueNoise;\n uniform mat4 projectionMatrixInv;\n uniform mat4 viewMatrixInv;\n uniform vec2 resolution;\n uniform float r;\n uniform float radius;\n uniform float worldRadius;\n uniform float index;\n uniform float near;\n uniform float far;\n uniform float distanceFalloff;\n uniform bool logDepth;\n uniform bool screenSpaceRadius;\n varying vec2 vUv;\n\n highp float linearize_depth(highp float d, highp float zNear,highp float zFar) {\n highp float z_n = 2.0 * d - 1.0;\n return 2.0 * zNear * zFar / (zFar + zNear - z_n * (zFar - zNear));\n }\n\n highp float linearize_depth_log(highp float d, highp float nearZ,highp float farZ) {\n float depth = pow(2.0, d * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n return linearize_depth(linDepth, nearZ, farZ);\n }\n\n highp float linearize_depth_ortho(highp float d, highp float nearZ, highp float farZ) {\n return nearZ + (farZ - nearZ) * d;\n }\n\n vec3 getWorldPosLog(vec3 posS) {\n vec2 uv = posS.xy;\n float z = posS.z;\n float nearZ =near;\n float farZ = far;\n float depth = pow(2.0, z * log2(farZ + 1.0)) - 1.0;\n float a = farZ / (farZ - nearZ);\n float b = farZ * nearZ / (nearZ - farZ);\n float linDepth = a + b / depth;\n vec4 clipVec = vec4(uv, linDepth, 1.0) * 2.0 - 1.0;\n vec4 wpos = projectionMatrixInv * clipVec;\n return wpos.xyz / wpos.w;\n }\n\n vec3 getWorldPos(float depth, vec2 coord) {\n #ifdef LOGDEPTH\n return getWorldPosLog(vec3(coord, depth));\n #endif\n\n float z = depth * 2.0 - 1.0;\n vec4 clipSpacePosition = vec4(coord * 2.0 - 1.0, z, 1.0);\n vec4 viewSpacePosition = projectionMatrixInv * clipSpacePosition;\n\n vec4 worldSpacePosition = viewSpacePosition;\n worldSpacePosition.xyz /= worldSpacePosition.w;\n return worldSpacePosition.xyz;\n }\n\n #include <common>\n\n #define NUM_SAMPLES 16\n\n uniform vec2 poissonDisk[NUM_SAMPLES];\n\n void main(void) {\n const float pi = acos(-1.0);\n vec2 texelSize = vec2(1.0 / resolution.x, 1.0 / resolution.y);\n vec2 uv = vUv;\n vec4 data = texture2D(tDiffuse, vUv);\n float occlusion = data.a;\n float baseOcc = data.a;\n vec3 normal = data.rgb * 2.0 - 1.0;\n float count = 1.0;\n float d = texture2D(sceneDepth, vUv).x;\n if (d == 1.0) {\n gl_FragColor = data;\n return;\n }\n vec3 worldPos = getWorldPos(d, vUv);\n float size = radius;\n float angle;\n\n if (index == 0.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).x * PI2;\n } else if (index == 1.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).y * PI2;\n } else if (index == 2.0) {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).z * PI2;\n } else {\n angle = texture2D(blueNoise, gl_FragCoord.xy / 128.0).w * PI2;\n }\n\n mat2 rotationMatrix = mat2(cos(angle), -sin(angle), sin(angle), cos(angle));\n float radiusToUse = (\n screenSpaceRadius\n ? distance(worldPos, getWorldPos(d, vUv + vec2(worldRadius, 0.0) / resolution))\n : worldRadius\n );\n float distanceFalloffToUse = (\n screenSpaceRadius\n ? radiusToUse * distanceFalloff\n : distanceFalloff\n );\n\n for(int i = 0; i < NUM_SAMPLES; i++) {\n vec2 offset = (rotationMatrix * poissonDisk[i]) * texelSize * size;\n vec4 dataSample = texture2D(tDiffuse, uv + offset);\n float occSample = dataSample.a;\n vec3 normalSample = dataSample.rgb * 2.0 - 1.0;\n float dSample = texture2D(sceneDepth, uv + offset).x;\n vec3 worldPosSample = getWorldPos(dSample, uv + offset);\n float tangentPlaneDist = abs(dot(worldPos - worldPosSample, normal));\n float rangeCheck = (\n (dSample == 1.0)\n ? 0.0\n : exp(\n -1.0 * tangentPlaneDist * (1.0 / distanceFalloffToUse)\n ) * max(dot(normal, normalSample), 0.0) * (1.0 - abs(occSample - baseOcc))\n );\n occlusion += occSample * rangeCheck;\n count += rangeCheck;\n }\n\n if (count > 0.0) {\n occlusion /= count;\n }\n\n #ifdef LOGDEPTH\n occlusion = clamp(occlusion, 0.0, 1.0);\n if (occlusion == 0.0) {\n occlusion = 1.0;\n }\n #endif\n gl_FragColor = vec4(0.5 + 0.5 * normal, occlusion);\n }\n `,\n};\n", "import { CameraHelper, Color, DirectionalLight, Group, OrthographicCamera, Vector3 } from \"three\";\n\nimport { SunValues } from \"../tweakpane/blades/environmentFolder\";\n\nexport class Sun extends Group {\n private readonly debug: boolean = false;\n private readonly sunOffset: Vector3;\n private readonly shadowResolution: number = 8192;\n private readonly shadowCamFrustum: number = 50;\n private readonly camHelper: CameraHelper | null = null;\n\n private readonly shadowCamera: OrthographicCamera;\n private readonly directionalLight: DirectionalLight;\n\n public target: Vector3 | null = null;\n\n constructor(private sunValues: SunValues) {\n super();\n\n this.sunOffset = new Vector3(\n this.sunValues.sunPosition.sunAzimuthalAngle * (Math.PI / 180),\n this.sunValues.sunPosition.sunPolarAngle * (Math.PI / 180),\n 100,\n );\n\n this.shadowCamera = new OrthographicCamera(\n -this.shadowCamFrustum,\n this.shadowCamFrustum,\n this.shadowCamFrustum,\n -this.shadowCamFrustum,\n 0.1,\n 200,\n );\n if (this.debug === true) {\n this.camHelper = new CameraHelper(this.shadowCamera);\n }\n this.directionalLight = new DirectionalLight(0xffffff);\n this.setIntensity(this.sunValues.sunIntensity);\n this.directionalLight.shadow.normalBias = 0.1;\n this.directionalLight.shadow.radius = 0.02;\n this.directionalLight.shadow.camera = this.shadowCamera;\n this.directionalLight.shadow.mapSize.set(this.shadowResolution, this.shadowResolution);\n this.directionalLight.castShadow = true;\n this.setColor();\n\n this.updateCharacterPosition(new Vector3(0, 0, 0));\n\n this.add(this.directionalLight);\n if (this.debug === true && this.camHelper instanceof CameraHelper) {\n this.add(this.camHelper);\n }\n }\n\n public updateCharacterPosition(position: Vector3 | undefined) {\n if (!position) return;\n this.target = position;\n this.setSunPosition(this.sunOffset.x, this.sunOffset.y);\n }\n\n public setAzimuthalAngle(angle: number) {\n this.sunOffset.x = angle;\n if (this.target) {\n this.setSunPosition(this.sunOffset.x, this.sunOffset.y);\n }\n }\n\n public setPolarAngle(angle: number) {\n this.sunOffset.y = angle;\n if (this.target) {\n this.setSunPosition(this.sunOffset.x, this.sunOffset.y);\n }\n }\n\n public setIntensity(intensity: number) {\n this.directionalLight.intensity = intensity;\n }\n\n public setColor() {\n this.directionalLight.color = new Color().setRGB(\n this.sunValues.sunColor.r,\n this.sunValues.sunColor.g,\n this.sunValues.sunColor.b,\n );\n }\n\n private setSunPosition(azimuthalAngle: number, polarAngle: number) {\n if (!this.target) return;\n const distance = this.sunOffset.z;\n // add 90\u00B0 offset to align coordinate system with player facing +Z\n const adjustedAzimuthalAngle = -azimuthalAngle + Math.PI / 2;\n const sphericalPosition = new Vector3(\n distance * Math.sin(polarAngle) * Math.cos(adjustedAzimuthalAngle),\n distance * Math.cos(polarAngle),\n distance * Math.sin(polarAngle) * Math.sin(adjustedAzimuthalAngle),\n );\n const newSunPosition = this.target.clone().add(sphericalPosition);\n this.directionalLight.position.set(newSunPosition.x, newSunPosition.y, newSunPosition.z);\n this.directionalLight.target.position.copy(this.target.clone());\n this.directionalLight.target.updateMatrixWorld();\n }\n}\n", "import { BladeController, View } from \"@tweakpane/core\";\nimport { Scene } from \"three\";\nimport { BladeApi, ButtonApi, FolderApi, TpChangeEvent } from \"tweakpane\";\n\nexport type SunValues = {\n sunIntensity: number;\n sunPosition: {\n sunAzimuthalAngle: number;\n sunPolarAngle: number;\n };\n skyTurbidity: number;\n skyRayleigh: number;\n skyMieCoefficient: number;\n skyMieDirectionalG: number;\n sunColor: { r: number; g: number; b: number };\n};\n\nexport type EnvValues = {\n skyboxAzimuthalAngle: number;\n skyboxPolarAngle: number;\n envMapIntensity: number;\n skyboxIntensity: number;\n skyboxBlurriness: number;\n ambientLight: {\n ambientLightIntensity: number;\n ambientLightColor: { r: number; g: number; b: number };\n };\n fog: {\n fogNear: number;\n fogFar: number;\n fogColor: { r: number; g: number; b: number };\n };\n};\n\nexport function createDefaultSunValues(): SunValues {\n return {\n sunIntensity: 2.1,\n sunPosition: {\n sunAzimuthalAngle: 180,\n sunPolarAngle: -45,\n },\n skyTurbidity: 1.2,\n skyRayleigh: 0.7,\n skyMieCoefficient: 0.02,\n skyMieDirectionalG: 0.99,\n sunColor: { r: 1.0, g: 1.0, b: 1.0 },\n };\n}\n\nexport function createDefaultEnvValues(): EnvValues {\n return {\n skyboxAzimuthalAngle: 0,\n skyboxPolarAngle: 0,\n envMapIntensity: 0.6,\n skyboxIntensity: 0.9,\n skyboxBlurriness: 0.0,\n ambientLight: {\n ambientLightIntensity: 0.17,\n ambientLightColor: { r: 1, g: 1, b: 1 },\n },\n fog: {\n fogNear: 30,\n fogFar: 210,\n fogColor: { r: 0.6, g: 0.6, b: 0.6 },\n },\n };\n}\n\nconst sunOptions = {\n sunPosition: {\n sunAzimuthalAngle: { min: 0, max: 360, step: 1 },\n sunPolarAngle: { min: -95, max: 95, step: 1 },\n },\n sunIntensity: { min: 0, max: 10, step: 0.1 },\n skyTurbidity: { min: 1, max: 30, step: 0.1 },\n skyRayleigh: { min: 0, max: 4, step: 0.01 },\n skyMieCoefficient: { min: 0.001, max: 0.02, step: 0.001 },\n skyMieDirectionalG: { min: 0, max: 0.999, step: 0.001 },\n};\n\nconst envOptions = {\n skyboxAzimuthalAngle: { min: 0, max: 360, step: 1 },\n skyboxPolarAngle: { min: 0, max: 360, step: 1 },\n skyboxIntensity: { min: 0, max: 1.3, step: 0.01 },\n skyboxBlurriness: { min: 0, max: 0.1, step: 0.001 },\n ambientLight: {\n ambientLightIntensity: { min: 0, max: 1, step: 0.01 },\n },\n fog: {\n fogNear: { min: 0, max: 80, step: 1 },\n fogFar: { min: 0, max: 300, step: 1 },\n },\n};\n\nexport class EnvironmentFolder {\n public folder: FolderApi;\n private sun: FolderApi;\n private envMap: FolderApi;\n private hdrButton: ButtonApi;\n private skybox: FolderApi;\n private ambient: FolderApi;\n private fog: FolderApi;\n\n constructor(\n parentFolder: FolderApi,\n private sunValues: SunValues,\n private envValues: EnvValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({ title: \"environment\", expanded: expand });\n this.ambient = this.folder.addFolder({ title: \"ambient\", expanded: true });\n this.sun = this.folder.addFolder({ title: \"sun\", expanded: true });\n this.envMap = this.folder.addFolder({ title: \"envMap\", expanded: true });\n this.fog = this.folder.addFolder({ title: \"fog\", expanded: true });\n this.skybox = this.folder.addFolder({ title: \"skybox\", expanded: true });\n\n this.sun.addBinding(this.sunValues, \"sunIntensity\", sunOptions.sunIntensity);\n this.sun.addBinding(\n this.sunValues.sunPosition,\n \"sunAzimuthalAngle\",\n sunOptions.sunPosition.sunAzimuthalAngle,\n );\n this.sun.addBinding(\n this.sunValues.sunPosition,\n \"sunPolarAngle\",\n sunOptions.sunPosition.sunPolarAngle,\n );\n this.sun.addBinding(this.sunValues, \"skyTurbidity\", sunOptions.skyTurbidity);\n this.sun.addBinding(this.sunValues, \"skyRayleigh\", sunOptions.skyRayleigh);\n this.sun.addBinding(this.sunValues, \"skyMieCoefficient\", sunOptions.skyMieCoefficient);\n this.sun.addBinding(this.sunValues, \"skyMieDirectionalG\", sunOptions.skyMieDirectionalG);\n this.sun.addBinding(this.sunValues, \"sunColor\", {\n color: { type: \"float\" },\n });\n\n this.hdrButton = this.skybox.addButton({ title: \"Set HDRI\" });\n this.skybox.addBinding(this.envValues, \"skyboxIntensity\", envOptions.skyboxIntensity);\n this.skybox.addBinding(this.envValues, \"skyboxBlurriness\", envOptions.skyboxBlurriness);\n this.skybox.addBinding(this.envValues, \"skyboxAzimuthalAngle\", envOptions.skyboxAzimuthalAngle);\n this.skybox.addBinding(this.envValues, \"skyboxPolarAngle\", envOptions.skyboxPolarAngle);\n\n this.envMap.addBinding(this.envValues, \"envMapIntensity\", envOptions.skyboxIntensity);\n\n this.ambient.addBinding(\n this.envValues.ambientLight,\n \"ambientLightIntensity\",\n envOptions.ambientLight.ambientLightIntensity,\n );\n this.ambient.addBinding(this.envValues.ambientLight, \"ambientLightColor\", {\n color: { type: \"float\" },\n });\n\n this.fog.addBinding(this.envValues.fog, \"fogNear\", envOptions.fog.fogNear);\n this.fog.addBinding(this.envValues.fog, \"fogFar\", envOptions.fog.fogFar);\n this.fog.addBinding(this.envValues.fog, \"fogColor\", {\n color: { type: \"float\" },\n });\n }\n\n public setupChangeEvent(scene: Scene, onUpdate: () => void, setHDR: () => void): void {\n this.sun.on(\"change\", () => {\n onUpdate();\n });\n\n this.hdrButton.on(\"click\", () => {\n setHDR();\n });\n\n this.envMap.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (target === \"envMapIntensity\") {\n scene.environmentIntensity = e.value as number;\n }\n });\n\n this.skybox.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n switch (target) {\n case \"skyboxAzimuthalAngle\":\n case \"skyboxPolarAngle\":\n onUpdate();\n break;\n case \"skyboxIntensity\":\n scene.backgroundIntensity = e.value as number;\n break;\n case \"skyboxBlurriness\":\n scene.backgroundBlurriness = e.value as number;\n break;\n }\n });\n\n this.ambient.on(\"change\", () => {\n onUpdate();\n });\n\n this.fog.on(\"change\", () => {\n onUpdate();\n });\n }\n}\n", "import { BladeController, View } from \"@tweakpane/core\";\nimport { EffectPass } from \"postprocessing\";\nimport { NoToneMapping, ShadowMapType, ToneMapping, WebGLRenderer } from \"three\";\nimport { BladeApi, FolderApi, TpChangeEvent } from \"tweakpane\";\n\nexport type RendererValues = {\n shadowMap: number;\n toneMapping: number;\n exposure: number;\n};\n\nexport function createDefaultRendererValues(): RendererValues {\n return {\n shadowMap: 2,\n toneMapping: 4,\n exposure: 0.75,\n };\n}\n\nconst rendererOptions = {\n shadowMap: { min: 0, max: 2, step: 1 },\n toneMapping: { min: 0, max: 5, step: 1 },\n exposure: { min: 0, max: 3, step: 0.01 },\n};\n\nconst shadowMapTypes: Record<number, string> = {\n 0: \"BasicShadowMap\",\n 1: \"PCFShadowMap\",\n 2: \"PCFSoftShadowMap\",\n};\n\nconst toneMappingTypes: Record<number, string> = {\n 0: \"NoToneMapping\",\n 1: \"LinearToneMapping\",\n 2: \"ReinhardToneMapping\",\n 3: \"CineonToneMapping\",\n 4: \"ACESFilmicToneMapping\",\n 5: \"CustomToneMapping\",\n};\n\nexport class RendererFolder {\n private folder: FolderApi;\n private monitoredValues: {\n shadowMapType: string;\n toneMappingType: string;\n };\n\n constructor(\n parentFolder: FolderApi,\n private rendererValues: RendererValues,\n expand: boolean = false,\n ) {\n this.folder = parentFolder.addFolder({\n title: \"rendererOptions\",\n expanded: expand,\n });\n\n this.monitoredValues = {\n shadowMapType: shadowMapTypes[this.rendererValues.shadowMap],\n toneMappingType: toneMappingTypes[this.rendererValues.toneMapping],\n };\n\n this.folder.addBinding(this.rendererValues, \"shadowMap\", rendererOptions.shadowMap);\n this.folder.addBinding(this.monitoredValues, \"shadowMapType\", { readonly: true });\n this.folder.addBinding(this.rendererValues, \"toneMapping\", rendererOptions.toneMapping);\n this.folder.addBinding(this.monitoredValues, \"toneMappingType\", { readonly: true });\n this.folder.addBinding(this.rendererValues, \"exposure\", rendererOptions.exposure);\n }\n\n public setupChangeEvent(\n renderer: WebGLRenderer,\n toneMappingFolder: FolderApi,\n toneMappingPass: EffectPass | any,\n ): void {\n this.folder.on(\"change\", (e: TpChangeEvent<unknown, BladeApi<BladeController<View>>>) => {\n const target = (e.target as any).key;\n if (!target) return;\n switch (target) {\n case \"shadowMap\": {\n const value = e.value as ShadowMapType;\n renderer.shadowMap.type = value;\n this.monitoredValues.shadowMapType = shadowMapTypes[value];\n break;\n }\n case \"toneMapping\":\n const value = e.value as ToneMapping;\n toneMappingFolder.hidden = e.value !== 5;\n toneMappingPass.enabled = e.value === 5 ? true : false;\n renderer.toneMapping = e.value === 5 ? NoToneMapping : (e.value as ToneMapping);\n this.monitoredValues.toneMappingType = toneMappingTypes[e.value as number];\n this.rendererValues.toneMapping = value;\n break;\n case \"exposure\":\n renderer.toneMappingExposure = e.value as number;\n break;\n default:\n break;\n }\n });\n }\n}\n", "import {\n CanvasTexture,\n FrontSide,\n Group,\n LinearMipMapLinearFilter,\n Mesh,\n MeshStandardMaterial,\n NearestFilter,\n PlaneGeometry,\n RepeatWrapping,\n Texture,\n} from \"three\";\n\n// Create a simple 2x2 checkerboard image\nconst canvas = document.createElement(\"canvas\");\ncanvas.width = 2;\ncanvas.height = 2;\nconst ctx = canvas.getContext(\"2d\")!;\nctx.fillStyle = \"#e0e0e0\";\nctx.fillRect(0, 0, 2, 2);\nctx.fillStyle = \"#606060\";\nctx.fillRect(0, 0, 1, 1);\nctx.fillRect(1, 1, 1, 1);\n\nexport class GroundPlane extends Group {\n private readonly floorSize = 210;\n private readonly floorTexture: Texture | null = null;\n private readonly floorGeometry = new PlaneGeometry(this.floorSize, this.floorSize, 1, 1);\n private readonly floorMaterial: MeshStandardMaterial;\n private readonly floorMesh: Mesh | null = null;\n\n constructor() {\n super();\n\n this.floorMaterial = new MeshStandardMaterial({\n color: 0xffffff,\n side: FrontSide,\n metalness: 0.05,\n roughness: 0.95,\n });\n this.floorMesh = new Mesh(this.floorGeometry, this.floorMaterial);\n this.floorMesh.castShadow = true;\n this.floorMesh.receiveShadow = true;\n this.floorMesh.rotation.x = Math.PI * -0.5;\n this.add(this.floorMesh);\n\n this.floorTexture = new CanvasTexture(canvas);\n this.floorTexture!.wrapS = RepeatWrapping;\n this.floorTexture!.wrapT = RepeatWrapping;\n this.floorTexture!.magFilter = NearestFilter;\n this.floorTexture!.minFilter = LinearMipMapLinearFilter;\n this.floorTexture!.repeat.set(this.floorSize / 1.5, this.floorSize / 1.5);\n this.floorMaterial.map = this.floorTexture;\n this.floorMaterial.needsUpdate = true;\n }\n}\n", "import { CollisionsManager, Matr4 } from \"@mml-io/3d-web-client-core\";\nimport {\n ChatProbe,\n IMMLScene,\n Interaction,\n InteractionListener,\n InteractionManager,\n LinkProps,\n LoadingProgressManager,\n MElement,\n MMLDocumentTimeManager,\n PositionAndRotation,\n PromptManager,\n PromptProps,\n} from \"@mml-io/mml-web\";\nimport {\n ThreeJSClickTrigger,\n ThreeJSGraphicsAdapter,\n ThreeJSGraphicsInterface,\n ThreeJSInteractionAdapter,\n ThreeJSResourceManager,\n} from \"@mml-io/mml-web-threejs\";\nimport { PerspectiveCamera, Scene, AudioListener, Group, Object3D } from \"three\";\n\nimport { ThreeJSCollisionManager } from \"../collisions/ThreeJSCollisionManager\";\n\ntype ThreeJSMMLCompositionSceneConfig = {\n targetElement: HTMLElement;\n scene: Scene;\n camera: PerspectiveCamera;\n audioListener: AudioListener;\n collisionsManager: CollisionsManager;\n threeJSCollisionManager: ThreeJSCollisionManager;\n loadingProgressManager: LoadingProgressManager | null;\n getUserPositionAndRotation: () => PositionAndRotation;\n};\n\nexport class ThreeJSMMLCompositionScene {\n public group: Group;\n\n public readonly mmlScene: IMMLScene<ThreeJSGraphicsAdapter>;\n public readonly documentTimeManager: MMLDocumentTimeManager;\n private readonly promptManager: PromptManager;\n private readonly interactionManager: InteractionManager;\n private readonly interactionListener: InteractionListener<ThreeJSGraphicsAdapter>;\n private readonly chatProbes = new Set<ChatProbe<ThreeJSGraphicsAdapter>>();\n private readonly clickTrigger: ThreeJSClickTrigger;\n private readonly resourceManager: ThreeJSResourceManager;\n\n constructor(private config: ThreeJSMMLCompositionSceneConfig) {\n this.group = new Group();\n this.promptManager = PromptManager.init(this.config.targetElement);\n this.resourceManager = new ThreeJSResourceManager();\n\n const graphicsAdapter: ThreeJSGraphicsAdapter = {\n collisionType: null as unknown as Object3D,\n containerType: null as unknown as Object3D,\n getGraphicsAdapterFactory: () => {\n return ThreeJSGraphicsInterface;\n },\n getRootContainer: () => {\n return this.group;\n },\n interactionShouldShowDistance(\n interaction: Interaction<ThreeJSGraphicsAdapter>,\n ): number | null {\n return ThreeJSInteractionAdapter.interactionShouldShowDistance(\n interaction,\n this.config.camera,\n this.config.scene,\n );\n },\n dispose(): void {},\n getAudioListener: () => {\n return this.config.audioListener;\n },\n getCamera: () => {\n return this.config.camera;\n },\n getThreeScene: () => {\n return this.config.scene;\n },\n getUserPositionAndRotation: () => {\n return this.config.getUserPositionAndRotation();\n },\n getResourceManager: () => {\n return this.resourceManager;\n },\n };\n\n const { interactionListener, interactionManager } = InteractionManager.init(\n this.config.targetElement,\n (interaction: Interaction<ThreeJSGraphicsAdapter>) => {\n return graphicsAdapter.interactionShouldShowDistance(interaction);\n },\n );\n this.interactionManager = interactionManager;\n this.interactionListener = interactionListener;\n this.documentTimeManager = new MMLDocumentTimeManager();\n\n const tempMatrix = new Matr4();\n\n this.mmlScene = {\n getGraphicsAdapter(): ThreeJSGraphicsAdapter {\n return graphicsAdapter;\n },\n hasGraphicsAdapter(): boolean {\n return true;\n },\n addCollider: (object: Object3D, mElement: MElement<ThreeJSGraphicsAdapter>) => {\n const group = object as Group;\n const creationResult = this.config.threeJSCollisionManager.createCollisionMesh(group);\n this.config.collisionsManager.addMeshesGroup(group, creationResult, mElement);\n this.config.threeJSCollisionManager.updateDebugVisualization(\n this.config.collisionsManager.isDebugEnabled(),\n group,\n creationResult.meshBVH,\n );\n },\n updateCollider: (object: Object3D) => {\n object.updateWorldMatrix(true, false);\n tempMatrix.fromArray(object.matrixWorld.elements);\n const group = object as Group;\n this.config.collisionsManager.updateMeshesGroup(group, tempMatrix, object.scale);\n if (this.config.collisionsManager.isDebugEnabled()) {\n this.config.threeJSCollisionManager.updateDebugPosition(group);\n }\n },\n removeCollider: (object: Object3D) => {\n const group = object as Group;\n this.config.collisionsManager.removeMeshesGroup(group);\n this.config.threeJSCollisionManager.removeDebugVisualization(group);\n },\n getUserPositionAndRotation: this.config.getUserPositionAndRotation,\n addInteraction: (interaction: Interaction<ThreeJSGraphicsAdapter>) => {\n this.interactionListener.addInteraction(interaction);\n },\n updateInteraction: (interaction: Interaction<ThreeJSGraphicsAdapter>) => {\n this.interactionListener.updateInteraction(interaction);\n },\n removeInteraction: (interaction: Interaction<ThreeJSGraphicsAdapter>) => {\n this.interactionListener.removeInteraction(interaction);\n },\n addChatProbe: (chatProbe: ChatProbe<ThreeJSGraphicsAdapter>) => {\n this.chatProbes.add(chatProbe);\n },\n updateChatProbe: () => {\n // no-op\n },\n removeChatProbe: (chatProbe: ChatProbe<ThreeJSGraphicsAdapter>) => {\n this.chatProbes.delete(chatProbe);\n },\n prompt: (\n promptProps: PromptProps,\n abortSignal: AbortSignal,\n callback: (message: string | null) => void,\n ) => {\n this.promptManager.prompt(promptProps, abortSignal, callback);\n },\n link: (\n linkProps: LinkProps,\n abortSignal: AbortSignal,\n windowCallback: (openedWindow: Window | null) => void,\n ) => {\n this.promptManager.link(linkProps, abortSignal, windowCallback);\n },\n getLoadingProgressManager: () => {\n return this.config.loadingProgressManager ?? null;\n },\n };\n\n this.clickTrigger = ThreeJSClickTrigger.init(\n this.config.targetElement,\n this.group,\n this.config.camera,\n );\n }\n\n onChatMessage(message: string) {\n for (const chatProbe of this.chatProbes) {\n chatProbe.trigger(message);\n }\n }\n\n dispose() {\n this.promptManager.dispose();\n this.clickTrigger.dispose();\n this.interactionManager.dispose();\n }\n}\n", "import { MMLDocumentConfiguration } from \"@mml-io/3d-web-client-core\";\nimport {\n LoadingProgressManager,\n MMLNetworkSource,\n NetworkedDOMWebsocketStatus,\n} from \"@mml-io/mml-web\";\n\nimport { ThreeJSMMLCompositionScene } from \"./ThreeJSMMLCompositionScene\";\n\ntype MMLDocumentState = {\n docRef: unknown;\n loadingProgressManager: LoadingProgressManager | null;\n config: MMLDocumentConfiguration;\n source: MMLNetworkSource;\n dispose: () => void;\n};\n\nexport class ThreeJSMMLManager {\n private mmlDocumentStates: { [key: string]: MMLDocumentState } = {};\n private authToken: string | null = null;\n\n constructor(\n private mmlCompositionScene: ThreeJSMMLCompositionScene,\n private mmlTargetWindow: Window,\n private mmlTargetElement: HTMLElement,\n private loadingProgressManager: LoadingProgressManager | null,\n ) {}\n\n setMMLConfiguration(\n mmlDocuments: { [key: string]: MMLDocumentConfiguration },\n authToken: string | null,\n ): void {\n this.authToken = authToken;\n const newMMLDocuments: { [key: string]: MMLDocumentState } = {};\n for (const [key, mmlDocConfig] of Object.entries(mmlDocuments)) {\n let existing: MMLDocumentState | undefined = this.mmlDocumentStates[key];\n if (\n existing &&\n (existing.config.url !== mmlDocConfig.url ||\n existing.config.passAuthToken !== mmlDocConfig.passAuthToken)\n ) {\n // URL or auth token changed - dispose of existing and create new\n existing.dispose();\n existing = undefined;\n }\n if (!existing) {\n newMMLDocuments[key] = this.createMMLDocument(mmlDocConfig);\n } else {\n delete this.mmlDocumentStates[key];\n this.updateMMLDocumentAttributes(existing.source, mmlDocConfig);\n newMMLDocuments[key] = existing;\n }\n }\n for (const element of Object.values(this.mmlDocumentStates)) {\n element.dispose();\n }\n this.mmlDocumentStates = newMMLDocuments;\n }\n\n onChatMessage(message: string): void {\n if (this.mmlCompositionScene) {\n this.mmlCompositionScene.onChatMessage(message);\n }\n }\n\n dispose(): void {\n // Dispose MML documents\n for (const mmlDocumentState of Object.values(this.mmlDocumentStates)) {\n mmlDocumentState.dispose();\n }\n this.mmlDocumentStates = {};\n }\n\n private createMMLDocument(mmlDocConfig: MMLDocumentConfiguration): MMLDocumentState {\n const mmlScene = this.mmlCompositionScene.mmlScene;\n const docRef = {};\n const mmlNetworkSource = MMLNetworkSource.create({\n url: MMLNetworkSource.resolveRelativeUrl(window.location.host, mmlDocConfig.url),\n connectionToken: mmlDocConfig.passAuthToken ? this.authToken : null,\n mmlScene,\n statusUpdated: (status: NetworkedDOMWebsocketStatus) => {\n // no-op\n },\n windowTarget: this.mmlTargetWindow,\n targetForWrappers: this.mmlTargetElement,\n });\n\n this.updateMMLDocumentAttributes(mmlNetworkSource, mmlDocConfig);\n return {\n docRef,\n loadingProgressManager: this.loadingProgressManager,\n config: mmlDocConfig,\n source: mmlNetworkSource,\n dispose: () => {\n mmlNetworkSource.dispose();\n },\n };\n }\n\n private updateMMLDocumentAttributes(\n mmlNetworkSource: MMLNetworkSource,\n mmlDocument: MMLDocumentConfiguration,\n ) {\n const remoteDocument = mmlNetworkSource.remoteDocumentWrapper.remoteDocument;\n if (mmlDocument.position) {\n remoteDocument.setAttribute(\"x\", mmlDocument.position.x.toString());\n remoteDocument.setAttribute(\"y\", mmlDocument.position.y.toString());\n remoteDocument.setAttribute(\"z\", mmlDocument.position.z.toString());\n } else {\n remoteDocument.setAttribute(\"x\", \"0\");\n remoteDocument.setAttribute(\"y\", \"0\");\n remoteDocument.setAttribute(\"z\", \"0\");\n }\n if (mmlDocument.rotation) {\n remoteDocument.setAttribute(\"rx\", mmlDocument.rotation.x.toString());\n remoteDocument.setAttribute(\"ry\", mmlDocument.rotation.y.toString());\n remoteDocument.setAttribute(\"rz\", mmlDocument.rotation.z.toString());\n } else {\n remoteDocument.setAttribute(\"rx\", \"0\");\n remoteDocument.setAttribute(\"ry\", \"0\");\n remoteDocument.setAttribute(\"rz\", \"0\");\n }\n if (mmlDocument.scale?.x !== undefined) {\n remoteDocument.setAttribute(\"sx\", mmlDocument.scale.x.toString());\n } else {\n remoteDocument.setAttribute(\"sx\", \"1\");\n }\n if (mmlDocument.scale?.y !== undefined) {\n remoteDocument.setAttribute(\"sy\", mmlDocument.scale.y.toString());\n } else {\n remoteDocument.setAttribute(\"sy\", \"1\");\n }\n if (mmlDocument.scale?.z !== undefined) {\n remoteDocument.setAttribute(\"sz\", mmlDocument.scale.z.toString());\n } else {\n remoteDocument.setAttribute(\"sz\", \"1\");\n }\n return mmlNetworkSource;\n }\n}\n", "import { CollisionsManager } from \"@mml-io/3d-web-client-core\";\nimport { ThreeJSMemoryInspector } from \"@mml-io/mml-web-threejs\";\nimport { Scene, WebGLRenderer } from \"three\";\nimport { FolderApi, Pane } from \"tweakpane\";\n\nimport { Composer } from \"../composer\";\nimport { PostProcessingManager } from \"../post-effects/PostProcessingManager\";\n\nimport { CollisionsStatsFolder } from \"./blades/collisionsStatsFolder\";\nimport { BrightnessContrastSaturationFolder } from \"./blades/effects/bcsFolder\";\nimport { BloomAndGrainFolder } from \"./blades/effects/bloomAndGrain\";\nimport { SSAOFolder } from \"./blades/effects/ssaoFolder\";\nimport { ToneMappingFolder } from \"./blades/effects/toneMappingFolder\";\nimport { EnvironmentFolder } from \"./blades/environmentFolder\";\nimport { PostProcessingFolder } from \"./blades/postProcessingFolder\";\nimport { RendererFolder } from \"./blades/rendererFolder\";\nimport { RendererStatsFolder } from \"./blades/rendererStatsFolder\";\n\nexport class ThreeJSTweakPaneFolders {\n private renderStatsFolder!: RendererStatsFolder;\n private rendererFolder!: RendererFolder;\n private postProcessingFolder!: PostProcessingFolder;\n private postProcessingSettingsFolder!: FolderApi;\n private toneMappingFolder!: ToneMappingFolder;\n private ssaoFolder!: SSAOFolder;\n private bcsFolder!: BrightnessContrastSaturationFolder;\n private bloomAndGrainFolder!: BloomAndGrainFolder;\n private environment!: EnvironmentFolder;\n private collisionsStatsFolder!: CollisionsStatsFolder;\n private memoryInspector!: FolderApi;\n\n private frameStartTime: number = 0;\n private lastFrameRenderTime: number = 0;\n\n constructor(\n private renderer: WebGLRenderer,\n private scene: Scene,\n private composer: Composer,\n private collisionsManager: CollisionsManager,\n private postProcessingEnabled: boolean | undefined,\n ) {}\n\n public registerFolders(pane: Pane): void {\n const postProcessingManager = (this.composer as any).postProcessingManager;\n\n this.renderStatsFolder = new RendererStatsFolder(pane, true);\n this.collisionsStatsFolder = new CollisionsStatsFolder(pane, this.collisionsManager, false);\n this.rendererFolder = new RendererFolder(pane, this.composer.rendererValues, false);\n this.environment = new EnvironmentFolder(\n pane,\n this.composer.sunValues,\n this.composer.envValues,\n false,\n );\n\n this.postProcessingFolder = new PostProcessingFolder(\n pane,\n postProcessingManager.postProcessingGlobalValues,\n this.postProcessingEnabled,\n false,\n );\n this.postProcessingSettingsFolder = pane.addFolder({\n title: \"postProcessingSettings\",\n expanded: false,\n });\n this.toneMappingFolder = new ToneMappingFolder(\n this.postProcessingSettingsFolder,\n postProcessingManager.toneMappingValues,\n false,\n );\n this.ssaoFolder = new SSAOFolder(\n this.postProcessingSettingsFolder,\n postProcessingManager.n8ssaoValues,\n false,\n );\n this.bcsFolder = new BrightnessContrastSaturationFolder(\n this.postProcessingSettingsFolder,\n postProcessingManager.bcsValues,\n false,\n );\n this.bloomAndGrainFolder = new BloomAndGrainFolder(\n this.postProcessingSettingsFolder,\n postProcessingManager.bloomAndGrainValues,\n false,\n );\n\n this.toneMappingFolder.folder.hidden =\n this.composer.rendererValues.toneMapping === 5 ? false : true;\n\n this.memoryInspector = pane.addFolder({ title: \"memory inspector\", expanded: false });\n const memoryInspectorButton = this.memoryInspector.addButton({ title: \"open memory report\" });\n memoryInspectorButton.on(\"click\", () => {\n ThreeJSMemoryInspector.openMemoryReport(this.scene);\n });\n }\n\n public setupChangeHandlers(): void {\n const postProcessingManager = (this.composer as any)\n .postProcessingManager as PostProcessingManager;\n const hasLighting = (this.composer as any).spawnSun;\n\n this.collisionsStatsFolder.setupChangeEvent();\n\n this.rendererFolder.setupChangeEvent(\n this.renderer,\n this.toneMappingFolder.folder,\n postProcessingManager.toneMappingPassInstance,\n );\n\n this.toneMappingFolder.setupChangeEvent(postProcessingManager.toneMappingEffectInstance);\n this.ssaoFolder.setupChangeEvent(\n postProcessingManager.effectComposer,\n postProcessingManager.n8ssaoPass,\n );\n this.bcsFolder.setupChangeEvent(postProcessingManager.bcsInstance);\n this.bloomAndGrainFolder.setupChangeEvent(\n postProcessingManager.bloomEffectInstance,\n postProcessingManager.gaussGrainEffectInstance,\n );\n\n this.environment.setupChangeEvent(\n this.scene,\n () => {\n this.composer.updateSkyboxRotation();\n this.composer.setAmbientLight();\n this.composer.setFog();\n this.composer.updateSkyShaderValues();\n this.composer.updateSun();\n },\n () => this.composer.setHDRIFromFile(),\n );\n this.environment.folder.hidden = hasLighting === false;\n\n this.postProcessingFolder.setupChangeEvent(postProcessingManager);\n }\n\n public startFrameTiming(): void {\n this.frameStartTime = performance.now();\n }\n\n public endFrameTiming(): void {\n if (this.frameStartTime > 0) {\n this.lastFrameRenderTime = performance.now() - this.frameStartTime;\n }\n }\n\n public update(deltaTimeSeconds: number, frameRenderTimeMs: number): void {\n const postProcessingManager = (this.composer as any)\n .postProcessingManager as PostProcessingManager;\n\n if (postProcessingManager?.effectComposer) {\n this.renderStatsFolder.update(\n this.renderer,\n postProcessingManager.effectComposer,\n deltaTimeSeconds,\n frameRenderTimeMs,\n );\n }\n\n if (this.postProcessingFolder.isBenchmarkRunning()) {\n this.postProcessingFolder.recordFrameTime();\n }\n }\n}\n", "import { CollisionsManager } from \"@mml-io/3d-web-client-core\";\nimport { FolderApi } from \"tweakpane\";\n\nexport class CollisionsStatsFolder {\n private folder: FolderApi;\n private debugCheckbox: { enabled: boolean };\n\n constructor(\n parentFolder: FolderApi,\n private collisionsManager: CollisionsManager,\n expanded: boolean = true,\n ) {\n this.folder = parentFolder.addFolder({ title: \"collisions\", expanded: expanded });\n this.debugCheckbox = { enabled: collisionsManager.isDebugEnabled() };\n }\n\n public setupChangeEvent(): void {\n this.folder\n .addBinding(this.debugCheckbox, \"enabled\", {\n label: \"Debug Geometry\",\n })\n .on(\"change\", (ev) => {\n this.collisionsManager.toggleDebug(ev.value);\n });\n }\n}\n", "import { EffectComposer } from \"postprocessing\";\nimport { WebGLRenderer } from \"three\";\nimport { FolderApi } from \"tweakpane\";\n\ntype StatsData = {\n triangles: string;\n geometries: string;\n textures: string;\n shaders: string;\n postPasses: string;\n drawCalls: string;\n frameTime: string;\n deltaTime: string;\n FPS: string;\n};\n\nexport class RendererStatsFolder {\n private folder: FolderApi;\n\n private statsData: StatsData = {\n triangles: \"0\",\n geometries: \"0\",\n textures: \"0\",\n shaders: \"0\",\n postPasses: \"0\",\n drawCalls: \"0\",\n frameTime: \"0\",\n deltaTime: \"0\",\n FPS: \"0\",\n };\n\n constructor(parentFolder: FolderApi, expanded: boolean = true) {\n this.folder = parentFolder.addFolder({ title: \"renderStats\", expanded: expanded });\n this.folder.addBinding(this.statsData, \"FPS\", { readonly: true });\n this.folder.addBinding(this.statsData, \"frameTime\", {\n readonly: true,\n label: \"frame time (ms)\",\n });\n this.folder.addBinding(this.statsData, \"deltaTime\", { readonly: true });\n this.folder.addBinding(this.statsData, \"triangles\", { readonly: true });\n this.folder.addBinding(this.statsData, \"geometries\", { readonly: true });\n this.folder.addBinding(this.statsData, \"textures\", { readonly: true });\n this.folder.addBinding(this.statsData, \"shaders\", { readonly: true });\n this.folder.addBinding(this.statsData, \"postPasses\", { readonly: true });\n this.folder.addBinding(this.statsData, \"drawCalls\", { readonly: true });\n }\n\n public update(\n renderer: WebGLRenderer,\n composer: EffectComposer,\n deltaTimeSeconds: number,\n frameRenderTimeMs: number,\n ): void {\n const { geometries, textures } = renderer.info.memory;\n const { triangles, calls } = renderer.info.render;\n this.statsData.triangles = triangles.toString();\n this.statsData.geometries = geometries.toString();\n this.statsData.textures = textures.toString();\n this.statsData.shaders = renderer.info.programs!.length.toString();\n const passesMinusRender = composer.passes.length - 1;\n this.statsData.postPasses = passesMinusRender.toString();\n this.statsData.drawCalls = calls.toString();\n this.statsData.frameTime = frameRenderTimeMs.toFixed(2) + \"ms\";\n this.statsData.deltaTime = (deltaTimeSeconds * 1000).toFixed(2) + \"ms\";\n this.statsData.FPS = (1 / deltaTimeSeconds).toFixed(2);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["AudioListener", "Group", "Scene", "Vector3", "AnimationState", "Color", "Group", "Vector3", "Color", "Vector3", "Color", "canvas", "clone", "ctx", "Color", "Vector3", "_a", "Color", "LinearFilter", "Texture", "canvas", "Color", "LinearFilter", "Group", "_a", "animationConfig", "AnimationState", "Color", "Vector3", "EulXYZ", "Vect3", "Euler", "Quaternion", "Vector3", "MMLCharacter", "Vect3", "AnimationState", "AnimationMixer", "Color", "Euler", "Group", "Matrix4", "Quaternion", "SkinnedMesh", "Texture", "Vector3", "SkeletonUtils", "AnimationClip", "SkinnedMesh", "vertexCount", "Quaternion", "Vector3", "Box3", "Color", "ColorManagement", "Matrix4", "Mesh", "Sphere", "Vector3", "Box3", "Box3", "RGBAFormat", "Mesh", "ColorManagement", "Color", "Box3", "_box3", "Sphere", "Matrix4", "Vector3", "DataTexture", "FloatType", "RedFormat", "DataTexture", "RedFormat", "FloatType", "Matrix4", "Sphere", "Vector3", "Matrix4", "Vector3", "_position", "_sphere", "Sphere", "DataTexture", "FloatType", "Mesh", "RedFormat", "Mesh", "DataTexture", "RedFormat", "FloatType", "Matrix4", "Mesh", "Sphere", "Vector3", "Mesh", "Vector3", "_invMatrixWorld", "Matrix4", "_sphere", "Sphere", "Matrix4", "Matrix4", "offset", "mesh", "Color", "Matrix4", "Vector3", "AnimationState", "MMLCharacter", "Group", "Euler", "Quaternion", "SkinnedMesh", "AnimationMixer", "Vect3", "Texture", "Vector3", "Euler", "Quaternion", "Vect3", "_a", "EulXYZ", "BufferGeometry", "Matrix4", "Group", "Mesh", "Color", "BufferGeometryUtils", "AmbientLight", "Color", "Euler", "Fog", "HalfFloatType", "Scene", "Vector3", "WebGLRenderer", "HalfFloatType", "Vector2", "Color", "phaseNum", "ShaderMaterial", "ShaderMaterial", "ShaderMaterial", "Uniform", "Vector2", "ShaderMaterial", "Uniform", "Vector2", "Color", "DataTexture", "FloatType", "LinearFilter", "NoColorSpace", "OrthographicCamera", "RGBAFormat", "RedFormat", "ShaderMaterial", "Uniform", "Vector2", "Vector3", "WebGLRenderTarget", "Matrix4", "Uniform", "Vector2", "Matrix4", "Uniform", "Vector2", "Vector3", "Matrix4", "Uniform", "Vector2", "Vector3", "BufferAttribute", "BufferGeometry", "Mesh", "OrthographicCamera", "Sphere", "Matrix4", "Uniform", "Vector2", "Vector3", "ShaderMaterial", "Uniform", "Color", "WebGLRenderTarget", "LinearFilter", "DataTexture", "NoColorSpace", "Vector2", "RedFormat", "FloatType", "RGBAFormat", "Vector3", "OrthographicCamera", "PostProcessingManager", "Vector2", "HalfFloatType", "Color", "Group", "OrthographicCamera", "Vector3", "value", "Scene", "WebGLRenderer", "PostProcessingManager", "Vector3", "HalfFloatType", "Euler", "Color", "Fog", "AmbientLight", "FrontSide", "Group", "Mesh", "MeshStandardMaterial", "NearestFilter", "RepeatWrapping", "Matr4", "Group", "Scene", "AudioListener", "Group", "Vector3"]
7
+ }