From ba6fcc734c7e5ec869e157665142af8787cacc52 Mon Sep 17 00:00:00 2001 From: AZhan Date: Mon, 21 Jul 2025 21:38:04 +0800 Subject: [PATCH 1/7] Fix audio clone bug (#2767) * fix: clone bug --- packages/core/src/Camera.ts | 20 ++++++++++--- packages/core/src/Scene.ts | 2 +- packages/core/src/VirtualCamera.ts | 14 ++++++--- packages/core/src/animation/Animator.ts | 33 ++++++++++++++++++--- packages/core/src/audio/AudioSource.ts | 25 ++++++++++------ packages/core/src/lighting/DirectLight.ts | 2 ++ packages/core/src/lighting/Light.ts | 7 +++-- packages/core/src/lighting/PointLight.ts | 2 +- packages/core/src/lighting/SpotLight.ts | 3 +- tests/src/core/Animator.test.ts | 20 +++++++------ tests/src/core/Camera.test.ts | 16 ++++++++++- tests/src/core/Light.test.ts | 35 +++++++++++++++++++++++ tests/src/core/audio/AudioSource.test.ts | 9 ++++++ tests/src/loader/GLTFLoader.test.ts | 2 +- 14 files changed, 154 insertions(+), 36 deletions(-) diff --git a/packages/core/src/Camera.ts b/packages/core/src/Camera.ts index 5b8121db0..13aee1081 100644 --- a/packages/core/src/Camera.ts +++ b/packages/core/src/Camera.ts @@ -108,8 +108,10 @@ export class Camera extends Component { isAlphaOutputRequired = false; /** @internal */ + @ignoreClone _cameraType: CameraType = CameraType.Normal; /** @internal */ + @ignoreClone _globalShaderMacro: ShaderMacroCollection = new ShaderMacroCollection(); /** @internal */ @deepClone @@ -118,7 +120,7 @@ export class Camera extends Component { @ignoreClone _renderPipeline: BasicRenderPipeline; /** @internal */ - @ignoreClone + @deepClone _virtualCamera: VirtualCamera = new VirtualCamera(); /** @internal */ _replacementShader: Shader = null; @@ -131,7 +133,6 @@ export class Camera extends Component { _cameraIndex: number = -1; private _priority: number = 0; - private _shaderData: ShaderData = new ShaderData(ShaderDataGroup.Camera); private _isCustomViewMatrix = false; private _isCustomProjectionMatrix = false; private _fieldOfView: number = 45; @@ -139,13 +140,12 @@ export class Camera extends Component { private _isProjectionDirty = true; private _isInvProjMatDirty: boolean = true; private _customAspectRatio: number | undefined = undefined; - private _renderTarget: RenderTarget = null; - private _depthBufferParams: Vector4 = new Vector4(); private _opaqueTextureEnabled: boolean = false; private _enableHDR = false; private _enablePostProcess = false; private _msaaSamples: MSAASamples; + private _renderTarget: RenderTarget = null; @ignoreClone private _updateFlagManager: UpdateFlagManager; @ignoreClone @@ -155,6 +155,10 @@ export class Camera extends Component { @ignoreClone private _isInvViewProjDirty: BoolUpdateFlag; @deepClone + private _shaderData: ShaderData = new ShaderData(ShaderDataGroup.Camera); + @ignoreClone + private _depthBufferParams: Vector4 = new Vector4(); + @deepClone private _viewport: Vector4 = new Vector4(0, 0, 1, 1); @deepClone private _pixelViewport: Rect = new Rect(0, 0, 0, 0); @@ -820,6 +824,13 @@ export class Camera extends Component { this._updateFlagManager?.removeListener(onChange); } + /** + * @internal + */ + _cloneTo(target: Camera, srcRoot: Entity, targetRoot: Entity): void { + this._renderTarget?._addReferCount(1); + } + /** * @internal * @inheritdoc @@ -830,6 +841,7 @@ export class Camera extends Component { this._isInvViewProjDirty.destroy(); this._isViewMatrixDirty.destroy(); this._addResourceReferCount(this.shaderData, -1); + this._renderTarget && this._addResourceReferCount(this._renderTarget, -1); //@ts-ignore this._viewport._onValueChanged = null; diff --git a/packages/core/src/Scene.ts b/packages/core/src/Scene.ts index 587a672be..d7df01ef4 100644 --- a/packages/core/src/Scene.ts +++ b/packages/core/src/Scene.ts @@ -469,7 +469,7 @@ export class Scene extends EngineObject { if (sunlight) { lightManager._updateSunlightIndex(sunlight); - shaderData.setColor(LightManager._sunlightColorProperty, sunlight._lightColor); + shaderData.setColor(LightManager._sunlightColorProperty, sunlight.color); shaderData.setVector3(LightManager._sunlightDirectionProperty, sunlight.direction); } else { // @ts-ignore diff --git a/packages/core/src/VirtualCamera.ts b/packages/core/src/VirtualCamera.ts index 2ab4e5948..4c8598888 100644 --- a/packages/core/src/VirtualCamera.ts +++ b/packages/core/src/VirtualCamera.ts @@ -1,16 +1,22 @@ import { Matrix, Vector3 } from "@galacean/engine-math"; +import { ignoreClone } from "./clone/CloneManager"; /** * @internal */ export class VirtualCamera { - position: Vector3 = new Vector3(); isOrthographic: boolean = false; - viewMatrix: Matrix = new Matrix(); - projectionMatrix: Matrix = new Matrix(); - viewProjectionMatrix: Matrix = new Matrix(); nearClipPlane: number = 0.1; farClipPlane: number = 100; + @ignoreClone + position: Vector3 = new Vector3(); + @ignoreClone + viewMatrix: Matrix = new Matrix(); + @ignoreClone + projectionMatrix: Matrix = new Matrix(); + @ignoreClone + viewProjectionMatrix: Matrix = new Matrix(); /** Only orth mode use. */ + @ignoreClone forward: Vector3 = new Vector3(); } diff --git a/packages/core/src/animation/Animator.ts b/packages/core/src/animation/Animator.ts index 9594e68a4..0ad1df8b0 100644 --- a/packages/core/src/animation/Animator.ts +++ b/packages/core/src/animation/Animator.ts @@ -43,8 +43,8 @@ export class Animator extends Component { /** @internal */ _onUpdateIndex = -1; + @assignmentClone protected _animatorController: AnimatorController; - @ignoreClone protected _controllerUpdateFlag: BoolUpdateFlag; @ignoreClone @@ -73,10 +73,15 @@ export class Animator extends Component { } set animatorController(animatorController: AnimatorController) { - if (animatorController !== this._animatorController) { - this._reset(); + const lastController = this._animatorController; + if (animatorController !== lastController) { + lastController && this._addResourceReferCount(lastController, -1); this._controllerUpdateFlag && this._controllerUpdateFlag.destroy(); - this._controllerUpdateFlag = animatorController && animatorController._registerChangeFlag(); + this._reset(); + if (animatorController) { + this._addResourceReferCount(animatorController, 1); + this._controllerUpdateFlag = animatorController._registerChangeFlag(); + } this._animatorController = animatorController; } } @@ -325,6 +330,26 @@ export class Animator extends Component { } } + /** + * @internal + */ + _cloneTo(target: Animator, srcRoot: Entity, targetRoot: Entity): void { + const animatorController = target._animatorController; + if (animatorController) { + target._addResourceReferCount(animatorController, 1); + target._controllerUpdateFlag = animatorController._registerChangeFlag(); + } + } + + protected override _onDestroy(): void { + super._onDestroy(); + const controller = this._animatorController; + if (controller) { + this._addResourceReferCount(controller, -1); + this._controllerUpdateFlag?.destroy(); + } + } + private _crossFade( stateName: string, duration: number, diff --git a/packages/core/src/audio/AudioSource.ts b/packages/core/src/audio/AudioSource.ts index 850875016..f87b3ed5f 100644 --- a/packages/core/src/audio/AudioSource.ts +++ b/packages/core/src/audio/AudioSource.ts @@ -1,4 +1,4 @@ -import { deepClone, ignoreClone } from "../clone/CloneManager"; +import { assignmentClone, ignoreClone } from "../clone/CloneManager"; import { Component } from "../Component"; import { Entity } from "../Entity"; import { AudioClip } from "./AudioClip"; @@ -14,25 +14,25 @@ export class AudioSource extends Component { @ignoreClone private _isPlaying: boolean = false; - @ignoreClone + @assignmentClone private _clip: AudioClip; - @deepClone + @ignoreClone private _gainNode: GainNode; @ignoreClone private _sourceNode: AudioBufferSourceNode | null = null; - @deepClone + @ignoreClone private _pausedTime: number = -1; @ignoreClone private _playTime: number = -1; - @deepClone + @assignmentClone private _volume: number = 1; - @deepClone + @assignmentClone private _lastVolume: number = 1; - @deepClone + @assignmentClone private _playbackRate: number = 1; - @deepClone + @assignmentClone private _loop: boolean = false; /** @@ -189,6 +189,14 @@ export class AudioSource extends Component { } } + /** + * @internal + */ + _cloneTo(target: AudioSource, srcRoot: Entity, targetRoot: Entity): void { + target._clip?._addReferCount(1); + target._gainNode.gain.setValueAtTime(target._volume, AudioManager.getContext().currentTime); + } + /** * @internal */ @@ -212,6 +220,7 @@ export class AudioSource extends Component { this.clip = null; } + @ignoreClone private _onPlayEnd(): void { this.stop(); } diff --git a/packages/core/src/lighting/DirectLight.ts b/packages/core/src/lighting/DirectLight.ts index c44246e14..2184474d7 100644 --- a/packages/core/src/lighting/DirectLight.ts +++ b/packages/core/src/lighting/DirectLight.ts @@ -1,4 +1,5 @@ import { Vector3 } from "@galacean/engine-math"; +import { ignoreClone } from "../clone/CloneManager"; import { ShaderData } from "../shader"; import { ShaderProperty } from "../shader/ShaderProperty"; import { Light } from "./Light"; @@ -26,6 +27,7 @@ export class DirectLight extends Light { */ shadowNearPlaneOffset = 0.1; + @ignoreClone private _reverseDirection: Vector3 = new Vector3(); /** diff --git a/packages/core/src/lighting/Light.ts b/packages/core/src/lighting/Light.ts index b9473c3c0..5406de624 100644 --- a/packages/core/src/lighting/Light.ts +++ b/packages/core/src/lighting/Light.ts @@ -1,7 +1,7 @@ import { Color, MathUtil, Matrix } from "@galacean/engine-math"; import { Component } from "../Component"; import { Layer } from "../Layer"; -import { ignoreClone } from "../clone/CloneManager"; +import { deepClone, ignoreClone } from "../clone/CloneManager"; import { ShadowType } from "../shadow"; /** @@ -30,12 +30,13 @@ export abstract class Light extends Component { /** @internal */ @ignoreClone _lightIndex = -1; - /** @internal */ - _lightColor = new Color(); private _shadowStrength = 1.0; + @deepClone private _color = new Color(1, 1, 1, 1); + @ignoreClone private _viewMat: Matrix; + @ignoreClone private _inverseViewMat: Matrix; /** Shadow intensity, the larger the value, the clearer and darker the shadow, range [0,1]. */ diff --git a/packages/core/src/lighting/PointLight.ts b/packages/core/src/lighting/PointLight.ts index c3991bc31..8e5b18973 100644 --- a/packages/core/src/lighting/PointLight.ts +++ b/packages/core/src/lighting/PointLight.ts @@ -1,4 +1,4 @@ -import { Color, Vector3 } from "@galacean/engine-math"; +import { Vector3 } from "@galacean/engine-math"; import { ShaderData } from "../shader"; import { ShaderProperty } from "../shader/ShaderProperty"; import { Light } from "./Light"; diff --git a/packages/core/src/lighting/SpotLight.ts b/packages/core/src/lighting/SpotLight.ts index db154b91f..26dd61545 100644 --- a/packages/core/src/lighting/SpotLight.ts +++ b/packages/core/src/lighting/SpotLight.ts @@ -2,6 +2,7 @@ import { Matrix, Vector3 } from "@galacean/engine-math"; import { ShaderData } from "../shader"; import { ShaderProperty } from "../shader/ShaderProperty"; import { Light } from "./Light"; +import { ignoreClone } from "../clone/CloneManager"; /** * Spot light. @@ -35,8 +36,8 @@ export class SpotLight extends Light { /** Angle, in radians, from falloff begins to ends. */ penumbra: number = Math.PI / 12; + @ignoreClone private _inverseDirection: Vector3 = new Vector3(); - private _projectMatrix: Matrix = new Matrix(); /** * Get light position. diff --git a/tests/src/core/Animator.test.ts b/tests/src/core/Animator.test.ts index 4977b8728..8649f4800 100644 --- a/tests/src/core/Animator.test.ts +++ b/tests/src/core/Animator.test.ts @@ -4,25 +4,25 @@ import { AnimationFloatCurve, Animator, AnimatorConditionMode, + AnimatorController, AnimatorControllerLayer, AnimatorLayerBlendingMode, AnimatorLayerMask, AnimatorStateMachine, AnimatorStateTransition, Camera, + Entity, Keyframe, Script, - Transform, - AnimatorController, - WrapMode, StateMachineScript, - Entity + Transform, + WrapMode } from "@galacean/engine-core"; import "@galacean/engine-loader"; import type { GLTFResource } from "@galacean/engine-loader"; import { Quaternion } from "@galacean/engine-math"; import { WebGLEngine } from "@galacean/engine-rhi-webgl"; -import { vi, describe, beforeAll, expect, it, afterAll, afterEach } from "vitest"; +import { afterAll, afterEach, beforeAll, describe, expect, it, vi } from "vitest"; import { glbResource } from "./model/fox"; const canvasDOM = document.createElement("canvas"); canvasDOM.width = 1024; @@ -323,7 +323,7 @@ describe("Animator test", function () { animator.play("Walk"); class TestScript extends Script { - event0(): void {} + event0(): void { } } const testScript = animator.entity.addComponent(TestScript); @@ -765,8 +765,8 @@ describe("Animator test", function () { animator.animatorController = animatorController; class TestScript extends StateMachineScript { - onStateEnter(animator) {} - onStateExit(animator) {} + onStateEnter(animator) { } + onStateExit(animator) { } } const testScript = state1.addStateMachineScript(TestScript); @@ -1014,4 +1014,8 @@ describe("Animator test", function () { animator.update(0.3); expect(animatorLayerData[0]?.srcPlayData.state.name).to.eq("state2"); }); + + it("Clone", () => { + expect(animator.entity.clone().getComponent(Animator).animatorController).to.eq(animator.animatorController); + }) }); diff --git a/tests/src/core/Camera.test.ts b/tests/src/core/Camera.test.ts index 1c484dcad..52ae7890d 100644 --- a/tests/src/core/Camera.test.ts +++ b/tests/src/core/Camera.test.ts @@ -1,7 +1,7 @@ import { Camera, CameraClearFlags, Entity, Layer, ReplacementFailureStrategy, Shader } from "@galacean/engine-core"; import { Matrix, Ray, Vector2, Vector3, Vector4 } from "@galacean/engine-math"; import { WebGLEngine } from "@galacean/engine-rhi-webgl"; -import { describe, beforeAll, expect, it } from "vitest"; +import { beforeAll, describe, expect, it } from "vitest"; describe("camera test", function () { const canvasDOM = new OffscreenCanvas(256, 256); @@ -360,6 +360,20 @@ describe("camera test", function () { ); }); + it("clone", () => { + camera.isOrthographic = true; + camera.nearClipPlane = 1; + camera.farClipPlane = 255; + const cloneCamera = camera.entity.clone().getComponent(Camera); + expect(cloneCamera.isOrthographic).to.eq(camera.isOrthographic) + expect(cloneCamera.nearClipPlane).to.eq(camera.nearClipPlane); + expect(cloneCamera.farClipPlane).to.eq(camera.farClipPlane); + expect(cloneCamera.renderTarget).to.eq(camera.renderTarget); + expect(cloneCamera.shaderData).to.not.eq(camera.shaderData); + // @ts-ignore + expect(cloneCamera._globalShaderMacro).to.not.eq(camera._globalShaderMacro); + }) + it("destroy test", () => { camera.destroy(); }); diff --git a/tests/src/core/Light.test.ts b/tests/src/core/Light.test.ts index 47c266e7f..2ed28588d 100644 --- a/tests/src/core/Light.test.ts +++ b/tests/src/core/Light.test.ts @@ -182,6 +182,41 @@ describe("Light test", function () { expect(expectDirection).to.deep.eq(reverseDirection); }); + it("Light clone", async () => { + const engine = await WebGLEngine.create({ canvas: canvasDOM }); + const rootEntity = engine.sceneManager.activeScene.createRootEntity(); + const lightEntity = rootEntity.createChild("light"); + const directLight = lightEntity.addComponent(DirectLight); + const pointLight = lightEntity.addComponent(PointLight); + const spotLight = lightEntity.addComponent(SpotLight); + + const cloneLightEntity = lightEntity.clone(); + const cloneDirectLight = cloneLightEntity.getComponent(DirectLight); + const clonePointLight = cloneLightEntity.getComponent(PointLight); + const cloneSpotLight = cloneLightEntity.getComponent(SpotLight); + + directLight.color.set(1, 0, 0, 1); + pointLight.color.set(0, 1, 0, 1); + spotLight.color.set(0, 0, 1, 1); + + expect(directLight.shadowNearPlaneOffset).to.eq(cloneDirectLight.shadowNearPlaneOffset); + expect(directLight.color).to.not.eq(cloneDirectLight.color); + expect(directLight.viewMatrix).to.not.eq(cloneDirectLight.viewMatrix); + expect(directLight.inverseViewMatrix).to.not.eq(cloneDirectLight.inverseViewMatrix); + expect(directLight.reverseDirection).to.not.eq(cloneDirectLight.reverseDirection); + expect(pointLight.distance).to.eq(clonePointLight.distance); + expect(pointLight.color).to.not.eq(clonePointLight.color); + expect(pointLight.viewMatrix).to.not.eq(clonePointLight.viewMatrix); + expect(pointLight.inverseViewMatrix).to.not.eq(clonePointLight.inverseViewMatrix); + expect(spotLight.distance).to.eq(cloneSpotLight.distance); + expect(spotLight.angle).to.eq(cloneSpotLight.angle); + expect(spotLight.penumbra).to.eq(cloneSpotLight.penumbra); + expect(spotLight.color).to.not.eq(cloneSpotLight.color); + expect(spotLight.viewMatrix).to.not.eq(cloneSpotLight.viewMatrix); + expect(spotLight.inverseViewMatrix).to.not.eq(cloneSpotLight.inverseViewMatrix); + expect(spotLight.reverseDirection).to.not.eq(cloneSpotLight.reverseDirection); + }); + it("light component disabled", function () { directLight.enabled = false; pointLight.enabled = false; diff --git a/tests/src/core/audio/AudioSource.test.ts b/tests/src/core/audio/AudioSource.test.ts index 9699e988c..49e12dd3f 100644 --- a/tests/src/core/audio/AudioSource.test.ts +++ b/tests/src/core/audio/AudioSource.test.ts @@ -61,4 +61,13 @@ describe("AudioSource", () => { expect(audioSource.isPlaying).to.be.false; } }); + + it("clone", () => { + const cloneAudioSource = audioSource.entity.clone().getComponent(AudioSource); + expect(cloneAudioSource.clip).to.be.equal(audioSource.clip); + expect(cloneAudioSource.volume).to.be.equal(audioSource.volume); + expect(cloneAudioSource.playbackRate).to.be.equal(audioSource.playbackRate); + expect(cloneAudioSource.loop).to.be.equal(audioSource.loop); + expect(cloneAudioSource.mute).to.be.equal(audioSource.mute); + }); }); diff --git a/tests/src/loader/GLTFLoader.test.ts b/tests/src/loader/GLTFLoader.test.ts index ef2340c24..5892fbcb0 100644 --- a/tests/src/loader/GLTFLoader.test.ts +++ b/tests/src/loader/GLTFLoader.test.ts @@ -387,7 +387,7 @@ beforeAll(async function () { afterAll(() => { @registerGLTFParser(GLTFParserType.Schema) - class test extends GLTFSchemaParser {} + class test extends GLTFSchemaParser { } }); describe("glTF Loader test", function () { From a7e764685a82717f6bd02f300469b5707bed9518 Mon Sep 17 00:00:00 2001 From: Kbscript Date: Thu, 24 Jul 2025 15:46:46 +0800 Subject: [PATCH 2/7] chore: preload include xr-webxr --- scripts/editor-preload-config.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/editor-preload-config.js b/scripts/editor-preload-config.js index 05f03d203..d6b1f7637 100644 --- a/scripts/editor-preload-config.js +++ b/scripts/editor-preload-config.js @@ -5,6 +5,11 @@ module.exports = { path: "packages/xr", browserPath: "dist/browser.min.js" }, + { + name: "@galacean/engine-xr-webxr", + path: "packages/xr-webxr", + browserPath: "dist/browser.min.js" + }, { name: "@galacean/engine-ui", path: "packages/ui", From d273e48c9890d352798c605f399d8d470c0e6ad3 Mon Sep 17 00:00:00 2001 From: zhuxudong Date: Thu, 24 Jul 2025 16:37:12 +0800 Subject: [PATCH 3/7] Fixed KTX2 transcoder compatibility issue (#2778) * feat: KTX2 transcoder compatibility issue --- packages/loader/libs/basis_transcoder.js | 16 ++++++++++------ packages/loader/libs/basis_transcoder.wasm | Bin 499762 -> 499440 bytes .../ktx2/transcoder/BinomialLLCTranscoder.ts | 6 +++--- tests/src/loader/KTX2Loader.test.ts | 6 +++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/loader/libs/basis_transcoder.js b/packages/loader/libs/basis_transcoder.js index c84840839..502fb67b5 100644 --- a/packages/loader/libs/basis_transcoder.js +++ b/packages/loader/libs/basis_transcoder.js @@ -1,18 +1,22 @@ var BASIS = (() => { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir ||= __filename; + var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; + if (typeof __filename != 'undefined') _scriptName = _scriptName || __filename; return ( function(moduleArg = {}) { + var moduleRtn; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror,binary=true)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,binary?undefined:"utf8",(err,data)=>{if(err)onerror(err);else onload(binary?data.buffer:data)})};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");var wasmBinaryFile;wasmBinaryFile="basis_transcoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'}function instantiateSync(file,info){var module;var binary=getBinarySync(file);module=new WebAssembly.Module(binary);var instance=new WebAssembly.Instance(module,info);return[instance,module]}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["J"];updateMemoryViews();wasmTable=wasmExports["N"];addOnInit(wasmExports["K"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}var result=instantiateSync(wasmBinaryFile,info);return receiveInstance(result[0])}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError;var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType["fromWireType"](getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError(`Missing field: "${fieldName}"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var getInheritedInstanceCount=()=>Object.keys(registeredInstances).length;var getLiveInheritedInstances=()=>{var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var setDelayFunction=fn=>{delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}};var init_embind=()=>{Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{"isAliasOf"(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},"clone"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},"delete"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},"isDeleted"(){return!this.$$.ptr},"deleteLater"(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":readPointer,"fromWireType":RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var dynCallLegacy=(sig,ptr,args)=>{var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var dynCall=(sig,ptr,args)=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn};var getDynCaller=(sig,ptr)=>{var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}};var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var __embind_register_constant=(name,type,value)=>{name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type["fromWireType"](value);return[]})};class HandleAllocator{constructor(){this.allocated=[undefined];this.freelist=[]}get(id){return this.allocated[id]}has(id){return this.allocated[id]!==undefined}allocate(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id}free(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;var __emval_decref=handle=>{if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}};var count_emval_handles=()=>{var count=0;for(var i=emval_handles.reserved;i{emval_handles.allocated.push({value:undefined},{value:null},{value:true},{value:false});Object.assign(emval_handles,{reserved:emval_handles.allocated.length}),Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var EmValType={name:"emscripten::val","fromWireType":handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":(destructors,value)=>Emval.toHandle(value),"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](HEAP8[pointer>>0])}:function(pointer){return this["fromWireType"](HEAPU8[pointer>>0])};case 2:return signed?function(pointer){return this["fromWireType"](HEAP16[pointer>>1])}:function(pointer){return this["fromWireType"](HEAPU16[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](HEAP32[pointer>>2])}:function(pointer){return this["fromWireType"](HEAPU32[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":(destructors,c)=>c.value,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":value=>value,"toWireType":(destructors,value)=>value,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer>>0]:pointer=>HEAPU8[pointer>>0];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;var UTF8ArrayToString=(heapOrArray,idx,maxBytesToRead)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType"(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":value=>{var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":GenericWireTypeSize,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":()=>undefined,"toWireType":(destructors,o)=>undefined})};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var emval_methodCallers=[];var __emval_call=(caller,handle,destructorsRef,args)=>{caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var __emval_call_method=(caller,objHandle,methodName,destructorsRef,args)=>{caller=emval_methodCallers[caller];objHandle=Emval.toValue(objHandle);methodName=getStringOrSymbol(methodName);return caller(objHandle,objHandle[methodName],destructorsRef,args)};var emval_get_global=()=>{if(typeof globalThis=="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$=="object"&&obj["$$$embind_global$$$"]==obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}if(typeof global=="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self=="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}throw Error("unable to get global object.")};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a};var reflectConstruct=Reflect.construct;var __emval_get_method_caller=(argCount,argTypes,kind)=>{var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var argN=new Array(argCount);var invokerFunction=(obj,func,destructorsRef,args)=>{var offset=0;for(var i=0;it.name).join(", ")}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_module_property=name=>{name=getStringOrSymbol(name);return Emval.toHandle(Module[name])};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>4){emval_handles.get(handle).refcount+=1}};var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var _abort=()=>{abort("")};var getHeapMax=()=>2147483648;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _fd_close=fd=>52;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}};var SYSCALLS={varargs:undefined,get(){var ret=HEAP32[+SYSCALLS.varargs>>2];SYSCALLS.varargs+=4;return ret},getp(){return SYSCALLS.get()},getStr(ptr){var ret=UTF8ToString(ptr);return ret}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var wasmImports={h:__embind_finalize_value_object,x:__embind_register_bigint,C:__embind_register_bool,l:__embind_register_class,k:__embind_register_class_constructor,b:__embind_register_class_function,F:__embind_register_constant,B:__embind_register_emval,f:__embind_register_enum,a:__embind_register_enum_value,r:__embind_register_float,d:__embind_register_function,e:__embind_register_integer,c:__embind_register_memory_view,q:__embind_register_std_string,j:__embind_register_std_wstring,g:__embind_register_value_object,G:__embind_register_value_object_field,D:__embind_register_void,m:__emval_as,o:__emval_call,s:__emval_call_method,E:__emval_decref,H:__emval_get_global,n:__emval_get_method_caller,z:__emval_get_module_property,I:__emval_get_property,t:__emval_incref,v:__emval_new_cstring,u:__emval_run_destructors,i:_abort,y:_emscripten_resize_heap,A:_fd_close,w:_fd_seek,p:_fd_write};var wasmExports=createWasm();var ___wasm_call_ctors=wasmExports["K"];var _malloc=wasmExports["L"];var _free=wasmExports["M"];var ___getTypeName=wasmExports["O"];var ___cxa_is_pointer_type=wasmExports["__cxa_is_pointer_type"];var dynCall_jiji=Module["dynCall_jiji"]=wasmExports["P"];var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); +var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="basis_transcoder.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["J"];updateMemoryViews();wasmTable=wasmExports["N"];addOnInit(wasmExports["K"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);receiveInstantiationResult(result);return result}catch(e){readyPromiseReject(e);return}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var __abort_js=()=>abort("");var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError;var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType["fromWireType"](getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,fromWireType:ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},toWireType:(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError(`Missing field: "${fieldName}"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:rawDestructor}]})};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var dynCallLegacy=(sig,ptr,args)=>{sig=sig.replace(/p/g,"i");var f=Module["dynCall_"+sig];return f(ptr,...args)};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};var getDynCaller=(sig,ptr)=>(...args)=>dynCall(sig,ptr,args);var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var __embind_register_constant=(name,type,value)=>{name=readLatin1String(name);whenDependentTypesAreResolved([],[type],type=>{type=type[0];Module[name]=type["fromWireType"](value);return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](HEAP8[pointer])}:function(pointer){return this["fromWireType"](HEAPU8[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](HEAP16[pointer>>1])}:function(pointer){return this["fromWireType"](HEAPU16[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](HEAP32[pointer>>2])}:function(pointer){return this["fromWireType"](HEAPU32[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext,setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var emval_methodCallers=[];var __emval_call=(caller,handle,destructorsRef,args)=>{caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var __emval_call_method=(caller,objHandle,methodName,destructorsRef,args)=>{caller=emval_methodCallers[caller];objHandle=Emval.toValue(objHandle);methodName=getStringOrSymbol(methodName);return caller(objHandle,objHandle[methodName],destructorsRef,args)};var emval_get_global=()=>{if(typeof globalThis=="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$=="object"&&obj["$$$embind_global$$$"]==obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}if(typeof global=="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self=="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}throw Error("unable to get global object.")};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a};var reflectConstruct=Reflect.construct;var __emval_get_method_caller=(argCount,argTypes,kind)=>{var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var argN=new Array(argCount);var invokerFunction=(obj,func,destructorsRef,args)=>{var offset=0;for(var i=0;it.name).join(", ")}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_module_property=name=>{name=getStringOrSymbol(name);return Emval.toHandle(Module[name])};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _fd_close=fd=>52;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var wasmImports={w:__abort_js,h:__embind_finalize_value_object,v:__embind_register_bigint,F:__embind_register_bool,k:__embind_register_class,i:__embind_register_class_constructor,b:__embind_register_class_function,A:__embind_register_constant,C:__embind_register_emval,f:__embind_register_enum,a:__embind_register_enum_value,p:__embind_register_float,d:__embind_register_function,e:__embind_register_integer,c:__embind_register_memory_view,E:__embind_register_std_string,j:__embind_register_std_wstring,g:__embind_register_value_object,B:__embind_register_value_object_field,G:__embind_register_void,l:__emval_as,n:__emval_call,q:__emval_call_method,D:__emval_decref,H:__emval_get_global,m:__emval_get_method_caller,y:__emval_get_module_property,I:__emval_get_property,r:__emval_incref,t:__emval_new_cstring,s:__emval_run_destructors,x:_emscripten_resize_heap,z:_fd_close,u:_fd_seek,o:_fd_write};var wasmExports;createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["K"])();var ___getTypeName=a0=>(___getTypeName=wasmExports["L"])(a0);var _malloc=a0=>(_malloc=wasmExports["M"])(a0);var _free=a0=>(_free=wasmExports["O"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["P"])(a0,a1,a2,a3,a4);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; - return moduleArg + return moduleRtn; } ); })(); -if (typeof exports === 'object' && typeof module === 'object') +if (typeof exports === 'object' && typeof module === 'object') { module.exports = BASIS; -else if (typeof define === 'function' && define['amd']) + // This default export looks redundant, but it allows TS to import this + // commonjs style module. + module.exports.default = BASIS; +} else if (typeof define === 'function' && define['amd']) define([], () => BASIS); diff --git a/packages/loader/libs/basis_transcoder.wasm b/packages/loader/libs/basis_transcoder.wasm index ca5b78754337afed20d30a686bf1b35092f6a442..536a402d6e5f8a9ba5274c06dcefa9119a2c1cf0 100755 GIT binary patch delta 114372 zcmb@v3w)hLo&W#b&iy1gNlvaOY36yFw&^9bg*Gjv&_1C}Z_pM6L>Hx~D|ix>gjmr9 zPLKj!b*1nW3xZnrwJWSHYqhMRq82YGDp*)_y;~5K^;&gT*%j&k{hfKv$w_J5%l}u% zdFGk>eCIpg`OJ5|GtWm4%{uz&S$XTyD_>_@mSsQeoq0?CMN3l^^UtpANK~%npS2@d z^GU~n6>Eom4KeJBea$WZ*qN&)vUU`s_t;%auDzBRjn&At`Ju5KI4|>8a)y<-*TWB-D$6i{$$TjdQx{Q zn&X^S>9Q}iUuAjxzS=7A`9LdHw&H(F_acUnb$-(=+~Jg(9KZ`QwW(Z8WJ8~gYJNl+7g_+ml@Rmr6RR!f9R-5B{^g z9L`iSxvX(Hl^yb|^oo^@iT2Z7E9Iv7mvI`>j%(8_DwlHbbu7nfc3mrHWm7q--0ixK zOa1eqWhV+2w8+@WRbD!qO{Lsq(#=`!EY~`tDV^@ikWE_?zYV?VjO*m{ZGEfVd_M0a zIyJbHD3;$NjeZdFS)ax7>eq zzv+I%eat=Ve%*c4eZ>8m`)TLX&R5;9xDUfcUxJUm=zhWdy!$EVQ_kny2i-&NXWh@Z zpLQQ`KjnVX{e*kJ`*HVU?vw80&g0HMyZ5;V-JXxSA8`-3A9nxAz1RIm_e1Un-G6ZJ zaqo6N?tI*dewgU5>~$meR`(Y7+x8y!X7`=$-?;B^zh%GOz2JKLt@gj#-?ZO0?fh%w zywADM+3nus-spbRd8>QCIpAF9PPxaN=bb+}&pCf|{>%B6{h!WCa&TpKf&aa(cIlpv%;k?Va&H1_WZ_dx03%+lE z-@e|tfd8Lyo^*cX{M5PNDd%bDC(Z>wcCv4MJpWL1D7moMW7`#F4LDw4hna2OT4fh{ z4?dTC!fu?3I?6+iryOO4yQAm_>7L~7J3GSNcix)W&`b(T+5BwEeIn~5DoqD3%3N%F z!^n+;4`e5u=+uVb;Drrq?3Op%PDR;ax8!YwU4=t-^ufl`i%A`JjRrRF%908cl)ZC^ zU;R>4_UMpP47(;LnsRvk`DnQ>GBPSoG`Hyk7brI@l>4pW%5X(F_ue>Mxj{MMA#0>` zeeS0pwcRC^>^13YXItSRXEbQ*x1367g}eSx9JH+U4OX{GhHayM2NgYFm;Iu%Ry8(Q zsw0|H=x^xAK?--w_f?ZBMi&+qHlM1p15S_fw-M)5jR=H~K2CD3-Uez0VTTA{tC^UD>4^$(Mpj*-oDO+`G`YjPxbWiK-N|$Q%dt4f( z8|SDla-o%7p*>Cu&RDPC`n`(k5AD$e5FVRS_nB zUE8@W^zbO`F*k$}=H?SQyua4g(*lb*ll07h)P_I57(L&1R;5!{d|QJj=?9#mxN7uD zlnt>csW7QJCx#qL#!pV28BYD7C?xC{AE&Ce>Qdchl^QD#S5~+d9SN`Xs2V9j3)?;9*S-4)?_c+$^GCkk_Fu>jRQl@nR) z`B|0oJ>l&{_zi2qPw<+}sl4)p?GXU0s9>JJ>)yI6JvL-{5)`Hx6t0A7mrZh-Pfnq` zfvBlX6B7(T=un|oMcgz|UZSv0D#AR_G-!!f2>1LkZvUXwpx>`=6ME>@4_f)UDAM)` zxPz2VowvN(FH9+PGnrS&O()gekwYTH^hks@6yZfG4OKi%k#nI)&WC2gA`(Ww3VDDe zjO7|l5{4$zWJnk?s61lQZzp8}sg?-6kxGNZfNL-NkXN;q{Y6qdVaOce4{A~N6M!zd zGAAu}rH|B@F%tCKdD8J{mNx1L;tswHkA+} z((80mc!+rM7-L8>7lwz(Lws_R;nY!gd_rc3GO{T4pJ0l}h7X!ZbZ6|UMu+DftYyg< z%}R3mxfF;1slb^c0{Pnl$&Vj5xp>?VEW;tM(jG`GfrCM*yiyR4wA%O*#vg@!838J> zO^1t+GT|;D?i+-Zay4O95y6&MEn#{xJbY(cc=)C^SW6H9!pV|muQC!%-fiSV**DYH#prtKli$^#Wk40MTNB!kE3&oTO$enuKP zqE~giETN~S=x~RBA$9R-6tD}q%i|0y$>W$Uu_s9{Bm2NnJvTxHcak4x=Y({ihy!ag z1m}6o-l{2YLvlL6ih|CM*oUH9=B#Nv^ly0?4QFWa@wv$F8udP97d{#7>00G>sURBf zUKIUjS5My{#Zs7nyZdaW)I5`V8x2-oA&!4q7HrrLppBE+v!nNRcXi1;s&b2MM<&t$ zd6xF`q&#Lvk97BKle$wyyfczL0!rA?qIptxUvsYUwo>R}dXIhEqyQTSd zN7N8>RXV7{Q5zb_3P64xJ#}Y=C`V<+f$Y~UEiaYKmRhOdB{!<HBYxs?NFY@R)9Agi{S=5AA4WBOLEC)eR6yLAWRYZ`s??1lLb z881@ta(E>At66I*58craPhWY~B-J@E7gqh5#Y_w&tjLnj#qo1B7n4{mMibK#k-k!k zRCO_l)glR4Xp&hbzbWW$DiQzDTKuZZ3m=U>(%0SgcrB#rV!n!w5c17hNY&+q-_&Wo zQwyoOyzo0Z%@1lJRhJk3K&N@C7E*P2;Zr)zPii4mmlysddY$U593q54oCvi8m|`3` z1iKd=`E)aLx|XEC6U~E004}v`>3D{4jxip;=`J=?PSr;^EYBE{$eJ05YhE;0Eww6^ zW@s~_D!crxp{oUY9IaM>NhCw7T7dD13(&Qx7GPfD0_@}Sw{k$Wtcpih^9wobE&k;6 zBA_G2{_;Sy3n?;?i$@xu%UaaYi-IhZRwIfpAb5vJbU@c6vZ!97gPb*dJDEfelRNKK z9m}2c@N>s1$Bs2!zw0cP@|1rsqhP^}!8X-l$|(HLuLGNdcawVAZkI%4-2ve(o6m`eXo_N_3#Gtd@@))BmLV zX)7XW0U}{rJn%bI;$G^awuzS+yfVk>ShPi|>2D{YDc3&_IWQJ>=;6KE%2T`TaVqh< z`g(ORxXF`n1H1JEC_=K z36YF5TO_?QO`MoEwBf-xNmlx9c-Wn$S61ZcOe&nmTy#Ad)4(bXK4;SF;YSV-_?Ow@>2LxkZ>E~rF&oZM3lxTuES$Zn3$Yks{ zF$iVZQJrI>t~v8xBqIQZ3a6G2*w&CO7-rXU!5jAf6~{#5bNUQ+v7d|{o6}i2@}6et zgb7hqAiH=IrH7~+xAV6RWVL!xVhJb=aW?t{%ST+Tp>gg-d-IJEYkvEk?&JO-2WIhV`ti40QXexqrzd z_2k@D_9vpAdDkWx)>}{v?w_{-?`P&Mvlm6Z1NUY^Ta!<Fgb-*-Mo{jk=#d2*+m5`WK6=}r^=X?abHTzM zm+D3%3;Soq#Vuk*z(5EsmK2MsYtdB}^=^&sT-akDiSA!G>+BPRvWkg3t0MGIQvwg)IIj!Nru;giuLi@GXR|NJWJx8mPYrApAU%KDx782B<7 zw1(BVAm@LVkk(q<)>YPj*t|QF;r^RCw2%;pQG1bK34ro32Vz{YzXg-8O(whlWtSwQA33L)^URsZ*|`4Hqt+ljzu7GW^g0;gP2TF9m85Jub=x)M+zrT-;F7B?x5j6bDhQE!Y=V~sm>LP}QU)k`#YLTiguj)sn zdiVwU%7)L^qE}sB)vsKR{(4DE`&%E@>`LvcE)Q4qktJR2H`aoxE-$?C;phlKZ>t4W zU0(P$lj@zdpsLFY-)U0aS_`VWyzo|&>Rq*=)C^>B38(yrCNp$!bL09Jq%+gOCk z5ECERKzDdn@K#G$jmUCa^LI;lH2Tfb_Da)4r9oAAaA z&Y3X~>KTlv?Hduh)Rj6%H=a6(q`2?YGvJw{r_M$`7EgOw{(f1i&Zh{kaDVic)8?d= zv?<*Endt7*X0=xJtpN()GniC7)fs*3w0GNm(Ur?i<@W>2w%A?KZav#PZxPiIREL?~y%; zvfq`L2_&cb8>|={Cc|Wm3_~`mM7Pmj*b!I?0X!P?MVFk>ZU@oMGd2_t9MY2=TOg^O z;qw5%@$f+O*cpBon?VE4{kET$=Wd4*c|L3VsVKL4#e8O~0q1tdZ<6N|HWlHy*I`cQ zdD!-w<+;c43(@H6MMEXO3wgU#R55L;d58!+3qwQ@ZW$sW&z>PN;@LDr#yoS;Bdb?* zbq!HCZ>b>)=h->rd|969sQ1jircNr5VM8t9E0y_B z!WT0cwwrKYWi|%AtRX26_b3V2{7}8oAI_S6PLZ^_*izUuK0y_xOH>72CV;RUlqkBP z9Qaz^))m+;1ump4Bt~!anl)?Ilf##)b&hlJr9#Wt13Rv^z2d)IE!6%cspUdb%Tn~S zHA^bA{`j1{Ff&GR4S?x#FrV20P`#k6Pytz*2$@kDmXk4oWAVb!r{YuH}tdwtL<9i?W`wK~JZD8iseB7_8jqYJO7zT|bx z#iHKs+!)L%1wAwc_b5qKr^17Z(UjyQ8>8nj(&dvCXB4aO#K^P93sHLW^SBR?y6t zj`rAOrU`n=4cc{0dPYf|6MxW@Fkx_tYTptz1GmiX?FE z@#Qo?J=sBR(2dhX6Qsmu_Z!YmwfH3z<e&ceT0r8bHJ zUMPoql!&CjBSoyuVfQ5Qa0-jzh;CljR(V0QnT{vp0@9;I%gOtHlW}oo#x?3rB_Z#W zM{VGu!w8z5NeCGW8gW$lXKLzdY2wsXrj5s!I8Ut-i5#Q~msI5epj4egUm5XN z(alaxi;GTJX)(dNKH1~zgNLcltP|A-l|2S5z>TD80v2@nDYh_WE3-j$vV<=&7v}*2 ztv(BT06@lP7E>(3I-(DcbfyQHFj~s0FZ%k(nG5^J=?Pu+bgk-=y-|y&M1ZTbsdW@? z=t|2DfWL$t{a0?-Qs`&3C)OSPYSl=C&HVZPGg@EW4*|?f9|M~HIzVH**vp^rSCee+ zPBm{56Ov}-sQxjjiNBaUJ;5wrw*3})f_zf)1o==cjeL5dB^&!rM}t4${JRaJ;W_1? z)!_Lp8v^jGLqr-k)ghunw0q;CRh`tk!^a##ong=rC`hBB?&Hu<`UPm{R~tKknaNG_ z&I2iFEYuQXA+Ql(S7Rf+&P#$Ypo?@>f8I;b8+q(cl*-a;qD^d}r%q$ch|y3B=yGv% z?WQF&aFf=sAw9rNU)Z#`;gktcBMK}TRHa)t`%A0%#ySoca-JB^A&QeMC-9^AwYLi1Zqx1xm12U((Iys0# z26xEbII)2wG7?llR|@o^-z@!>m)W6@DX1FFQ7^0m(?0@K#3!_|C01QsAWVXs>MNwt*^uhfvr3<#%8F4{S)pbLMOLUl zhb&Tk8-talARuGhEH_3~pTeV0&l2fL6_AIXCBzYny3TN_K!SF0^k-Q zUIoCd)F2>Oi)oSIqjE)9MwgM6XrYD=8^v{buSlpJoJ=q#=dITW5+-pGxY|FvOy?tXX^trJVAY?p&@GEItpMkS69DGn2%O%%T{7`&@@OJ*l6J4eBlQ0m~aE` zm>cjg+yFd05jWJ}VS7vsGeEj$&_=+%S|rU&RMc7~wfgZPU|)qYL>koDgw2=1L9sG8 zaGwAuzF>?pKBj6wk)6mFj*w(^gka;U$E?AMh9BmSQqU~nhxw|v22yd42EC)m2`WQ$ z_yO=ZOQTG1lQ`lLF;xYR?bGa6Hzvf~PguK4N;?yTDtT(q!?5U8T^g>o(puc3#9~h! zxGF!pXr zqdin%n1E{e0;+HyUp{ygbZW{MN40zzX;XTv{dvx=Xr!vgm2OyC1Wm7CVBJJ1vx zwCntHDr$|G^VzbGl2b0!=5KS!??;bj$sg`H+L+U)8opTNb-5S^tA5#gXjENe{#^W8 z@M}?X1m(p#I(B7rkxHx53TPhD0L2C-L6UUxw%8t&bwIiBaXYLCxLn{|;jfd&n7`gx zOQvkp0ekfpaDuV>#tXI#mh|dDr>-WJ6oA3?(c90qEET?jy%~Ja=B|r=dBG_a#m;K5 zRVns%12!|+#O>LAw^(|x0ASLv*jf~m&8>IyF1}(th$>ZllZ3YIJl?%P(@tHbvuUc=O!8%&; z>kH4yh@~_74!doc>_*-eCP+aTbCRwN8!f4Mz6z#G@zJwAaKc z1{?R@dTX%d?ZG(`pn`K1X*LpBZBpwbXw%z+jd+~%@)FO@61qV`*Qs+Qbluy7^=iG^ z_;R-ttdG9@()F*DXP3qNhRx3M2jzO|I77?3awL8 zkNU9b+?r?PMjdpI34aqXwT7b2V9>2?Dm(^HDup#8k~GWmwMkhp)(02{%9~8pB{D^x|O&((03zDGh`|KQbuGp6C}x` zfY~g%*T3RAue0oTMqhbFUoWc>Z6u7@ap+umP#Uo2R;le-d;JYj@{%F9RM;D>xuk83 zC#%x%c5M>EUcEwY8?QZhC22vO*KWK-HIkwGj>|S!SNND@G({A#O;4)W<5{!>l4e8U zW6_~YI_GOKc@-=!qVDQoBwFcQ#IksuT7RpOm+idBAX^{VJ9_hm$d$8&$kBowJ2i zjGI`14rgQ~^BQ&n+8cQ&!{An*A3cz7_18tOy|i!JkuPaOO-Pj;3lCYMNy0V)<7-t$ zI7@HP4?>hNdJ`*?2K|D?{}KR@BO$rbPAubbDM0pVvYd0{nSFvYI)3)>2hFm+^AI!cG=-G zw{*y4En$T~ysYq<=$Efvg>k=fM*~+m8>6Lv`O8y|eaLoCtGL(La&l@ddS5wJG<|Fe z8O^DwE@!REVvN!io%5RhN|zWJQPdbhXcN9E)rdhX@MhdUjfjcx+VL>SsU6q_Ib7n= zrH>CSAf6ic*`R>#exPRze<>`L9rI_CtaF1uk9o&Yikzk1!;4 zj-I@1UPjCiNTgb#=F5wfHa&fk7jZ99EE=?4EjL>XPky$`&-rnl-8yMeRXoL9NiKp93-2r&NbNHN+^-kmB{4K1)>EdoT^(!k;p!_GesD-#YmCX4ZRHPX#${Ug%P;EobMoBC^ zj-|4nrl~9`MjAAN;HBBnC2lQYC?+X_W(AyZRT)mdNo&R3zNMs#psvl-HAiHeY1syr z6C$iJgu>8Y6He+vR@#V$tUQ$>IoeL0RU7U$Qjoq~XVolD$(77Rh9foM)MCvp#)NZ8BEP)iy`(FBdCB`+wR`oTzVlLkjUGavlO0G0H5%kLGsa6((V&lc0w#u!iKuTmISJ$296efbgDhrz<+|6t$ zOK%EP_Sx3)J7CowHET13P5UVt#PAeJXu%_fmsnX%2p`Cx)<=%o;9+lVg_!V7hv4k8 zpAr+ac2X#e+&RZ7L$hgAlF{gJKNkDK)!mqKD-Wf7I~3<-T)$*u-l7d0dXf`l!ibg_ z^1GAMb+Q@u9TP0Uq-rU@;!#;smFb$0zP=`=0h){d?{%VeGwQ^9jylfMRcr+g%VZ-Y z37?a z(IfrM@my)DZl&h2<}kg@0KJ$yz0&`N8Jj!nm@yYNVO#U=H_WND)4>w~BSV-E469$^MN1Tx zlL$pwyT{y@(ee>ys{9_`f9#4o{qEgVp1+7;pAg{Q%0VIv*jh3#9S)#J^rA=}#_b3n*+ z!f$?CX*{}Y{6!T`?y3-gKI-?!y-{Ne-^aO@&Dyd*Bwd7FLd2d-<=qC1w5atfTqXQ0 z3ZyWhYW*+q)u6YQxVkTyHEFXJH5kQIdvJqSLDHBWlgV652RL!Me|V|(kLj4WoAito zcfMK2Xj3RzJWlFbW+=ItgO<`y%(`$B9fKs(UAq7~NR*Kp#|wUiEktgD;Re!b+tT3V6KJcDejX}7 zq&uqMaxhoT1y#vln!&i$a@Za5P4&oW@*Js9w0g2MT%Bp+5{v(BiF!PtZv^jQo6;ySV$%9%X@GxI0pcZHS?;KG$uASgl=M8=$rA~^asmczd}Z15M8 zCy>W5s2Czjm#LK~oK^8e?IYuvJR zuu8oe@s7N4aa~JKo;id%N!1}W7GSckF81KQCZQ(3o^xWmeN+D#q%@6yHb_~TZ(0H0 z1uKNG9H83>=L%udGYFfmBdi9zLf93f!tyf-n*-!_3*?5^0#9rWTF@LSR7WKi$ygPN zqnS9T3afR;s6j*-iVKkvqI`|9S3%6bMWSh_1%s@4(=59sdc~V&wQedIGXzq}B7j0$ zqMP4zyM1dkaFuTtqs>>1v+Ml8Rh`4Ppn_Ft=1**ov8uM^GQ@Sf3-h(bZEi zv)0ZK0(d1&VK%G1<^kt&EPeNUK_fJlXD#7@&l`8qENY|6e%%bQe*Kot3g=jaTB5Sa z2&!!!v_x`Fgoh96Sy$8%m9uXPhF2oDGR`$*CLmCtkEi39G{ADbte~`vB5uEV4Dd+R zWl=ERMf2$70U0S0+^LhtQCB*PLXWHni{AHFZ56qCLh576dO>6lMxahcCjLygT7I~oBSU8w?&g%Q%2WoN)iN>Q9B@_+ zIm@U{%V_vUsSc-OS=FqFp9?|R5{a3HAaUhc7@3aO8Vxq-MjKOdsg&ngY>#lzT4urK za2`+_hHFArG|5qr1{%@C)foH?%4G?AeyF)fhP#=r%{+b5^!d8CPRhFSQ|tUY}p13);x#su)X=F6H#rC;8=pwn~*3Zv8_ z2&)mJz2+ethDT@3qbRT4^*Qv+$U)FQrqChhr&pWD%205g=8Ve8SOY#G%UrmK&f~ER z#L8m;t03Ktu81$g4}n%<7>Q&MAT z%K~aKlkr8TRTQw!PNVdrM3dPGQ@N?Oik6pXY0%)uGJtz+ju(x+F>i=;eW7U7sYN?j zCqa;mER9`#q@Y?R)(IGMQ<7}Y#c|IRp{+$W6(i^c*%+Bgi0lf^C;&!|rmpK)u}C+n zt^qYhHnNit_xQBP&gjwWIuMo}VQK=EmgG#NoKC=YYj&h9&e2Kls*!sdU|IA)ksxh_0ZR_(4{co(La@LcHlwhYnR+|HVQ7QWrF% zFLR*-0V{O^+DjQ@XI9h4~;t3s1Q(NpzGLuGv$g%}K(n3_kJ$*sqv=PRrGxd_chDI1tkT`ThnI42R;9zLY(Lyt^ z=n#Bt?Gw|-C>^Ckv!+J{LPkwD&8iTy3JPV$RH;?geDheqBMqdQ*7^~)+=QX4lbAz1 z$Y>h4GSI4CRY1uQlx{ge!(^7J)J-$-0IhFTwNX-rT}QL367|HBq?zv!pjC)D?UWNA zOrI@0R@}F>_41*cmU|58kYsSLq2@|WV+HjB|&REwvdt%kWMa{!Tq-(Ko5*SlM zF%_y-hj2x%d!x{lBTce6XX}cK0aI{~T;iuW5JpRJs6}I4>2Wrr1om1C6fqDxv80cc z7N|AQO4g&4iY6+@b4)!nNU5W@R?*+v_SH1^JB!Fs}jJZkeIC{ply zQKAxFo%rj*r$=oCZTO$TyxjFA@gbe*({>B`2QNC7!- zDx#{a(;2GJeN8eUOL(y=v_u-rs?(>}HOv6Om?S3?v#zEHd7gwUawSn6S*qYM9v5Kf zKRYmxi!-N(wwWVAq@}3lk>xT1xFT(=PDIHFAcAmkBjX2!n;n&NQ{t3-=!s2ED~MDt}JHRDv<3*2mQXT-WEZZf z!{RgI7@n`rmpOl!Qq!R;Z5cKNXuKBlD?!2m1i<`QH$=g(8s2LPnGsJjJqWoP<6uH)0j)3u!QqwBFnXI;{gT+7TL3IG8=sqPYxF`1UpDj zmPMDnlie7xoOML(YI{=FS0u;@hA+^XGz=0Q+tXHQDF=#Ve!o(16bA+6O(cp^{ql&% zhn`27nPeaUY@wm4K?*w%=D{Akxn{FW3ILxOQW~!gkTn`rU7o&C0goZFXhDY}ahYRm zxkM$+7^3|QOIDz%`K~pr{+jD$b5zzrBFg&kNL_<_r5dwFAEaNHL(R95&dt(Bzc zy*ZmL9%3v&eR$*uS-Ux2L5Kj20k=e1Nac zmtuk@&G5D~rd1KbJfiTcb+qKFXRS21@rp>`Zed8lqu_Ih+ziaxU~G%_Mhk?n7X>*@ z9*7PK;DQyP$f)qU<}ADl(o#mW7jKJJT9r4fEwMke@e9+?=elH&yp)niv0 zDgr{w0vX=Ve78uM@#0PPePqmXZ^PET-KJu4D{{3Km}yXtvZBM5_UP%o19l;5xNT7ywZWiumERtPw=HUI zXU8IqUZ_wwn_|IxEX$^DTV81~TN)zMMKu>>2CX8b(~=Fl9g%aKmlGVtExyP?k^3yj zkbU&D+&nCzASXx|WsmqWFUetH-som_E(&kAIolK-V0VNFY`3Gl(_vbUI#grTyG~zb zwtdp!^KwoBD{0I;C%JCEpfeO5y{xh&FRf11h2^7r-ZiJf(W*BhF60~loWr)U*?FNz zCUGe=NJ+8nXyPjr&GxUUNYEx@g0OUhEqu&0i5@DHg9;vF4<+6Rw_A%4=4Xjamff0p z+NncTKtXbrbqRPww!_23>*(Xq)vw&%>%J~W6_`48rk&8=mFYze7UIu(tCygJEW2b~ zj2CW9jwO}~nY!fKVZWccw5U$aWAqs%u@yd@s~0`EuXUm9@wKq^r+1mDxV~z=jpoJG z2Quh3v~#J;v3;e1K3vR)QG`U*W6@Cwvmh7-D8rR^P7me+k!#`MN>xmJ;0FO?2w=U+5$JZb{TFoMw zdbbpF=eu86%+&Y)r^Wp8-E(pU?x)XZ%wo>5k&A(d~)sR1!eo;0vK#UAV_h0Eot zUWTd2@x@YcD3L+a%IIiTMLkQR_1f{CRc&Uso#s|&7qDLtefT}Svo4n@Q|FO3d8F3U zv=kXj9?{R<)7z-c6tv05JfuVP()ad7%ijB{6nO$G+N1ZrR~6bJj1haLr0CK2_UyRa z&%{}KChN?4T9T}*-YF!bNhkp@ga}aD$(eG|-C@Tk`cEkUQ!LpyXd2U2`|N)1WTS_p zG(k(W`F+Z6ibmhpJ-59Y&M?}kFcqG9-r}0*mWi3Q`q2Bj*(QJJeSQ&J>`{M#S|sCd z5tv0N5dHCeBkF+ct0NLqGxy`o)_ZH=*U=^W+bc#cYc>I+nyq*-f=m@YtU1c;wx`!O zB*j{slDe=9=Wg{@-khF7wb478eC3B0FeV zubiN`enL#MoXOV$d^P37F`*$arc|6(XDy2|YOL^4TZ}O2$gE+8EaFgW3YxVq(nkcS zs8q2&mNPhI60@)=TuvPdvLX<>)J~iL`SV5NDivjmzoL}`8S&|opOpMG5?0lcN_vIq z{`oxE*DR<4Gp4hHoS5kY_DG;Y;rF%@*ArH`z-3__GEZ_KO)4?qyjrAgY(6a79SRr^ z9AZ;Fq|UG3zp1@l`*DO!&eK|CmE;of_Gs(huCGX?#yLJ9zBZS7cgcMX6TVvo1+kJx zZpq@DSJ}_%fgv^U7cj>llt+Vwg&pJy3yuZ~r(|YR01Pu3%rcV@p%OzTN35uD^M`wG z1(LU^J{f-~6i0oTNo71S3rg?Gb<^Wy6IL(GYCG}$5~q>LqMd5iq`%m7!+>*@pB3s{ z4kPj4VhKnx;M~LaQRF$v;NkJ=3ZsYT6=-&N+-J*)oB`+WkNvjaKm$9~TxnpX zpwNI#ky^nxhvdmkTwjnU%&<$IjrzU`4r+2Im%OvxdO)5SPv0j`?&|tGd15_q1rLxE zHyeme^{aWHb>xzYg2JHS9(iVmoU3@iZT?@MEXxAOwvnZZZCg;|nev zwLolgwSAZ1z*D0${(jMXuy=<5a5{*6e)%cNNe6B+fcb%$=<-5KOVB}!{us1aBkN2Pii@@8kT*xIxC@MH zUMEL`9IG}n<^#nV7YVEHe2}rg5_|T>U|zMD*>Pk%;N7v!2oj!h2wNQSf#hWLh7Tk! zq|n(?GJ|E%^5qBRjjn?uZJMp-XknhE2jWbd#D9(ov_HpZbh!u^g`3X-jZ((E=&K)? zE6tlH8P1iTIr7sVXWgJIxu+pO#>#aL^N=5)$N^MEb>;B2sIg#)2AE}T3Im>TF_@f& z;4&f#<>DME6n9)G9$9IuT-hZwiLSW2tw5nADH-vK`2|~Nx7~fQc=pNrEcxlh)4peQ z!55fMzCER&fqa{zbMHA-VlI?O3*?7k6y1DJ2X~MOE%Y5rvKF8^vYaRfgP_@fTbtzi zE!?9)^C*0P2PlndanC^yqEUB)II8EuU9`#$Nho2l{G1{`gYvT|CKoH~F%C;pKuQgi zQNx%T#20Z9wuD>Q00zq;U?7zkFqOa^R{{@H32wtWVI``U98l_MQZzzh&_ZAgT1#r| zkfPNz3F|^pOh7G19!;8L(g1=EQw5;#Zhf@^syyKeX%&ayUb>StUQG%g;)V0h&CG zfUzN)Tx};0?tvh+^blX3ir)Jn&DLuq)mid$CTxA=LvtEt7Sr;NL&E)AB*td>*+jI9 z{_*l1IJe3BR{1$se$I&-(}?jcQ!%4Zt|_6r)gZO!yEWC(!kjI4lF(;90gWoJN3o1H z+@t2U!sbZb>sL^t%Yrf~z>7IjU?oTFRhF60Vb;qr<7Jrb(#&)zpEU%tSweqB%R={p zh(jL65T%Sbx6yVfH4ci><5V`kYM4jQ>}(dx5e`;!Y%fd(F7s*#U@0r~QzEP%y;p8$ z1Oh2n`=JUboGwTwR#w=QD*u7f1&kEtGM}6E1^|Vk(kDcNCj*0^NLnj^kUE6!gwL*8 zI93M^dt(@=R|=rPF%Dvb;j}MHX9Estiy?m5WHb{TX7Q{Chhn%V`%?nW{I2NmKh0WJ zz`05$D3x0!Q;45kl@2-b0j|oebMVb+*#tV{3JqLyj;P2 z7M#IX?lk6m|A*gnGR((q4$>(Zjqo&{5KIbGC_vj2fKqP5ihI292V32DRyn$?%=V zk8~%^tineP8-b5dY6g7NuoC#FK`8JsL3l;*qsEb6V5dY9OuYarIRPZBsQSc*BRl~=II{0|SN11=wBCCUs&RWGM6D?|;6C+h>6Mf{Pt11F27yqw7 zWm3SS29-$xm0TKiJg7`^!a#7BoOEA6Enr7jO+cmGA;D4hPPK4cWL0B1Dj)1T8(BI7 zUmAD`{*$d@_E4It_mQE2N2aFH^CH_^CVvCT8qjfl@!;Bv$!7+nlzb3l0uD5y4kX#V$ zzpt$?P_y;yIa{T5CK)op9oKmvdg8vh{bVu&8A>MHW+13m4){PReONLB1NX!V##0vYA{ z)y9vtNAo{cn#(P#8I_&BHZjY#-=vx&dJQh&iBV!xH2JYpb7Z$b3KoF)5t4u4o|axN zccb5Z1w5K#&=_vM={HIn=S1JQXF!nm45%mV7qqTs8#D*-!h%pbS_3`7w!i_9cSc`( zI$N?{VzR~^XT2nP=|2ptB=)_#$gL(mUvG)G9Y`e}G@YNn&a=!*&GjNyWH;;8p47*I0`ts92 zC4l#uac1QD!fSzmUDKsd+zDZq0bFZph)W9As|Y@s1&*$^MguOr0OuA)$XGsx zDpyLL^T6ziT=xiMws(d{#ATO2b9|t&c6%gB5Hh$+-`Y z`^zOmot*1ts;{6AIX#^k51%D;(29QbK-a~qsZ~g^gxTj(0lh_R^I2Vs{lGnU3YrTX zQByn3Ing>(I;zyd=cF3BPLd%vo$xnS_=}sk3f~H!{dRNV(%hFaj#u#xzWmd>oajfN z9X+`H&~NSHdu<)*J$Cr5rzO(YT{{t7__6I7EPfA2j_g@D!ZrGwy%{|;LWWa3yEo*Tv2XCpZ?;@yCcuW-o^&Fffsm) z_KAn%yV0_Tf(m^?Edb4S^&Dd$w}7~l{O}Dqjr*9v+%UdF3lJ#%xD}I_Mu<*oE-8`d z$y#)#rxQgNrGbvlSe+D&qvT!zR-%77QG8kb5Z|tyq2#g=xwr=6gsA(drun4ZDl2PZ zx^kD^iNZ70@E4X;(JhfXu5?k=!)+J;S^<&o<6KrL}fbUj8Q09?Q&MpvV9&t@u1mg1^umd)< z)&w!7=KAHz=p_$dQ{wD!VYv@S3do<5`jg{cj3M(*boAkY6j}2z$yHI`SH5xnfgk97 zD0p?X$QxFYzU!=w|C4czvB#Ex6MEVhYBJn=17A$UNX})!B!PUS+U}MT;J(#mz7nxK z@S=0R+G%^yUw-w}q8IjVVb_#9&&I-Amy2mXO#h*;_BEyLbUMukfypAdp&=E0`>XRR zm``|N%N78oj{o?O*p{(1;DuQlaAUeJOj0M6f zi?5VZ#$nS;G0KtGJ!Vf>#BeG+`Z-Mke`_Nz@oq7;R;Z<1zBXVssS^yj>V|b&=&~V= zO-c2DA8Ll2Y&Qp4q_bPyPmVtIwM$!{c^oM!t3tDdoIyt%Eq(8}qcskMAm zdw=w$M=r^Rd`%G*pK>=IT=M7=I}HgY!|QfC2QUBnKiiGUSx*TZWxIOIM1vO%KGs>1 zqkcZz>^tsSaIgM6uZyK4yE@U1$ND=`j@+zcE{owpve@c$Lv+Vu{~6u(_@!9cSkWII z-&&EWEkw{Kjq#ZIj(u1<7jbCGEcUg>^wu(K?_BQ32=ltzkeF)_s0fqvs65d)KosG0 zT8Mar8$1b+?snzl*+^)VCQF#Icr_n<=ExG&k#W;w9^6+bZ;Q;M$Uvh=^zfqQ&+}k;<{8h`M7a)ymHgvm$T9*ex_T0h>VX@i zL#imdwY03*oTWTo9lkDI^4TnN%sihAoQAl%Ql)Bn;nXfJs+JOUp1OPltuHZ(<8*m2VFWupUEybsw9X;;<5T}}Uvf0B~1HDU3 z0H-KrO9$5?MyH7>7Hqgkj*IGxiH@F6#ZFMcI&$q}K}-dm+-BR3e*eTS=kSN4tG`jQ ze|YfrZ_Ib1&;IM8mpN;xmq*j(R^c#HSa^5%oK`3$Lv-@;iiAlJgB=g{OmGxrub`nY zOw*HSIK+j3j$K@E8M~6vdEaVp=ia8_ZS*P&B7{D3=`4Ub&Ymdth=aX~!M5Mm`#s)Zvk7x6(W}#B_x8I&$VHB|& ziI*pYu=vg@i^M6QhaO7YVHn=T%b;aZ;dFRo>=tXX>u_U?MRaQ;-`IWL=Id+@4^0`u zZ3t1y`Am`$i$$BTsZdQ+JVGS4;gjfL2zCQ8HIln22<4qSHi$qIb!b9|#`zM8(S!~a zFt*6buwAD6f;|MCugX>nU=N5F;)n*40=aLEDbGF^Lpv~yT#&-`!I%Ldn^kg^WiF~q zW4)J>FR#Fm$PW3Yx3Xatx*Sj40m5MrKMiB!f}FbnMDMBBgHw$dHtaz*J^lxM;P2}VQ%v(&=X zmTcO}@TVUM6q{&WEAHkWM+(0CyR+?7^qKGWo#|A0Lkxg)eahyu>xMzh30x*ZE>WXY zbO~(MZ-Fd;GUY_w-y6ys`y0uI?>Sujy&W!XioW>0SLJGKhyQ8cU&C~3#Jm#V(yoifZAw`8?|b6aL$Cu|PU9hb<2K`j}qr!qu@^vaQYjYu-8#RH5JdK4O+ z@`K(Ax6(@o=|Lr?B-lwIl<%k85%JjdgtoRwr)Hc?;zYS6;vqe~3b@?>{C#%#j~d{= zC+%b_j$CM`n7@EeYn`>qzBgbu_1>WQTD~8-UH2*$TVFUOw0a9`WWEvRU`k-DH`v5? z*f032VdwnlsUM8YRte(Xw3u2ERWx7M2F?1ToQ0Q3|4U%>;vWv!4;{Svhb?yFRMes8 z8#x2KJBsc)(v#eMXGggE&ge5oepeTome9{WSqpvg$u;&vk^j`G^hRbpO+vbY%O-?YwpVc!_@(^b^~E!$0%W z;aq_6TgbJY*uF%Ip6OcAPIj{K$>@M=;j{13wE!(K{dASZYEC++g;=OYna9I^?wp+Z z*XZhJdS|y4-heeB`TZiH;g{cl8{0&z1~HUsqAzmM1JBG~(4a-HNa-8~dJ}TYh*?IP z6EitYdE?B1vEfqlzx4-=)GuUAs{Dw)a15}`R;gG9!V`QUik^AtzrCqgq%wR*eI#h$ zqAue~M^FFTsdhT*_}NlAd(+Qe!teWkw!D)w@v31HKaHETp^mnw^G&ujlvkKi`Boy zYD8XFDR;>)X7_Ob1O2`32sz3j2T`FRYdkF($D><*F}t&HJQ-NAGpVMd$9^HK{LC+U zN_?oq!n{UQdlO@H5bs{lChu)g-!I!{%Q=jx6?+Sxkx3>z#+FLf439u!a;+%wUh>P; z70n+QMCqHmWSG%cBS0SE3Hp(*{Bl@KrblzwFG&nXCG~722qhtVZh#w1d616r@-oZD zKJy29Tt-_S)(}p^3*yY67o1i>WjupmSjI?48&+!(qL9)ZA#s(gavwA7q#A_&AdbnDp^VhT6iYO?lf528qkIF0Dc94s< z|9XJ%H~;#`ylsMe1x@MuYUGY(m6TpgG6av=Iuum8HQIG_nVpM1akPiu@ON#|&yQwX zvHowA9NnM+-Vx}MjncoFYiFayzgfWV%YHMT-(A0XRRtRGNfh8Q`SK{RSK;$*SWq=r zxbx_gLw*g;TDEXGgM*S>qq_#ZNt;zHbybF5Mi9`?sCM6oP~_4e?P_F_&1n~~7si)R zP7L_WZN z_}R$*U1<)5h&d)}Zz&6+OCbrlV>iv^id*FeC*PKXDX7vj-kLp%&uF>Ac>ceA0| z2YgR~8@uG5r|k1araZc$aJaD+; z|NUY%iutTb%Qz;Ibp5fuZPCrY@2y};C8r*db;(KAY&Oaelo|4+f;3lUqJ8Gjm&ZpB z<$OjGTh)oMX@t-BvDe4fghql!tb^o6`6ZmGl8?XkVXT@Joi$nVBumO#HO~If1Y!s! z!IA52Z4}Wo$@dZyVGpO=#F|TLyJno&*bq*tM!v&`42d@UVX#*`$dvuTajKFwIVQ$~ z3_0eaTmGObECFQFO;56@qpCPFh;7WCa8pc{E4LVp?c;pakg=PSJ3!f-lZ?8_qtnz< zDoA9xf}2k@5HlIB3HgjlcqYes8pZ(^2_jO0Jx<;_bs`)bFHKBvuulvYvwlJVEocq< zNw#{nJ=;;iK125vy_EGcGK{BgMxk&NjRMR=AJDm2pZ3)=2kayPT56d9ky;E`I7*7u zQQsm49=32hVI^mrPEGC1PsoWuncQR)T>YQD9H;Om&9K+Zaiot^2{Le+q!aX8Q3%G) zBMX`a;UjNcH42N8C70RkoPZOBjSer-T$Cuh*TyoWNypbOa{H5}t4xsLl&*>4@b)lQ zkxnm!$!&CYBXg(li!i+^2oL`qC%A-r7$xnnkmh6tnT~_^VRXF0bh@rnX<=4*ZHNa@ z35L^svR|^9fbB%uh3=IB7lFy84|H>-6tF8F_m?y>Ttmj+wZ=<~FPID?PZ^2m^Q3cI z#`&ts1eSH2u9QofB?swt;P6&Hl%pk&v^5KNb8%=p=^zg0-Xsx|37>2fLlcvT1@hKX zC1|hl5%Ufdl7wP0&9NLAggFM`#58|DW17M`1l56@S_Jx-?7#uk0kMZLmpU*!I2?!u zV@52%HnEU{F%Nb(60O@rJC50+hyOTtDZ~-^NhRe*Ph7EFB?p-_2o_;W%RRIXuv<%{ zo_mLn3WdpxI?{v-E_gD)fZrsS#i(O7ZKTofLT@0Y`hi|a->u<34Mtg){UpMKKUsYFMg z?{<#ML)mbSfyxGxG;#ud9BQ#g{PxWAM0N33GU-ZE>&V1YEs+K>R{VvLCV%M zx(>q8a|~KgT?gHkx97hy7HMeKupkTXV!yyc_Xz0$w4;p)*S2koo|1ieQDvipLGQ2M z&|agl{=St%iED+Qy|+WwCYf*^aR7F>%^*V_JoxE=^!zD%=}ATFO7GuRf*wcyN8c8T_3nw#o^+95$$w_z1^&g z+~KKbt*cRVIK!)N6t$Z1Cl}FvXisSDZ1>gnkA^zO?-HGy00zWXvB zqOUHTFP{%uS}v>z-|;NtX7pZiNpdx$4izKJ8z>YHE5{L98kvX#NL#s{+AO(om-2SW zZBogwuQ5ki&3po3-`$>lv-c_2&g@&2uoon} zwN!N9YZCT39XB}AV`%R=`()8&q7_UQ-nH-HgniAvjY+$2-)ochNcRnn98Q-LeX?`z z${E%di3V{0KkR!rX)npKsVqAz*8PRzhT8%v?}PB z3S3uCcc3*Fp&~0jPb!N5O39&ByRZ$9+wnjZR@hc3?PC|~zdBwlo4X8L_7y3Ip~A>u z-rM)poISVlCv$X8Y7j!T(VgRE%FV4iaT+M(plzmLa&QA2vKlcv9+HJ(eu9jnJ9Q>) zIKw|KDDW|F+0!)NiO98TIv1{xN)0Ztih6HlP@-ZFi@Id7D4Io#Tj68I%}FD)0=yqy zT;6wn#=fMRhM+y$BzIv*r=i_oDQAxqzUu5#O-^y&lNoz%@qMQ#S1Yqzt>w?%ZQJ&~ zQr1=r7zKp^pV~sE0pE7k%71#-U)iEZL{B0oVcf#feXq~jXK-*=ceGa+Ku1i01aKMn zz6Z1RJ{qB%^A-DgFP5M4O4O;+gw9bpH;Bg#yN0b7nfD9j{eqLn5#@tMHIr zWyl*1L*D*DZaeX4zU-(NM^m)q~(_jHqeC69{=w$I}&1-qB9 z+Y9!Kc>8(5o^7jrP0jYj87a$Q<7?Bt$!5;2NH0{b+_LYkX8R>3EH7ctHQV!QVGCO9 z9VV<(!lIVCum@Z0W0i_yU+cRR<@v5oWA9s6v;+H3`~G36 zJ!{_$MSEEj+yyU&hyOp?-UQCBs>=62``mkLy0@xs%~O&(_g02V$i$3EAUP$O2oOX> zoW+@{G?EbF1l+QT7+a7qxoN~UC<+Q`Y0-}Dv+X#v@*HEg?b8+&UxT3Sdt!r6`?Zk& z_qX=BH6%gp_vt@;Qs>-r_St*wz1OtYT6^t}_b8Lc%l(7hZqD)V2vf4RJ|zQyl*Z{D zKj=tr>>^b-8XS!4dbvq{iS(=c)~Ug zy(7SZ^u;P7Qz@I}v6M>erEg`_^M115b=UAp;X|s#w#l2@Jb0OhYAF?OhL7W{!D)lX z+n%5bs%i|MRE4GjPNL?5y*uIkjq-i5+}N>0Ssxi#oYFIDB6{-Zn#lC>2dYZ*Q?;?D zsS)6)*KJ`DjKHIjxZVi$V}Lt0a4c{Dt}y_|Q81`s%f02M(0@pU=uh1$gs!gq|?>ZN*ia_z-R~%8`35fw^7cTjWG1Sg6?f$ivL10GnKsiASHax{k=${kpw@^naO(x9Pc zaIn&Y0QLmeodDE5b1ox#1|SQ<9Vnz$56fy<645nN(wfMxUo0b>z%%{HZ$l;Kik}jT z05>=){r#L~S2OKUuUcTSh#9_-SvF>t?P09sfCL>iDpm#z=DtORTC564a4m8-Ar3nhC5 zQ{`#`k&^+L+X*ep7(eQ6*hRG51rp^NO&(y(X((TyWKxRn$l%~!NA`$q)48OX{3r%N zXv~!Bm|0_t+L%EGBUi5w&RxEML5hnOdk3ee51Ng+O?HFQOT>7Brr_coeP{3)NJhr+ zN04I|p2J#EWygt@4t`dfAe-|R3n9qc z_99K?Ld~leIKnp?5;%FbkXriUQyBb-LXmc@i^dN(EyhX~@_f@s0ky2)1$Cc!K?!xH zf-tx_cFcoyJ9qdkbKTAhvYBG&)SX%W;JmFNG;>iRxsem9fI!K6 zeQBOcYMGqgo5^X0wl1fos`BHW8~f7x_;)`cp1*U&p&50g`*?mA|Mv0jX;(Dm_D4O0Y(3n>*EtTXqFV-Y?WZ`$P%ph zZr?KOR=d~w4a4rlu7^+z%Jb<&RQ>_z$!*@>H0(}cFMSeEB)QH0(6FmkcA_D~G>Jlc znU*C&nq2v#4qd_GPGf)QGjU(Kl~*EQl*AN;Iqf6pK3Wl3UQpb(DC_ba02 zZCZq&+_8cw{znc$_$P@wExzLhe|O?u$*wqA%#?&ZC*S7Y8~k9!4f<0m?#hOT?`HRE zhyBW`Ta`W?yH;rllW2Ij(bJp)F0>$swIHCp z2u%7vYlBKD4e@Qn_41HK0`L8Ys_xb9ao;%N{<-79*4!NY&4sI|@rj5Uz1!)A&J>AT zY6;r4Oc2Tg5l!Wu0Eg&0C+@=iu}&L>i1tnR$!`UPZt<_#=}xJAkpm-+rw7E`g}ZB$ z;oX&Ce$QM~H$70PBu$^FR7r4O8Bu*15r7;mL>`bkr3G|l6I=^ZPgWI-6fea+!sQ|y zfLt!9bn9{+iFdec!*9#w4V9DobbSr`hPb@4eiB_$3TdxeWK=pE%ENTOi3@vY&ZO~X zzx4_?GJ*}Ml7m+_@UM}7O$Jkw2$L*6^x(FC^S55%p3^2y*35t?FT$RG^ABC&*0((I zt4K4jE$R2~zrr2gsuRX=I~gF8H?MFF{-e9x^2Iozr(3}`DfX5%#xgpO z-CsH{?Y;L+Zr)ULgVvlL`Lo_cEcg@t@Gdtz)smR{K|NZqC^vJk>%9;c#`$FR23Y;^ zZ*l{@_1+9-{h59@QtGC3y=S3xyONmjK zQp^$m@n*NE`ungCFA`pHf96}$w;ze;KwOzt(-R!S?i(5K|&a+DfbTaX@+Np8| zJ$n=a0Ju)tp|J{2>tM2-q#->J1_Xk5!2kR$ZgiRCbvtHJC6;q%a}^s2U^kKxE~%za z&%`H^89U%_=U-aI4?NMAMioo{v3B}kH_3G9L(!7u(HV-XY6 zW7nc=aIniK{K2=n<3xJDkG6f=+uVGp_r$lkQ;K!!CEJo;QFFazO(TgmwV~n@&|ks7 z?`>|(-GAUmZ*#wk{l8r8I>h0c{F7J1nC+Wo-OAj=VC1F-BgbG|R&(d)yKX9<>$hL( z2K=t6fo=={2cZcINvw$Pp7?^)TkvoISzbITcjUeaZx8v0dD}47zbEP0?JG;%xuq$#7^l1a+m^V~ z+aCyXUFE!7=KFyE$`Tuzmg8J=JiGYtGWS1g7uix(62VL~x*!cvB+yL|Wt(K|M<$(X z$6+KUrZ6Gty$P+e^gh;m#VZ>H5I(^v*~PVb&&rp$q|7d~P2LUyMhbsoZ%jC}Mcc;h zS1=>_-OJsAURm}a&op8+{nSl;3Q#3;-`)2tce$|EpI`flbIrBfx_BLZoV3)f#_kmi zkdkVPXBPiMCd3edL^K0ChXV6VLSiGKrX53v_GA*P0OIH23MJ{Q^0mp1mAh0somwD{ z;VY^wmlO63yJ~$!a8&WAa5+XedYL{FU21VBSo>$cEHaYKo2VC=EQ2l~2qNu*oN-WJ zNU17}j*8fwkXd+`{h<@wr%s>R%kp&C%ksM@{p>$$n@W{QBVvdEapWO}HfEr9`F0ye zHzB|0Q1RFP3n#kMTOP(*$y!LtOY=$Yd1xswImvCo&it{H+(_G#vrU&jILTc*^xrOt zSJVnuGqR=_bxS*Ox_{|bf91(;uIjVjqxg&PG@LWE)!%!vTTC+W(r6Tt&@Ez%D=M^^ z(UFay0cU~|a}jYCo>hy8X7BD(<$Cv>dZGKWo7|rIlSk|;!n_Ys*=Ord@2cNCV(ssJ%#B-jlkN(xg?3Xs z83^g0DF_S1gSF)N%5u_KR|!CpiNXvvr7A&t`yRs(H{OQma!B*iK;mmcrW2^h#kbfiCS~zCiz3EAz?i!U3r!ArKy`)nt;dnmyzdF)=zwF>hwyf5X zBWfl6d(vkR_soR2KOLEZxFf5S3j5Q^UlHc_Z)CO%74{JNr=2~F1Dr*lbfIiMvF5}cjHA)(S@n$bMrFsch~RxJ%}#vFm* zfN_+Dl2Z9YF?(y(FE+i?*BqV@<@^rCD?MXTWi_nl;G@KrN9icXp}}SB>mDK*l2TR4 zq7a5P+3HWEA~Uh_x${Gm+&*)Mb&j?w6T?KmraZd497Ut$*hW3GxShkH^aUf zNfB5iVu0@S7>szYl9C7#)Yqx6L}9>>s-$F|kit+a5v`=TDRGjyrT$DWOS<%?E4>?& zY0OFnt$zQQ#Y*o=TgLZaTU|Yt+jDiY`bt_4xiB=_4ZB!Ok|<+WV6t?HQQ1yk+(cV0 zaxsD3YMH9FG?2c~4p`tH4_9OlF*Rv#u{~oTtRRSmLZ$PPV#Is+ADC1tl}5#}TGE3z zO{qT1S}kiYoNiByaPGucs_XiBa>((k+r?2-tgK-`@EF#TFfenttg!)Pfcqq3G^A^i z)d};($a3TYuA(M>uh#X&LuV*`NPE$cfMq-^?$foTB=!csg=b27!OwJ$SOhP_a|D)f zl&24Y@jd(f*UoUqzijnbWlysD9b@16?mvF+AHH($_s6bgjOW^;e}D3azxwn4^XK>W z>QSOccV~50iQAJ(yB&zLTg?E9LZu%O7miNOYFIl6ebVeE3n5Ir{Q(QO^2P;$I+V z864^x`}dz8I`r6ozw?owpxE3aaU>04pWRIL{?y!U_Tan!`ltW<=TE=u*AG)&&qI*%5b`^VpY{~+^Sv76bsKI^rw|IfjopX zJcKlCL))RJ4?gPT!Yp6N?n>$_8z_fmK}Tz(%3gb*-qh<&hDF^#vAvoY&^Z?YFSCW{ zW+GpuIF!D$z^0=#$IuKLAxby%Ur*g!*Y1CwxCEA@9+4cFT%gm(tE%BHrvd zJL_8stZ#xt>UCOBT^RC|RIQZu?!ucu_B#@-SLY{vFd6^_1{9$64AI-=qJW!Kx^n9v z_G>0#MdCml9Mfexjg$Z&2@!HsD{Dh%`djo(8ljdFgwW1fj6(1-(2+sIGl;^?)M2kE z!5q^%=~As7hXgW^A&c3mbg(+?TH)de0v>@txx!hCEI>(5IyMu=!?lJ6q4?T4x|B%= znRF3phq<{#;KJ$%+|h!JgevrqJZbavi_J`Pjw+`!s_mTusIreL<&rBXQ^rJg=8Rg$ zaHpok6KR+uhABN~OES;=x@v{wUsJVrWKb|GI=Dxn6RMqCP>tG)vM2Gq!efv8cHUGE zI66kfse?Osb4edEPb6ntD~;vIFQFH+xN>FASqSl^XefNitV^Lv6Fv3o&UABX^rTze z>EAe16qPd2W>;53)GpnbT;S!qW2ux=lR4wfT^6)EUGgK86cb2Me6_n_Hf|`{@;#`G zbjh$|gJv=`aZeod2=PbNfF87&iS95M2+n4@Cz3Ld6dT3GTAAsYoX*ja)LCCK1 zAK8nKWM7kYRyCl>V^_M5g;J-sV|Af#s?w7T)ESkA6;yiY-)B@hv(Eb5z`_s* zEP1AsIa|OZNj0!-9Ozg{l5UyxKEpG}AUaFCyy4k=!$=OmWu_!+udMS)nm@ZPnK6(w zT_DdogVh9Tu?2?VmtjI?y;lB};lr@GUCgYwDU)m`dDYV1En-v5Y-TeTQ$s5Sj|5o# zUegUIJJW7(19;UCSXc!azm5u&42@S7P(M#0o$<;NFfI|07-Xy(vq4nms{pI1%5l2U z;_DP0PYx@viB4Jak5^7&)%!`V3kA8L4vWKu+~79jYwl{T&b%6o%efeiJ|Ms{d@VpZC>&=K0ybzA}gAducw@ zJFmO|B4!o7^jwpJOxQl(x7D@RR*#kU+|40M*!x8Qbj#`QeTr%t$E;ReV+B@Nfg!!R z#|qpvRp4|*hC<_OxH4|1TX}-f2{ebU2vy)Ac#sZ+{d{d{qFSzVWX7rvte{I^2brhI zWeQ8WPHq}r?{VyTNF&mzvb0lD)pm@(9mza@{MoK&byhNzE2&&NvcK!3$f&w_=NPyRttUWdUw2%cbOPX^nT+kF>?Em^~x8%iwzP0}Bg7FMC z+8pL60T>G`2ZJdseA43KWI$0`BLTwmg<>t1gAS83NUAp~0UIj%pS{G*^=r>@4efVB zBWq~(ca7I5PR_4B+s!?B1zlpN7Zle8ex}_D`mot7FCb5m7CCpraRqJm8GY&U`_6H5 z^CdJ1|M_!VPYv4z7{xF=sIIQQyE>Hi??QVcVCms3*wjX+I*&oLK~nQN1|KfDh+_L}rGw1ciKY;hUal8Yg2Gu{(K1}r>SI3S8H5yuo!6b;nk-5|>v z|MYq8xDojCkWK>We-=6zNLKsjKF=MON6ric%mCQ66%#ODmQLXr z%xebb_Y3pwV}iIag}|cPk~uT$Q4O;{ypJFXVSZO~@)YKub|mH-YFr1`uUFb0D)sBm zcPA(ZBUvUu?|B+1i0(Pb5@|^+G7yX`sCdLC?-l;`^WDjFmmn06OXioq=_>s~lM=7R zFJT_?vb+zkTQL<$yJZ=$IBL>?KXcNKO<;A0O1Jyk3*EX> zJBw>A2wgVzRO=2a_jxp7r2gEnbS8| zj-H%w=4qF4mU*HeP8dvVL)<(i-mfzjhMRLwWj<7_b8nJ}!@y`Jur}CH5A?Y|Nyx&I zqw`XywvRt>UA0zT!u$oOuf*d3l%$A zfNld5kzy0h!dn^cum_C-+XDE(D55Lm$dVzv@DF)yCd{ zGIOR;rdKG_drXuWfaC&Ba5sfAB43}r(Dk}r|4+|%3%M9d^iHEhuc5>|<+#L)a14~_ z1tt7#7r2r2B#qQ`_QEq}%{mWe&pHQIso22OtWTHdeeVn0)|%chVP<%zOI>KQ%sLxE zW#UH{o1Rk`#MfPg&0VJ6E=gL^NNm`(3M;V!mgH$KFGAL82Zbz9Wsyr=0X?S9d8VYH zG&)l{2aK;~YNsu(d4olsxFl|*cAEYvwR5J{>2H0JTYt{9+9=WZpHLNtBnOvB4jzXb zY&TWgcWiY%=LgMj;UCfrms){-vCw;HTj`JMs^gKGq5t+4*X{3nvFl$wmjQ!EAt}M5 zAjs-^pXq76NHSbJq$fdA_D;z&ed7CK>j;Pwu5wUrJ^d=7Lf)YBMDGm)(#9;^G z@I^0m$JM0iN-cagaTtJ^Rto`G@YZz_exhHS-n>v62^^A<2@8;*oS`UoJ&U-U%b_+$ z$jh#y<)wYSa9Xr2q>EFUB2@%=IrZUvfHS2QmejJXMP>>|maz32{3$PE5EzwBVM!@) zzV7(MWY&P#B1|2;l7KYM*)J~1@s@Qi*|s>xv7W5DK#1Hrxh*&=ks)CH9k}EG@^n5z zuP#p^ZkPe3x-u5ij>$C0I(U0)+5smCZ_B4fn9cOE|J10TS7awa7K&5jq?ITl#?Z{Q zVpo*rjqWI|bMm-LRD<1(h8p+)9hdLuA`W!1tWq+b@n!a^BFeGOp$>~Lmy-G6j%8)P zSkN5)uS<0Dm>7H3I({-)oe;P-Cx{&_$h*X~_rAg{Sudy8e}-$Tl_0BUaBYA16>jSb41gj_V|lxi z1cv>t+GbMAR1#zdA&YG3?eKOX6V^2%_@;R~q|0X_8y5Z8%P}~cLm*iR@88l&Xoz&{zSdaYjBZ@i zedR@ib?*l5iV|&vq8#i^J2;AR9Ju?}@^!E$m@k%r86}b~$x|R$8^kW~^&wP7@f68< z)D7UA&ci;-q$D?vIWLmIQ5}GzEw`=duvxCPPeO-+OAEl-B}i0=B0;^9X;G+|U$!n8 zR3R+6O~pKLD^L{h4z|gG#d36zsk*RM0GJ!;9I>Q4s!%U?wf6)TXa zz&a~{Pl6em5G62#I25>(*3c?pL`#cvNo9>L{gu;oDOb+WrKz$yw~o-AsDFkBFj;fu z*zmi?-g)cCKYrU^|LA>xQM;N?DN~+V=JX@VP>4e~px>E=&N!mb)wD{PXl9w!N0s4N z5K$)mIY)RkDEBB`O-?^GNB@&E#AXKNbY@oRsn&XfwJ;II{{xfA&uJcWZ^2u!&!S?vKl0*PTcoA8FawKb|D&=VQ$4#xKGxK&FmrI z8U96Kqox+L8ysC1Z^FXHu3-i>lD|~R%rwqedm7(mLtQ<6%)RSM-S$_{7%PR_q`G#j zliSn%w_f8;Vo_|DGs0!9E+;OQP}WytfB&uTf8tk~%qeEM_mea5u2ojcL4(8AT!(nI zr(4DG{*JNYY{alAfO-IiLI_yI{%1VO8+A$@!>Sq5;c=KcMXFU81}tbRO8;^hJo%$Q ztt$S!6B!OZ30};0X%f}s1aKVACRMVe7z#?CNT>w8-bD^g>^+N-6mr1@ZyfPF3`%F_ z4kxq>St3h2VQaOpZji3pxmeL`LNBktQRAG!Wm19U-5kB^ zPKc@D9l?XinA zD!1Hcn-ex%38eC05;-Bova+g}tSYj%UilPgj9wGu`POj-dFH}EjuKnW?mdD$4}5go zt#m__Io3{Ya(Mp4KQ-ZQA!;~nyxd>E%?&cH_iS@j_rQU#Z6ky_|NT5W4LaWFdZ~N6 zU-U*-8DhgrE^K%K6H%YiW~}feXxUzE_pg4VJKnYXTi@v3KgdQGbd4N4Un*_76f5j2 zV7p7D)xY>M+@G2_ZLb&lA#uT#+-O7$|7fJs-*slh&m3g)hl@S_hl;7L{YMreQR)MEoRHXiXHAaPM7BYI0ZAye@_V|r){#$Ki3_2^A5Mfwe2NU zVTGMrdU(fm{{G9|y4p9F#KUaJ0W0$Rla~ES^ZqL@fT={~jg>r|AgmgQAkgwvVmeXE zGAv5-QmffE!BU<_=;EIxS2et$l7me>fhN{3K9%nNjgALj4<<5aA_3bJTB1UQgMoNG z6ScIoxf%^ssKl>-Ghv#C zjaJPwGM}Q!HsE8+;sS6aNfxtxVt_jiHel^|93Re2;tH_wc_Ep*G4IcP)Xi~A{KTV3 zkZ*rLrvcMX)Ekt(g^Kng9|)TPw}gl0e(Iu+D<`Vm*2Sq$l6E|aj0%^S^;$iAqD8!$ zJ=4`@UAn8xF8isgjXQRHUi6?`ye*36VZYFrfBI23^0LO&PHCaIbF&zkzv`!C5#eE5+DJl`s8A?4 zR0SS1rQO;**lt?~yJ;}(E`KwIg(<@duPcqzmP;GaA=7R|USrDXI}SY~?Xq88d`-!z z&oOX*oirRY3Uej~gV`@%s6KTkZ{YWw>^A|xdflDqL6Ik_=oM8474M;!d zXFuEE+prRyc#B~#$CR=zRJ0a8+ntPbx4-H!H`*i*E=J`>zyC4USD_{Lb1{XeTfIyn z8ohRovu#a=Y68IgqmQ|T=azF}{Q6Q$0@{)2{Gjv+b_7WT+FqbydgD{kI0&OXHEXbd z71Nut2kg~bXAf=;5B%20*~&|zrP}4Eklnk3AVyM)>BmZZyBzA3?hOSec0#gIrH#Ij zF$##J8!wJJwKBB3K~{z;z(0Jb3Qn1X0+gY~x^J)PH_>EGuwb=;p4mcPOQPu( zj4tYJ%;_Ss*5E8+_Gn{xIcdr7|Ct-AH4;apq-XOuAN*<^YxyGi^f8a@!)Mo#=Ctc+N?U4)M%M6@>PZUu4M9x5Ng3AGN#KpRkJr?tu z-4kiKEu88H1b#aWbkAxy4B1rECqLz?wU)8wQxVN#4s1_V@-yOd=0}W*;5Xhzw?zm7 z3qt5f*Nhu`X7`u@T_wnheOa=Ku=b0p6#>c}LG@B!BQye3fr*`*eN@e{G)(54D~*Q| zO-ZFjW`KmJSQF|`OZpBewh0~{9u9NYkrHyyWCW9A16hfMZ!Rfv*JO7k?qqsBukYmeZ8xGbHY9$^1@?W?WBkdAzxiDe$33Mjwn-VeR$gK!blJwqR z{DkW{M!|;J1+NJOTc&ID5C78j#qWI93V?cMOV>SXL139#@TO-i7|$+vM<`h91yx&(vHl?gazzfLLrySnXp(^i<(F-(Y>M0B3($S;m%Qd3v`plv}*$i+z3w4eFyig zj$Z|$uKC?A`5ha1EAxxge?}A$i80NqZ*wV>Ho9UGhX~%_52*LmTvW$N!jbq-D?e=99eEQCxsMGX-thPr21iu{&131V>24g>=eL6m9XXirb5<4F*T zTA%b}c4@nlH`AaZmRyzwsW|KY4X+6r4KgAFn4K-C$}OllGXaLd!2GGMNrKbvB8kme z6Q|`%Ha+4&Q;|+0H?xpP6(M@4vJ@oehPt$Ps3Cxf&6vjVK%^2|^{=4JqXz^*Drq%6 z7TJTWCW(j{(xM~*&l-wZL9R))CR>i7S&h|EMuQfXL?mDXYSaw)!{F5EGzS|9B%0|; zN}3Gz(tGH30)iFTVhdrrcD)nUXVb!fdJ4#>2;DG}v81^;pF26f;+)3PaN(*qrl zgsE&iUJ{vQxWw@QH>OIIf+|q}GWB*T%5Ba{@qWp0H5lD;)}za!RTk=v9!)? zvU5!mUb$qc+$z(fBP_((sR;@C3Z4;^-FTgz^AE!n@`=?0^%LnoRX?kU+L4NF#(5(Y zLV+!(#SE}a6`2-E=$?a#>`2|r2@6WGfS@O;L7X_7X4Nobnqjvy=h=E9h-n&_ z+k+ww%)(=%ZLNH$K)QHcQJxkSb>y1WYMA6B+O0QR3;1R2nyQz@6q;aTM`HSQ(i0%e zph{dlv@Kn)H-N&O9jQlPYow!+*_?&yJVV_ZG=-b)dB%m&p)*plsdVh!=?6d~AK;L7FR{x4sn? zfTdur!~_Ylm>O9R#Gy%;1l}*ehKRL5T(g-8YEI@$N-G6+1-1n@S5kJ=_)smWLvaUT zcF`w6SgUm!1Zy%FIASXRM0z0FZ%B@#by*~|#6mk!OW+;tqE~6xc-vzX#SMA>=m;+q{Gj0VJ7BtJ$rD z8fkE3eV3t4kzT|o;F5*YsvD`yVI5PPY+#=~ zB&n?F3b{X~kg|tmHQ}g#wyJW|rJlWztbtQNr8$6%l@X#egx+)v@G#}gC{Eg-W0q=~ zRZ5u-j!{*^A5%yc*J<#MQBzGLTlzz#RH$=Sp+DHuu35$D>9P92{Qm*?)N=oo$97wNq?{)FMLkGV9PJ(CMQwN^hLYGYT0NWa*oV? zuHx6d+m*LuO{lXrkWR&fO~r%qc<9Cp-7ns}3{qyl;?MK2boopDAg zk(cmW5Hpdn3OFz*?AmdRWT#e;MC~d#eb((U3i_T~-8KGSZYA06YQ#aX5i7|y{wCHh zELYN}9_gTWA`BWPNUtOmO7$8~4w6x52&NAH2=&TUpKP;Y5lW0}4S3KvYF?r&n%A z-@&=a($mI?LFVwtCjXv4cY_T%p3hDEr_P91twl!>x`)HcO3;$yI5JWlICMyDfJEk4 z1(@)4m*@O4onh7|%QD6uzvy;%vb)v4>~?otyyt!X&u(`sX4HRtP1@DktwY6XZvUQY zvvxG(q*67%wc50&(oEO^>#Dm=RT3*u(=tfPeI<~p1?kbT`dlf$;!pFd|jbl_({>%6NLulm2IS zxqa?~{?9(_{-o`L*aurHEdW$}n=AN^kGN64`Xg>$E-ru6zx*R^CI0I+PWW)WtO6KD zVtCRBB}@ki5G?Kd`VY7f_W^&&2iz-q0|tg7OtIk>2_SzIip2Ze3;H1|S6;$uj#!YH zxBiNKZUq$l;eBqi`-=bNK6ek7+wOE%_kM+zg``dNE7Q}P%J26}Kj?nB^n5&|>1pJs z=kgGSaa~zu*!3=5_5NYgYMTyR{}K1P*gfo@y2o9XdyUKc*MHQF_!~az*7{F<%xzhG zK4bKVRT4>N>gOC)gZ69-+ z{ph{!CGIZ2`(9@GN&n${-5$TVD$i@|W(#?!Wu*{3WRIPrmSRx7GdBzu@EU&Sg)FRmTuBW;4kDli{dmIB&jw?6YmH zBaIzz{J{P0yw>}_9FBuVIH#ZVyY6?Ntv$9Z9x~rMHHFp1F}?4Elh5+L7q+CQCy|nW zDK}7}Sa2;I=tIP+B|Vh+;up&7%Gu2v>X>=rVWp%&*C}D5o{n0&w`E+;XYO^`LqbZu z+MQh|b=|}M%RXv)7z3{ICv>E{TNtUVigc16Pzm+X2htGWk}@ZM8x_Xi)9x7L5)^4y zVpH36$jXEEJK=P*Q{wM%pK^pP#8QS>zVScEVJj`hehN%Fs5g>tk@n~Y{=}iJx_1+t zLVuV<2P#GEj`r#h$WvWZ=?~(2aJ~S;{XhMVv?a_lE9_dZf%IeaVGX!H>EC~Kb+NY6 zQ5(S&5=wLo1Xo|8P@khdw8&)f-D0v5MRp3i+DKx7VNWyG0Z*rCSVz1eC6^i8;2c;X z5q`WtLQzi4lGW37y~$Q7nb}v3e>2?Jm&mK*&)cX zLx7+R5OOQ?xqzcjOd0jGj9W`dk3Itzj0ZCt33pg}XLyA(er73T1pgcor|`YPzXn71 z4QUjJuW|npR}K7UT^RWmo5?wn1)sD$3EX^|NzZ0)tS~)!3Yz#MCa?C#&)y@^(bMK7DcH(f4n;=ZJ#$f;`^Yz3RB3dFPRo+AAQNiIB?ZjhP*zDny?g0 zkh;!e?za*xqlY2w2MHv@Op@6^GxUs7W-2oeJyY4ktCtcgqpChD;Wo}(VtlX$ zlP>#moHB~}%@ANpBDJMxTAvmTvk!>rYSt9W;|>N}btzZh@z-oQ{Tfi>N>k>-bh3$v zMr}X(Aow)Q^+&jPMgcsM9g}N2fc8SEM7HZFDbB5}494ri|GbKlMWoWAoKBshorm0n zE@B`G`6o5wPICfh+yv3viuP%O7d67JP#e{>lk^>_o)*fV74OHsxkyocb4Wr#w02YI z1GW_4A?t_5Qu^`znd_^FeRrs32tf) zIV-}MwW_wP)1fwM4x?{%vV5%983jTEZ>C6%J0mp!R)5+>wc6#H)(UT|Fp$Lm!hFUn z=#Vq4J$7@!fhup? z+n>p;uDNVXj)EVgnItw*XR!(5WRCRJ49WnzKo@Ha^QEI*gPh)U+0*1~nyT3T@#PVXwM~CX<3CT=nyliT_}t6y!9%hv%4u9>kARzK2(|awrAy@m zeH_;+ZLW%5#Isy_ke^jW&sDotMHeQW%K0yf%cT#7g4Kal(Tnx@YWGr}eknX99?yna z*{m=d)&_(M#7PlSRUKRvy)fL*skW?&E=n6PgAb)es8XgF9fmAJU}akcq_!jrY=F@B z^No0p{ld#t#PL1)cm418WPT!-lhU( zXsU*27-Jo5je&~^86GcRpQQznPaVlopf~JA7?K(~yNrd zQTtj{{+O%GgNLB4)&DZ&1s=B*8VHKZvmRhACpaf)N-&aHKWQ&A+%AcCfEtP{2^^g- zXCV>do&7b(#G@7kSkw%~=V^xH`VrToT#vu1C7GMd zTNU9-Q9K0JdB)oCgn;dS;RA=&C6sI8!k~^;2WzV$jN$qbRT;Vl-7{s?$|?rb?n_l_ z%u~Nk3~13`LyK;q1vz9CE`)Lh3RJcwLyDXjpez`j6Gn%5C+Er(G6U?(c?=N3&CZ%m zKHz+qi}XV{$P3{hs3s=n-xOCW5oaI3UlC z*%(&qEfH_=ho%=?+nw$`+%`IW{np@_+LH9Z+m?3Ur z+yJmCsrB2u$~()vgLXy$5mo(+`|C69uSd3*esBx=uYlyVG|s<( z65_(+3Zl$GAq+z9>>U_qU;xBt;*_Esq)M7WO-K)fg(=h6h42kdY5b$wBiyt5e(^cz z%&@H|nYS$&5Vmy%{y78N*hD>rZH&B~>vs=UA8x&tPd>s^%aheokJ}vNts+dnR z&n2SxYPKw;gHwE^ipZ=1HB>Y$DW^t@$Bb1{<OYw~Ja;Sy_Gadqi zWuPbG1Ap|kip*3E+bV-JF~TUtPAAZ3GYx(%23|L!g6%fJw+bS}3!RKHQiK1<(bsPnEQBuPv zp-+M*>PQge{G0~CA_JOeNdTxZ+~pQNN4%SwOxT+n;sZEHL&&Ku=M|+IV0YlKmgmDj z!MO)8`V5GK6AWJbRkyqrpqsWS9tnv|dPhLgI0F*7{}sqL3z8hPG#iq^S&+#4pTU8n z909{}$(O(8Dn~&BbolwTr4?e+Cd*SJ(&N~cOmp)yyAu#{=H^!}^njm6bZnoKZ~nOz9)rv+1VpFk(|2&i6=}zc zlf*Sg&p9F6CZ3F^c!Ro?i8Kd65A!ukL5({{V$Dm10NCKT=TvGH3@>@WoJz4AC19n- zEse6#8dNS+RDD9Vg(L~pk~d;jwWO&rf>5=C+*5F>TF_d1CA6O^s*F%ePckB@Jt7KI z>|S>=GM*Gn)Ek*K<}iCTCW9&j$1q*p2!nw8Kp5cik+`5!yQ#04Hil?}&WP}YljPja zjYFH{qZzoX-Y`!|JjDvb&=PD3ZJYg-Y7?n?qz9 zS;Qg>5z25%9x(73G(`%4j=a$+=(yf(B}jw5;RP3i|jfhmHEYFzQv$GDV%=0 z9F=KpRQyUS5zz5}%6wfr%6={U#(v!^pr-BD9oYRQv0v-RhpD|}P_3doN<+Zjp)(%Y zJ_dQO-vN{6YWtrFEy(0nhsmvu*>bCPsSF|0d(ssCPF+Sftqgvv60tN(Y7xt^6Ap_{ zK*WSN*aliT4z}npsl|js;&^vvNGzhAlJ0FpFe~=88$2Y)5$zw4D2>?-TqI8_C$+f16b8W zVOqK?C#2GkXs-e`Wxzmap*>|#P)4$X2RO;HxHj&xxHj&xxHj%Au5H$qASU)GkQ_|z63{=7Ja$3?2VI~TKE&&tzGC?Q#i7vbaCWrtf2ZmLfMq-hXZ5JBwZI#fHNhX2(CHlP#M&C6LeyVc-F z4jG9VJ!QDe(4)@*awp$+)+HUGbD5;;%p{#~0P3VjUDCA$NynOw}#brXIMQ8QFO38RW%#i&P3C+q!WkfHc2PZZ@>mg$0|*djw}EqjGZay z!ho2dW3NL1Qf-J^Pz59l>6xSpJ)0i2OwwiGn53H?kg_C|4o4oUOFDE6I%_p$raI_6 z)LAw`$4J#6BQ}w0g!DZ}c9AB0wxnaZkPVRC9X&un(y?;^4`p4_P0KS-mKU(zAn4c{ zDk=_wuCLTj+yH1PL5T|!0oNB|;|?GA;Wyo@T}N&Y41DaXkKX-fAOHUE?%IB8&Oh&v zdyCuQzjnwibUP0G+aY&Wp_%=l>BIc{x?lfY_nZ?j@?~2}w*WK#A>QDV2?(dL2M3N#+6gH9fx$kk(*u#F~_uSmmA9+vTIA>fZW&RLh z6+x@_=LkIBL8_6a^zozL9s)D7x4$@Wr)qLvJ@DxFT|?~l`Ct6Nz2g*CLK&=K&&zKW zeMcl#9pv!zsru6la{vB^+|94}p0f~hJo>Q5VtNn*Vb~zW18L3#AxuB$;(<(vQzg22 z@c7IJM1U)C&QuA1)eqf?Jx_ea{N>d)WmoImhVbgyHtx56KJN8D`k`xU!cKr;yZ)&4 zM?5O)QAc>xf8dNCArJq5hxOhc{};gOfwgqt%@4bO%+)^Qh*N}uv>grEznds1#JUAT zN%P`fK~i!cYpsEpjM9S;?HO_+WRu@07@afnUYJT0f&vx^KrTHdYJS*``&ui%#kM87JD< zj^WeoV&z(i(g^P3IPRE`mP)>^(J@hOC&60bkW~N7w_^@-#-u_OU%)GC(POCRssg^z zu#@LHI6CGlyrnxTl+1I!4An4v_pFq2h$ITQ-IM&~e71vS3KO419OD8jLo<)k+gHl& z%9(L#vIPaISo}_}>(mgh7BuVJr9b)ZZz? z&kj!M%U-r74gNDOUQT+DpSgG=_K~0bIN*q!MuabAzfeJ|jd!b3m56Zvh3x3{ z3v=<(T44ukl~M=8M?vtxZP?Djt5lwP5QhiMAc1r{*7L57+pH+R*!N<;D910d1Vu?< zy|rx>$u?-!PCsf1kKzqHdQP;_ig5&C{VQrA!dQ@mPxy_+j;#;Vzww$h`j$N5Nv*tv zw%YW5XZmU82SmIy&0VG;K;6cc&oQD*y{3deS7Rt-kuOB7YBv-*DEc#_&30gZ;E5)6 z24)G|y09)T&1Vhq84lQ@tjRz{iV~Yx&KVtz#}ZhL%sV{RQPKoI*HH}q2xjRwSf!)4 z_1oSzaSI6*D~MV8@w0q9pEEhz3h^V$3yQ>GNtd?l;-C^B;Nlp=7n* z6z_Aq=O6F201EFb^`>|a`U-`4uWNXpz|9m9BW{^nm-v5gj@xP=bU$TuAiVaF*V(95Sj{2=3x^A(}WTF*d^zTegT$`I}xJjy|rkkz!ZUXmr(z z8w$U_eza1j_%B@~nTkwtQpF)ta&xgq4tNY&nH?Bdn3~oYcu_dkns-OSN)c-Se;jG_iDJC5hvdOK6HZ=wCdXER{-)uv@J)s=;=YC1V>!t1S$ne4IZP&3Fk3z|(e&Si7?t}jR z_PEF0?7!R|&pY$rtyx)=Aryy$H)KEM$}UX*Bp60D)!zb7>QFqCKBauKA1%k5h7Z1b zcB}8oe%4#Pp*+><@`E?dZuREbt=4PGTJ^sQpEh>H^X6r}(QXpd*w9lQcExYN_s{K! zt4j}twxtnTsq7~bhyGI*&WOguyO=L-?1)EJ|8^w#7JNP@~K(z>0KvQyuspU zX;mCU&Vx{#eKRVKIqv0j41GrI9Y`p5R9U&Att?F+>wV}bbgLYM=K5gYjIPNv96Ri(T1YJQy$I;SGcF z@jU$eV7#!a6?8`W*wzc0!~69Q{{K?CwFhM_UPsk5l=uDf;*kb`*L^xK_U z`KPHLd{Zp82pAYqd1bNJZW&ZG3LYxhn{|2dk%B8qN9OdOYLh=<2$c;Lw|oiAY_f?< zlyVdR(y_cxu_+>H-8Cun9u;xYvCfLu!PXc&*_t5AanKZ*GOTpqRt{p5dWvwNO@mCR zTi0mdlG@NFU{WXUiQ1VC!_Mg=yI}b5&DxLZHg30l1lAptlhzdPHtmuvVnemq>L|^| zH*335K4Cd+rdwr?n??jYknUlg86AMlQ{{4D$-!fOXo;h^L+94s=>ip~SpibBx=@&L?T{VH1|ml_YU6Am zQss%;r0Q{kP$OLLtOweN!S@D8oS46)g&h+xSUs7FLbF zM1#Yy;AUrUk;a6*!Q&MN7F)y% z=ns3}uJvbC;uCAypjL>=y;1SLc&fo14O*OgiJ@n3mG)X=tT~i-f^`67afKd>m4o{n zv97@g#G)z@fkx1$|%z` ze*VCnjP_CD_))d~L3tcbRfj-Zx!exG5RUR52!H{AM7&Ngh+VTYW;6ue+m5W<8TQP| z3w;b2ji<^1DXSOYsj!~sVPKG2&}g)a?{sWL`dl?$HZpDvanM--5@g&$Cvj8*2oSJe z@Oa-g68HPj5m@oR_zffRbNzcp;`#kwbn;k&05oXR!Z7D2%J1=C9f^l}t~W!&jJFt1 zzUcoiul(Tr_~bs@FUAD0Ium?+DU@sSJLbpd=0D(^^OFl`^`ZIkyrFl;0+MJLn}7m9 zL23md!ts6{rFtQ2xN!Y-H(n7sa=brpLApdwr?a(in;@n z!DGa*p*RHdlZszC(Q(zKhX`7YFuaQ>FbIvJ&OXe*fZlSq)s2smJEi*tT)9 zP}J~L<06u`Kz8el00b3zONX?x4vL3`TE}8xfjA=RDJ1^F1d<&+>>?IP+dJ?9DBUjq zk|pr~yYjCfUn^&0LTUYoLbx#+uDaG}e0hTX!S^pgH6Qn1UJ{RR`T3G~E@8MVJ86lu zuA}<2yFwOWtE18o1}V=x!{Wj?W0p{7O<$Q}q#7%=0c(K_!G!QyZIeHX(s~_O16IyR zxKb}s%Zfk*N_jq`B;BT61`9uSnIp_Z>7spo@B-;rFl5BTlhwZ<$*Hn1J&y{<4 z;;yOY?nbD+{kJfwr`yetK9;|hot$g-?1t;0U-D+ZlI!`0mjldkE8~&cn7B%uRd~4Z z!fIaO7Ww^2?n+S|Z+D-UL({_*Uwl{uGE-L=IFV|UfSLUt; zlkR68iolF^c}l#L@pFG$9Ta;+ygcu>P;Q z)2HWY6mhh$=eIBY3E4x3kZbN$LxgLpNTS&n7zd-v`Bp#pr=^j=D}q0jj(DB^=d)tE zbi90fT&042Rd;4&|J9=CRm?htN8_bhS#Y@5QZ>4x+LQhSubQb=Q@<^v9VP8_0={ZU z=aMc}pVTY7KmA~ZVUPxwlT8~Dj$dv(-4~}3qA)slXuR5HRnnf6$U`dD1;uCU(D*wDW|q7l8hTI zb;vt2o;F{qHB2Y2^`Ax?bZ|||+oUE=yI*Qh*u%_SB^5XXkr`)y_Rf_ z&<3?X(8?4wO8lQt{9v4!T;auvf8U@)v9 z=7H&CB}|N!#!<0j>b3@9bV5IKuC{gOp^e$G*f}OaZd*H`J0gVAE*B^-2 zDq$T^&7P|Qfo{FA$xjd846bgmQT>0JiF%)bpkXuU*H9EGFf>i)V9R^nhPbDu>5(`` zU*J?*afW8F66|C>p0o@>O3i2S=xt|-(P*8mME>Lh!HuP4`TDHdg{9$5l?H~Uk^Z8? zPG|z;-eTHvXv^B?)^eF)Oan$Uc83w29LTOHxFczVV5^ve-i zEtPbESo8xj69$O6XD)}N1q8NK7xhBy)P2@+gmGY@Z%Lmbuc+oOhp_gOiTUp~#sjqu zq_OGK(qYk{!N`JKd19yOvh+Arvk8|J9@eB&+-SN9EnBpIE=S~1y;+xWcAi1qsNXZC z!b&*2=GEZ>+r;k0$=#q!f;>{Fs@{%_+*IhFxAknm)fN1==%i5}x24*H$Sqmc4m zu)_aW8r%?Ud0aRtWWn?zBA8J?3Xl>`p@XadyK7J#O~FeDCIZi*^u5bdS6(55Pjog= zlth3tU|PA)JvuHhOLPdR}6JDpF2c5ToqHH6&|gXbi53Y&Vp6fS_EkG9X>a52EXcUa=|fG;}GiP{>4!2uCFvQX`2Zu1wsd?KpqX3({ae-7z1pIMg?y> z*@Aa46w+^)7$ciDziLZ7Opcr!c(WbpU-U2A5-&Lw)%coD*>wqT7Jj1r9=LNF+9_ow ziY`u?wo@gt0xPWl`z@HV;mv^&Fby4Wo+@IpVFJmX4Id(sA&JB)4gZ zhdJoS^fQ|g9f%^mOGIdTml0ti^JHW80zoj5M%fHPgv;&uvny)Ianw#J%B{uE#L>+c z|FX}2>g@O{WR$wGOGbj2Ek9kyqT!#XEVoEL?Z$rX|`ka@p+ zTU@2Yrq&kOXx8`-o)_<{t${|PbFB#LcbVn|wH0RORj$J0Vxkye(w30 z7`l^o9TCF+HT$c(qkoZtLI8Fh1jgrss{{$RZ%?It&*Tye+B=>E|ijSne(MmRU*A(L(xARYBLWz0Q zXF`>9wlzhLZ0vIi4dnl1xL4ZQ;3W>0p8i3imhj^~Qsk5d>c24Pm-_2JAjlF?qz!C) z&8q0Fzp}4-{MP5k)!NExU$tM!&jQ6uOJVLn<)r^^jX<5ki$>x7W9=6v{bTt(m3~81 zSCKGj+P*&NJ8uV^pA2BT=o%Y0(wNk+n2OrL0(H6G%&htww-cnCRotkGb5!h`FNlxp z<^x;cB@JVQz+P4D0|We~3*x0O>?T7?I|36r;b0}ucYA9GKxmyNR-%;+pPrvInFXM| zqET*AkH!NWjV)`ZH^rb z#H`NBIkwTi@&)lLSAeC>wCA9VM$o6Vy(Cq`x=S`)2oJvv?wTfsR}8xy4w$Y=%RQ{Tszo+IooUilOSb5 z22=eHXULC5V^Mhm;m&$BpP4$aF}2vwm3!_6BUtP=>H=>`vB;9)C}mR@AGhp2Z%F*a z?uraF_8RO`cUOs0(pSU<@l~ty7r!K4;BNHqd`UbqUpjETA#}p%8n*i)Q?x>s?uu4g zp77s%Nqh>)H5&3*y5w+wn0RO20&Fn19Qzecn)QQIjcVF7ziJyt0T@tuc_| zAwHwRV|;c|wR!3@;=LB<&Lig-C8ebvKD_oC+VQu)G;TSiW#%I_j+qKvWhW`-tlTHHGF>SQu#}Ps?%S`3pLAdF-+C1? zv+dRK`ri79vhipX>1cQv**H=5l2^wkb5i@AuZ}tG&Y%C9_@9@#tyCQm0t=6oydgeM ze&_VzXYBkYUO+wY&=Q>Y8ULc!#?}0N-EQPS?X@x9pAWu1{xiS)4e^Qo)o+N$;)Wgm z-Z#Y0(e>y2KCt|f_}vYy2b)~K%&&VPm=^!#H^!S@4vSU}4Q$i&2D{|P_>(>%4=tyd zbKb1x3Hvc@5iJy-WBL#)%nq)1aV2jTJP4DS7B`b`-i{KQOYh-@JRoRvWxwOHc@cwdk-!dnY!bS~|KhTEc$npyIGk)4`hfMD+|w+oT31B`Gx#Oj``Y3(VC{Ga}@lm2i3zN{uxqz_B}N zbYv~*5enIw(?79;H9qhXPO9(Q)qm+siZ@m20Q2S2Jy##Fz_!Vyt{qmaNVQFpM2eG> z4#b|jrU?2zX=FkN+EP(B+?Lz`plS?w_P{-1ZmC*|1P<2x>o`=7^IFFe$#ur^0i z=^@d;q_po$`gbHn#Ad8SuWWx)=tPT-O+g(l6rU)&VWFuG$tn~p%Zvn!Y_tO%YJ%m#^dGNq@ zmEW7o0A$(2uan1sb5cmvNtTiX0_hP#>mkt4c?K&YDIL64vdibDH48l{TCqexXAv;- zZP7S?Vqr-0a};BFpR9=4H*v&}4dNt1`SRu*1S|cN0|MEM79PVfX*mX0Y?#scCGu1{ z^=@X7{GC4+**{%Ti zX==%yk~nrs-<1YQb$E+C0+Gvkpun*x7!aVqJ1{JWbnE~HgLg!M>_=~p0?rBk7YYVT z0zrYadR!W95nd~~G_ z@qyr~w2>erNCbw!hs7ld3c!c3r>HIwd>~BHjU-9}e3btbAF%7~NaBCtBSSl)#VtSx zgDitjCq5+803YRa5b#j~J|Nfb`0##;4~Fsp9|G6nL)noogew5D`0(cN1Vq4SLxhkb zEPIeh+NukeQLxaBQBx!ifTd(y0P8GB2#INbCl+9Ob_nZ?)7f~(TYf0ijQE0-RsFcIYssEo0AQIFAY!=C&*Hq<4Gm~vLiA*o%LZbjeo_v#M8H9YLm1uejxa$C&e_Ef ze%Hg?c&?fxmy|`rqVTz(BE~&WjmiAGP!+Rp$9w0pEvrDPtPLZwyTxuC@|{Ka$ypg0 z73m+@?h?UIKPm#JMO?GvoRSHTY=T>;U6a0Cmf3y`oiMB`=&&f{XN^7U{IMUZ-`aJti1aXV;o06`BFnzahg2MKQhi7&VdkHYOa*iAe7L&E_b?+W zwo_T~CzMqx%Pz9eY`0KWCPw7NF^aua#>$_$HRzDx5;3dDbR!9t6yG-Kz9IlpdAKnW1GT9)~sj?es@81a#3+ZtJ zC^Z&MP&O_lbrMdX1p;i$80wM_%LvYdB7Qk~fOJl9e!~d@WnvaG-Fkxyp8O3UmXAd} z{rtw})&^uZM3WeKp=R1oa8ZyffiDR4<_7iA9$PomB*z?dfhx5Xj*zRLV7U%9b1XIs zDYSHT$*xB|8$$(?Wc{5G&;nBwa7ixKngi{!u_FG!wfkVC<>f3{fRtom%8eHK7Ci>G zB26eOti3Yi%xSV8JyF-4hH#=>NnqCr<@kPbhDZ*FZDlKwNRUV-=ggq}d^t(UmsjJV zboz{(CVR4^iE(M3s>JmQwzOnglE-vBNGA_vEECB`ChpgYV@XcdW$w8MY~%)`32e{C zizZKy?jp`5M6^y82Fbp%Wfm|+x$}eEbgo@;xSdD4BWPqHj!9TCmRkW)4r^XM3S5Rn(d1a zM%k`9!a?Yd5xXih4Hv0IpDuhcH`xJS{}*%}zdgEe{=cHjjx{#3EV=?%KSh@XYSA^J z8@g!H5TRLgb;kPzbP*n+%Un5MRV1yu3pdA`hvutFUOTg^LD_p`Q;6nex0NM%Z+i_m zV*7{{mb1)OCK>GPvb!Pg&mim#wY$FT?b4_+1_;dyi?h>_IY@lV9RWMAGA417XGeh( zq1L+70yyS~i;*wShr$IG^U5w*2qvO@U90^F zH8A3@`F$K%X++C2=6=2?z2}tF?hrGrh_JDtXZnl}fI_S}d9Ev2`g=zvRbe>#;tU6> zfjqS)R!|nscDNGKTa+!avS3fMsGefwF{m(_NMtkm64jse4vc>;tNU5FTxG7lL=DSu zlaGZkLrx+cA+aANg5@a^yS6@!s(#2_99%W`D4MLixw-1e%~fXA-16EkwuDDfVe}9ExgT2)DDV}&6v){oilq%jM%K1ia=uC& z0shasOpPvEfxspW?-WxfFZsAIHA!U7c}ImRM%Qf?JqIF+ju4K}v`yhA z**pspoPN0)pEqy5XlO-JKVhD}Tpdt&HKTnf=RX2D`qTndvRep9Wx>$s0!CRdi3CL* zpq9JI*Ht3dR+G{nu?J=M_u$Z>M9Fdb)_BytQieMG-JOvc!>y}QobQ8AA;sgbIZ zbJI~HQBlamCC@%kYR`W-3}K`{WuzL!UJMg?S?_4?WEr`l*2$fd=*bCl(@6DuIeA3E ztPEmA5K`VbD|=a*)z89`hKa3~r5&UOh_fnPe!I zGiO#KvdfvuHD8QU2bBg_z4TqKUcR|lH}K^pA9c;=jjDXlk6niUMB=?jpnZb#WcI~m z$Q9vXHi~D`dj-uh8n5%;i^b`z>M~yF%Tk8lE%8YAmnZYdA^T+4CSMLqO2u3qtBaq`$i1p%7EeNe2oyiu&1V3M#^CyADs zg{ro0YBDTjSdaOxZhNO#xAH}jkGVEd&Q$L2OHIsQuT%@%RVHVl+CS5or+9Z>AiZ=w(SxIH{dGJ4v31a}xLUXP+LH*?~BZ!?xjbFgg7;MQ!K% z6bXu;xcVYqnAacT_nCao2+cva)I(pz1W9+`DfRo@(HtLJe=^lgReIr@#rg}!Li^Ix zEK;f7FAmZ9$-VUaA*k}+ORrDp5{#=Vb$PN?>Gj3BBH3z=U8MG}kYdNBR{EX*&Xxeq zzs=f3YEs@^filxN7un3-y zxvYeuT+b;MDM{Z>`iFSO5uqLqns7AtCLNH(zc0RlbwzL9&2%!>`)+0@q4$OwfCn*d zszYgVV12R=I;aBcyx!y*Sg-G^b3^NQeIVJu_mi|vgw_Z9P_n?cskbf;ty@rv8(J^R z^wm8>`^`hZVGw!M5Zx=Zo?E9&L+eLE1(N&@Mv-!Fj>q8|#n#Zep)qpuezgA1(&(QbOQt&f$ zLnUQCLw~{UhFBV{v zD}&Jb8mo!W`Tz;BZY9F)mP9fD5!Zw4bB6(22U#HE+djww5$m~wED*8&&9^{!B2M4O zx1P_@U-Mg||6}dJ?`P$H>0qfkyznjo$jJ83#ck*QYeMcPo1O23|` zhlu%7FFll!T$-ncg@8l2$i@d1Tb|VPMqqB?ySNkX*d1ziYnk48dkDK^AzWCYIq-a! z{>*ntCj`d~UaTroyJn+(S)kEMM3m?GF6|a=$zoMoEiEyh^DDi9P-%?Iy2Y@7ew77u z6LRaiooJu&UA{xK40@M>ioMU%L%QL;V%^BMpex$;Ew-4zw~&6dR4a}r2V2q->kkSbQ&LUnsPmU#2-Jcl791{Fk*C>kWJX_3geL^}XA}Qr{j>pG0-_ zWgCkvkzV2IJ(D@cy;fD4C$3Rt)e`(vQu9tGF_!Z+N+r0g^K0#x1Flv5P1Utwv~!C= z$x5QE;k$DCXywRPO}SR}%?Lc&szkRDsrmh4y|63d_DH!(Vzm;Zk;*P|H5q~*Pk%gE z@11-|=~Weaw3sUhevZeCEb_$ht&i2Q{tt2oC$uhMPAnY#{*+$Lpz{YkFRj;DOKXj8 zwU!rrz1CVTOzCyj@?)KT-det^)@|0Zu~x6QmKS^L4c4-OEZ?dK^B2ecX`8=TH`Z9b zAl9erq#ZNb+WT5oEY|b;bVh!uE8Pu!I@5g@3^@{aMKI)u_2N1^$?$0xYq@7mze1FYW86S5X?)Rdj2M8nlGT|R%bhc{!hS8A9tW=iOk?YRO!M?T{Lth zbC{wb%>Eg7H}w-{-SyDz#2b)?+jc#~D+w%XT~8Wetv9+%C_);)_Xbt&K56#5fh5mJ zl7<_?BzLEv_YX-T^nUY>NuD;(-k|zf*x#YWQFnypS++w&bLLWj?y@ulx|}07y)^`S z%MNjQzV580l;e9zvMQV8MoIGgM*%Ckb%!M8@MhxXH;3RqFC*>-;!2rs+cECl5_d{A z?v*l*b`ZDWW4iv1asMH4A8qC~@sDErNNoLX#8!ACwu8jBo7m=x?P#&xAhrv|_LSJ} z7TXtM`v`8L#N6HEHL$ipwAN}f>?Us5^}C7KQ*R>nL1J5gEw|Za1S3kb zxs52fi(N)CoQus%lHw_e7rU7hUx;m}*h+84cDUH~zFC!-v&1$9oBOUg`)1Y8JS!fn z#G~CjCm!X?R5E9>-Y^8XZD#l~RhK_eFBBJ7K9akdBbRaY`ru{gd09hD^XFx%mu>QE zrOD@mw?@9(cfg&y$vm=5^|29e=KU?*Oe7ik?${xsnSKjEd*2cQy`d*@TZy}#@6H|K zx*wYvw}e0$PGh>ANL%?<>=4m>EI?nrMU@WtWCxrlVa-&HtBwyyN6B`Wf109ORYkG& zvl1|gIL(y&*z9>LcNm{+Iqg>UgPYmr!5&x_y;za-?Q-S*5(XA0S*MrDYKeD-bVG*i z{$xb2!DC@}kCk{diid1|5@8+gdvZZxL&G^DR)*JlylxdQqHOc8DJh~m$sb+4gz#?@ zh?ZraDK`PkyX4nX6l06=t+ate3IyiRdk2 z?cf#5YP|suM>h>jQqR}K`i5ASV|Df4#M*{c>5YA{ZpG^9hJIL^{~>Uei*+5=sD4tc znGWmyqoiB>x_B?y32OlO&i+^fz?XLpk7u#!Wbc2bHxk5FNKL~}sl zCSSPv4)vD-k3`)f1j^XEU_%Nc$^lGlF8h?KUYwCM7q;e}nogLdcc{~bpe%oG7~--k zPY5b*_15$4V`b@rHr7B;kTPQH)Sz?!d)) zIO39Z2lI@z?5UDUB%`)5Wuw2n<#VkLaM%P4wF3 z62`YbfVjsQ0OGPoJvENc;aV-5AS6NvSM{<(?B7`D$`?j;o8r4B7< z>)rsS{w`|WW)|F~{$d($R~3Kd-p+e^-85HX_`=XZ8{IV$huA=oMUzGwtTiytx~D??QITw zW!4p07Ai(D6}w3&q+k+slWAS0PI2Ei!|!8Qf7R@FpZaeJd)T7BMUFt(UiZZC%-H+Y z5k1-N%sGID&7CNFwXuoQ^`qwA`_+-=;0IJ``aQ*ttr{a)B;{I|6q|kL+Yu}a?(TS| z?IFgJgU!+h)GUu4VDekk119l++I80}M0Z56sTph+UM}igc7O)^1R88{BG5abecz%s zS!nI6)ya|PTsE%GDs+b=T=pBC9Q}ebeLvGy=vMSkTa_lzbRlO)7;K54*>H%%s~dA@ zYHvK1@+O^X@*bweBBuYtYM}YC(2YfqI*XbE9#o@CPZZf|N`>I)1VnG-bX+An4EH-m znRgyUOUTbg*dh^*%XHY*kQ7^7Q3x3v2xWEO=!P8GSNn?N-Avxu?pZ83TiKyvS08#s zMUkjb#t?}f3~q&rA={i7MbIq<+uMPFpiXiOMKKeiI#M1KB_Mu)pTCo85EcKJtuDuj z;#T&CEvLM40hr+qxcM`=wYC$&20a#~i~ZszM8t4L(!B!bLL{<4{==%*o>m&sW(Mkz zwB(G>L7J%;BIBmb9MS9C^l)>E>o&5185d1>BD0wGOzj#~(aW=npUDNKnN4)SR_M|* z2dq)$C8#2mb64oEO3rvBdDNV~M(vsD%2R5q-B66kJ`Bm0h8z$`ZKZN!tnP4Iw^;X@ z<)nGDtVt@xbq&9wvw|f}3m2wK{T_=hO)>tYfYuG2K@D@p1Xb*+pgp{nI#GcJHC?I{ zqOBxbr7pjPelN3kD~Hit2q`5NqR3X3Q_^0_D;Z$juRNMNn-&RZqGBZy5zZVH2Zwzs1PZ3|?Sfqfeqt7O2)Erurs+*ig)tSBGLBV?Z zJ)01Yv-nTP%;HDYz;e5PPNjkvJPRo?V9w@^N7ayA5ftKXF3zII)MWPKk9ka$)C8?$ zPaCsE;E+ayBq)Hn@-ZYaq9)#|CLh)nlPcJ%lM^rn6G5I7QzFSQ1aFj5qW=FV2N_wFI&07+SD3#vAq-2l2vBU4pQw-ChUFt>0fBo+^} zYF8u`W#A~tFB0Em;9Ff_y$ZxDC)CJY+L?ATW)(?-RruanIoQ1Rf9Mm z8K4?Gt`Bfkyupt6k5Yk#zci(*{K`e?O8xD&ZCj&=16G=)PpIFyY4gn!TsErqtAz|x zYd9C1@o2hY-0r)L7~M4PxKGN*_$hj5MN`wFrZhxb=~oCsoIj>jRl2gt_vxpWmT{Ih z@z`6nIIDT2DlHI`pSrwBL)J~aj!1ag<|DpUe~gS7_vsh2G@%uhi>?yY@#uNrXxAU<>K;*&)6i)4gRdB_?N0RfnLZTFj5Hu1CJgh_+q}xQG&WL@`K#dtU@`awG zQ{{nC78tbLP6*&tOKXkx``v$4x<-6Pfb?{&Wg9+CSmReUrBi15(_De#X*JNJ zTCca?yJ?}k&m#?hcOO43-nDqpw3m)6Yx&LY$1rQC4T&Jz+GX3fb{S}u)~;-VTlc2v zVBU3NaDB@*b|sDIr+Mt#LJtaDE3I2D0hJVyV%flIX?WhJrXcwHQc~+*DJlJNkL(^B zvGA&NSrekiJYCV0N>Ol(KF~xBHCZ_Bkk#jmZc0^+d-h-ZeU&N`qn;<5;I!;~U9wJH z2;CPygWBsV-#;4us*>-j6#I6X`Nj|@r%L2jMa0IEY$~8!zz6{Y)Ebq6Q4<*Df#C;+ zGzKx#(tOZCDQ^kbR+NDbJX24>)uMErdHoqxULz1`ySl5=G?HM9YLs2plrE#%l_vjL zH6ekYq=Vb`Hs3s}cBx^MQyH7hIOoT2_65=4u?+l`FG^S0D8oy3hyp$XEH6wRlrHxv zG6|37fl3SJs47$RnpTf zAL&PTizr? zK*Jsjui91OMpsGyimjr{!5Q;c2_=^c9r)!(u}Gk=ltasWN2OytFV^zZ3u>;*r2E$| zsR8ak&D59Fn9!B~Pd9s}tJ}?6FM;Pb&9F8#I1KmyDaYr6%s`~e9^uOM;&zYIUp5!a zvNqDB%+@wFa(JoZL-c4Ax@)X|;XGK8Q(WuZmZ*{$F@hEFs^oCHVqm(-1i8Vy_X_$* z8_ajFsNMT-bBhvcOb`=nCxNyZ?@giQd#zW~dM${$5jh6sc5%c?j`44yLNYTK zZwi8hOZDsA-#gEYeO>L6bDl~hnqA}_&U#(-3rof`$d1TDbd?DlOM$$gK!{*SfjlXf zT~0}XMA!nM4XF@iqNTEB0yW*rgbTs@usDLGF*8^q#GK^cT@J@i7d8XIbt9c7QG zca)zk4y$X2p03D%islH%}p)#yFL6!0`j5!2R9T_Fv7&z8)Yh&aVLNWh06 z0(Exg<#*MU-mbuz@}3%yPl2rPabi4la{YT~Tn-`2lEDhtK*7FTQgDik0$c`a^AZzi z%AgfRGocV_3ON$F8YMSPI-!VoC}KKUD9opd=~YstK(An;M^I{sAVAFMb~S0h%ue7X z0B0Z*sNf|K{@DRfeSV6kP-KTj4Q<7yU?Y16t>)~FYC!ycuD!B#r*z#b%43N!prH&Jw9KaOQQHD5==h|k`|N7y9Th89s8XX-sy zIG-hkh%9Uw902Vkm!eD=evlYqe*8pLjp-gO;Htw&WBE#$4Vx8k8Br+CYm5*D3I>MR zewKXJP0lxq{;76#-!o7DQ>_^^D4@L{q1=6R$P_}FnJoZJRBvX#f2nI$eyaM{e!#Rk zsM`ANs#c%)$3Bq?v-MNeuaZ}iVA<;;!n0l7gn}POFZ0A@sy~C5CO_cqJ>it-NYm@M zfLDPqd)-nEKiBa256D4o}PSLL|Xe;48O&8pG2YyVm{v~ zB1%CSj-Bx^g_oWEL^P8bsm^D!VC&cHpsFz*#iNw0W0?0kXrB^l5bB|rVz7+VF1kv% zKF?^v0>wk1S6(oYPRxq>sL#6e9%4tHbt%!`q`HuOKRaOu4oFx&i(*qZE1<4%Qf90 zc_1S%%Z*?_MQw+WBk&_;$`@)xhT(RA`aSC|j6bGg+5ul!N2HM_pJ2CUV3!aPXhzvM zi$1yFoMv@NIk_Oq2AwRqBce_mN0NH7xd#^g9H`A_!_Lh|{jnm?L;)1<2nK^W1-Xn$ zoANJJ5n`EulY$E*X%fO@o#5&Zkt%hPx5yYRo+r?>R&rbt%T-^IOa&q0MB-Y^eI#44 zjFF!`W^jd{$`5d=rD9^qXKGtMcQ>^fq{2EFVfRjRS5D5Aa3<%9Pdc%ix-am^u^zjr zm23~w?wVJ69W|!wA1(gjmkOCjJ!;={)Fe7MT8c6US;N4iDHOG!!GG1EzR1L3j;?4T zAA^blTfBYJQ9)DQc#9LpWI-#aqIp1g-t^GHRYe*ml%hd~CCHufbU+ir3)xf6k&B1S zV(6Fb3!_3c(9&x4$SFDd%I9rcgo=S|)fbDnB}pTUL?k{?B#|VYOw-sVqQxm8)5RbX zH&=pz&7}$uNpigibCM9aUGJ^pmN^BJE=Jhb7n|H3%ZFNLC3wN1q?P|W#AP!4DzDA!ordwGZnKsPc7qSt|D25 z{`Lx_LUp=`$r6y04M062!*ejjy|H?pt_|6W3q%Uz(Zieg-YI|VF9&|uHIxV#u{l?uq^1J?B;9qwXaDVi>c zGn69_GzYyYB6LRzpFE@|u}fnCa!)#yO)WQ7;=0hLCNZxL+5|{N^R5J3Ptt-C-=zpt z9FcF!5^+lQ7ISv=lUk>EL_u%@v!z~^&5~Lqc!jS}73fc@Lbs9eO@CXJTnvWo#g>uI zBj_C=86*$IwX!FkD)T_pF9Co{0pgJ!AqZUgDJLF~aEZBNiyAoO8Hm@Gg%LaD@k#eW z;5HADv&M!Vr04zBd4Z+)>VK=_ds(h>lJG*xNMU7~sm$sB<^mO4`fR@|J4OqGhV$$g zk+DQNhMOFkV6P0Vw<2*YRTf!Zu;rf$Q-`2=&PlRhjkIrCfgKh;meUFwa|e2})0Kgm z4p%Y}VxSoI)o@F91Rffk6x#mTEsj8D*aAEZEWz1tsl1LUt!?h;G>COwY&)F!Yx5Z7QlEEC`>;f&}0=F^#M; zlaAe`7CGV3bgOd#fbd`sNngB;XfqPDa-Ls>RwE3O4o3@#uA6(;*wGix^D9MBN62RU zJm8QTBSUiX4A`Rl`VpBN(oN!`!|+9Uf)H|{pZ@>0(%-n3_Oq>27*Ve4*gP}7iT+#l z-Bk}@9EURH&PZ6lcFx;_3eKis>{!s%Y7C6f)gaSvtLp!UAQMvVkkruw*(wWK9(Ags zprw1u)2giIsoT$o*%mj;x2n3`M0syD+!_jeM!G3TitFJZCQG$;CJ<7slt#!qVt&}F z$`TPMWhDw&8G20fH)?>H@U1#vlw3J*!iY?Z9e9!O0wM5lgvUy&4~J+7k{iYpv}UY( zcB;mL$w;73y@X2QY~5S8jh4sUDPnM$08_dq3P**vI(p~?PL3VXgd5Wvxqum+RL}e) zmoTq@p2-$NWvYhk7^+@(X2_1U-jkb#4gf31#(yU?3^hkGb2yZeXq98D(MAJ7qgBjF zip8JKW*j)p(&-PQ(byw{fv-^QBtLt|kI&vD#(;E{1dEkT9@IIr<5im+CDt7FV=93>Hdvi$tM3(Uk+E%oA6jDg;m6k5S5MHh6X;LMEp zjwcIq%<j_(cnuO7~_6(yfE(AmNx2YQRWfCL&n3dNwq(*ucw zI>)cnzF-10-$p+WvPS%YgE79l4&}8r{gopZhN&=_Tiguv=6me?W&qmYrRv7o0fiRk zo(#xvW+d0S(z?1$=Fx)8fnJ+RL7^HkCvmk~5=ATx`v#S+NiMb4tt#b&ZY!m96Xr1ug;f!o_nt-SoFt!5%p+OmTz(@u8(C-C~O&GBEi12uMI`pc)ctbOV zGC5&KU;Je15E;+Ro@JtN9VjrWzb_J%Y6X7PZ8AvhE9ZqA{G!3fp0cxK$))IVK@qnZ z(Ze)+26Iu?Y!pN0bZkX&^ekN}cVBubN0D^Rkk4RPc24O8ST!u(-V_Esz++)8i0vei?W4;Q*^<2-%)@KgO_U3;J~Cck)YmDOzG$pD!HXYpi!bYKD^^CJ+3 z%g-M2%$ey9_Iy3}q6~V1wrqoXL*; zHhiFWdXU>}$t@R5=IR_F((ZI=w|rxCl$fYS=c>7oVXn?)mc`gF8hJ47k}WFpuLATZ z)2E6-b>(f$XbL9E+@Nx7?r#Kc#){JfWfx{+8_}X%21|uqKa`SjtcQ526-l&2&=w@@ zu$gbQzwP#Svzxrq!r2g(q|KH@l)RlycSVVlqiYWUWz>L}_^eIMBjp%O-;j5nFA%p%##gh_y|`8@vn1iMdK)hiuv{F^56bj; zq9i5UE_Vh(7uZF45@~pieuk*#r_Z5W$UZ&Dg51sx$pFcUK&2ZsWlKfmH7Fn|Tyne6 z;Mn>z;mp;2CZ>9*F%+_g@DJP*m}?gb=Y9E;Z&~w0VF+v@r6HAy5KjiH2&bnZ!=}Ux z1X3>-)!t)kEzTJ5cRds&M;>98*tOyw4nt8;W68A)>Ur;-t6)Ay)iT-lLi5Z*p5EdIzi?d*h zAtrXk0+h`aTVN@HrFR+AEM)MRCR+gMwt$M$g?6!nqImEfw4{#6ZYDk2wt@^FBEW%q zTsw8Ao@_?e(1PT?GTfYzvbZ;c@9rtw9D7v&}-;5DmD~I?_wg zC8RaV2w1>WSLl?vjM6l<4kp6NFP;d2!zwzQ0}B+&lA&(&4T=A_id2HqPAC+RFQ&k(Lb^HC_o`Zkg* zoU(JzEI@jrMbu)}UotfZKdYlG9xzu%na9(Xr2C38ccyD5T{W`~qBPjF^P|Zn%wibN zI6eqNnxhEG5Mz0iDgRm+v~DM`j_Eg^9qg6T&XKTfBVpS{SY;~NGU3*}bTJMHKsY`D zDcO0LV3JLtXYT*P6_pjy@kFP9+ln&v#I6S~6obV}PRl-y{c9V2lT0{7>H^wBD2wcw zhmpM(W-sd--0dDSA2?G~H#`e;*>!@pD0C;N%^|2(JVQ`zwk8{>3H2Z7t&0S(S|b6h zoR(C|m;E$b#QKl}kUSNZt~~_V&;_#5f?OOTXMPB=A%sY?bxWQtQ8PQe*&?m9=~sv8 zmxt+_NiXc^OGnOss91oGt{Djn&n33`+bniAcm%Pqv5{MUCbI38>q6YMdZ`THDI76{ z0zi*oSIdGIysWe^S9?MLmKq=oFKG2q6Z5i3hAS(%$1#osjy&4w7iW<6*r7T60<*+>96%a5WeHm#nz+=e~{}Ksi3tsjx zI2|b=ys!M`BpVeJ7lpv_`tZ@Ua2mXw7PgZ^xTxp&v^bU5fHl;=0uku#8KxE%Jxzrq9 zJo2(La3^5nK#yb#hg^;jdYirAIrTO(^}^BDqPOeSSBgFVJs2_ zAC!3ui9NU6#(uDzqS@HHgb_I(2_o)Y;oa+gWI8HX^tYK$D!rQIBXZ!yOhm~fCzAZg zlva7E$SZE*aI;sHS8dLz@e=05DsQN}gGZHlr;7aEGJdspraRRvsrLHDr?P*h)qduS zYA=o7r}*VfMehkSoJ69x$y9sQIa8U(C&nkz)w4^s1dxsiBN~MCdx{_8<{Xx>+}_ z=P+V`g8RK~F01tpEavieVmBGyLOB@66pZBtV6x7Ory9N~fp??PMPrjg`#@w!ZlcvE zm$-@B%$ZlJBl`NzrQ;l@VNz4_IoD2T$+`peRZQ`W;=3wmiMz&Be`^atvERw7S~4NAMG1(|M8DAUo;e!gry0docDeiFBoSQ8Sjs6cv# z&XXH-o|m~PLg%STL5w%1yt)K31pqL4(Ll9>CyrbKoAl3 zBuc&Qnw<7qYVy)v?T9z4R6$0at>;-$2U!nb(=L||5@GA($96h+l%pm^_&4T{Y43M+ z%yV8frA*D`f`X%85xWZPZP?Aaw0Cb`hA)}O5cQ(2;8(;RCTqiPntFRne@~?Q)>=_{ zx&-_8)}8~uv`Z6chMDH)yVb)~1LgM!f0AT%kVGajo$1-sZdLNhevIR+V{F=?dZYVf(5r8B&Ntt{Z z3xi@Zui%whG7KkmqAf~JiJ9Vbi%)li!boin?Cb4&NF$f!>;%$Do|t^e?v4PPqd(v{ z$#;THDpqa|qOei?xL?m9{jr4P2W$NBgvLd0{>rkRe;@jc!p zH^=q!dKb&~75fLnXNReVQ^}=6?5=AqszjqvRoG@}2&yrE5vAV6ZVr@$e1NspZ_bB#!+-5U(pto1A=U4U8w?B6I6Y}7? z)J^E^9`n>dua+BRn+AIQkDd1oS8Ab_{BmZOmK!e|;sHKhyoAa}>g zG_x;QU@wut+lVd^M*9VeSUwkq-XaK1tU`10PF`i^vjt@#%#NpRf7lVGgm;69^XFg& zv4Si*(IB)$6R>hio(Nw=sA3Mw1)iq~?rzGO(8LCLz4uWv-(*oChyLxiQ9O@|+s4bV zV~Jj0X*J)*BEm~y1ZoVvo%{$0M90<1gBTOz=5K?%11o>AvD!_=U~g1z`y=+f9mH~v z9_*E>j^SqRU~gVw+eO(f%7ygnOwJImuId*-HC|-K4)IQ)VQ(7}(BU&fAam%^9qL^w z=7OQ#zW=KzUkvqri(0Dj!@Pb#nK{fmY6wDL0Y6Oiby=yfXU2{-Qf$;T?IvfY7A8_>!cnKo%_?2&T7 zDcyVqA*3gcgd`Hn-z~lhDsRY1Jl-;LXYb9VIdZI5-g4kr?-dnk8_FP(O0)NY-YANE=7HWrRgF(LiJmzs zs^q_;u*r|2!Yj?>gS?7gwMhizbUnq7!;k!7Fs20|ft!4lc=LgKUb*rrDq!vjiP(yn zD+QE4n&NHKc92)5wyrgw90YqX1wwAjXGgq8RhdNf?=xPdSO3+{dLI`1>U@ zpYZ3qg^Rl$_u5j&IjWn#!hbj1U(%+CVRXWK3wI^%O_(I<^ncmJCVNFS*=%pmcbpi( zA0#;a4x;I|TXvc3?cqjmde%vt)7j{G=JMZo$GLZ!j^B8Lm~B=c;_Ve(^1PGa#pV5> zi`j>Gc}%^}JjCnQa|_;yp!tF()bm^JJH&g)b)RZE^(z|wg+q=?q;h&Rl|00n{4$Pd89vgZ)PCH)*-{d}y)5uI{;d@SE7;U6HFA|AH zW3gB~CpR}YFE5eE&o3w_EG#N=R3w(0C@7K=d3?E$eoONoyg%f)D_g!l-Ya%_SGsVD zw@x)~F&n0^Xt>YJo{GYYAI-oM85Q0)=Zo=_dFMp$aQ6q*|>YQcZaB`0}*bpK^O zJ_$&VW=e+m@j8S?CVVF$@p$D zdt<2P3(biqAii781LC{vBJ-a3wwc&0e7`qCG1T(;=6AF3U2o12XT!xNGs`P8 zkIwRn)QXGEOA@xh{71s(U1I7^!MW1xdkO&FHnT9){7a1y-}}s?;@fUM65q=%GexuU zU2S%o&6?^%b0mgpyxe5Oca6DqHgPwb7co@R0`radwwl^{d_Ob$)_Zko@fGI8dM{0d zFR2GYhq)U=Eon5bitjq}AM4vvd8)UMM>c=@Gf6)*7h$Nz#b)K7Z8ooq?`E^@&m?WS z#`Kv>(pEEJuFd8Y47K=LvsirBnuq7wY~B;!C5$0|0m3>n>@WCkF^6KP<|XEI@qOMb z{RE5&)wd|gjzc+XzqOpw+x`}gLQ!p=n zW^P;w6LIvvTN*C(qEU7JlPwor>OG{~_Li{=ymxEdjV-Aa-aD9P+cVw^Zd=O>&w5{0 z<9y^}??w0JmdiGKUx@R}XauL(KZeoTQW1}AtHQUUxAomD#^a`?55~%t3;RZjB=G7n zHgJl@Xf-3oMqZ*pBjX}3spf}TUK66rtYSI0(P zRE=9(qQ^zfu5j;dIseQEMZLG>*lVn5Mz=&>P&eMvQn)(ud9{15`F=g|Z`|1O{A+>x zp?`_{dUMIw#Jh57%Mn{5KU5L#cgZOJZHZaPq+nfimGFS+e4 z`rzo$3eYn9q$v2lx8>jqqf!YoWEnu4FKGFGSriQ4Yd(EkGJU+|;lD?1Wo~~@+&`GV zwiB;$Tg$|a(I2I76Mhi?2Tj?JQn-iBM`AWS(sKW{pzv!eV}$?PG*!h&_l-He8h69D zX4jgS6kgTFY~j;;#3=l|=IcEOZd_%a*i)k2Zx)S|Xy&-RVp8~BM#ZKMh^@Q0AhFdo zS4?Fzec*)H`;f^sQ)1sJc+-_9#Wuw@E-Fae8kf+* zlAInZ@jyY}lVhM@WlQ8zG4C}WET@RgSGD}@_LxP%jZaaA=9gRQpAOu|e2DwT%ehn_ zRk@;N+oqUB!H;en|7XmLDh>*sGuL~V4KK9JjKppGomnU07nn&t{!GFuQ@CL`|HK3Z z52oW51#gUsgM!D+9ls{H@dht5TtL8Ry<-GWAu!D8;;^ShiFBd0Xjho^N;t%9FPSd=I(=g3=i{oQsVqZ7S zOj;b@*V;>_i@n0ETpS-_J&u`f64%6QuD&K7weI=WowoLsL717G4csu@{Nb8-5a`UX z2~Bf0aKH?6XEtzh7}${wJbi}wE*sb!29CKl%yZogGwIq8Y)2T_m<=qSX|Br#j+q(c z*-qeZX3vZ`@zAJPQrNC9ZCMqd3tR z>7G=Q2f?QH!g#-o*yqj;k_gzjv!_|`)9@2)Iwwb*oqu)Qv8PQt?N3vu&7AV56Q-PY zyffRGHhVU4iOiqG8zAv^3*t>X`PdV~h&F5=!gkrEd)Uk=bEnJ{P>JIOz(fF?bh3Hs z!uU=Tq!98=1NP$3o;5>%o2l3bkZ#)Ssn!(tRMH5n4JSv;t{25qF>yGv%#jzxYco>H zKC>w0@UGfO=H(YeoPF?@ziQ0MJ4BH16Y!Ubg$9q z1d)TNTLCDA^=ZFsp#>I;lJ|-et!h*^f63J51C|8q&8I+`0X@vwc~3BIUYQ^7nYV_Z z=LzaK#e6zH-X}L8o~@@uOyR}xA%%kL5wnA~Xg$Rod~v*A5Aiz*Kf!-1NheP-pU;n{ zGkx$A!VuHu9#&t_KrNu3*`48`-)!cD8;cWDeks|GnENHSq|eAtHbR&mDDL)0+rD3% zxH-~2Vz!O4W){HDnUb!1+IHOXQ8WHm^V|Io>_}w6{eAUj)g|$MmipW4&3l)?Y{Wn3 zR1?1xf9VM$PBpt`?Z=#I{&Z=))b^0GPK`Kw&X{xhF1EJ^y<;(c@;3)_a<@QfnfvgQ zma$=zx&`7lpD?MYluPW=GsKk2b~h!??@x`CSg5Kx&eyd{JdA9ue^7ufH;qt`B`0w1W%wvu5h0%W% zCq9ap>5cI|EoWRAAFteRT3Q#y3tjiymY1611uFVOapFDKY`i-DcI+e?OShS?uO)fH zOu8;!hmNcn*Twx^zG~=^NEMQ^{i|>i1r-$)vVEYOT=C9z_$_qwo#*yQxcQE5IoCXL zUA!`Plep1N`ITwEE?$+l^gNtBh<2WdE{XTv_kG-jvO2A-lwbaG9lhv$B9(9#2eX%5 z9owJW5*vYE!d{R#rRZhD{MgJ|5+9H+Y$N}?h%=Z`&dRY3Lob@vvx_mpLNd+ z+*`8lCAg0{&-A%I-Y?fO9tk&xULPN1qdPPm!Sk<=@6ungKLGdrm=Ex^@U7;1kWZ5S zo-pUUh}n33d|+k|9P|0+5-9d2zI|o|_GawIh5jqB%lIa7R`Z<{+Sg(~Hng{4KP|Ms zjeSmN-;7=8PSS4Sn;zPod6AQxnV}<}lARpd%dwvx+WTPtYiJ*ieQIbQh5ZEV^7lvV zQrn04vbB8}yVUk1KB?_jH^lqOhJiEO^j{j672?55FMYsWWFf70ED@Bvp;lc lk3`}gK&<4O^9&)&@L@AY--nsgdC;r#w&IR9zYufo`#`Aic1Ue zQ;10ogc3XfQ5wKdO2QIqVzxp;9Y_h#76OE&ErGB$ECmAv0;KW(bMDN0dXkgU{{BBF zdUNN_UCurC+;hM8+%tDh-P?cn$^N2s?R76ymSw3=xLaOdJa9>>a)^J{HR+1^rz+QE z;!uU4xV{gRbxmXPxOyQ)wi>ox|GLiCe_)`q7Qw?@^&thm{`WndPUTQV9lFM@ zNU`$|t!T9xXvx=P_=6B4byueEH^g_$7aM^C6#;rlZJFFpocbcTT zEam*8^I6A9St-XUsU_`}&mlLmNjCh^ENGTR6d__OH^g8PFY@KORCdKwdPt=DOXw9HBzWjIXmU# zQdUdL+MfKnvkFw;KnVXb>9n1xw4Uv_Y2`Wv*Hvyht%zM;IwzHZUJH+c5Jt3sZ=Yi&*swVT$-5AXEIJY?G!Ah z&#|mc4cTmej$+z-8n`reW^;~REVlP=c8bNKo$BhcGP$Pc?QUxY5pbzXSt*PE+f=rg zveK^I&+H&KVg5``3L8I=Tpuno%@`V&fhzqaPD>Pan^s_ z`Iz&4=OOzc`|q5OIv;U9?0m@ipmV~x+xdWV-1%GQ{mxy^`<(YWAGbelzsGsEbEk8M z6MZ8!RQbBP&54|&&g-39ov*3aIhWt0UZK9KzM}qOKKR-=_!0Xf_ASn9oL4&^vTt@y z*eC2)I)|N`oL4wEIc8x}?Z@p`QPh$7{C^$?KV*Nv{yl$p+rP7q+rQ=S zG5h@A*uS=aW&fxBOZ%Pn&+Sw8&+Nan-(>&P{)zn`_T}GD-%zi#FX#Us+uyT)VE@Rz z{QLI5+ds4~f7H(Z?4jakqfez*Hgzdg(bll-2Fl&0mDhj5&OD^n9y{7m9<^O5XSF>1H! zl%F9&aTh2_>qh_B(A}al+6}vArW*_LP~y`PpVR5WXOZiQ6SXwHtKg@#6ME$#OQ)lg zjjfwL{!ZnbUCG~&IW%a6C+&%#Z3tx*TH!l?-8y1f+e=orPKRw1eixJ-S7pD$-liK$ zmhOrgyrEK80q!`HexMt5N3_*j+0?D`!*;I@_L8Ps2j26emwEft^P_+A2CoUi;-ps& z&fZ>9`fMG9&P>@~B_%9@_j_pk5^Z~rE4?HvmQAQYWy178*pcc9hTu5KxU>e1B~{R8 zdrOO4Nb^4BcSL)eI-a9j!jsn2c9@YJp9;3R+d|7P&^T`*$kVoMRM$o^<2+D)QNl&- zj8hotirT(QJ9ixl_K)c!chG`-NQW17e$3i{Aml^0toPsH{b%&WroU3H(F>cqng*l< zudG|k(r{M~M03rT4|RpbT|K@Qu9W=|-4Lo7zmJPOG79A>(WVoP&aT1dL;L#R=US9Zmoo(H?|B`I(36T;B2$ae`M*T z6x!JtswtYVdAqq==T`K(P)($0<~rRLZY&3`KF51j&=JnsJLnKMbiI$M&@LBvUh+E% z(kn$uv1iJkaXgWPSecGAwdvz-G4w4Yc+bKqOZlA6%s!|T! ziE42WCvDT~y=Up(GIAp#6VQ!1rSp4xCZx`S-)d;!=?3a4>)y@EqW$)`&P@e{lB3Up zqO)L@f0ocUQf1dl*wu>QXjiY6V7OIombhUC&iSnc-5NS&9qcJ(3E5?n8=}wBt$HYW zUfabN(ybFn#nO=eUs_BRVo7fGU9xHy0oB9E&?P088d}Hw3z0Z`hJGT}5|%*th0!nD z&ad>EcI_o0MKc;CRAXbR9P z2FIdfk-Y&uU}P^Z<$6Igg%l>sev90?LA&l1;fs#9KkYy@GrFo6rlr6XWVh(7_j^^X z2&S3`(vzc>RqQN?oK0;nb_=2!GX5W9WQl8|EKTiE%SvG+Y2#`(MS7`$%1CI zhNo27`#YuEMyyk4K1#7hkxMddvQ&Jbt3zwEm5$c*e?Z+DeY<~a!>vComXVOnmUQ#c zX!XE^`%&e6BntJ}(SrjSr&A9`hxDo_t$PPnkzGWdVf{e`>x%SiTd2$0^^!cBs_E5G z^j_W7E{xKJHOdxF1%(kSD|#h*SPwks)>Bp)9uk*Jq?%zDo@TT`$Z2&+Pas2tzui4V z%-XwpMyXY|>1KEu4+Gu!2eL$a{4IM|#RSW|RBS0|)Sl5x@{>h*pnuAu5cm~gPxxy3 zKFE(b8=NdU?%1sPcL-UC{@q`$x}v6_tI`!SonO?y{Mu#j!%F9Mez{|foxU;7bCc9` zN>Kytd;PldI?Ec%-h5bMkDJ(3HMTv8wIyw#8as6J;jz=FZ+wFP4&4MRZjFmLZLPRz ztdSh4`Iwu=`iLmhN36X0un_&@V8^zFM0LSL?V<;m%R+VVuHaHb6}J$@?SU~Nhg+!O z_Oh{|=p}=#2QD{ty46%qGc|G>r@CT{`hxw`s4pYvU#1U`z(1fbC7XY#zG7_XX8#KP zG|Kj$rZ1;P|MKWZgBQcljYFEbWu9r5AJ$Jhtgkq%FFmXe9M+e`#YTsQRu;QLcSbjh z5QMYQhlaM6-}sj$5n>SyW}9%!WSNI>uo~}HL*;T%gkeXM^o3do*^lE$(YOn_OoeZ* zC8~zp@XgWHOS;?MT6<3WP!1}&QeAqP%P!3RqjMEXGJWZP&etKi1leJ7D*DvH;ALZ zKXhbbGzscTv*t^4CHdmglqqeCNVut6$~MJ88goQz$YfPutU*d#*UFpq{=;LBoHqZ| z4I=fQUpCWO)5TpHF?DHW3o6GiMAr`YR%i@G)Kn(}T81j)G<}e{`YzqI+{uo;{3eD_ zR(HuARV5Y3P&}=s?ixD_3f;TLHkpAY8pafdoKd)U$jno^Xr?HaG72*6%x#bg|7cM) zGIIX=ic+Sc;8Gc3rc%aMs!9jLtx7q=>OIRRmv!m=kgqQ{gGWlfw2uDEWMG-1WK^Ne z0C6*hz;bxDzX{Xc6Z%yF(` zVl2Y1>-?f%5)mZ&sgY(+BTXr06u%K^wakBYFu;$NuNqwQR1@v3=L{=rR596xx1A%i zsY=U)8@+YaKs?Q=4@6I_>Z}}pOOr5eItEpDb0^@;9kcuc{9Vdye_+hrUupy@9JoVL z`g!8_6ThE$Cawcx>gE0cmgf+i2X8Y`h@jFf2g3~Vx_`{RSs!@$*bRrqMqYk1suP{N zU-ImiMn!KJ@tB}{qB}>Pi^gqOy-9sI+O_&n8c4QB=c9jKy@TksHS5)yX!n}CqTj6< z0)-E(?TlszTBAK{+qk=S?Rz_5+-d7N1i?922AJg`6wTsCgX@O6eBtVhNI&X^Q7`1_ zu5rC4x@O&VD`t;$NV7Iszm}OiAKqBK{|$BkzmIqw{41GqiNOUK4X;ya&h=-E-DzH5>i-tp07YziXFjMeF5}?a!zf z@<2pBJbrIe*>9%yJhd|d#!EIAX9hr>M;xRR)B> z9|>lp@HQPiuzsWRkDjv+PVPUat&;SJG|4o8KKTHB68BS3B|hn?B(`yr^-C#>*t_S` zHYW`t_7n55t)^b&ah}%3x|_2X5gT+F98hbDAj8^C(&DId^g6ocmeD0kx^^QN$f_Cl z^TS+v2F)jkND#$WN7t)QM}-aD&;4{PDNLH800mee5u`%&lSc+n5A`1#t?YRHwi=ym4lmugR|AvYuxeZoBbYVBz?*lEX(46C+%W z;mPQUjqR0cJfp%0O0yZFk`f^?qXBIP=%^KdbQ$zh3?qNIyN&rR$`s z9pG3mH;ME`?>={%Iv)M#+|5YO(oKU5>fM{3Ui^@(rIu5m>wPFXzG+F;H>&09_eKwI z>Tju{jezCnW+ntz_eKqy->mwhcW*w6-*0T*qdKGEE$azCW6QG%-+a}UPZ*A z^Z!ouMH{zXPWUgj-b>gEH%EuIHk$jP=;PZiGjZFh3$@iLvs{h-JUnNp3m$yi@+w8A zV8Dh6vrtdzOTB4KB|~exgN2x zQ*eDu`2*2;7i?JGD0gqNG1YN>Ncl~2z0LMLxjv};tXyxk{nqF$7pxlX^*hnF>%^SU zrn93Y;MzJ$0uIMCQZ zMLCRjDc{#cKNH<>VQ+iVqOfUZ8kqpzF_+P%zrC=7CO>fDfYZoQ_=gt`RA%pQG8#7* zwj2xxrovl4Z)SF#3k!?xo%(wwDt9KxVLQD?2rGt%tK|^&(Kzasx~LCIRE~5<;z&{* zxAhjCZKkVOrSwFv+ul)W42xlw`OmCCgGO1jrGh5x0aFsp(97<@>A(wT|G^L`YEG~n za8w3WdNSzKmM)cPYdOeG2!+K7bY4dLW^L6Q0hPmlroiq_Hc z@xhCl$ZM+Y2pgxSAz{8o6sOb)SStq|R9z|ufl;M(6}C%-E2)>kuA?`NZ{1D_4^(MR zN(h9Y_1MxDQL82X9KF)ScLoo5cbAe4<)T_K?o;}u`e8WQIONi^k(5>Q1qU;;7N=0j_#vB zO?5@Iq(v64XY#f@3J%B#1UwnDV8i zv8rH(1+E*)3lrqa$o(Ivsr4ypnoUbhE;S)Di@7Th8naQ5-!@;FAPKRO|AG427uI+5 z>1`F7vY3alO`T0LQ@-I%FAS6+zy{6EpegQC!iiEL!ZMueoq>-8g>w?9a&C6^<@vN{sEPa{HPMT}jL=~*C5El}MOvYQ&RtCsLs@AtWkkf3^*1o zPYe{1)>&r%PC!M*&uiB&=?=e9_cG@fneSVe>r-a>W!cC=tIHP?yTyM7i3Kv1J!k1wBcV|$0Ys!msZ_wksC`(j zol)z)W&6QT1{pOc$OxqL(F7@(6>A#2VHj8T+ly|BPAjqj=IgxdvqEAsoqTq@@j?67 z>ebOL`_?W%QN~Dyx&cLfY2TXC$aDc|W-&n5f{ge3>#A_aT7;ymMMw&)?t(6Yl8Eew+34`l; zCUj4Xn$8n2a=uP$GcSW?bhnukdO}MRo(Q@p*aBuw=r+R~UDE@KHp5&3GR#9KlsOKy zDI%{M4G~?*oh5fy0Ylh&?`Nv(qzZ$k>M2PJoEn6nmU7T%o{kC`8+zC;wKU;`3?d8} z3uricS!;#Zy1Hq2ikxwjA%OXgW{&E9GoAFuOxQ4?H|Rcjut5)+2Wxcy&R}CtFi5S0 zSwl?deoaKbX?%7@4^o6_yaW;**BMr3J#uu@0ZHq7BpBD66PUJ!6^p>Mjb?5Swy_xt zxQxj#br>)gVk41MV=y2Er3$(;b=!_Gp>0@-y@usLT+RX3~g> zS{up)ooCTBPZSWx+{JV)CrglyNiap8ClUQRZEEWC#nIIyT36S5Q zuAC_pHR#t}-%_^y>p8?Anbd2fl_|ZAnXG-8SKmi z1zZq_idSmY7>!)neMwe(v0`hDOEvj6fWZXI1&OmvaqSVz3M!}^=y-zo)yhjmpQ5rGauE&!cg zRULWJpFVv_C16PRNg*0J6BL zRYycz9Z0gVTAc(;_kkpV6#&UzUGOg)08M%z$rhaxYY>>p0)XTJA6+RUC!TS)I|Vui7)x!NhGX$PF-C!S1Bq8NKEL%hKW1?2{0~w!n_a ze#YvG&-Nr+=qr!h!S>7)I2~oruHC_Ds@y-;cV={&9VC)99yICMR>dK}q|cCkC`n%z zjeB3%en#RPu~}j-Usz`ze#IL)uJ8-uvSaoUc7utAe9Q88#Fw2gT6TR%Br&t+-KKZO z*I)-ND_nhkZh%bKCj74Gz|~h&fS-^m`;hCz^ome(XPhYHE+cp8>NDdmA<@Q5LIP>= zj*x&At}T0CQeqTs39|_AL4O&9#GzH#MB`9Ey~w=}Qt+Gj%SFS_?8X*+!83nRc~EH| z^i^OoVZ70Gt`sP~U4G84(5_sVmUdYy?9O1fG-|7M?|uXAB4#MK__ko@Z4&f?U3!P! zbz89OHm*eU1{d8Hr)mxM+;;S6aLH?ez4AZ@`!sp>kXT=|R_~B!7riFfL(JZ1^l-gc z9`BaNJM=zzy5lv$PQ6p_;pxukd)I7#mSOvLy%RF1Uqs2;`wWQOc_*xhSCs{SyIs*2 zQT$UTNa^k17C%k8OC;Tn`GR&te}3)F>cObtS<5TC;5RF*6SS3(h>6_LueU`~^q>6G z%Cnw<7ak0>gb?|e-Fm@&C%0`80(a^iw+J5!C*TK-5Dw8XOyPxzyM-~qZXL7r>K+rY ztY`FiFAa*-vMMlqht8Y`F1bzbk|}9YXUMttDRXA4IZejYiD0*6G*+b)8Q~}t>@rkR zr38{Hy}FD$we+lpc(N{nB#%%*-e*odYBp}Q3A*+~{F@w(~Ym3mH2<_`-1!DX%aIXmM z>+Tk6w;ttp_WaxY-O<4FuyJ}v(O}^*g^?Lq;DTX5GXur(Zz7_=FcN>(BIhL5EzQxHi>e8BcqgQSS(0GmqNpU|G1RlA$Fq93NuV?0Bg7`2tm*KXE3aT?Gurs2 zj1bYNFAsJ_8|^DuCGXHXk7~Ku$Bm59ol*Dm`_?1BG_7(0A`mOFXY`mP)jq0RAjMoJ za$ZXpO+3H1xF8~W{>tKlVe`4?_m9>`)D1{+;lrO)irpu*Y?Xm60W)-WMEx&VSJ^-2 zj49pPbJHEPZdzKkYa`PrJ^>~g-77=rsLzkl4@a4U>bF8u!qb>7c(TE>@YDmww-QdJ zCUG4W`;@D*xPh?POdpg^rhDOSW|E!^@@GCs%Y$4kK05V+?L~hazMr(k(R%#Ed4K#j zO1&fcZh5tOL)1L6LcK6LPmDCEiRkKyz5Cy;!kZsz3jgz)O`+}Gs|x#-Q;9v69r9bu zY>;XdTt__p7K}93UUVDWtqnC-bBPF{UNe-?(m11G;F;J z)DgN2Wj0iBc3uOEhx97rYs&JI&^Zh?7yHw4p5TT-=q%=(1|U&)&D&Y&hS+Dio9d;Q z#0JAqc`757us{eV**d;WkdA zTC_J}{gn;vSWg~!(Q@`kfBvFnIRT|)(q81hxU~{b=rDt{&y=4(lAo*P=jmnH1w&oP z%@y)Aq2dVqjQLCj%G->c~6h20z@wUQ3Vnc%*tMIijtb+lB)b{ ztVr`Xha4R{;-)xF%lwj5CDwT9eD;_H~&Mt7;5Og))W&GLqc~YPRum5^V;szM)@_$bgq`CDpabF#3y2aiE zqF{Ow76v1-Aw9rmGmcKD)r*jY9#*x)7V2X&69MB1^LVu8`aWLtx%m1~eh*)N_70

VEIEBQS?<|6q%P< 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 res.text() ), - fetch("https://mdn.alipayobjects.com/rms/afts/file/A*DFX8RJ6Z0G0AAAAAXoAAAAgAehQnAQ/basis_transcoder.wasm").then( + fetch("https://mdn.alipayobjects.com/rms/afts/file/A*Ey3UQqdJNrMAAAAAXoAAAAgAehQnAQ/basis_transcoder.wasm").then( (res) => res.arrayBuffer() ) ]).then(([jsCode, wasmBuffer]) => { diff --git a/tests/src/loader/KTX2Loader.test.ts b/tests/src/loader/KTX2Loader.test.ts index 2cfdca012..edad4b238 100644 --- a/tests/src/loader/KTX2Loader.test.ts +++ b/tests/src/loader/KTX2Loader.test.ts @@ -1,7 +1,7 @@ -import { WebGLEngine } from "@galacean/engine-rhi-webgl"; +import { GLCapabilityType, Texture2D, TextureFormat } from "@galacean/engine-core"; import { KTX2Loader } from "@galacean/engine-loader"; -import { Texture2D, TextureFormat, GLCapabilityType } from "@galacean/engine-core"; -import { describe, beforeAll, afterAll, expect, it } from "vitest"; +import { WebGLEngine } from "@galacean/engine-rhi-webgl"; +import { afterAll, beforeAll, describe, expect, it } from "vitest"; let engine: WebGLEngine; From 7861f3f20cc30fbf91952dd5d077fad3388a2997 Mon Sep 17 00:00:00 2001 From: zhuxudong Date: Fri, 25 Jul 2025 17:15:34 +0800 Subject: [PATCH 4/7] Fix ktx2 compatibility (#2783) --- packages/loader/libs/basis_transcoder.js | 23 +++++++++--------- packages/loader/libs/basis_transcoder.wasm | Bin 499440 -> 494886 bytes .../ktx2/transcoder/BinomialLLCTranscoder.ts | 4 +-- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/loader/libs/basis_transcoder.js b/packages/loader/libs/basis_transcoder.js index 502fb67b5..f9ba4e714 100644 --- a/packages/loader/libs/basis_transcoder.js +++ b/packages/loader/libs/basis_transcoder.js @@ -1,22 +1,21 @@ var BASIS = (() => { - var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined; - if (typeof __filename != 'undefined') _scriptName = _scriptName || __filename; + var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; + if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; return ( -function(moduleArg = {}) { - var moduleRtn; +function(BASIS) { + BASIS = BASIS || {}; -var Module=moduleArg;var readyPromiseResolve,readyPromiseReject;var readyPromise=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof WorkerGlobalScope!="undefined";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&process.type!="renderer";if(ENVIRONMENT_IS_NODE){}var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var readAsync,readBinary;if(ENVIRONMENT_IS_NODE){var fs=require("fs");var nodePath=require("path");scriptDirectory=__dirname+"/";readBinary=filename=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename);return ret};readAsync=async(filename,binary=true)=>{filename=isFileURI(filename)?new URL(filename):filename;var ret=fs.readFileSync(filename,binary?undefined:"utf8");return ret};if(!Module["thisProgram"]&&process.argv.length>1){thisProgram=process.argv[1].replace(/\\/g,"/")}arguments_=process.argv.slice(2);quit_=(status,toThrow)=>{process.exitCode=status;throw toThrow}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptName){scriptDirectory=_scriptName}if(scriptDirectory.startsWith("blob:")){scriptDirectory=""}else{scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}{if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=async url=>{if(isFileURI(url)){return new Promise((resolve,reject)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){resolve(xhr.response);return}reject(xhr.status)};xhr.onerror=reject;xhr.send(null)})}var response=await fetch(url,{credentials:"same-origin"});if(response.ok){return response.arrayBuffer()}throw new Error(response.status+" : "+response.url)}}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];var wasmBinary=Module["wasmBinary"];var wasmMemory;var ABORT=false;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;Module["monitorRunDependencies"]?.(runDependencies)}function removeRunDependency(id){runDependencies--;Module["monitorRunDependencies"]?.(runDependencies);if(runDependencies==0){if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){Module["onAbort"]?.(what);what="Aborted("+what+")";err(what);ABORT=true;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";var isDataURI=filename=>filename.startsWith(dataURIPrefix);var isFileURI=filename=>filename.startsWith("file://");function findWasmBinary(){var f="basis_transcoder.wasm";if(!isDataURI(f)){return locateFile(f)}return f}var wasmBinaryFile;function getBinarySync(file){if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}async function getWasmBinary(binaryFile){if(!wasmBinary){try{var response=await readAsync(binaryFile);return new Uint8Array(response)}catch{}}return getBinarySync(binaryFile)}async function instantiateArrayBuffer(binaryFile,imports){try{var binary=await getWasmBinary(binaryFile);var instance=await WebAssembly.instantiate(binary,imports);return instance}catch(reason){err(`failed to asynchronously prepare wasm: ${reason}`);abort(reason)}}async function instantiateAsync(binary,binaryFile,imports){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&!isFileURI(binaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){try{var response=fetch(binaryFile,{credentials:"same-origin"});var instantiationResult=await WebAssembly.instantiateStreaming(response,imports);return instantiationResult}catch(reason){err(`wasm streaming compile failed: ${reason}`);err("falling back to ArrayBuffer instantiation")}}return instantiateArrayBuffer(binaryFile,imports)}function getWasmImports(){return{a:wasmImports}}async function createWasm(){function receiveInstance(instance,module){wasmExports=instance.exports;wasmMemory=wasmExports["J"];updateMemoryViews();wasmTable=wasmExports["N"];addOnInit(wasmExports["K"]);removeRunDependency("wasm-instantiate");return wasmExports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}var info=getWasmImports();if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err(`Module.instantiateWasm callback failed with error: ${e}`);readyPromiseReject(e)}}wasmBinaryFile??=findWasmBinary();try{var result=await instantiateAsync(wasmBinary,wasmBinaryFile,info);receiveInstantiationResult(result);return result}catch(e){readyPromiseReject(e);return}}class ExitStatus{name="ExitStatus";constructor(status){this.message=`Program terminated with exit(${status})`;this.status=status}}var callRuntimeCallbacks=callbacks=>{while(callbacks.length>0){callbacks.shift()(Module)}};var noExitRuntime=Module["noExitRuntime"]||true;var __abort_js=()=>abort("");var structRegistrations={};var runDestructors=destructors=>{while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}};function readPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var InternalError;var throwInternalError=message=>{throw new InternalError(message)};var whenDependentTypesAreResolved=(myTypes,dependentTypes,getTypeConverters)=>{myTypes.forEach(type=>typeDependencies[type]=dependentTypes);function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}};var __embind_finalize_value_object=structType=>{var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>getterReturnType["fromWireType"](getter(getterContext,ptr)),write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,fromWireType:ptr=>{var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},toWireType:(destructors,o)=>{for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError(`Missing field: "${fieldName}"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:rawDestructor}]})};var __embind_register_bigint=(primitiveType,name,size,minRange,maxRange)=>{};var embind_init_charCodes=()=>{var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes};var embind_charCodes;var readLatin1String=ptr=>{var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret};var BindingError;var throwBindingError=message=>{throw new BindingError(message)};function sharedRegisterType(rawType,registeredInstance,options={}){var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function registerType(rawType,registeredInstance,options={}){return sharedRegisterType(rawType,registeredInstance,options)}var GenericWireTypeSize=8;var __embind_register_bool=(rawType,name,trueValue,falseValue)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:function(wt){return!!wt},toWireType:function(destructors,o){return o?trueValue:falseValue},argPackAdvance:GenericWireTypeSize,readValueFromPointer:function(pointer){return this["fromWireType"](HEAPU8[pointer])},destructorFunction:null})};var shallowCopyInternalPointer=o=>({count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType});var throwInstanceAlreadyDeleted=obj=>{function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")};var finalizationRegistry=false;var detachFinalizer=handle=>{};var runDestructor=$$=>{if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}};var releaseClassHandle=$$=>{$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}};var downcastPointer=(ptr,ptrClass,desiredClass)=>{if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)};var registeredPointers={};var registeredInstances={};var getBasestPointer=(class_,ptr)=>{if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr};var getInheritedInstance=(class_,ptr)=>{ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]};var makeClassHandle=(prototype,record)=>{if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record,writable:true}}))};function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}var attachFinalizer=handle=>{if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)};var deletionQueue=[];var flushPendingDeletes=()=>{while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}};var delayFunction;var init_ClassHandle=()=>{Object.assign(ClassHandle.prototype,{isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;other.$$=other.$$;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right},clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}},delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}},isDeleted(){return!this.$$.ptr},deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}})};function ClassHandle(){}var createNamedFunction=(name,body)=>Object.defineProperty(body,"name",{value:name});var ensureOverloadTable=(proto,methodName,humanName)=>{if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(...args){if(!proto[methodName].overloadTable.hasOwnProperty(args.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${args.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[args.length].apply(this,args)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}};var exposePublicSymbol=(name,value,numArguments)=>{if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module[name].overloadTable.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var char_0=48;var char_9=57;var makeLegalFunctionName=name=>{name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name};function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}var upcastPointer=(ptr,ptrClass,desiredClass)=>{while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr};function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle||!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(()=>clonedHandle["delete"]()));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}var init_RegisteredPointer=()=>{Object.assign(RegisteredPointer.prototype,{getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr},destructor(ptr){this.rawDestructor?.(ptr)},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,fromWireType:RegisteredPointer_fromWireType})};function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}var replacePublicSymbol=(name,value,numArguments)=>{if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistent public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}};var dynCallLegacy=(sig,ptr,args)=>{sig=sig.replace(/p/g,"i");var f=Module["dynCall_"+sig];return f(ptr,...args)};var wasmTable;var getWasmTableEntry=funcPtr=>wasmTable.get(funcPtr);var dynCall=(sig,ptr,args=[])=>{if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr)(...args);return rtn};var getDynCaller=(sig,ptr)=>(...args)=>dynCall(sig,ptr,args);var embind__requireFunction=(signature,rawFunction)=>{signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp};var extendError=(baseErrorType,errorName)=>{var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass};var UnboundTypeError;var getTypeName=type=>{var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv};var throwUnboundTypeError=(message,types)=>{var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))};var __embind_register_class=(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor)=>{name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);upcast&&=embind__requireFunction(upcastSignature,upcast);downcast&&=embind__requireFunction(downcastSignature,downcast);rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],base=>{base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(name,function(...args){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[args.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${args.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,args)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){registeredClass.baseClass.__derivedClasses??=[];registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})};var heap32VectorToArray=(count,firstElement)=>{var array=[];for(var i=0;i>2])}return array};function usesDestructorStack(argTypes){for(var i=1;i{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})};var getFunctionName=signature=>{signature=signature.trim();const argsIndex=signature.indexOf("(");if(argsIndex!==-1){return signature.substr(0,argsIndex)}else{return signature}};var __embind_register_class_function=(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync,isNonnullReturn)=>{var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);methodName=getFunctionName(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],classType=>{classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,argTypes=>{var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})};var __embind_register_constant=(name,type,value)=>{name=readLatin1String(name);whenDependentTypesAreResolved([],[type],type=>{type=type[0];Module[name]=type["fromWireType"](value);return[]})};var emval_freelist=[];var emval_handles=[];var __emval_decref=handle=>{if(handle>9&&0===--emval_handles[handle+1]){emval_handles[handle]=undefined;emval_freelist.push(handle)}};var count_emval_handles=()=>emval_handles.length/2-5-emval_freelist.length;var init_emval=()=>{emval_handles.push(0,1,undefined,1,null,1,true,1,false,1);Module["count_emval_handles"]=count_emval_handles};var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles[handle]},toHandle:value=>{switch(value){case undefined:return 2;case null:return 4;case true:return 6;case false:return 8;default:{const handle=emval_freelist.pop()||emval_handles.length;emval_handles[handle]=value;emval_handles[handle+1]=1;return handle}}}};var EmValType={name:"emscripten::val",fromWireType:handle=>{var rv=Emval.toValue(handle);__emval_decref(handle);return rv},toWireType:(destructors,value)=>Emval.toHandle(value),argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction:null};var __embind_register_emval=rawType=>registerType(rawType,EmValType);var enumReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?function(pointer){return this["fromWireType"](HEAP8[pointer])}:function(pointer){return this["fromWireType"](HEAPU8[pointer])};case 2:return signed?function(pointer){return this["fromWireType"](HEAP16[pointer>>1])}:function(pointer){return this["fromWireType"](HEAPU16[pointer>>1])};case 4:return signed?function(pointer){return this["fromWireType"](HEAP32[pointer>>2])}:function(pointer){return this["fromWireType"](HEAPU32[pointer>>2])};default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_enum=(rawType,name,size,isSigned)=>{name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name,constructor:ctor,fromWireType:function(c){return this.constructor.values[c]},toWireType:(destructors,c)=>c.value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:enumReadValueFromPointer(name,size,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)};var requireRegisteredType=(rawType,humanName)=>{var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(`${humanName} has unknown type ${getTypeName(rawType)}`)}return impl};var __embind_register_enum_value=(rawEnumType,name,enumValue)=>{var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value};var embindRepr=v=>{if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}};var floatReadValueFromPointer=(name,width)=>{switch(width){case 4:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 8:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError(`invalid float width (${width}): ${name}`)}};var __embind_register_float=(rawType,name,size)=>{name=readLatin1String(name);registerType(rawType,{name,fromWireType:value=>value,toWireType:(destructors,value)=>value,argPackAdvance:GenericWireTypeSize,readValueFromPointer:floatReadValueFromPointer(name,size),destructorFunction:null})};var __embind_register_function=(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync,isNonnullReturn)=>{var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);name=getFunctionName(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,argTypes=>{var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})};var integerReadValueFromPointer=(name,width,signed)=>{switch(width){case 1:return signed?pointer=>HEAP8[pointer]:pointer=>HEAPU8[pointer];case 2:return signed?pointer=>HEAP16[pointer>>1]:pointer=>HEAPU16[pointer>>1];case 4:return signed?pointer=>HEAP32[pointer>>2]:pointer=>HEAPU32[pointer>>2];default:throw new TypeError(`invalid integer width (${width}): ${name}`)}};var __embind_register_integer=(primitiveType,name,size,minRange,maxRange)=>{name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name,fromWireType,toWireType,argPackAdvance:GenericWireTypeSize,readValueFromPointer:integerReadValueFromPointer(name,size,minRange!==0),destructorFunction:null})};var __embind_register_memory_view=(rawType,dataTypeIndex,name)=>{var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){var size=HEAPU32[handle>>2];var data=HEAPU32[handle+4>>2];return new TA(HEAP8.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name,fromWireType:decodeMemoryView,argPackAdvance:GenericWireTypeSize,readValueFromPointer:decodeMemoryView},{ignoreDuplicateRegistrations:true})};var stringToUTF8Array=(str,heap,outIdx,maxBytesToWrite)=>{if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx};var stringToUTF8=(str,outPtr,maxBytesToWrite)=>stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite);var lengthBytesUTF8=str=>{var len=0;for(var i=0;i=55296&&c<=57343){len+=4;++i}else{len+=3}}return len};var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder:undefined;var UTF8ArrayToString=(heapOrArray,idx=0,maxBytesToRead=NaN)=>{var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx>10,56320|ch&1023)}}return str};var UTF8ToString=(ptr,maxBytesToRead)=>ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):"";var __embind_register_std_string=(rawType,name)=>{name=readLatin1String(name);var stdStringIsUTF8=true;registerType(rawType,{name,fromWireType(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i{var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str};var stringToUTF16=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr};var lengthBytesUTF16=str=>str.length*2;var UTF32ToString=(ptr,maxBytesToRead)=>{var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str};var stringToUTF32=(str,outPtr,maxBytesToWrite)=>{maxBytesToWrite??=2147483647;if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr};var lengthBytesUTF32=str=>{var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len};var __embind_register_std_wstring=(rawType,charSize,name)=>{name=readLatin1String(name);var decodeString,encodeString,readCharAt,lengthBytesUTF;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;readCharAt=pointer=>HEAPU16[pointer>>1]}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;readCharAt=pointer=>HEAPU32[pointer>>2]}registerType(rawType,{name,fromWireType:value=>{var length=HEAPU32[value>>2];var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||readCharAt(currentBytePtr)==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},toWireType:(destructors,value)=>{if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length/charSize;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},argPackAdvance:GenericWireTypeSize,readValueFromPointer:readPointer,destructorFunction(ptr){_free(ptr)}})};var __embind_register_value_object=(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor)=>{structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}};var __embind_register_value_object_field=(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext)=>{structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext,setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext})};var __embind_register_void=(rawType,name)=>{name=readLatin1String(name);registerType(rawType,{isVoid:true,name,argPackAdvance:0,fromWireType:()=>undefined,toWireType:(destructors,o)=>undefined})};var emval_returnValue=(returnType,destructorsRef,handle)=>{var destructors=[];var result=returnType["toWireType"](destructors,handle);if(destructors.length){HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors)}return result};var __emval_as=(handle,returnType,destructorsRef)=>{handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");return emval_returnValue(returnType,destructorsRef,handle)};var emval_methodCallers=[];var __emval_call=(caller,handle,destructorsRef,args)=>{caller=emval_methodCallers[caller];handle=Emval.toValue(handle);return caller(null,handle,destructorsRef,args)};var emval_symbols={};var getStringOrSymbol=address=>{var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol};var __emval_call_method=(caller,objHandle,methodName,destructorsRef,args)=>{caller=emval_methodCallers[caller];objHandle=Emval.toValue(objHandle);methodName=getStringOrSymbol(methodName);return caller(objHandle,objHandle[methodName],destructorsRef,args)};var emval_get_global=()=>{if(typeof globalThis=="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$=="object"&&obj["$$$embind_global$$$"]==obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}if(typeof global=="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self=="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$=="object"){return $$$embind_global$$$}throw Error("unable to get global object.")};var __emval_get_global=name=>{if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}};var emval_addMethodCaller=caller=>{var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id};var emval_lookupTypes=(argCount,argTypes)=>{var a=new Array(argCount);for(var i=0;i>2],"parameter "+i)}return a};var reflectConstruct=Reflect.construct;var __emval_get_method_caller=(argCount,argTypes,kind)=>{var types=emval_lookupTypes(argCount,argTypes);var retType=types.shift();argCount--;var argN=new Array(argCount);var invokerFunction=(obj,func,destructorsRef,args)=>{var offset=0;for(var i=0;it.name).join(", ")}) => ${retType.name}>`;return emval_addMethodCaller(createNamedFunction(functionName,invokerFunction))};var __emval_get_module_property=name=>{name=getStringOrSymbol(name);return Emval.toHandle(Module[name])};var __emval_get_property=(handle,key)=>{handle=Emval.toValue(handle);key=Emval.toValue(key);return Emval.toHandle(handle[key])};var __emval_incref=handle=>{if(handle>9){emval_handles[handle+1]+=1}};var __emval_new_cstring=v=>Emval.toHandle(getStringOrSymbol(v));var __emval_run_destructors=handle=>{var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)};var getHeapMax=()=>2147483648;var alignMemory=(size,alignment)=>Math.ceil(size/alignment)*alignment;var growMemory=size=>{var b=wasmMemory.buffer;var pages=(size-b.byteLength+65535)/65536|0;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}};var _emscripten_resize_heap=requestedSize=>{var oldSize=HEAPU8.length;requestedSize>>>=0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignMemory(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=growMemory(newSize);if(replacement){return true}}return false};var _fd_close=fd=>52;var convertI32PairToI53Checked=(lo,hi)=>hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN;function _fd_seek(fd,offset_low,offset_high,whence,newOffset){var offset=convertI32PairToI53Checked(offset_low,offset_high);return 70}var printCharBuffers=[null,[],[]];var printChar=(stream,curr)=>{var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer));buffer.length=0}else{buffer.push(curr)}};var _fd_write=(fd,iov,iovcnt,pnum)=>{var num=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0};InternalError=Module["InternalError"]=class InternalError extends Error{constructor(message){super(message);this.name="InternalError"}};embind_init_charCodes();BindingError=Module["BindingError"]=class BindingError extends Error{constructor(message){super(message);this.name="BindingError"}};init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var wasmImports={w:__abort_js,h:__embind_finalize_value_object,v:__embind_register_bigint,F:__embind_register_bool,k:__embind_register_class,i:__embind_register_class_constructor,b:__embind_register_class_function,A:__embind_register_constant,C:__embind_register_emval,f:__embind_register_enum,a:__embind_register_enum_value,p:__embind_register_float,d:__embind_register_function,e:__embind_register_integer,c:__embind_register_memory_view,E:__embind_register_std_string,j:__embind_register_std_wstring,g:__embind_register_value_object,B:__embind_register_value_object_field,G:__embind_register_void,l:__emval_as,n:__emval_call,q:__emval_call_method,D:__emval_decref,H:__emval_get_global,m:__emval_get_method_caller,y:__emval_get_module_property,I:__emval_get_property,r:__emval_incref,t:__emval_new_cstring,s:__emval_run_destructors,x:_emscripten_resize_heap,z:_fd_close,u:_fd_seek,o:_fd_write};var wasmExports;createWasm();var ___wasm_call_ctors=()=>(___wasm_call_ctors=wasmExports["K"])();var ___getTypeName=a0=>(___getTypeName=wasmExports["L"])(a0);var _malloc=a0=>(_malloc=wasmExports["M"])(a0);var _free=a0=>(_free=wasmExports["O"])(a0);var dynCall_jiji=Module["dynCall_jiji"]=(a0,a1,a2,a3,a4)=>(dynCall_jiji=Module["dynCall_jiji"]=wasmExports["P"])(a0,a1,a2,a3,a4);var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);Module["onRuntimeInitialized"]?.();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(()=>{setTimeout(()=>Module["setStatus"](""),1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();moduleRtn=readyPromise; +var Module=typeof BASIS!=="undefined"?BASIS:{};var objAssign=Object.assign;var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=objAssign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=function(){if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=function readAsync(filename,onload,onerror){requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=((status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)});Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=(title=>document.title=title)}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);objAssign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder){return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr))}else{var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i=55296&&codeUnit<=57343)++i;len+=4}return len}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="basis_transcoder.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["K"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["O"];addOnInit(Module["asm"]["L"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAPU32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return function(){null;return body.apply(this,arguments)}}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}var finalizationGroup=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function attachFinalizer(handle){if("undefined"===typeof FinalizationGroup){attachFinalizer=function(handle){return handle};return handle}finalizationGroup=new FinalizationGroup(function(iter){for(var result=iter.next();!result.done;result=iter.next()){var $$=result.value;if(!$$.ptr){console.warn("object already deleted: "+$$.ptr)}else{releaseClassHandle($$)}}});attachFinalizer=function(handle){finalizationGroup.register(handle,handle.$$,handle.$$);return handle};detachFinalizer=function(handle){finalizationGroup.unregister(handle.$$)};return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}var delayFunction=undefined;var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}var registeredPointers={};function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError("Function '"+humanName+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+proto[methodName].overloadTable+")!")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError("Cannot register public name '"+name+"' twice")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError("Cannot register multiple overloads of a function with the same number of arguments ("+numArguments+")!")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError("Expected null or instance of "+desiredClass.name+", got an instance of "+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError("Cannot convert argument of type "+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+" to parameter type "+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError("null is not a valid "+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass "'+_embind_repr(handle)+'" as a '+this.name)}if(!handle.$$.ptr){throwBindingError("Cannot pass deleted object as a pointer of type "+this.name)}if(handle.$$.ptrType.isConst){throwBindingError("Cannot convert argument of type "+handle.$$.ptrType.name+" to parameter type "+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}return getWasmTableEntry(ptr).apply(null,args)}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=arguments.length;for(var i=0;i>2)+i])}return array}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName="constructor "+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError("Cannot register multiple constructors with identical number of parameters ("+(argCount-1)+") for class '"+classType.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!")}classType.registeredClass.constructor_body[argCount-1]=function unboundTypeHandler(){throwUnboundTypeError("Cannot construct "+classType.name+" due to unbound types",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(enumType.name+"_"+name,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError("Cannot call "+name+" due to unbound types",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.includes("unsigned");var checkAssertions=function(value,toTypeName){};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value==="string")){throwBindingError("Cannot pass non-string to C++ string type "+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function __emval_as(handle,returnType,destructorsRef){handle=Emval.toValue(handle);returnType=requireRegisteredType(returnType,"emval::as");var destructors=[];var rd=Emval.toHandle(destructors);HEAP32[destructorsRef>>2]=rd;return returnType["toWireType"](destructors,handle)}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}else{return symbol}}var emval_methodCallers=[];function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_get_global(){if(typeof globalThis==="object"){return globalThis}function testGlobal(obj){obj["$$$embind_global$$$"]=obj;var success=typeof $$$embind_global$$$==="object"&&obj["$$$embind_global$$$"]===obj;if(!success){delete obj["$$$embind_global$$$"]}return success}if(typeof $$$embind_global$$$==="object"){return $$$embind_global$$$}if(typeof global==="object"&&testGlobal(global)){$$$embind_global$$$=global}else if(typeof self==="object"&&testGlobal(self)){$$$embind_global$$$=self}if(typeof $$$embind_global$$$==="object"){return $$$embind_global$$$}throw Error("unable to get global object.")}function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}}function __emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function __emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i>2)+i],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=__emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=function(handle,name,destructors,args){var offset=0;for(var i=0;i4){emval_handle_array[handle].refcount+=1}}function craftEmvalAllocator(argCount){var argsList=new Array(argCount+1);return function(constructor,argTypes,args){argsList[0]=constructor;for(var i=0;i>2)+i],"parameter "+i);argsList[i+1]=argType.readValueFromPointer(args);args+=argType.argPackAdvance}var obj=new(constructor.bind.apply(constructor,argsList));return Emval.toHandle(obj)}}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=Emval.toValue(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_new_cstring(v){return Emval.toHandle(getStringOrSymbol(v))}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function _abort(){abort("")}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+4>>2];iov+=8;for(var j=0;j>2]=num;return 0}function _setTempRet0(val){setTempRet0(val)}InternalError=Module["InternalError"]=extendError(Error,"InternalError");embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_ClassHandle();init_RegisteredPointer();init_embind();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");init_emval();var asmLibraryArg={"h":__embind_finalize_value_object,"u":__embind_register_bigint,"z":__embind_register_bool,"j":__embind_register_class,"l":__embind_register_class_constructor,"a":__embind_register_class_function,"I":__embind_register_constant,"y":__embind_register_emval,"g":__embind_register_enum,"f":__embind_register_enum_value,"q":__embind_register_float,"c":__embind_register_function,"d":__embind_register_integer,"b":__embind_register_memory_view,"p":__embind_register_std_string,"k":__embind_register_std_wstring,"i":__embind_register_value_object,"e":__embind_register_value_object_field,"A":__embind_register_void,"m":__emval_as,"s":__emval_call_void_method,"B":__emval_decref,"D":__emval_get_global,"r":__emval_get_method_caller,"H":__emval_get_module_property,"J":__emval_get_property,"E":__emval_incref,"G":__emval_new,"F":__emval_new_cstring,"C":__emval_run_destructors,"n":_abort,"w":_emscripten_resize_heap,"x":_fd_close,"t":_fd_seek,"o":_fd_write,"v":_setTempRet0};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["L"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["M"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["N"]).apply(null,arguments)};var ___getTypeName=Module["___getTypeName"]=function(){return(___getTypeName=Module["___getTypeName"]=Module["asm"]["P"]).apply(null,arguments)};var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=function(){return(___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=Module["asm"]["Q"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["R"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run(); - return moduleRtn; + return BASIS.ready } ); })(); -if (typeof exports === 'object' && typeof module === 'object') { +if (typeof exports === 'object' && typeof module === 'object') module.exports = BASIS; - // This default export looks redundant, but it allows TS to import this - // commonjs style module. - module.exports.default = BASIS; -} else if (typeof define === 'function' && define['amd']) - define([], () => BASIS); +else if (typeof define === 'function' && define['amd']) + define([], function() { return BASIS; }); +else if (typeof exports === 'object') + exports["BASIS"] = BASIS; diff --git a/packages/loader/libs/basis_transcoder.wasm b/packages/loader/libs/basis_transcoder.wasm index 536a402d6e5f8a9ba5274c06dcefa9119a2c1cf0..7560bbf983075fc83f92f6e3d39d84db4abcb834 100755 GIT binary patch delta 190009 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%0A`5La=ZdZ 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 TnErXmOMDjZBh{Ago%a6$s_iS7 delta 194601 zcmb@v3xHkMRo{Ic_kHio+Y z6A{4nnZ%0Yl9W0gQBATQXV3uK>JZJ&xAmu@AqH( zoI7_$BZoj`&prF>v(MgZuf5jVYpuQZKL6q$Z+qqA+w$OzkA6!S1VQ-Il{+5^^DuuT z%8TFNkvO-sE&&gNM=GSaRCVcJdB^g(*6aaK0{-W|?(bD$HGhJCL0N>H1`pr!M5~dj z-Nzppf6q@$z2}2_^5Np0)mNMS9Nud6Z)j#{^@bEMK2AkZ{#am@+e2Q7^C$A~3G3M7 zzE6)85IGBhgjI62Huuu{F)E4FRB6=cUc~`jiJzpHIkTtsUN_fjD zdO$pc0N&PDa<{KOgQ0-x$6zsPOv@ z!6ttHj-|gb=#u`sL7m^f7u5Lurl7^|n}RC8-)!lgm7EVYld}*we!nG%`Tf=);rH8u zCckgCGG~L7^rF4{sQoTM3vUeHk_Qbg=Yk1-zddO4`&N7K9rpX3_L~I)an69d$6h{W zzsG}!{1XP;y_P;{XuqHh-z^dMG>Sr6oz3n48o|gD~RGo7+qVPigs5LKMPD)q5A45K~Gy^S!KxGoOs^?m#G@cJOQA*!_^+HAGLYP&KV=V9$Y zH5i?)ZmkY=o7HN!5(bSMRc#nHqiWo&2Gi3w&9>ULD6FVf{?%(yy?b+|Mh5?dl{U$G zt#-@stpIzl5;P7S9^h`S?=&8}YBlzZU;${9of= ziT_LdlhIE`za0PP_?O~ejQ>;oa{M3TpNoGs{txlTqmM^F6MrWDX=v=Hpt64-e=`2b z_@mKBqnF}O#24fLH~xwE+KmKs^;pkt)|4;lw@js9MS^Q7q=i?uY|4IA<@&6rv zfBcW*_r>pxzc2nr@%P5h#Vhf%@q6O`5N>w#!IM7u!RX&cpXcv~qd$u-M1RWPpG1Eg{ZaIX(JRp(M86;Xuju!pe-wRh^#4Ww zBl@4w>wYc#weZR4b^QOk(QiioE&844b)SoVEBfu|b^kqTz5TPDPsMw}Fn3Yq=*ruh z=~r*jO|Uzvq+!;4pmNlO-K{Rjf`d_|-TrVGR`M)PLSG`v+-oU8=|*Zq#e#U3j8$G>fv(@&1Wf<-3so;(0RSb7_TiW!}Z7(r`A7=hMo;s6mm) z#aX;G4;ZeLg0zxQT@sPgnAd⁡@ZTY#Q84F|y~= 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�yph3Y60e^=F?n{@BEQZ({ z?#3N$GQa(4U_r@0{u1|Fr73Y?U1>%ToYSA6p`^b7e~J6dWuzHNdAJjsgLKon!o-Qs z@G)Eq+16J54Z-dUVotA zcoUyr$NdJsZhl+%eUqQcJ&m~FvRwMXPZXw9XY;X+-x?z2-@xzK3%!36{`Y0!ci=xK z^KZd_LFRt||Jj+p7rzFl%6Wp{>de0#zxcbtU*Wen^9O60d6s4$O+dCR^N+)Sapv#9 z|Dnu31ONG%e=h!W@$28|_|@8P@vF7=+xXSm3;5Ami5zF1dCtWbpZ&f?YYshh)|qFX zci~0L&P+djbz%5>NE*x_jmo%(U#*OL@qdTkef)a(>E9DsUH9W3obJ1Pe~;e-{8aCD zew3LOt^v!01zlMM-^X9e_yhdL@gRh^uReVBhnAmr=AsMF{{SjjpMVx;93BL(@OvG< z`TS1iSI6E1ap9NQo4R^rvG^5=*vxPBkBGUI5cbU6-MIDIYu7(+v+v})Zqq~g;O_qi D_}Bnw diff --git a/packages/loader/src/ktx2/transcoder/BinomialLLCTranscoder.ts b/packages/loader/src/ktx2/transcoder/BinomialLLCTranscoder.ts index c356d5c39..e62712699 100644 --- a/packages/loader/src/ktx2/transcoder/BinomialLLCTranscoder.ts +++ b/packages/loader/src/ktx2/transcoder/BinomialLLCTranscoder.ts @@ -10,10 +10,10 @@ export class BinomialLLCTranscoder extends AbstractTranscoder { _initTranscodeWorkerPool() { return Promise.all([ - fetch("https://mdn.alipayobjects.com/rms/afts/file/A*z-iFT4PIU5AAAAAAQ0AAAAgAehQnAQ/basis_transcoder.js").then( + fetch("https://mdn.alipayobjects.com/rms/afts/file/A*J8IrSL8WE8EAAAAAQ6AAAAgAehQnAQ/basis_transcoder.js").then( (res) => res.text() ), - fetch("https://mdn.alipayobjects.com/rms/afts/file/A*Ey3UQqdJNrMAAAAAXoAAAAgAehQnAQ/basis_transcoder.wasm").then( + fetch("https://mdn.alipayobjects.com/rms/afts/file/A*F3duSLqOP2sAAAAAXjAAAAgAehQnAQ/basis_transcoder.wasm").then( (res) => res.arrayBuffer() ) ]).then(([jsCode, wasmBuffer]) => { From f10b07fa3686a08497056e1e138cbc3e89943c4c Mon Sep 17 00:00:00 2001 From: AZhan Date: Wed, 6 Aug 2025 17:26:16 +0800 Subject: [PATCH 5/7] fix: particle set tiling (#2789) --- .../modules/TextureSheetAnimationModule.ts | 16 +++++- .../ParticleTextureSheetAnimation.test.ts | 50 +++++++++++++++++++ 2 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 tests/src/core/particle/ParticleTextureSheetAnimation.test.ts diff --git a/packages/core/src/particle/modules/TextureSheetAnimationModule.ts b/packages/core/src/particle/modules/TextureSheetAnimationModule.ts index a75470911..c75601c33 100644 --- a/packages/core/src/particle/modules/TextureSheetAnimationModule.ts +++ b/packages/core/src/particle/modules/TextureSheetAnimationModule.ts @@ -8,6 +8,7 @@ import { ParticleRandomSubSeeds } from "../enums/ParticleRandomSubSeeds"; import { ParticleCompositeCurve } from "./ParticleCompositeCurve"; import { CurveKey, ParticleCurve } from "./ParticleCurve"; import { ParticleGeneratorModule } from "./ParticleGeneratorModule"; +import { ParticleGenerator } from "../ParticleGenerator"; /** * Texture sheet animation module. @@ -50,8 +51,13 @@ export class TextureSheetAnimationModule extends ParticleGeneratorModule { } set tiling(value: Vector2) { - this._tiling = value; - this._tillingInfo.set(1.0 / value.x, 1.0 / value.y, value.x * value.y); + value !== this._tiling && this._tiling.copyFrom(value); + } + + constructor(generator: ParticleGenerator) { + super(generator); + // @ts-ignore + this._tiling._onValueChanged = this._onTilingChanged.bind(this); } /** @@ -85,6 +91,12 @@ export class TextureSheetAnimationModule extends ParticleGeneratorModule { _resetRandomSeed(randomSeed: number): void { this._frameOverTimeRand.reset(randomSeed, ParticleRandomSubSeeds.TextureSheetAnimation); } + + @ignoreClone + private _onTilingChanged(): void { + const tiling = this.tiling; + this._tillingInfo.set(1.0 / tiling.x, 1.0 / tiling.y, tiling.x * tiling.y); + } } /** diff --git a/tests/src/core/particle/ParticleTextureSheetAnimation.test.ts b/tests/src/core/particle/ParticleTextureSheetAnimation.test.ts new file mode 100644 index 000000000..a9af6cd0e --- /dev/null +++ b/tests/src/core/particle/ParticleTextureSheetAnimation.test.ts @@ -0,0 +1,50 @@ + +import { Camera, ParticleRenderer, Scene } from "@galacean/engine-core"; +import { Vector2 } from "@galacean/engine-math"; +import { WebGLEngine } from "@galacean/engine-rhi-webgl"; +import { beforeAll, describe, expect, it } from "vitest"; + +describe("TextureSheetAnimation Test", () => { + let engine: WebGLEngine; + let scene: Scene; + let renderer: ParticleRenderer; + + beforeAll(async function () { + engine = await WebGLEngine.create({ + canvas: document.createElement("canvas") + }); + + scene = engine.sceneManager.activeScene; + const rootEntity = scene.createRootEntity("root"); + + const cameraEntity = rootEntity.createChild("Camera"); + cameraEntity.addComponent(Camera); + cameraEntity.transform.setPosition(0, 0, 10); + + renderer = scene.createRootEntity("Renderer").addComponent(ParticleRenderer); + engine.run(); + }); + it("Tiling", () => { + const textureSheetAnimation = renderer.generator.textureSheetAnimation; + textureSheetAnimation.tiling = new Vector2(2, 2); + expect(textureSheetAnimation.tiling).to.deep.include({ x: 2, y: 2 }); + // @ts-ignore + expect(textureSheetAnimation._tillingInfo).to.deep.include({ x: 0.5, y: 0.5, z: 4 }); + + textureSheetAnimation.tiling.set(1, 1); + expect(textureSheetAnimation.tiling).to.deep.include({ x: 1, y: 1 }); + // @ts-ignore + expect(textureSheetAnimation._tillingInfo).to.deep.include({ x: 1, y: 1, z: 1 }); + }); + + it("Clone", () => { + const textureSheetAnimation = renderer.generator.textureSheetAnimation; + textureSheetAnimation.tiling = new Vector2(4, 4); + const cloneTextureSheetAnimation = renderer.entity.clone().getComponent(ParticleRenderer).generator.textureSheetAnimation; + expect(cloneTextureSheetAnimation.tiling).to.deep.include({ x: 4, y: 4 }); + // @ts-ignore + expect(cloneTextureSheetAnimation.tiling._onValueChanged).to.not.equal(textureSheetAnimation.tiling._onValueChanged); + // @ts-ignore + expect(cloneTextureSheetAnimation._tillingInfo).to.deep.include({ x: 0.25, y: 0.25, z: 16 }); + }) +}); \ No newline at end of file From d312ce46dcbcaccdf7b67c641b35b00d7edd5b69 Mon Sep 17 00:00:00 2001 From: zhuxudong Date: Fri, 8 Aug 2025 16:45:54 +0800 Subject: [PATCH 6/7] fix particle function error (#2797) --- .../shaderlib/particle/rotation_over_lifetime_module.glsl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/core/src/shaderlib/particle/rotation_over_lifetime_module.glsl b/packages/core/src/shaderlib/particle/rotation_over_lifetime_module.glsl index 4b6cd1e82..44b9b6b86 100644 --- a/packages/core/src/shaderlib/particle/rotation_over_lifetime_module.glsl +++ b/packages/core/src/shaderlib/particle/rotation_over_lifetime_module.glsl @@ -23,9 +23,10 @@ float computeParticleRotationFloat(in float rotation, in float age, in float normalizedAge) { #if defined(RENDERER_ROL_CONSTANT_MODE) || defined(RENDERER_ROL_CURVE_MODE) #ifdef RENDERER_ROL_CURVE_MODE - float lifeRotation = evaluateParticleCurveCumulative(renderer_ROLMaxCurveZ, normalizedAge); + float currentValue; + float lifeRotation = evaluateParticleCurveCumulative(renderer_ROLMaxCurveZ, normalizedAge, currentValue); #ifdef RENDERER_ROL_IS_RANDOM_TWO - lifeRotation = mix(evaluateParticleCurveCumulative(renderer_ROLMinCurveZ, normalizedAge), lifeRotation, a_Random0.w); + lifeRotation = mix(evaluateParticleCurveCumulative(renderer_ROLMinCurveZ, normalizedAge, currentValue), lifeRotation, a_Random0.w); #endif rotation += lifeRotation * a_ShapePositionStartLifeTime.w; #else From 0a11d5b32b539317e7c7bce47e8f3b536df59f46 Mon Sep 17 00:00:00 2001 From: Bo Kou Date: Tue, 19 Aug 2025 11:35:13 +0800 Subject: [PATCH 7/7] chore: make examples into a package (#2800) * chore: add example package --- .gitignore | 1 + examples/index.html | 154 ++++++ examples/index.js | 120 +++++ examples/package.json | 31 ++ examples/{ => src}/CSS-DOM.ts | 14 +- examples/{ => src}/buffer-mesh-independent.ts | 31 +- examples/{ => src}/buffer-mesh-instance.ts | 31 +- examples/{ => src}/buffer-mesh-interleaved.ts | 18 +- examples/{ => src}/device-restore.ts | 9 +- examples/{ => src}/gltf-loader.ts | 4 +- examples/{ => src}/screenshot.ts | 59 +-- examples/template/iframe.ejs | 34 ++ examples/vite.config.js | 94 ++++ package.json | 1 + pnpm-lock.yaml | 444 ++++++++++++++++++ pnpm-workspace.yaml | 1 + 16 files changed, 925 insertions(+), 121 deletions(-) create mode 100644 examples/index.html create mode 100644 examples/index.js create mode 100644 examples/package.json rename examples/{ => src}/CSS-DOM.ts (88%) rename examples/{ => src}/buffer-mesh-independent.ts (90%) rename examples/{ => src}/buffer-mesh-instance.ts (88%) rename examples/{ => src}/buffer-mesh-interleaved.ts (92%) rename examples/{ => src}/device-restore.ts (96%) rename examples/{ => src}/gltf-loader.ts (99%) rename examples/{ => src}/screenshot.ts (79%) create mode 100644 examples/template/iframe.ejs create mode 100644 examples/vite.config.js diff --git a/.gitignore b/.gitignore index 87c3b87e8..046fd3350 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ tmp .idea /node_modules +/*/node_modules /packages/*/node_modules /packages/*/types /packages/*/doc diff --git a/examples/index.html b/examples/index.html new file mode 100644 index 000000000..1455365e7 --- /dev/null +++ b/examples/index.html @@ -0,0 +1,154 @@ + + + + + + Galacean Playground + + + + + + +

+ + + + diff --git a/examples/index.js b/examples/index.js new file mode 100644 index 000000000..ebdb79600 --- /dev/null +++ b/examples/index.js @@ -0,0 +1,120 @@ +import demoList from "./dist/.demoList.json"; +const itemListDOM = document.getElementById("itemList"); +const searchBarDOM = document.getElementById("searchBar"); +const fullScreenDOM = document.getElementById("fullScreen"); +const iframe = document.getElementById("iframe"); +const items = []; // itemDOM,label + +Object.keys(demoList).forEach((group, groupIndex) => { + const demos = demoList[group]; + const groupDOM = document.createElement("div"); + const titleDOM = document.createElement("div"); + const demosDOM = document.createElement("div"); + + // Create modern category title + titleDOM.innerHTML = ` +
+
+

${group}

+
+ `; + + // Add spacing between groups + if (groupIndex > 0) { + groupDOM.classList.add("mt-6"); + } + + itemListDOM.appendChild(groupDOM); + groupDOM.appendChild(titleDOM); + groupDOM.appendChild(demosDOM); + + // Style the demos container + demosDOM.classList.add("space-y-1", "mb-4"); + + demos.forEach((item) => { + const { label, src } = item; + const itemDOM = document.createElement("a"); + + itemDOM.innerHTML = ` +
+
+ ${label} +
+ `; + + itemDOM.title = `${src}`; + itemDOM.classList.add( + "block", + "cursor-pointer", + "transition-all", + "duration-200", + "overflow-hidden", + "no-underline", + "rounded-lg" + ); + + itemDOM.onclick = function () { + clickItem(itemDOM); + }; + demosDOM.appendChild(itemDOM); + + items.push({ + itemDOM, + label, + src + }); + }); +}); + +searchBarDOM.oninput = () => { + updateFilter(searchBarDOM.value); +}; + +fullScreenDOM.onclick = () => { + const itemName = location.hash.split("#dist/")[1]; + + if (itemName) { + location.href = location.origin + `/dist/${itemName}.html`; + } +}; + +function updateFilter(value) { + const reg = new RegExp(value, "i"); + + items.forEach(({ itemDOM, label, src }) => { + reg.lastIndex = 0; + if (reg.test(label) || reg.test(src)) { + itemDOM.classList.remove("hide"); + } else { + itemDOM.classList.add("hide"); + } + }); +} + +function clickItem(itemDOM) { + window.location.hash = `#dist/${itemDOM.title}`; +} + +function onHashChange() { + const hashPath = window.location.hash.split("#")[1]; + if (!hashPath) { + clickItem(items[0].itemDOM); + return; + } + + iframe.src = hashPath + ".html"; + + items.forEach(({ itemDOM }) => { + const itemPath = `dist/${itemDOM.title}`; + if (itemPath === hashPath) { + itemDOM.classList.add("active"); + } else { + itemDOM.classList.remove("active"); + } + }); +} + +window.onhashchange = onHashChange; + +// init +onHashChange(); diff --git a/examples/package.json b/examples/package.json new file mode 100644 index 000000000..58d655e3c --- /dev/null +++ b/examples/package.json @@ -0,0 +1,31 @@ +{ + "name": "@galacean/engine-examples", + "version": "1.5.10", + "private": true, + "license": "MIT", + "main": "dist/main.js", + "module": "dist/module.js", + "types": "types/index.d.ts", + "debug": "src/index.ts", + "scripts": { + "b:types": "tsc", + "dev": "vite serve . --config vite.config.js" + }, + "dependencies": { + "@galacean/engine": "workspace:*", + "@galacean/engine-core": "workspace:*", + "@galacean/engine-design": "workspace:*", + "@galacean/engine-loader": "workspace:*", + "@galacean/engine-math": "workspace:*", + "@galacean/engine-physics-lite": "workspace:*", + "@galacean/engine-rhi-webgl": "workspace:*", + "@galacean/engine-shader-shaderlab": "workspace:*", + "@galacean/engine-shaderlab": "workspace:*", + "@galacean/engine-toolkit": "latest", + "@galacean/engine-ui": "workspace:*" + }, + "devDependencies": { + "dat.gui": "^0.7.9", + "vite": "^4.4.4" + } +} \ No newline at end of file diff --git a/examples/CSS-DOM.ts b/examples/src/CSS-DOM.ts similarity index 88% rename from examples/CSS-DOM.ts rename to examples/src/CSS-DOM.ts index 7c40c45bf..c06dd346c 100644 --- a/examples/CSS-DOM.ts +++ b/examples/src/CSS-DOM.ts @@ -13,7 +13,7 @@ import { Script, Vector3, WebGLEngine, - WebGLMode, + WebGLMode } from "@galacean/engine"; import { OrbitControl } from "@galacean/engine-toolkit"; @@ -22,7 +22,7 @@ async function main() { const htmlCanvas = document.getElementById("canvas") as HTMLCanvasElement; const engine = await WebGLEngine.create({ canvas: htmlCanvas, - graphicDeviceOptions: { webGLMode: WebGLMode.Auto }, + graphicDeviceOptions: { webGLMode: WebGLMode.Auto } }); engine.canvas.resizeByClientSize(); @@ -47,10 +47,7 @@ async function main() { // Add dom element const dom = document.createElement("div"); dom.innerHTML = "Hello world!!!"; - dom.setAttribute( - "style", - "padding:10px;position:absolute;top:0;left:0;background:white;border-radius:5px" - ); + dom.setAttribute("style", "padding:10px;position:absolute;top:0;left:0;background:white;border-radius:5px"); document.body.appendChild(dom); // Add script @@ -81,10 +78,7 @@ class LocationTrackingScript extends Script { onUpdate() { // Convert world coordinates to screen coordinates - this.camera.worldToScreenPoint( - this.entity.transform.position, - this.screenPoint - ); + this.camera.worldToScreenPoint(this.entity.transform.position, this.screenPoint); const style = this.dom.style; style.left = `${this.screenPoint.x / this.widthRatio}px`; style.top = `${this.screenPoint.y / this.heightRatio}px`; diff --git a/examples/buffer-mesh-independent.ts b/examples/src/buffer-mesh-independent.ts similarity index 90% rename from examples/buffer-mesh-independent.ts rename to examples/src/buffer-mesh-independent.ts index fc67c764e..e1a35d893 100644 --- a/examples/buffer-mesh-independent.ts +++ b/examples/src/buffer-mesh-independent.ts @@ -19,7 +19,7 @@ import { VertexElement, VertexElementFormat, WebGLEngine, - Script, + Script } from "@galacean/engine"; /** @@ -101,11 +101,7 @@ async function main() { * @param size - Cube size * @returns Cube mesh */ -function createCustomMesh( - engine: Engine, - size: number, - randomColorScript: RandomColorScript -): Mesh { +function createCustomMesh(engine: Engine, size: number, randomColorScript: RandomColorScript): Mesh { const cubeMesh = new BufferMesh(engine, "CustomCubeMesh"); // Create vertices position and normal data. @@ -145,24 +141,9 @@ function createCustomMesh( 20, 22, 23, 22, 20, 21]); // Create gpu vertex buffer and index buffer. - const posNorBuffer = new Buffer( - engine, - BufferBindFlag.VertexBuffer, - positionNormals, - BufferUsage.Static - ); - const independentColorBuffer = new Buffer( - engine, - BufferBindFlag.VertexBuffer, - colorData, - BufferUsage.Dynamic - ); - const indexBuffer = new Buffer( - engine, - BufferBindFlag.IndexBuffer, - indices, - BufferUsage.Static - ); + const posNorBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, positionNormals, BufferUsage.Static); + const independentColorBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, colorData, BufferUsage.Dynamic); + const indexBuffer = new Buffer(engine, BufferBindFlag.IndexBuffer, indices, BufferUsage.Static); // Bind buffer. cubeMesh.setVertexBufferBinding(posNorBuffer, 24, 0); @@ -173,7 +154,7 @@ function createCustomMesh( cubeMesh.setVertexElements([ new VertexElement("POSITION", 0, VertexElementFormat.Vector3, 0), new VertexElement("NORMAL", 12, VertexElementFormat.Vector3, 0), - new VertexElement("COLOR_0", 0, VertexElementFormat.Vector3, 1), + new VertexElement("COLOR_0", 0, VertexElementFormat.Vector3, 1) ]); // Add one sub geometry. diff --git a/examples/buffer-mesh-instance.ts b/examples/src/buffer-mesh-instance.ts similarity index 88% rename from examples/buffer-mesh-instance.ts rename to examples/src/buffer-mesh-instance.ts index a25c21f47..5bf187c0e 100644 --- a/examples/buffer-mesh-instance.ts +++ b/examples/src/buffer-mesh-instance.ts @@ -3,7 +3,7 @@ * @category Mesh * @thumbnail https://mdn.alipayobjects.com/merchant_appfe/afts/img/A*jjZMTrp-vU8AAAAAAAAAAAAADiR2AQ/original */ -import { OrbitControl } from "@galacean/engine-toolkit-controls"; +import { OrbitControl } from "@galacean/engine-toolkit"; import { Buffer, BufferBindFlag, @@ -19,7 +19,7 @@ import { Vector3, VertexElement, VertexElementFormat, - WebGLEngine, + WebGLEngine } from "@galacean/engine"; // Create engine @@ -81,9 +81,7 @@ function createCustomMesh(engine: Engine, size: number): Mesh { // Create instance data. const instanceCount = 4000; const instanceStride = 6; - const instanceData: Float32Array = new Float32Array( - instanceCount * instanceStride - ); + const instanceData: Float32Array = new Float32Array(instanceCount * instanceStride); for (let i = 0; i < instanceCount; i++) { const offset = i * instanceStride; // instance offset @@ -113,24 +111,9 @@ function createCustomMesh(engine: Engine, size: number): Mesh { 20, 22, 23, 22, 20, 21]); // Create gpu vertex buffer and index buffer. - const vertexBuffer = new Buffer( - engine, - BufferBindFlag.VertexBuffer, - vertices, - BufferUsage.Static - ); - const instanceVertexBuffer = new Buffer( - engine, - BufferBindFlag.VertexBuffer, - instanceData, - BufferUsage.Static - ); - const indexBuffer = new Buffer( - engine, - BufferBindFlag.IndexBuffer, - indices, - BufferUsage.Static - ); + const vertexBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices, BufferUsage.Static); + const instanceVertexBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, instanceData, BufferUsage.Static); + const indexBuffer = new Buffer(engine, BufferBindFlag.IndexBuffer, indices, BufferUsage.Static); // Bind buffer geometry.setVertexBufferBinding(vertexBuffer, 24, 0); @@ -142,7 +125,7 @@ function createCustomMesh(engine: Engine, size: number): Mesh { new VertexElement("POSITION", 0, VertexElementFormat.Vector3, 0, 0), // Bind to VertexBuffer 0 new VertexElement("NORMAL", 12, VertexElementFormat.Vector3, 0, 0), // Bind to VertexBuffer 0 new VertexElement("INSTANCE_OFFSET", 0, VertexElementFormat.Vector3, 1, 1), // Bind instance offset to VertexBuffer 1, and enable instance by set instanceStepRate with 1 - new VertexElement("INSTANCE_COLOR", 12, VertexElementFormat.Vector3, 1, 1), // Bind instance color to VertexBuffer 1, and enable instance by set instanceStepRate with 1 + new VertexElement("INSTANCE_COLOR", 12, VertexElementFormat.Vector3, 1, 1) // Bind instance color to VertexBuffer 1, and enable instance by set instanceStepRate with 1 ]); // Add one sub geometry. diff --git a/examples/buffer-mesh-interleaved.ts b/examples/src/buffer-mesh-interleaved.ts similarity index 92% rename from examples/buffer-mesh-interleaved.ts rename to examples/src/buffer-mesh-interleaved.ts index f901cacbd..15061d690 100644 --- a/examples/buffer-mesh-interleaved.ts +++ b/examples/src/buffer-mesh-interleaved.ts @@ -18,7 +18,7 @@ import { Vector3, VertexElement, VertexElementFormat, - WebGLEngine, + WebGLEngine } from "@galacean/engine"; // Create engine and get root entity @@ -93,18 +93,8 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { 20, 22, 23, 22, 20, 21]); // Create gpu vertex buffer and index buffer. - const vertexBuffer = new Buffer( - engine, - BufferBindFlag.VertexBuffer, - vertices, - BufferUsage.Static - ); - const indexBuffer = new Buffer( - engine, - BufferBindFlag.IndexBuffer, - indices, - BufferUsage.Static - ); + const vertexBuffer = new Buffer(engine, BufferBindFlag.VertexBuffer, vertices, BufferUsage.Static); + const indexBuffer = new Buffer(engine, BufferBindFlag.IndexBuffer, indices, BufferUsage.Static); // Bind buffer geometry.setVertexBufferBinding(vertexBuffer, 24); @@ -113,7 +103,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { // Add vertexElement geometry.setVertexElements([ new VertexElement("POSITION", 0, VertexElementFormat.Vector3, 0), - new VertexElement("NORMAL", 12, VertexElementFormat.Vector3, 0), + new VertexElement("NORMAL", 12, VertexElementFormat.Vector3, 0) ]); // Add one sub geometry. diff --git a/examples/device-restore.ts b/examples/src/device-restore.ts similarity index 96% rename from examples/device-restore.ts rename to examples/src/device-restore.ts index 444925453..8c8bf0645 100644 --- a/examples/device-restore.ts +++ b/examples/src/device-restore.ts @@ -3,14 +3,7 @@ * @category Advance * @thumbnail https://mdn.alipayobjects.com/merchant_appfe/afts/img/A*U3AXS7Iq-AQAAAAAAAAAAAAADiR2AQ/original */ -import { - Animator, - Camera, - Color, - GLTFResource, - Vector3, - WebGLEngine, -} from "@galacean/engine"; +import { Animator, Camera, Color, GLTFResource, Vector3, WebGLEngine } from "@galacean/engine"; WebGLEngine.create({ canvas: "canvas" }).then((engine) => { engine.canvas.resizeByClientSize(); diff --git a/examples/gltf-loader.ts b/examples/src/gltf-loader.ts similarity index 99% rename from examples/gltf-loader.ts rename to examples/src/gltf-loader.ts index cdd9d42e4..e1359c953 100644 --- a/examples/gltf-loader.ts +++ b/examples/src/gltf-loader.ts @@ -30,7 +30,7 @@ import { Vector3, WebGLEngine } from "@galacean/engine"; -import { OrbitControl } from "@galacean/engine-toolkit-controls"; +import { OrbitControl } from "@galacean/engine-toolkit"; import * as dat from "dat.gui"; Logger.enable(); @@ -197,6 +197,7 @@ class Oasis { if (!this.state.addLights) { this.light1.enabled = this.light2.enabled = false; } + // @ts-ignore this.light1.intensity = this.light2.intensity = this.state.lightIntensity; this.lightEntity1.transform.setRotation(30, 0, 0); this.lightEntity2.transform.setRotation(-30, 180, 0); @@ -250,6 +251,7 @@ class Oasis { lightFolder .add(this.state, "lightIntensity", 0, 2) .onChange((v) => { + // @ts-ignore this.light1.intensity = this.light2.intensity = v; }) .name("直接光强度"); diff --git a/examples/screenshot.ts b/examples/src/screenshot.ts similarity index 79% rename from examples/screenshot.ts rename to examples/src/screenshot.ts index 79f16e1c4..95532faf0 100644 --- a/examples/screenshot.ts +++ b/examples/src/screenshot.ts @@ -4,7 +4,7 @@ * @thumbnail https://mdn.alipayobjects.com/merchant_appfe/afts/img/A*0OXcQYHlwzQAAAAAAAAAAAAADiR2AQ/original */ -import { OrbitControl } from "@galacean/engine-toolkit-controls"; +import { OrbitControl } from "@galacean/engine-toolkit"; import * as dat from "dat.gui"; import { AmbientLight, @@ -15,7 +15,7 @@ import { RenderTarget, Texture2D, Vector3, - WebGLEngine, + WebGLEngine } from "@galacean/engine"; const gui = new dat.GUI(); @@ -34,9 +34,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { // add gltf model engine.resourceManager - .load( - "https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb" - ) + .load("https://gw.alipayobjects.com/os/bmw-prod/5e3c1e4e-496e-45f8-8e05-f89f2bd5e4a4.glb") .then((asset) => { const { defaultSceneRoot } = asset; rootEntity.addChild(defaultSceneRoot); @@ -48,7 +46,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { engine.resourceManager .load({ type: AssetType.Env, - url: "https://gw.alipayobjects.com/os/bmw-prod/89c54544-1184-45a1-b0f5-c0b17e5c3e68.bin", + url: "https://gw.alipayobjects.com/os/bmw-prod/89c54544-1184-45a1-b0f5-c0b17e5c3e68.bin" }) .then((ambientLight) => { scene.ambientLight = ambientLight; @@ -58,14 +56,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { /** ---------------------------- Capture ---------------------------- */ let screenshotCanvas: HTMLCanvasElement = null; let flipYCanvas: HTMLCanvasElement = null; - function screenshot( - camera: Camera, - width: number, - height: number, - flipY = false, - isPNG = true, - jpgQuality = 1 - ) { + function screenshot(camera: Camera, width: number, height: number, flipY = false, isPNG = true, jpgQuality = 1) { if (!screenshotCanvas) { screenshotCanvas = document.createElement("canvas"); } @@ -81,14 +72,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { const originalTarget = camera.renderTarget; const renderColorTexture = new Texture2D(engine, width, height); const renderTargetData = new Uint8Array(width * height * 4); - const renderTarget = new RenderTarget( - engine, - width, - height, - renderColorTexture, - undefined, - 8 - ); + const renderTarget = new RenderTarget(engine, width, height, renderColorTexture, undefined, 8); // render to off-screen camera.renderTarget = renderTarget; @@ -118,26 +102,23 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { ctx2.drawImage(screenshotCanvas, 0, 0); } - // download + // open in new window canvas.toBlob( (blob) => { const url = window.URL.createObjectURL(blob); - const a = document.createElement("a"); - document.body.appendChild(a); - a.style.display = "none"; - a.href = url; - a.download = "screenshot"; - - a.addEventListener("click", () => { - if (a.parentElement) { - a.parentElement.removeChild(a); - } - }); - - a.click(); - - window.URL.revokeObjectURL(url); + // Open image in new window + const newWindow = window.open(url); + if (newWindow) { + // Clean up the blob URL after some time + setTimeout(() => { + window.URL.revokeObjectURL(url); + }, 1000); + } else { + // Fallback: if popup is blocked, clean up immediately + window.URL.revokeObjectURL(url); + console.warn("Unable to open screenshot in new window. Please allow popups for this site."); + } // revert camera.renderTarget = originalTarget; @@ -159,7 +140,7 @@ WebGLEngine.create({ canvas: "canvas" }).then((engine) => { screenshot: () => { const { width, height, flipY, isPNG, jpgQuality } = config; screenshot(camera, width, height, flipY, isPNG, jpgQuality); - }, + } }; const configFolder = gui.addFolder("config"); diff --git a/examples/template/iframe.ejs b/examples/template/iframe.ejs new file mode 100644 index 000000000..7d077b2aa --- /dev/null +++ b/examples/template/iframe.ejs @@ -0,0 +1,34 @@ + + + + + + <%= title %> + + + + + + + + + diff --git a/examples/vite.config.js b/examples/vite.config.js new file mode 100644 index 000000000..8dd3d42ab --- /dev/null +++ b/examples/vite.config.js @@ -0,0 +1,94 @@ +const path = require("path"); +const fs = require("fs-extra"); +const OUT_PATH = "dist"; +const templateStr = fs.readFileSync(path.join(__dirname, "template/iframe.ejs"), "utf8"); + +// 替换 ejs 模版格式的字符串,如 <%= title %>: templateStr.replaceEJS("title","replaced title"); +String.prototype.replaceEJS = function (regStr, replaceStr) { + return this.replace(new RegExp(`<%=\\s*${regStr}\\s*%>`, "g"), replaceStr); +}; + +const out_p = path.join(__dirname, "./"); +console.log(out_p); + +const demoList = fs + .readdirSync(path.join(__dirname, "./src")) + .filter((name) => /.ts$/.test(name)) + .map((name) => { + const content = fs.readFileSync(path.join(__dirname, "./src", name), "utf8"); + const title = /@title\s+(.+)\b/.exec(content); + const category = /@category\s+(.+)\b/.exec(content); + + if (!title || !category) { + throw new Error(`title and category must be set in playground[${name}]`); + } + + return { + title: title[1], + category: category[1], + file: name.split(".ts")[0] + }; + }); + +demoList.forEach(({ title, file }) => { + const ejs = templateStr.replaceEJS("title", title).replaceEJS("url", `./${file}.ts`); + + fs.outputFileSync(path.resolve(__dirname, OUT_PATH, file + ".ts"), `import "../src/${file}"`); + fs.outputFileSync(path.resolve(__dirname, OUT_PATH, file + ".html"), ejs); +}); + +// output demolist +const demoSorted = {}; +demoList.forEach(({ title, category, file }) => { + if (!demoSorted[category]) { + demoSorted[category] = []; + } + demoSorted[category].push({ + src: file, + label: title + }); +}); + +fs.outputJSONSync(path.join(__dirname, OUT_PATH, ".demoList.json"), demoSorted); + +module.exports = { + server: { + open: true, + host: "0.0.0.0", + port: 3000 + }, + resolve: { + dedupe: ["@galacean/engine"] + }, + optimizeDeps: { + exclude: [ + "@galacean/engine", + "@galacean/engine-physics-physx", + "@galacean/engine-physics-lite", + "@galacean/engine-draco", + "@galacean/engine-lottie", + "@galacean/engine-spine", + "@galacean/engine-shaderlab", + "@galacean/engine-shader-shaderlab", + "@galacean/engine-ui", + "@galacean/engine-xr", + "@galacean/engine-xr-webxr", + "@galacean/tools-baker", + "@galacean/engine-toolkit", + "@galacean/engine-toolkit-auxiliary-lines", + "@galacean/engine-toolkit-controls", + "@galacean/engine-toolkit-framebuffer-picker", + "@galacean/engine-toolkit-gizmo", + "@galacean/engine-toolkit-lines", + "@galacean/engine-toolkit-outline", + "@galacean/engine-toolkit-planar-shadow-material", + "@galacean/engine-toolkit-skeleton-viewer", + "@galacean/engine-toolkit-grid-material", + "@galacean/engine-toolkit-navigation-gizmo", + "@galacean/engine-toolkit-geometry-sketch", + "@galacean/engine-toolkit-stats", + "@galacean/engine-toolkit-input-logger", + "@galacean/engine-toolkit-custom-material" + ] + } +}; diff --git a/package.json b/package.json index b40cff89f..48ab6c3ef 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "pretest": "pnpm exec playwright install", "test": "vitest", "coverage": "vitest --coverage", + "examples": "pnpm --filter @galacean/engine-examples dev", "build": "npm run b:module && npm run b:types", "lint": "eslint packages/*/src --ext .ts", "watch": "cross-env NODE_ENV=release BUILD_TYPE=MODULE rollup -cw -m inline", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6daeb9dc3..e62441f52 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -162,6 +162,49 @@ importers: specifier: 3.1.6 version: 3.1.6(sass@1.81.0) + examples: + dependencies: + '@galacean/engine': + specifier: workspace:* + version: link:../packages/galacean + '@galacean/engine-core': + specifier: workspace:* + version: link:../packages/core + '@galacean/engine-design': + specifier: workspace:* + version: link:../packages/design + '@galacean/engine-loader': + specifier: workspace:* + version: link:../packages/loader + '@galacean/engine-math': + specifier: workspace:* + version: link:../packages/math + '@galacean/engine-physics-lite': + specifier: workspace:* + version: link:../packages/physics-lite + '@galacean/engine-rhi-webgl': + specifier: workspace:* + version: link:../packages/rhi-webgl + '@galacean/engine-shader-shaderlab': + specifier: workspace:* + version: link:../packages/shader-shaderlab + '@galacean/engine-shaderlab': + specifier: workspace:* + version: link:../packages/shader-lab + '@galacean/engine-toolkit': + specifier: latest + version: 1.5.3(@galacean/engine-ui@packages+ui)(@galacean/engine@packages+galacean) + '@galacean/engine-ui': + specifier: workspace:* + version: link:../packages/ui + devDependencies: + dat.gui: + specifier: ^0.7.9 + version: 0.7.9 + vite: + specifier: ^4.4.4 + version: 4.5.14(@types/node@18.19.64)(sass@1.81.0) + packages/core: dependencies: '@galacean/engine-math': @@ -496,6 +539,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} @@ -508,54 +557,108 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} @@ -568,72 +671,144 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} @@ -666,46 +841,92 @@ packages: peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-auxiliary-lines@1.5.3': + resolution: {integrity: sha512-92PgvXoVHp+5gk9Eril5OFxCILBT+jBaRCvEKiMUntdlfZtPrMstpnHaibgeWgLHoHGmEUG5Uei7kujyY9XTqw==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-controls@1.3.9': resolution: {integrity: sha512-4vmOoo6++jZAAywiJNoSOEhxN1XJ+mEOO8RjOsBHMJi88copSarhI1UloDhh4Phybx0gyIMxfW+Pf+rURkFIEw==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-controls@1.5.3': + resolution: {integrity: sha512-SNTaCLF6rolBzSyKLwS+MUEZLpkksaQnYjhBvAnFpWUd9lR6llL8sdI5/DJZtaK6cyxiw+eA2MMCN75Cxn38OQ==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-custom-material@1.3.9': resolution: {integrity: sha512-+YJFcY8vJrzhgxJuABT5IehXWULIZhIrYqvqZaCVCYwOwONW+snHaJ668hQofdafVMQemJaoshsapuG6L/2Ifg==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-custom-material@1.5.3': + resolution: {integrity: sha512-Pw/No07qNlf/RNPP9G/8nTmE2t75ge0UmuFT7rcXYrhe3CoBpureN9rEwm1TnFkWbGcothV6cLN3U6wDD/hf8w==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-framebuffer-picker@1.3.9': resolution: {integrity: sha512-uncOV18yagh1oe9JboRnp6QmkHqyfC+xaLD40+sXc+M8xKPchM41E1ygy3mNQvkBRQfbUA6ZkqIGsne5V45tAg==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-framebuffer-picker@1.5.3': + resolution: {integrity: sha512-N4bp+c8Ess9FOnKHvml8OERspOffZTYI5UYQ9LP/0ftDTnYXqgPPQ5Hx55I/nQ6mgDgOqZW6d+wUeH1gZIH9jA==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-geometry-sketch@1.3.9': resolution: {integrity: sha512-2G4wjKT4ilFhqy2KED5wuoqiau/gCVgXFyBeHIUq633rzixSKsSVd56pxQItsD1WdifWRfp1o/XqordIGGkViA==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-geometry-sketch@1.5.3': + resolution: {integrity: sha512-I2yQr8FSlw82JdaLHqQ8hU8pJ9rgmc2IL75NOWPVarwDwJaJeDA3uSPWNInXlFrh1MlGK1FyCMSka/XtyVotlw==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-gizmo@1.3.9': resolution: {integrity: sha512-Qg5yVeZfUJZTOqrM/Kr1CUxVpZZ6v2xeqywT1xRxHCBLaoJnyNcYdM1NHLozhpmnv89Sxlb0XCQFVz2KqecrJQ==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-gizmo@1.5.3': + resolution: {integrity: sha512-TpgtUsfazVaOBbwYy1pKcZsEBK09IYvYA0lI7nSWinAqpxC0LTKsBwhU/icOd9jyowGbT2Dyi4oGYj+FeLYIfw==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-ui': ^1.5.0 + '@galacean/engine-toolkit-lines@1.3.9': resolution: {integrity: sha512-htXfz2a/4HouKI0wmd8HjTfq5PnMt21uIQD3X6D7kE11VmosRbq+YSB/LYoNLWvyHCG8AcjodIn4UL1Lgxt6bw==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-lines@1.5.3': + resolution: {integrity: sha512-Skx4KvxxUoJXhIBNdus5HSYnGfXgu8beNzgg9GBiFr7yiGFbFdmWGt/a9df5djP/E7MPGEdNS8gOlB8KpKg9nQ==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-navigation-gizmo@1.3.9': resolution: {integrity: sha512-v/iDh/qATqGYARCLwGuiZymuhDo7LvfStmDIJtZ94Cd2dh9fV0mT8kKVN1yvuW8X2/375Cc+d9OHRlYGz7hmRw==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-navigation-gizmo@1.5.3': + resolution: {integrity: sha512-zE7L00TzjQqE++npzzoj4g1DKlxro9IxRiZtlnwMV+xI5L63DsqT1ISHQf5ZwuctusRI9nGjdkAmKXeHK2hcig==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-outline@1.3.9': resolution: {integrity: sha512-WnyVZ7hRQPYdj0RzKC/yPrwGeXWJ3da1Ztonrofyv1F00CSTFyzXY1RapscJDQQtaOdRX5bV/5vkBBzBOYuKlA==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-outline@1.5.3': + resolution: {integrity: sha512-CoLdhb5HjKaDpCxCEoxrWbajbwGIGUARibXI9ZbSu578+9Y662622xgidiifxA3HuUoEq+/YI3SliXhfh20BEw==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-shader-lab@1.3.9': resolution: {integrity: sha512-XvXvVHdU9Ic69oF5tkgRIjAxsOq/7L7b6UCYMggDvoWV7RO3JXB8CbvfEDnG/qUztFBfIc10h69gXizcu2xJJg==} peerDependencies: @@ -716,14 +937,27 @@ packages: peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-skeleton-viewer@1.5.3': + resolution: {integrity: sha512-mBqEjm4NmDIuzyleR7nt5QjXIBaChQU7do6/yCTz1D7a5YeCK3F+4BoFNPg3PwM1TXymK+LOwixZYD9V6/oILg==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit-stats@1.3.9': resolution: {integrity: sha512-5EfsVwg1YzICLzJsek9U++jcqOUK6SCakwQmSVIEFvVxn5cLN9cphNorcmOPsju3crcrfP45aLjZEEPgoYcAqw==} peerDependencies: '@galacean/engine': ^1.3.0-beta.6 + '@galacean/engine-toolkit-stats@1.5.3': + resolution: {integrity: sha512-bPGiFy4/zHcJitLHSUgd8xi0EP5ndqfwkR/HsYOvkYea5TD2MPYXI7DMlR8UopwhmHBd7TML0X7A1ppx74g9DA==} + peerDependencies: + '@galacean/engine': ^1.5.0 + '@galacean/engine-toolkit@1.3.9': resolution: {integrity: sha512-sxE7QfzH61O9Q1wtwnjIEjcg3n0ZZVz9B6CyqBLOWyWgWsZmefcjZLnnH4HIkvc5ZLNA+gMuJ1ekmwJgfkck+g==} + '@galacean/engine-toolkit@1.5.3': + resolution: {integrity: sha512-Koefdezvft7DG1IhHDW5BXUoUp2JCQl8WJrBa/tgXR5/T20jXntzV7Ryz3jN5v0HNoOT4IhmYBBwtaxpS6KUHg==} + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -2156,6 +2390,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -3502,6 +3741,11 @@ packages: engines: {node: '>=10.0.0'} hasBin: true + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + rollup@4.27.2: resolution: {integrity: sha512-KreA+PzWmk2yaFmZVwe6GB2uBD86nXl86OsDkt1bJS9p3vqWuEQ6HnJJ+j/mZi/q0920P99/MVRlB4L3crpF5w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -3979,6 +4223,34 @@ packages: terser: optional: true + vite@4.5.14: + resolution: {integrity: sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + vite@5.4.11: resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4428,75 +4700,141 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/android-arm64@0.18.20': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true '@esbuild/android-arm@0.15.18': optional: true + '@esbuild/android-arm@0.18.20': + optional: true + '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-x64@0.18.20': + optional: true + '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.18.20': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-x64@0.18.20': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.18.20': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.18.20': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/linux-arm64@0.18.20': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm@0.18.20': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-ia32@0.18.20': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true '@esbuild/linux-loong64@0.15.18': optional: true + '@esbuild/linux-loong64@0.18.20': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-mips64el@0.18.20': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-ppc64@0.18.20': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.18.20': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-s390x@0.18.20': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-x64@0.18.20': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.18.20': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.18.20': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.18.20': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/win32-arm64@0.18.20': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-ia32@0.18.20': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-x64@0.18.20': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true @@ -4530,42 +4868,84 @@ snapshots: '@galacean/engine': link:packages/galacean '@galacean/engine-toolkit-custom-material': 1.3.9(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-auxiliary-lines@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-custom-material': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-controls@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-controls@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-custom-material@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-custom-material@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-framebuffer-picker@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-framebuffer-picker@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-geometry-sketch@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-geometry-sketch@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-gizmo@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean '@galacean/engine-toolkit-custom-material': 1.3.9(@galacean/engine@packages+galacean) '@galacean/engine-toolkit-framebuffer-picker': 1.3.9(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-gizmo@1.5.3(@galacean/engine-ui@packages+ui)(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-custom-material': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-framebuffer-picker': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-ui': link:packages/ui + '@galacean/engine-toolkit-lines@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-lines@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-navigation-gizmo@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean '@galacean/engine-toolkit-controls': 1.3.9(@galacean/engine@packages+galacean) '@galacean/engine-toolkit-custom-material': 1.3.9(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-navigation-gizmo@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-controls': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-custom-material': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-outline@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-outline@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-shader-lab@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean @@ -4574,10 +4954,18 @@ snapshots: dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-skeleton-viewer@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-stats@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit-stats@1.5.3(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine': link:packages/galacean + '@galacean/engine-toolkit@1.3.9(@galacean/engine@packages+galacean)': dependencies: '@galacean/engine-toolkit-auxiliary-lines': 1.3.9(@galacean/engine@packages+galacean) @@ -4595,6 +4983,23 @@ snapshots: transitivePeerDependencies: - '@galacean/engine' + '@galacean/engine-toolkit@1.5.3(@galacean/engine-ui@packages+ui)(@galacean/engine@packages+galacean)': + dependencies: + '@galacean/engine-toolkit-auxiliary-lines': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-controls': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-custom-material': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-framebuffer-picker': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-geometry-sketch': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-gizmo': 1.5.3(@galacean/engine-ui@packages+ui)(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-lines': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-navigation-gizmo': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-outline': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-skeleton-viewer': 1.5.3(@galacean/engine@packages+galacean) + '@galacean/engine-toolkit-stats': 1.5.3(@galacean/engine@packages+galacean) + transitivePeerDependencies: + - '@galacean/engine' + - '@galacean/engine-ui' + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 @@ -6012,6 +6417,31 @@ snapshots: esbuild-windows-64: 0.15.18 esbuild-windows-arm64: 0.15.18 + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -7429,6 +7859,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + rollup@4.27.2: dependencies: '@types/estree': 1.0.6 @@ -7903,6 +8337,16 @@ snapshots: fsevents: 2.3.3 sass: 1.81.0 + vite@4.5.14(@types/node@18.19.64)(sass@1.81.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.4.49 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 18.19.64 + fsevents: 2.3.3 + sass: 1.81.0 + vite@5.4.11(@types/node@18.19.64)(sass@1.81.0): dependencies: esbuild: 0.21.5 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index c4b9bddc9..97db9c253 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,4 +3,5 @@ packages: - 'packages/*' # all packages in subdirs of components/ - 'tests' + - 'examples' - 'e2e'