@realsee/five 6.8.0-alpha.28 → 6.8.0-alpha.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/docs/assets/hierarchy.js +1 -1
  2. package/docs/assets/main.js +1 -1
  3. package/docs/assets/navigation.js +1 -1
  4. package/docs/assets/search.js +1 -1
  5. package/docs/classes/five.AdaptiveLuminancePass.html +1 -1
  6. package/docs/classes/five.AnimationFrameLoop.html +1 -1
  7. package/docs/classes/five.BoundingMesh.html +1 -1
  8. package/docs/classes/five.Camera.html +3 -3
  9. package/docs/classes/five.EyeDomeLightingPass.html +1 -1
  10. package/docs/classes/five.Five.html +7 -7
  11. package/docs/classes/five.FivePass.html +1 -1
  12. package/docs/classes/five.InternalWebGLRenderer.html +1 -1
  13. package/docs/classes/five.Model.html +8 -8
  14. package/docs/classes/five.ModelScene.html +1 -1
  15. package/docs/classes/five.NetworkSubscribe.html +1 -1
  16. package/docs/classes/five.PBMContainer.html +1 -1
  17. package/docs/classes/five.PBMCustomShader.html +1 -1
  18. package/docs/classes/five.PBMGSObject.html +2 -2
  19. package/docs/classes/five.PBMGroup.html +1 -1
  20. package/docs/classes/five.PBMMesh.html +1 -1
  21. package/docs/classes/five.PBMMeshMaterial.html +3 -3
  22. package/docs/classes/five.PBMPanoFilter.html +3 -3
  23. package/docs/classes/five.PBMPointCloud.html +1 -1
  24. package/docs/classes/five.PBMPointCloudMaterial.html +2 -2
  25. package/docs/classes/five.PBMSkinnedMesh.html +1 -1
  26. package/docs/classes/five.PBMUpdateable.html +1 -1
  27. package/docs/classes/five.PanoCircleMesh.html +1 -1
  28. package/docs/classes/five.PanoCircleMeshCustom.html +1 -1
  29. package/docs/classes/five.PanoCircleMeshSolid.html +1 -1
  30. package/docs/classes/five.Parameter.html +8 -8
  31. package/docs/classes/five.Scene.html +1 -1
  32. package/docs/classes/five.Subscribe.html +1 -1
  33. package/docs/classes/five.Tile.html +1 -1
  34. package/docs/classes/five.Tile3D.html +6 -6
  35. package/docs/classes/five.TileNode.html +1 -1
  36. package/docs/classes/five.TrajectoryNode.html +1 -1
  37. package/docs/classes/five.WorkResolvedObserver.html +1 -1
  38. package/docs/classes/gltf-loader.DDSLoader.html +1 -1
  39. package/docs/classes/gltf-loader.DRACOLoader.html +1 -1
  40. package/docs/classes/gltf-loader.GLTFLoader.html +2 -2
  41. package/docs/classes/gltf-loader.GLTFObject.html +1 -1
  42. package/docs/classes/gltf-loader.THREEGLTFLoader.html +2 -2
  43. package/docs/classes/line.Line.html +1 -1
  44. package/docs/classes/line.LineGeometry.html +1 -1
  45. package/docs/classes/line.LineMaterial.html +1 -1
  46. package/docs/classes/line.LineSegmentsGeometry.html +1 -1
  47. package/docs/classes/line.THREE_Line2.html +1 -1
  48. package/docs/classes/line.THREE_LineSegments2.html +1 -1
  49. package/docs/classes/plugins.BasePlugin.Controller.html +1 -1
  50. package/docs/classes/plugins.CSS3DObject.html +7 -0
  51. package/docs/classes/plugins.CSS3DSprite.html +7 -0
  52. package/docs/classes/plugins.RoundedBoxGeometry.html +1 -1
  53. package/docs/classes/sticker.Sticker.html +1 -1
  54. package/docs/classes/vfx.Airflow.html +1 -1
  55. package/docs/classes/vfx.Flame.html +1 -1
  56. package/docs/classes/vfx.Particle.html +6 -6
  57. package/docs/classes/vfx.ParticleGPU.html +3 -3
  58. package/docs/classes/vfx.SpotLight.html +1 -1
  59. package/docs/functions/five.createDebugBoundingMesh.html +1 -1
  60. package/docs/functions/plugins.CSS3DPlugin.html +1 -0
  61. package/docs/functions/react.useFiveCurrentObserver.html +2 -2
  62. package/docs/functions/react.useFiveFloor.html +2 -2
  63. package/docs/functions/react.useFiveProject2d.html +2 -2
  64. package/docs/functions/vue.useFiveCurrentObserver.html +2 -2
  65. package/docs/functions/vue.useFiveFloor.html +2 -2
  66. package/docs/functions/vue.useFiveWorks.html +2 -2
  67. package/docs/hierarchy.html +1 -1
  68. package/docs/interfaces/five.AddableObject.html +1 -1
  69. package/docs/interfaces/five.AjaxOptions.html +1 -1
  70. package/docs/interfaces/five.BaseEvent.html +1 -1
  71. package/docs/interfaces/five.BaseExtendableEvent.html +1 -1
  72. package/docs/interfaces/five.EventCallback.html +7 -7
  73. package/docs/interfaces/five.FiveInitArgs.html +2 -2
  74. package/docs/interfaces/five.GestureEvent.html +2 -2
  75. package/docs/interfaces/five.ImageOptions.html +1 -1
  76. package/docs/interfaces/five.IntersectEvent.html +2 -2
  77. package/docs/interfaces/five.IntersectMesh.html +1 -1
  78. package/docs/interfaces/five.IntersectMeshInterface.html +1 -1
  79. package/docs/interfaces/five.Intersection.html +1 -1
  80. package/docs/interfaces/five.LooseWorkWithExtrinsics.html +1 -1
  81. package/docs/interfaces/five.MapviewControllerCustomInitArgs.html +2 -2
  82. package/docs/interfaces/five.ModeChangeEvent.html +1 -1
  83. package/docs/interfaces/five.ModelControllerCustomInitArgs.html +1 -1
  84. package/docs/interfaces/five.ModelEvent.html +2 -2
  85. package/docs/interfaces/five.ModelSceneEvent.html +1 -1
  86. package/docs/interfaces/five.ModelTileEvent.html +1 -1
  87. package/docs/interfaces/five.MovePanoOptions.html +2 -2
  88. package/docs/interfaces/five.NetworkAbortError.html +1 -1
  89. package/docs/interfaces/five.NetworkFirbiddenError.html +1 -1
  90. package/docs/interfaces/five.NetworkOptions.html +1 -1
  91. package/docs/interfaces/five.NetworkProxyError.html +1 -1
  92. package/docs/interfaces/five.NetworkResourceEvent.html +1 -1
  93. package/docs/interfaces/five.NetworkResponseError.html +1 -1
  94. package/docs/interfaces/five.NetworkTimeoutError.html +1 -1
  95. package/docs/interfaces/five.ObjectEvent.html +1 -1
  96. package/docs/interfaces/five.PBMCustomShaderInitArgs.html +2 -2
  97. package/docs/interfaces/five.PBMMaterial.html +1 -1
  98. package/docs/interfaces/five.PBMMeshMaterialParameters.html +2 -2
  99. package/docs/interfaces/five.PBMPointCloudMaterialParameters.html +2 -2
  100. package/docs/interfaces/five.PBMRefinedScreen.html +2 -2
  101. package/docs/interfaces/five.PanoCircleMeshInterface.html +2 -2
  102. package/docs/interfaces/five.PanoEvent.html +2 -2
  103. package/docs/interfaces/five.PanoPrepareEvent.html +1 -1
  104. package/docs/interfaces/five.PanoTextureEvent.html +3 -3
  105. package/docs/interfaces/five.PanoramaControllerCustomInitArgs.html +1 -1
  106. package/docs/interfaces/five.PanoramaLikeControllerCustomInitArgs.html +1 -1
  107. package/docs/interfaces/five.ParameterMaterialValue.html +8 -8
  108. package/docs/interfaces/five.ParameterTilesetValue.html +1 -1
  109. package/docs/interfaces/five.ParameterValue.html +8 -8
  110. package/docs/interfaces/five.Pose.html +1 -1
  111. package/docs/interfaces/five.RenderEvent.html +1 -1
  112. package/docs/interfaces/five.ResolvedParameterValue.html +8 -8
  113. package/docs/interfaces/five.SplatData.html +2 -2
  114. package/docs/interfaces/five.State.html +1 -1
  115. package/docs/interfaces/five.StateEvent.html +1 -1
  116. package/docs/interfaces/five.TextureOptions.html +1 -1
  117. package/docs/interfaces/five.Tile3DOptions.html +2 -2
  118. package/docs/interfaces/five.TopviewControllerCustomInitArgs.html +1 -1
  119. package/docs/interfaces/five.VRPanoramaControllerCustomInitArgs.html +1 -1
  120. package/docs/interfaces/five.ViewLayer.html +6 -6
  121. package/docs/interfaces/five.WorkCubeImage.html +1 -1
  122. package/docs/interfaces/five.WorkImage.html +1 -1
  123. package/docs/interfaces/five.WorkObserver.html +1 -1
  124. package/docs/interfaces/five.WorkObserverProto.html +1 -1
  125. package/docs/interfaces/five.WorkTile.html +1 -1
  126. package/docs/interfaces/five.WorksEvent.html +1 -1
  127. package/docs/interfaces/five.XRControllerEvent.html +1 -1
  128. package/docs/interfaces/five.XRGestureEvent.html +2 -2
  129. package/docs/interfaces/five.XRPanoramaControllerCustomInitArgs.html +1 -1
  130. package/docs/interfaces/five.XRSessionEvent.html +2 -2
  131. package/docs/interfaces/plugins.BackgroundPluginController.html +1 -1
  132. package/docs/interfaces/plugins.BackgroundPluginType.EventMap.html +1 -1
  133. package/docs/interfaces/plugins.BasePlugin.State.html +1 -1
  134. package/docs/interfaces/plugins.CSS3DPluginController.html +50 -0
  135. package/docs/interfaces/plugins.CSS3DPluginType.Config.html +2 -0
  136. package/docs/interfaces/plugins.CSS3DPluginType.CreateCSS3DObjectType.html +10 -0
  137. package/docs/interfaces/plugins.CSS3DPluginType.EventMap.html +10 -0
  138. package/docs/interfaces/plugins.CSS3DPluginType.Params.html +4 -0
  139. package/docs/interfaces/plugins.CSS3DPluginType.State.html +8 -0
  140. package/docs/interfaces/plugins.DynamicPathLinePluginController.html +3 -3
  141. package/docs/interfaces/plugins.DynamicPathLinePluginType.EventMap.html +1 -1
  142. package/docs/interfaces/plugins.DynamicPathLinePluginType.State.html +1 -1
  143. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationController.html +2 -2
  144. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.EventMap.html +1 -1
  145. package/docs/interfaces/plugins.GaussianSplattingEntranceAnimationPluginType.State.html +1 -1
  146. package/docs/interfaces/plugins.ItemMaskController.html +1 -1
  147. package/docs/interfaces/plugins.ItemMaskPluginType.EventMap.html +1 -1
  148. package/docs/interfaces/plugins.ItemMaskPluginType.State.html +2 -2
  149. package/docs/interfaces/plugins.OrientationPluginController.html +1 -1
  150. package/docs/interfaces/plugins.OrientationPluginType.EventMap.html +1 -1
  151. package/docs/interfaces/plugins.OrientationPluginType.State.html +1 -1
  152. package/docs/interfaces/plugins.PanoAnimeController.html +1 -1
  153. package/docs/interfaces/plugins.PanoAnimePluginType.EventMap.html +1 -1
  154. package/docs/interfaces/plugins.PanoAnimePluginType.State.html +1 -1
  155. package/docs/interfaces/plugins.PlayingState.html +2 -2
  156. package/docs/interfaces/plugins.PluginTemplateType.EventMap.html +1 -1
  157. package/docs/interfaces/plugins.PluginTemplateType.State.html +1 -1
  158. package/docs/interfaces/plugins.TrajectoryController.html +8 -8
  159. package/docs/interfaces/react.FiveInjectionTypes.html +7 -7
  160. package/docs/interfaces/sticker.IntersectionLike.html +2 -2
  161. package/docs/interfaces/vfx.ParticleArgs.html +4 -4
  162. package/docs/interfaces/vue.FiveActionVueCallbacks.html +3 -3
  163. package/docs/modules/plugins.CSS3DPluginType.html +1 -0
  164. package/docs/modules/plugins.html +1 -1
  165. package/docs/types/five.LegacyEventType.html +7 -7
  166. package/docs/types/five.ParseOptions.html +1 -1
  167. package/docs/types/five.Works.html +1 -1
  168. package/docs/types/plugins.BasePlugin.EventMap.html +1 -1
  169. package/docs/types/plugins.CSS3DPluginType.PluginData.html +1 -0
  170. package/docs/types/plugins.CSS3DPluginType.ServerData.html +1 -0
  171. package/five/application/five.d.ts +3 -3
  172. package/five/bvh/bvhObject.d.ts +2 -2
  173. package/five/controllers/model.d.ts +2 -2
  174. package/five/controllers/panorama.d.ts +2 -1
  175. package/five/core/camera.d.ts +1 -1
  176. package/five/gaussian-splatting/util/renderData.d.ts +15 -1
  177. package/five/index.js +118 -93
  178. package/five/index.mjs +588 -515
  179. package/five/model/loaders/glTF-helpers/extensions/KHR_binary_glTF.d.ts +1 -1
  180. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting.d.ts +2 -3
  181. package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +5 -3
  182. package/five/model/objects/pbmGaussianSplattingRenderMesh.d.ts +4 -0
  183. package/five/model/tile3d/index.d.ts +4 -3
  184. package/five/texture/loader.d.ts +1 -1
  185. package/five/utils/imageURL.d.ts +1 -1
  186. package/five/webxr/motionHelper.d.ts +1 -1
  187. package/gltf-loader/index.js +3 -3
  188. package/gltf-loader/index.mjs +3 -3
  189. package/line/index.js +3 -3
  190. package/line/index.mjs +3 -3
  191. package/package.json +1 -1
  192. package/plugins/CSS3DPlugin/Controller.d.ts +60 -0
  193. package/plugins/CSS3DPlugin/index.d.ts +5 -0
  194. package/plugins/CSS3DPlugin/typing.d.ts +32 -0
  195. package/plugins/TrajectoryPlugin/Controller.d.ts +1 -1
  196. package/plugins/index.d.ts +2 -1
  197. package/plugins/index.js +30 -10
  198. package/plugins/index.mjs +432 -306
  199. package/plugins/utils/uuid.d.ts +1 -4
  200. package/react/context.d.ts +3 -2
  201. package/react/createProvider.d.ts +4 -4
  202. package/react/createStore.d.ts +3 -3
  203. package/react/hooks/useFiveProject2d.d.ts +1 -1
  204. package/react/index.js +2 -2
  205. package/react/index.mjs +2 -2
  206. package/react/rendererPool.d.ts +2 -2
  207. package/shader-lib/index.js +2 -2
  208. package/shader-lib/index.mjs +2 -2
  209. package/sticker/index.js +3 -3
  210. package/sticker/index.mjs +3 -3
  211. package/umd/five-gltf-loader.js +3 -3
  212. package/umd/five-line.js +3 -3
  213. package/umd/five-plugins.js +30 -10
  214. package/umd/five-react.js +2 -2
  215. package/umd/five-shader-lib.js +2 -2
  216. package/umd/five-sticker.js +3 -3
  217. package/umd/five-vfx.js +2 -2
  218. package/umd/five-vue.js +2 -2
  219. package/umd/five.js +99 -74
  220. package/vfx/index.js +2 -2
  221. package/vfx/index.mjs +2 -2
  222. package/vue/index.js +2 -2
  223. package/vue/index.mjs +2 -2
  224. package/vue/rendererPool.d.ts +5 -5
  225. package/work-downloader/index.js +2 -2
  226. package/work-downloader/index.mjs +2 -2
package/five/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five
4
- * Generated: 4/1/2026
5
- * Version: 6.8.0-alpha.28
4
+ * Generated: 2026/4/8
5
+ * Version: 6.8.0-alpha.29
6
6
  * Terms:
7
7
  * Realsee SDK License Agreement
8
8
  * Update: July 28, 2021
@@ -7169,8 +7169,8 @@ var Ua = class {
7169
7169
  if (n.bufferView !== void 0) {
7170
7170
  let e = this.json.bufferViews[n.bufferView];
7171
7171
  t = this.loadBuffer(e.buffer).then((t) => {
7172
- let r = e.byteOffset || 0, i = e.byteLength || 0;
7173
- return li(new Blob([new Uint8Array(t, r, i)], { type: n.mimeType }));
7172
+ let r = e.byteOffset || 0, i = e.byteLength || 0, a = new Uint8Array(t, r, i);
7173
+ return li(new Blob([a], { type: n.mimeType }));
7174
7174
  });
7175
7175
  } else if (n.uri) {
7176
7176
  let e = this.resolveResouce(n.uri);
@@ -8508,7 +8508,8 @@ var Xo = class {
8508
8508
  for (let e = 0; e < 21; ++e) i[e] = (t[o + e] - 128) / 128;
8509
8509
  o += 21;
8510
8510
  }
8511
- a == null || a(e, new Float32Array(n), r ? new Float32Array(r) : void 0, i ? new Float32Array(i) : void 0);
8511
+ let s = new Float32Array(n), c = r ? new Float32Array(r) : void 0, l = i ? new Float32Array(i) : void 0;
8512
+ a == null || a(e, s, c, l);
8512
8513
  }
8513
8514
  }
8514
8515
  });
@@ -13006,7 +13007,7 @@ var ad = class {
13006
13007
  e.content && (n++, t += e.content.memoryUsage, e.content.loadState === "READY" && r++);
13007
13008
  }), r < 2 || n < 2) this.currentMaxScreenSpaceError = e.maxScreenSpaceError;
13008
13009
  else {
13009
- let i = 1024 * 1024, a = t / r * n, o = e.maxMemoryUsage * i, s = o - U(o * .1, 8 * i, 64 * i), c = this.currentMaxScreenSpaceError;
13010
+ let i = 1024 * 1024, a = t / r * n, o = e.maxMemoryUsage * i, s = o - U(o * .1, 16 * i, 64 * i), c = this.currentMaxScreenSpaceError;
13010
13011
  if (a < s) {
13011
13012
  let e = .5 * (1 - a / s);
13012
13013
  c -= e;
@@ -17649,8 +17650,8 @@ function Fh(e) {
17649
17650
  return !0;
17650
17651
  }
17651
17652
  //#endregion
17652
- //#region build/five/renderer/tools/render-cube-to-equirectangular.js
17653
- var Ih = new rm(new class extends e.ShaderMaterial {
17653
+ //#region build/five/utils/shaderMaterial.js
17654
+ var Ih = class extends e.ShaderMaterial {
17654
17655
  constructor(e) {
17655
17656
  super(e), this.uniforms === void 0 && (this.uniforms = {}), this.defines === void 0 && (this.defines = {});
17656
17657
  }
@@ -17660,7 +17661,11 @@ var Ih = new rm(new class extends e.ShaderMaterial {
17660
17661
  setUniform(e, t) {
17661
17662
  kt(this.uniforms[e], t);
17662
17663
  }
17663
- }({
17664
+ };
17665
+ e.RawShaderMaterial;
17666
+ //#endregion
17667
+ //#region build/five/renderer/tools/render-cube-to-equirectangular.js
17668
+ var Lh = new rm(new Ih({
17664
17669
  vertexShader: "\nvarying vec2 vUv;\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n",
17665
17670
  fragmentShader: "\nvarying vec2 vUv;\nuniform samplerCube cubemap;\nuniform float scaleY;\n\n#define TAU 6.2831852\n#define PI 3.1415926\n\nvoid main() {\n\n float theta = TAU * vUv.x;\n float phi = PI * (vUv.y - 0.5);\n\n float distance = abs(cos(phi));\n float dx = -sin(theta) * distance;\n float dy = sin(phi) * scaleY;\n float dz = -cos(theta) * distance;\n vec3 target = normalize(vec3(dx, dy, dz));\n\n gl_FragColor = textureCube(cubemap, target);\n}\n",
17666
17671
  uniforms: {
@@ -17672,13 +17677,13 @@ var Ih = new rm(new class extends e.ShaderMaterial {
17672
17677
  depthTest: !1,
17673
17678
  depthWrite: !1
17674
17679
  }));
17675
- function Lh(e, t, n) {
17676
- Ih.material.setUniform("cubemap", t), Ih.material.setUniform("scaleY", n ? -1 : 1), Ih.render(e), Ih.material.setUniform("cubemap", null);
17680
+ function Rh(e, t, n) {
17681
+ Lh.material.setUniform("cubemap", t), Lh.material.setUniform("scaleY", n ? -1 : 1), Lh.render(e), Lh.material.setUniform("cubemap", null);
17677
17682
  }
17678
17683
  //#endregion
17679
17684
  //#region build/five/texture/textureData.js
17680
- var Rh = new e.Color(), zh = [], Bh = 0, Vh = 1;
17681
- function Hh(t, n, r, i) {
17685
+ var zh = new e.Color(), Bh = [], Vh = 0, Hh = 1;
17686
+ function Uh(t, n, r, i) {
17682
17687
  let a = new e.WebGLRenderTarget(i.width, i.height, {
17683
17688
  depthBuffer: !1,
17684
17689
  stencilBuffer: !1,
@@ -17686,13 +17691,13 @@ function Hh(t, n, r, i) {
17686
17691
  magFilter: e.LinearFilter,
17687
17692
  minFilter: e.LinearFilter
17688
17693
  }), o = t.getRenderTarget();
17689
- Rh.copy(t.getClearColor());
17694
+ zh.copy(t.getClearColor());
17690
17695
  let s = t.getClearAlpha(), c = t.autoClear, l = t.autoClearColor, u = t.autoClearDepth, d = t.autoClearStencil, f = t.clippingPlanes;
17691
- return t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.clippingPlanes = zh, t.setRenderTarget(a), t.setClearColor(Bh, Vh), Lh(t, n, r), t.setRenderTarget(o), t.setClearColor(Rh, s), t.autoClear = c, t.autoClearColor = l, t.autoClearDepth = u, t.autoClearStencil = d, t.clippingPlanes = f, t.readRenderTargetPixels(a, 0, 0, i.width, i.height, i.data), a.dispose(), i;
17696
+ return t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0, t.clippingPlanes = Bh, t.setRenderTarget(a), t.setClearColor(Vh, Hh), Rh(t, n, r), t.setRenderTarget(o), t.setClearColor(zh, s), t.autoClear = c, t.autoClearColor = l, t.autoClearDepth = u, t.autoClearStencil = d, t.clippingPlanes = f, t.readRenderTargetPixels(a, 0, 0, i.width, i.height, i.data), a.dispose(), i;
17692
17697
  }
17693
17698
  //#endregion
17694
17699
  //#region build/five/thirdparty/hammer.js
17695
- var Uh = (function(e, t, n, r) {
17700
+ var Wh = (function(e, t, n, r) {
17696
17701
  var i = [
17697
17702
  "",
17698
17703
  "webkit",
@@ -18518,7 +18523,7 @@ var Uh = (function(e, t, n, r) {
18518
18523
  bindFn: v,
18519
18524
  prefixed: k
18520
18525
  }), kt;
18521
- })(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer"), Wh = class t extends an {
18526
+ })(typeof window < "u" ? window : {}, typeof document < "u" ? document : {}, "Hammer"), Gh = class t extends an {
18522
18527
  static parseArgs(e) {
18523
18528
  return e instanceof t ? e : Object.assign({}, e);
18524
18529
  }
@@ -18715,10 +18720,10 @@ var Uh = (function(e, t, n, r) {
18715
18720
  ctrlKey: "ctrlKey" in e ? e.ctrlKey : !1,
18716
18721
  altKey: "altKey" in e ? e.altKey : !1,
18717
18722
  metaKey: "metaKey" in e ? e.metaKey : !1
18718
- }), i = new Uh.Manager(t), a = (e) => e.session.firstInput || null, o = new Uh.Pan({
18723
+ }), i = new Wh.Manager(t), a = (e) => e.session.firstInput || null, o = new Wh.Pan({
18719
18724
  threshold: 10,
18720
18725
  pointers: 0
18721
- }), s = new Uh.Tap({ interval: 410 }), c = new Uh.Pinch({
18726
+ }), s = new Wh.Tap({ interval: 410 }), c = new Wh.Pinch({
18722
18727
  threshold: 0,
18723
18728
  pointers: 2
18724
18729
  });
@@ -19166,7 +19171,7 @@ var Uh = (function(e, t, n, r) {
19166
19171
  i.destroy(), t.removeEventListener("wheel", f, !1), t.removeEventListener("mousemove", p, !1), t.removeEventListener("mouseout", m, !1), t.removeEventListener("touchstart", g, !1), t.removeEventListener("touchend", v, !1), t.removeEventListener("touchcancel", v, !1), t.removeEventListener("mousedown", _, !1), t.removeEventListener("mouseup", v, !1), t.removeEventListener("gesturestart", x, !1), t.removeEventListener("gesturechange", S, !1), t.removeEventListener("gestureend", C, !1), t.removeEventListener("touchstart", w, !1), t.removeEventListener("contextmenu", w, !1);
19167
19172
  }, { element: t });
19168
19173
  }
19169
- }, Gh = new e.CircleBufferGeometry(.1, 16), Kh = new e.ShaderMaterial({
19174
+ }, Kh = new e.CircleBufferGeometry(.1, 16), qh = new e.ShaderMaterial({
19170
19175
  vertexShader: "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n",
19171
19176
  fragmentShader: "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_fragment>\n\nfloat smoothDist = 0.01;\nvoid main() {\n #include <logdepthbuf_fragment>\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * outside * inside);\n}\n",
19172
19177
  side: e.DoubleSide,
@@ -19177,9 +19182,9 @@ var Uh = (function(e, t, n, r) {
19177
19182
  blendDstAlpha: e.OneMinusSrcAlphaFactor,
19178
19183
  depthWrite: !1,
19179
19184
  transparent: !0
19180
- }), qh = class extends e.Object3D {
19185
+ }), Jh = class extends e.Object3D {
19181
19186
  constructor() {
19182
- super(), this.ringMesh = new e.Mesh(Gh, Kh), this.ringMesh.position.z = .01, this.ringMesh.renderOrder = 9999999999, this.add(this.ringMesh);
19187
+ super(), this.ringMesh = new e.Mesh(Kh, qh), this.ringMesh.position.z = .01, this.ringMesh.renderOrder = 9999999999, this.add(this.ringMesh);
19183
19188
  }
19184
19189
  dispose() {
19185
19190
  this.remove(this.ringMesh);
@@ -19187,14 +19192,14 @@ var Uh = (function(e, t, n, r) {
19187
19192
  };
19188
19193
  //#endregion
19189
19194
  //#region build/five/utils/error.js
19190
- function Jh(e) {
19195
+ function Yh(e) {
19191
19196
  if (e instanceof Error) return e;
19192
19197
  let t = typeof e;
19193
19198
  return Error(t && t === "object" ? JSON.stringify(e) : e);
19194
19199
  }
19195
19200
  //#endregion
19196
19201
  //#region build/five/controllers/floorplan.js
19197
- var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19202
+ var Xh = new e.Box3(), Zh = new e.Vector3(), Qh = {
19198
19203
  defaultLongitude: Math.PI / 4,
19199
19204
  defaultLatitude: Math.PI / 4,
19200
19205
  defaultFov: 80,
@@ -19202,8 +19207,8 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19202
19207
  minFov: 20,
19203
19208
  maxLatitude: Math.PI / 2,
19204
19209
  minLatitude: -Math.PI / 2,
19205
- intersectMeshCreator: () => new qh()
19206
- }, Qh = class t extends Wh {
19210
+ intersectMeshCreator: () => new Jh()
19211
+ }, $h = class t extends Gh {
19207
19212
  static distanceFromModel(e, t, n) {
19208
19213
  let r = e.boundingBox, i = r.isEmpty() ? 10 : Math.pow(Math.pow(r.max.x - r.min.x + 1, 2) + Math.pow(r.max.y - r.min.y + 1, 2) + Math.pow(r.max.z - r.min.z + 1, 2), 1 / 2);
19209
19214
  i = isNaN(i) || !isFinite(i) ? 1 : i;
@@ -19215,14 +19220,14 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19215
19220
  if (e instanceof t) return e;
19216
19221
  let u = super.parseArgs(e);
19217
19222
  return Object.assign(Object.assign({}, u), {
19218
- defaultLongitude: (n = e.defaultLongitude) == null ? Zh.defaultLongitude : n,
19219
- defaultLatitude: (r = e.defaultLatitude) == null ? Zh.defaultLatitude : r,
19220
- defaultFov: (i = e.defaultFov) == null ? Zh.defaultFov : i,
19221
- maxFov: (a = e.maxFov) == null ? Zh.maxFov : a,
19222
- minFov: (o = e.minFov) == null ? Zh.minFov : o,
19223
- maxLatitude: (s = e.maxLatitude) == null ? Zh.maxLatitude : s,
19224
- minLatitude: (c = e.minLatitude) == null ? Zh.minLatitude : c,
19225
- intersectMeshCreator: (l = e.intersectMeshCreator) == null ? Zh.intersectMeshCreator : l
19223
+ defaultLongitude: (n = e.defaultLongitude) == null ? Qh.defaultLongitude : n,
19224
+ defaultLatitude: (r = e.defaultLatitude) == null ? Qh.defaultLatitude : r,
19225
+ defaultFov: (i = e.defaultFov) == null ? Qh.defaultFov : i,
19226
+ maxFov: (a = e.maxFov) == null ? Qh.maxFov : a,
19227
+ minFov: (o = e.minFov) == null ? Qh.minFov : o,
19228
+ maxLatitude: (s = e.maxLatitude) == null ? Qh.maxLatitude : s,
19229
+ minLatitude: (c = e.minLatitude) == null ? Qh.minLatitude : c,
19230
+ intersectMeshCreator: (l = e.intersectMeshCreator) == null ? Qh.intersectMeshCreator : l
19226
19231
  });
19227
19232
  }
19228
19233
  static initAnimationEndState(n) {
@@ -19378,9 +19383,9 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19378
19383
  let n = [];
19379
19384
  for (let t of this.works) {
19380
19385
  let r = this.modelScene.models.find((e) => e.work === t);
19381
- if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Yh.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Yh.containsPoint(e.ray.origin) || e.ray.intersectsBox(Yh))) for (let e of t.observers) n.push(e);
19386
+ if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Xh.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Xh.containsPoint(e.ray.origin) || e.ray.intersectsBox(Xh))) for (let e of t.observers) n.push(e);
19382
19387
  }
19383
- let [r, i] = Rl(n, (e) => Xh.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
19388
+ let [r, i] = Rl(n, (e) => Zh.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
19384
19389
  return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
19385
19390
  }
19386
19391
  coordinatesForOffset(t) {
@@ -19583,7 +19588,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19583
19588
  return;
19584
19589
  }
19585
19590
  let p;
19586
- d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Jh(e)).then((e) => {
19591
+ d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e)).then((e) => {
19587
19592
  var t;
19588
19593
  e instanceof Error ? (this.pendingTextureId = null, e.message && this.emit("error", e)) : (d.pano0 && d.pano0.map !== p.map && d.pano0.map.dispose(), d.pano1 && d.pano1.map !== p.map && d.pano1.map !== ((t = d.pano0) == null ? void 0 : t.map) && d.pano1.map.dispose(), d.set({
19589
19594
  pano0: p,
@@ -19616,14 +19621,14 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19616
19621
  viaAjax: !0,
19617
19622
  fetcher: Sf(this.fiveId, r.work)
19618
19623
  }, void 0, void 0, void 0, this.renderer)).catch((e) => {
19619
- let t = Jh(e);
19624
+ let t = Yh(e);
19620
19625
  return this.emit("pano.texture.error", Q("pano.texture.error", {
19621
19626
  error: t,
19622
19627
  progress: 0,
19623
19628
  meta: null,
19624
19629
  pano: a
19625
19630
  })), t;
19626
- }), Promise.resolve().then(() => Dh(f)).catch((e) => Jh(e))]).then(([a, s]) => {
19631
+ }), Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e))]).then(([a, s]) => {
19627
19632
  var c, l;
19628
19633
  if (!(a instanceof Error) && !(s instanceof Error)) {
19629
19634
  let { body: s } = a;
@@ -19633,7 +19638,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19633
19638
  }
19634
19639
  this.pendingTextureId = null, s.name = u;
19635
19640
  let f = Array.isArray(s.image) ? s.image[0] : s.image, p = (c = f == null ? void 0 : f.width) == null ? 2048 : c, m = r.images.histogram;
19636
- m || (m = new gm().formPixels(Hh(this.renderer, s, !0, fm).data), r.images.histogram = m);
19641
+ m || (m = new gm().formPixels(Uh(this.renderer, s, !0, fm).data), r.images.histogram = m);
19637
19642
  let h = {
19638
19643
  panoId: o,
19639
19644
  map: s,
@@ -19674,7 +19679,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19674
19679
  hideIntersectMesh() {
19675
19680
  this.intersectMesh.visible = !1, this.needsRender = !0;
19676
19681
  }
19677
- }, $h = Object.assign(Object.assign({}, hr(Zh, [
19682
+ }, eg = Object.assign(Object.assign({}, hr(Qh, [
19678
19683
  "defaultLongitude",
19679
19684
  "defaultLatitude",
19680
19685
  "maxLatitude",
@@ -19682,15 +19687,15 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19682
19687
  ])), {
19683
19688
  defaultLongitude: 0,
19684
19689
  defaultLatitude: Math.PI / 2
19685
- }), eg = class t extends Qh {
19690
+ }), tg = class t extends $h {
19686
19691
  static parseArgs(e) {
19687
19692
  var n, r;
19688
19693
  if (e instanceof t) return e;
19689
19694
  let i = Object.assign(Object.assign({}, e), {
19690
19695
  maxLatitude: Math.PI / 2,
19691
19696
  minLatitude: -Math.PI / 2,
19692
- defaultLongitude: (n = e.defaultLongitude) == null ? $h.defaultLongitude : n,
19693
- defaultLatitude: (r = e.defaultLatitude) == null ? $h.defaultLatitude : r
19697
+ defaultLongitude: (n = e.defaultLongitude) == null ? eg.defaultLongitude : n,
19698
+ defaultLatitude: (r = e.defaultLatitude) == null ? eg.defaultLatitude : r
19694
19699
  });
19695
19700
  return super.parseArgs(i);
19696
19701
  }
@@ -19716,7 +19721,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19716
19721
  x: n.x,
19717
19722
  y: n.y,
19718
19723
  z: n.z,
19719
- distance: Qh.distanceFromModel(this.modelScene, this.defaultFov, this.camera.aspect)
19724
+ distance: $h.distanceFromModel(this.modelScene, this.defaultFov, this.camera.aspect)
19720
19725
  }, 0).catch(K), this.hideIntersectMesh();
19721
19726
  }
19722
19727
  updateCamera(e, t, n) {
@@ -19847,7 +19852,7 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19847
19852
  let t = U(this.cameraMotion.value.fov - e.center.delta, this.minFov, this.maxFov);
19848
19853
  e.state.fov = t, this.emit("gesture.mousewheel", e), !e.defaultPrevented && this.cameraMotion.set({ fov: t }, 0).catch(K);
19849
19854
  }
19850
- }, tg = {
19855
+ }, ng = {
19851
19856
  defaultLatitude: 0,
19852
19857
  defaultFov: 90,
19853
19858
  maxFov: 120,
@@ -19855,23 +19860,23 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
19855
19860
  maxLatitude: (e) => Math.PI / 2 - e / 2 / 180 * Math.PI,
19856
19861
  minLatitude: (e) => -Math.PI / 2 + e / 2 / 180 * Math.PI,
19857
19862
  moveSpeed: 3.6,
19858
- intersectMeshCreator: () => new qh(),
19863
+ intersectMeshCreator: () => new Jh(),
19859
19864
  aerialObserverMinHeight: 5
19860
- }, ng = class t extends Wh {
19865
+ }, rg = class t extends Gh {
19861
19866
  static parseArgs(e) {
19862
19867
  var n, r, i, a, o, s, c, l, u;
19863
19868
  if (e instanceof t) return e;
19864
19869
  let d = super.parseArgs(e);
19865
19870
  return Object.assign(Object.assign({}, d), {
19866
- defaultLatitude: (n = e.defaultLatitude) == null ? tg.defaultLatitude : n,
19867
- defaultFov: (r = e.defaultFov) == null ? tg.defaultFov : r,
19868
- maxFov: (i = e.maxFov) == null ? tg.maxFov : i,
19869
- minFov: (a = e.minFov) == null ? tg.minFov : a,
19870
- maxLatitude: (o = e.maxLatitude) == null ? tg.maxLatitude : o,
19871
- minLatitude: (s = e.minLatitude) == null ? tg.minLatitude : s,
19872
- moveSpeed: (c = e.moveSpeed) == null ? tg.moveSpeed : c,
19873
- intersectMeshCreator: (l = e.intersectMeshCreator) == null ? tg.intersectMeshCreator : l,
19874
- aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ? tg.aerialObserverMinHeight : u
19871
+ defaultLatitude: (n = e.defaultLatitude) == null ? ng.defaultLatitude : n,
19872
+ defaultFov: (r = e.defaultFov) == null ? ng.defaultFov : r,
19873
+ maxFov: (i = e.maxFov) == null ? ng.maxFov : i,
19874
+ minFov: (a = e.minFov) == null ? ng.minFov : a,
19875
+ maxLatitude: (o = e.maxLatitude) == null ? ng.maxLatitude : o,
19876
+ minLatitude: (s = e.minLatitude) == null ? ng.minLatitude : s,
19877
+ moveSpeed: (c = e.moveSpeed) == null ? ng.moveSpeed : c,
19878
+ intersectMeshCreator: (l = e.intersectMeshCreator) == null ? ng.intersectMeshCreator : l,
19879
+ aerialObserverMinHeight: (u = e.aerialObserverMinHeight) == null ? ng.aerialObserverMinHeight : u
19875
19880
  });
19876
19881
  }
19877
19882
  static initAnimationEndState(t) {
@@ -20102,11 +20107,11 @@ var Yh = new e.Box3(), Xh = new e.Vector3(), Zh = {
20102
20107
  let i = Math.max(40 - n * 5, this.minFov, 5), a = i - t < t - this.defaultFov ? i : this.defaultFov;
20103
20108
  e.state.fov = a, this.emit("gesture.dbltap", e), !e.defaultPrevented && (this.cameraMotion.set({ fov: a }, 360).catch(K), this.hideIntersectMesh());
20104
20109
  }
20105
- }, rg = "data:video/mp4;base64,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", ig;
20106
- function ag() {
20107
- return ig || (ig = new Promise((e) => {
20110
+ }, ig = "data:video/mp4;base64,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", ag;
20111
+ function og() {
20112
+ return ag || (ag = new Promise((e) => {
20108
20113
  let t, n = document.createElement("video");
20109
- n.muted = !0, n.src = rg, n.addEventListener("timeupdate", function r() {
20114
+ n.muted = !0, n.src = ig, n.addEventListener("timeupdate", function r() {
20110
20115
  n.removeEventListener("timeupdate", r, !1), clearTimeout(t);
20111
20116
  let i = document.createElement("canvas");
20112
20117
  i.width = i.height = 1;
@@ -20125,7 +20130,7 @@ function ag() {
20125
20130
  }
20126
20131
  //#endregion
20127
20132
  //#region build/five/utils/tileCube.js
20128
- var og = [
20133
+ var sg = [
20129
20134
  "right",
20130
20135
  "left",
20131
20136
  "up",
@@ -20133,7 +20138,7 @@ var og = [
20133
20138
  "front",
20134
20139
  "back"
20135
20140
  ];
20136
- function sg(t, n, r, i) {
20141
+ function cg(t, n, r, i) {
20137
20142
  let a = new e.Box3();
20138
20143
  switch (t) {
20139
20144
  case "up":
@@ -20158,7 +20163,7 @@ function sg(t, n, r, i) {
20158
20163
  }
20159
20164
  return a.applyMatrix4(new e.Matrix4().makeRotationY(Math.PI));
20160
20165
  }
20161
- var cg = (t, n) => {
20166
+ var lg = (t, n) => {
20162
20167
  if (t.level >= n) return;
20163
20168
  let r = t.level + 1, i = t.size / 2, a = [
20164
20169
  new e.Vector2(t.position.x, t.position.y),
@@ -20172,44 +20177,44 @@ var cg = (t, n) => {
20172
20177
  level: r,
20173
20178
  size: i,
20174
20179
  position: e,
20175
- box: sg(t.face, e.x, e.y, i),
20180
+ box: cg(t.face, e.x, e.y, i),
20176
20181
  parent: t,
20177
20182
  children: []
20178
20183
  };
20179
- t.children.push(a), cg(a, n);
20184
+ t.children.push(a), lg(a, n);
20180
20185
  }
20181
20186
  };
20182
- function lg(t, n) {
20187
+ function ug(t, n) {
20183
20188
  let r = {
20184
20189
  level: 0,
20185
20190
  face: t,
20186
20191
  position: new e.Vector2(0, 0),
20187
20192
  size: 1,
20188
- box: sg(t, 0, 0, 1),
20193
+ box: cg(t, 0, 0, 1),
20189
20194
  parent: null,
20190
20195
  children: []
20191
20196
  };
20192
- return cg(r, n), r;
20197
+ return lg(r, n), r;
20193
20198
  }
20194
- function ug(e) {
20199
+ function dg(e) {
20195
20200
  return {
20196
- children: og.map((t) => lg(t, e)),
20201
+ children: sg.map((t) => ug(t, e)),
20197
20202
  maxLevel: e
20198
20203
  };
20199
20204
  }
20200
- function dg(e, t) {
20201
- for (let n of e.children) t(n) !== !1 && dg(n, t);
20205
+ function fg(e, t) {
20206
+ for (let n of e.children) t(n) !== !1 && fg(n, t);
20202
20207
  }
20203
20208
  //#endregion
20204
20209
  //#region build/five/core/tiling.js
20205
- var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg = new e.Matrix4(), _g = new e.Matrix4(), vg = new e.Matrix4(), yg = new e.Matrix4(), bg = new e.Quaternion(), xg = new e.Matrix4(), Sg = new e.Color(0, 0, 0), Cg = 0, wg = new e.Color(), Tg = [], Eg = (fg = Math.SQRT1_2) == null ? Math.sqrt(2) : fg, Dg = {
20206
- up: new e.Quaternion(Eg, 0, 0, Eg),
20207
- down: new e.Quaternion(-Eg, 0, 0, Eg),
20208
- left: new e.Quaternion(0, Eg, 0, Eg),
20209
- right: new e.Quaternion(0, -Eg, 0, Eg),
20210
+ var pg, mg = new e.Vector3(), hg = new e.Quaternion(), gg = new e.Matrix4(), _g = new e.Matrix4(), vg = new e.Matrix4(), yg = new e.Matrix4(), bg = new e.Matrix4(), xg = new e.Quaternion(), Sg = new e.Matrix4(), Cg = new e.Color(0, 0, 0), wg = 0, Tg = new e.Color(), Eg = [], Dg = (pg = Math.SQRT1_2) == null ? Math.sqrt(2) : pg, Og = {
20211
+ up: new e.Quaternion(Dg, 0, 0, Dg),
20212
+ down: new e.Quaternion(-Dg, 0, 0, Dg),
20213
+ left: new e.Quaternion(0, Dg, 0, Dg),
20214
+ right: new e.Quaternion(0, -Dg, 0, Dg),
20210
20215
  front: new e.Quaternion(0, 0, 0, 1),
20211
20216
  back: new e.Quaternion(0, 1, 0, 0)
20212
- }, Og = (() => {
20217
+ }, kg = (() => {
20213
20218
  let t = new Float32Array([
20214
20219
  -.5,
20215
20220
  -.5,
@@ -20241,7 +20246,7 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
20241
20246
  2
20242
20247
  ]), i = new e.BufferGeometry();
20243
20248
  return i.setAttribute("position", new e.BufferAttribute(t, 3)), i.setAttribute("uv", new e.BufferAttribute(n, 2)), i.setIndex(new e.BufferAttribute(r, 1)), i.computeBoundingBox(), i;
20244
- })(), kg = "\nvarying vec2 vUV;\nvoid main() {\n vUV = uv;\n #if !defined(USE_FLIP_Y)\n vUV.y = 1.0 - vUV.y;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", Ag = "\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\n gl_FragColor = texture2D(map, vUV);\n gl_FragColor.a = gl_FragColor.a * opacity;\n}\n", jg = class extends e.ShaderMaterial {
20249
+ })(), Ag = "\nvarying vec2 vUV;\nvoid main() {\n vUV = uv;\n #if !defined(USE_FLIP_Y)\n vUV.y = 1.0 - vUV.y;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", jg = "\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\n gl_FragColor = texture2D(map, vUV);\n gl_FragColor.a = gl_FragColor.a * opacity;\n}\n", Mg = class extends e.ShaderMaterial {
20245
20250
  constructor() {
20246
20251
  super({
20247
20252
  defines: { USE_FLIP_Y: !0 },
@@ -20250,8 +20255,8 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
20250
20255
  opacity: { value: 1 },
20251
20256
  level: { value: -1 }
20252
20257
  },
20253
- vertexShader: kg,
20254
- fragmentShader: Ag,
20258
+ vertexShader: Ag,
20259
+ fragmentShader: jg,
20255
20260
  depthTest: !0,
20256
20261
  depthWrite: !0
20257
20262
  }), V(this, "flipY", {
@@ -20284,9 +20289,9 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
20284
20289
  }
20285
20290
  });
20286
20291
  }
20287
- }, Mg = class extends e.Mesh {
20292
+ }, Ng = class extends e.Mesh {
20288
20293
  constructor(t, n) {
20289
- super(Og, new jg()), this.disposed = !1, t.box.getCenter(this.position), this.quaternion.multiplyQuaternions(new e.Quaternion().setFromAxisAngle(new e.Vector3(0, 1, 0), -Math.PI), Dg[t.face]), this.scale.setScalar(t.size), this.node = t, this.name = "tiling:tile", this.material.level = t.level, this.material.visible = !1, this.material.polygonOffset = !0, this.material.polygonOffsetFactor = -t.level, this.material.polygonOffsetUnits = -t.level, this.activeTime = -1, this.frustumCulled = !1, this.renderOrder = t.level, this.appearDuration = 0, this.appearMotion = new X({ appear: 0 }), n.then((e) => {
20294
+ super(kg, new Mg()), this.disposed = !1, t.box.getCenter(this.position), this.quaternion.multiplyQuaternions(new e.Quaternion().setFromAxisAngle(new e.Vector3(0, 1, 0), -Math.PI), Og[t.face]), this.scale.setScalar(t.size), this.node = t, this.name = "tiling:tile", this.material.level = t.level, this.material.visible = !1, this.material.polygonOffset = !0, this.material.polygonOffsetFactor = -t.level, this.material.polygonOffsetUnits = -t.level, this.activeTime = -1, this.frustumCulled = !1, this.renderOrder = t.level, this.appearDuration = 0, this.appearMotion = new X({ appear: 0 }), n.then((e) => {
20290
20295
  this.disposed ? e.dispose() : (this.material.map = e, this.material.flipY = !!e.flipY, this.material.visible = !0, this.appearMotion.set({ appear: 1 }, this.appearDuration * 1e3).catch(K));
20291
20296
  }).catch(K);
20292
20297
  }
@@ -20300,15 +20305,15 @@ var fg, pg = new e.Vector3(), mg = new e.Quaternion(), hg = new e.Matrix4(), gg
20300
20305
  dispose() {
20301
20306
  this.disposed = !0, this.material.map && this.material.map.dispose(), this.material.dispose();
20302
20307
  }
20303
- }, Ng = Af(20, 20, 20);
20304
- Ng.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
20305
- var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", Fg = "\n#define FLIP_CUBE_MAP -1.0\nuniform samplerCube map;\nvarying vec4 vFinalPosition;\nvoid main() {\n vec3 panoToVertex = normalize(vFinalPosition.xyz);\n gl_FragColor = textureCube(map, vec3(FLIP_CUBE_MAP * panoToVertex.x, panoToVertex.yz));\n}\n", Ig = class extends e.ShaderMaterial {
20308
+ }, Pg = Af(20, 20, 20);
20309
+ Pg.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
20310
+ var Fg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = vec4(position, 1.0);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n", Ig = "\n#define FLIP_CUBE_MAP -1.0\nuniform samplerCube map;\nvarying vec4 vFinalPosition;\nvoid main() {\n vec3 panoToVertex = normalize(vFinalPosition.xyz);\n gl_FragColor = textureCube(map, vec3(FLIP_CUBE_MAP * panoToVertex.x, panoToVertex.yz));\n}\n", Lg = class extends e.ShaderMaterial {
20306
20311
  constructor() {
20307
20312
  super({
20308
20313
  defines: {},
20309
20314
  uniforms: { map: { value: null } },
20310
- vertexShader: Pg,
20311
- fragmentShader: Fg,
20315
+ vertexShader: Fg,
20316
+ fragmentShader: Ig,
20312
20317
  transparent: !1
20313
20318
  }), V(this, "map", {
20314
20319
  get() {
@@ -20319,9 +20324,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20319
20324
  }
20320
20325
  });
20321
20326
  }
20322
- }, Lg = class extends e.Mesh {
20327
+ }, Rg = class extends e.Mesh {
20323
20328
  constructor() {
20324
- super(Ng, new Ig()), this.disposed = !1, this.frustumCulled = !1, this.renderOrder = 9999;
20329
+ super(Pg, new Lg()), this.disposed = !1, this.frustumCulled = !1, this.renderOrder = 9999;
20325
20330
  }
20326
20331
  update(e, t) {
20327
20332
  if (this.disposed) {
@@ -20333,9 +20338,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20333
20338
  dispose() {
20334
20339
  this.disposed = !0, this.material.dispose();
20335
20340
  }
20336
- }, Rg = class {
20341
+ }, zg = class {
20337
20342
  constructor(t) {
20338
- this.forceRenderWhenNextUpdate = !0, this.fiveId = t.fiveId, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.boundingMesh = new Lg(), this.boundingMesh.frustumCulled = !1, this.textureLoader = new hi(), this.observer = null, this.tileTree = ug(0), this.tileMeshes = /* @__PURE__ */ new Map(), this.frustum = new e.Frustum(), this.scene = new e.Scene(), this.camera = new e.PerspectiveCamera(90, 1, .1, 100), this.scene.add(this.boundingMesh), this.renderTarget = new e.WebGLRenderTarget(1, 1, {
20343
+ this.forceRenderWhenNextUpdate = !0, this.fiveId = t.fiveId, this.disposed = !1, this.level = 0, this.pedding = 0, this.maxRequest = 1, this.appearDuration = .5, this.maxCacheTile = 48, this.imageOptions = {}, this.boundingMesh = new Rg(), this.boundingMesh.frustumCulled = !1, this.textureLoader = new hi(), this.observer = null, this.tileTree = dg(0), this.tileMeshes = /* @__PURE__ */ new Map(), this.frustum = new e.Frustum(), this.scene = new e.Scene(), this.camera = new e.PerspectiveCamera(90, 1, .1, 100), this.scene.add(this.boundingMesh), this.renderTarget = new e.WebGLRenderTarget(1, 1, {
20339
20344
  depthBuffer: !0,
20340
20345
  stencilBuffer: !1,
20341
20346
  generateMipmaps: !1,
@@ -20355,7 +20360,7 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20355
20360
  }
20356
20361
  setObserver(e) {
20357
20362
  var t, n, r, i;
20358
- this.disposed || this.observer !== e && (this.cleanup(), this.observer = e, this.tileTree = ug((i = (r = (n = (t = this.observer) == null ? void 0 : t.images.tiles) == null ? void 0 : n.slice().sort((e, t) => t.level - e.level)[0]) == null ? void 0 : r.level) == null ? 0 : i));
20363
+ this.disposed || this.observer !== e && (this.cleanup(), this.observer = e, this.tileTree = dg((i = (r = (n = (t = this.observer) == null ? void 0 : t.images.tiles) == null ? void 0 : n.slice().sort((e, t) => t.level - e.level)[0]) == null ? void 0 : r.level) == null ? 0 : i));
20359
20364
  }
20360
20365
  update(t) {
20361
20366
  let n = this.forceRenderWhenNextUpdate;
@@ -20365,12 +20370,12 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20365
20370
  this.level = U(p, 0, this.tileTree.maxLevel);
20366
20371
  let m = Math.floor(i.width * a), h = Math.floor(i.height * a), g = Math.max(m, h), _ = o.capabilities.maxTextureSize;
20367
20372
  g > _ && (m = Math.floor(m / g * _), h = Math.floor(h / g * _)), (this.renderTarget.width !== m || this.renderTarget.height !== h) && this.renderTarget.setSize(m, h), this.scene.matrix.equals(u) || (this.scene.matrix.copy(u), this.scene.matrixWorld.copy(this.scene.matrix), this.scene.matrix.decompose(this.scene.position, this.scene.quaternion, this.scene.scale), this.scene.matrixAutoUpdate = !1, n = !0);
20368
- let v = mg.setFromRotationMatrix(s), y = hg.compose(this.scene.position, v, this.scene.scale);
20373
+ let v = hg.setFromRotationMatrix(s), y = gg.compose(this.scene.position, v, this.scene.scale);
20369
20374
  this.camera.matrix.equals(y) || (this.camera.matrix.copy(y), this.camera.matrixWorld.copy(this.camera.matrix), this.camera.position.copy(this.scene.position), this.camera.quaternion.copy(v), this.camera.scale.copy(this.scene.scale), n = !0);
20370
- let b = gg.copy(c);
20371
- b.elements[0] *= d, b.elements[5] *= d, this.camera.projectionMatrix.equals(b) || (this.camera.projectionMatrix.copy(b), this.camera.projectionMatrixInverse.getInverse(this.camera.projectionMatrix), n = !0), bg.copy(this.scene.quaternion).inverse(), xg.makeRotationFromQuaternion(bg), _g.copy(this.camera.matrix), _g.setPosition(0, 0, 0), _g.premultiply(xg), vg.getInverse(_g), yg.multiplyMatrices(this.camera.projectionMatrix, vg), this.frustum.setFromProjectionMatrix(yg);
20375
+ let b = _g.copy(c);
20376
+ b.elements[0] *= d, b.elements[5] *= d, this.camera.projectionMatrix.equals(b) || (this.camera.projectionMatrix.copy(b), this.camera.projectionMatrixInverse.getInverse(this.camera.projectionMatrix), n = !0), xg.copy(this.scene.quaternion).inverse(), Sg.makeRotationFromQuaternion(xg), vg.copy(this.camera.matrix), vg.setPosition(0, 0, 0), vg.premultiply(Sg), yg.getInverse(vg), bg.multiplyMatrices(this.camera.projectionMatrix, yg), this.frustum.setFromProjectionMatrix(bg);
20372
20377
  let x = this.frustum.planes[5].normal, S = [];
20373
- p >= f && dg(this.tileTree, (e) => {
20378
+ p >= f && fg(this.tileTree, (e) => {
20374
20379
  if (!(e.level < f)) {
20375
20380
  if (e.level > p || !this.frustum.intersectsBox(e.box)) return !1;
20376
20381
  S.push(e);
@@ -20380,9 +20385,9 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20380
20385
  S.sort((e, t) => {
20381
20386
  if (e.level !== t.level) return e.level - t.level;
20382
20387
  let n = C.get(e);
20383
- n === void 0 && (n = e.box.getCenter(pg).angleTo(x), C.set(e, n));
20388
+ n === void 0 && (n = e.box.getCenter(mg).angleTo(x), C.set(e, n));
20384
20389
  let r = C.get(t);
20385
- return r === void 0 && (r = t.box.getCenter(pg).angleTo(x), C.set(t, r)), n - r;
20390
+ return r === void 0 && (r = t.box.getCenter(mg).angleTo(x), C.set(t, r)), n - r;
20386
20391
  });
20387
20392
  let w = /* @__PURE__ */ new WeakSet(), T = this.observer.images.tiles;
20388
20393
  if (T) for (let t of S) {
@@ -20424,7 +20429,7 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20424
20429
  generateMipmaps: !1,
20425
20430
  fetcher: Sf(this.fiveId, this.observer.work)
20426
20431
  }).then((e) => e.body);
20427
- m.then((e) => xd(e, o)).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), a = new Mg(t, m), a.name = `tiling:tile-${l}`, a.visible = !1, a.appearDuration = this.appearDuration, this.tileMeshes.set(t, a), this.scene.add(a), a.updateTime(r), n = !0;
20432
+ m.then((e) => xd(e, o)).then((e) => (this.pedding--, e), (e) => (this.pedding--, Promise.reject(e))), a = new Ng(t, m), a.name = `tiling:tile-${l}`, a.visible = !1, a.appearDuration = this.appearDuration, this.tileMeshes.set(t, a), this.scene.add(a), a.updateTime(r), n = !0;
20428
20433
  }
20429
20434
  let E = [], D = [];
20430
20435
  this.tileMeshes.forEach((e, t) => {
@@ -20436,23 +20441,23 @@ var Pg = "\nvarying vec4 vFinalPosition;\n\nvoid main() {\n vFinalPosition = ve
20436
20441
  for (let e of O) this.tileMeshes.delete(e.node), this.scene.remove(e), e.dispose(), n = !0;
20437
20442
  if (n) {
20438
20443
  let e = o.getRenderTarget();
20439
- wg.copy(o.getClearColor());
20444
+ Tg.copy(o.getClearColor());
20440
20445
  let t = o.getClearAlpha(), n = o.autoClear, r = o.autoClearColor, i = o.autoClearDepth, a = o.autoClearStencil, s = o.clippingPlanes;
20441
- o.autoClear = !0, o.autoClearColor = !0, o.autoClearDepth = !0, o.autoClearStencil = !0, o.clippingPlanes = Tg, o.setRenderTarget(this.renderTarget), o.setClearColor(Sg, Cg), o.render(this.scene, this.camera), o.setRenderTarget(e), o.setClearColor(wg, t), o.autoClear = n, o.autoClearColor = r, o.autoClearDepth = i, o.autoClearStencil = a, o.clippingPlanes = s;
20446
+ o.autoClear = !0, o.autoClearColor = !0, o.autoClearDepth = !0, o.autoClearStencil = !0, o.clippingPlanes = Eg, o.setRenderTarget(this.renderTarget), o.setClearColor(Cg, wg), o.render(this.scene, this.camera), o.setRenderTarget(e), o.setClearColor(Tg, t), o.autoClear = n, o.autoClearColor = r, o.autoClearDepth = i, o.autoClearStencil = a, o.clippingPlanes = s;
20442
20447
  }
20443
20448
  return this.forceRenderWhenNextUpdate = !1, n;
20444
20449
  }
20445
- }, zg = new e.Matrix4().makeRotationAxis(new e.Vector3(0, 1, 0), Math.PI), Bg = Af(2, 2, 2);
20446
- Bg.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
20447
- var Vg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n", Hg = "\n#define FLIP_CUBE_MAP -1.0\n\nuniform vec2 size;\nuniform mat4 matrix;\nuniform mat4 panoMatrix;\nuniform mat4 fixMatrix;\nuniform float alpha;\nuniform sampler2D map;\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n\n vec3 cameraToVertex = normalize(worldPosition - cameraPosition);\n cameraToVertex = cameraToVertex * mat3(panoMatrix);\n cameraToVertex = vec3(FLIP_CUBE_MAP * cameraToVertex.x, cameraToVertex.yz);\n\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * (fixMatrix * matrix);\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n\n #endif\n}\n", Ug = class {
20450
+ }, Bg = new e.Matrix4().makeRotationAxis(new e.Vector3(0, 1, 0), Math.PI), Vg = Af(2, 2, 2);
20451
+ Vg.applyMatrix4(new e.Matrix4().makeScale(-1, 1, 1));
20452
+ var Hg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\nvoid main() {\n vec4 transformed = vec4(position, 1.0);\n #if defined(USE_PANO_VIDEO)\n worldPosition = (modelMatrix * transformed).xyz;\n #endif\n gl_Position = projectionMatrix * modelViewMatrix * transformed;\n}\n", Ug = "\n#define FLIP_CUBE_MAP -1.0\n\nuniform vec2 size;\nuniform mat4 matrix;\nuniform mat4 panoMatrix;\nuniform mat4 fixMatrix;\nuniform float alpha;\nuniform sampler2D map;\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n\n#include <common>\nvoid main() {\n gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\n #if defined(USE_PANO_VIDEO)\n\n vec3 cameraToVertex = normalize(worldPosition - cameraPosition);\n cameraToVertex = cameraToVertex * mat3(panoMatrix);\n cameraToVertex = vec3(FLIP_CUBE_MAP * cameraToVertex.x, cameraToVertex.yz);\n\n vec4 mapCoods = vec4(cameraToVertex, 1.0) * (fixMatrix * matrix);\n vec2 uv = vec2(\n 0.5 + mapCoods.x / mapCoods.z / size.x,\n 0.5 - mapCoods.y / mapCoods.z / size.y\n );\n vec4 videoColor = texture2D(map, uv);\n float match = (1.0 - step(0.0, mapCoods.z)) * (1.0 - step(0.5, abs(uv.x - 0.5))) * (1.0 - step(0.5, abs(uv.y - 0.5)));\n float blendAlpha = clamp(0.0, 1.0, 5.0 * (1.0 - clamp(distance(uv, vec2(0.5, 0.5)) / 0.55 , 0.0, 1.0)));\n gl_FragColor = vec4(videoColor.rgb, match * blendAlpha * alpha);\n\n #endif\n}\n", Wg = class {
20448
20453
  constructor() {
20449
20454
  this.material = new e.ShaderMaterial({
20450
- vertexShader: Vg,
20451
- fragmentShader: Hg,
20455
+ vertexShader: Hg,
20456
+ fragmentShader: Ug,
20452
20457
  uniforms: {
20453
20458
  size: new e.Uniform(new e.Vector2()),
20454
20459
  matrix: new e.Uniform(new e.Matrix4()),
20455
- fixMatrix: new e.Uniform(zg),
20460
+ fixMatrix: new e.Uniform(Bg),
20456
20461
  panoMatrix: new e.Uniform(new e.Matrix4()),
20457
20462
  alpha: new e.Uniform(1),
20458
20463
  map: new e.Uniform(null)
@@ -20465,7 +20470,7 @@ var Vg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n
20465
20470
  blendDst: e.OneMinusSrcAlphaFactor,
20466
20471
  blendSrcAlpha: e.OneFactor,
20467
20472
  blendDstAlpha: e.OneMinusSrcAlphaFactor
20468
- }), this.object = new e.Mesh(Bg, this.material), this.object.visible = !1, this.object.renderOrder = -1, this.object.frustumCulled = !1, this.object.name = "pano-video", this.alphaMotion = new X({ alpha: 0 });
20473
+ }), this.object = new e.Mesh(Vg, this.material), this.object.visible = !1, this.object.renderOrder = -1, this.object.frustumCulled = !1, this.object.name = "pano-video", this.alphaMotion = new X({ alpha: 0 });
20469
20474
  }
20470
20475
  setMaterial(e) {
20471
20476
  e ? (this.material.uniforms.size.value.copy(e.size), this.material.uniforms.matrix.value.copy(e.matrix), this.material.uniforms.panoMatrix.value.copy(e.panoMatrix), this.material.uniforms.map.value = e.map, this.alphaMotion.set({ alpha: e.alpha }, 500).catch(K)) : (this.material.uniforms.size.value.setScalar(0), this.material.uniforms.matrix.value.identity(), this.material.uniforms.panoMatrix.value.identity(), this.material.uniforms.map.value = null, this.material.uniforms.alpha.value = 0, this.alphaMotion.set({ alpha: 0 }, 0).catch(K));
@@ -20478,24 +20483,24 @@ var Vg = "\n\n#if defined(USE_PANO_VIDEO)\nvarying vec3 worldPosition;\n#endif\n
20478
20483
  dispose() {
20479
20484
  this.material.dispose();
20480
20485
  }
20481
- }, Wg = new e.Color(0, 0, 0), Gg = new e.Color(), Kg = new e.ShaderMaterial({
20486
+ }, Gg = new e.Color(0, 0, 0), Kg = new e.Color(), qg = new e.ShaderMaterial({
20482
20487
  vertexShader: "\n#include <common>\n#include <uv_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\n\nvarying vec4 vFinalPosition;\n\nvoid main() {\n\n #include <uv_vertex>\n\n #include <skinbase_vertex>\n\n #ifdef USE_DISPLACEMENTMAP\n\n #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinnormal_vertex>\n\n #endif\n\n #include <begin_vertex>\n #include <morphtarget_vertex>\n #include <skinning_vertex>\n\n #include <project_vertex>\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n\n vFinalPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n vFinalPosition = instanceMatrix * vFinalPosition;\n #endif\n vFinalPosition = modelMatrix * vFinalPosition;\n\n}\n",
20483
20488
  fragmentShader: "\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\n\nuniform float maxDepth;\nvarying vec4 vFinalPosition;\n\nvoid main() {\n\n #include <clipping_planes_fragment>\n\n vec4 diffuseColor = vec4( 1.0 );\n\n #include <map_fragment>\n #include <alphamap_fragment>\n #include <alphatest_fragment>\n\n #include <logdepthbuf_fragment>\n\n vec3 cameraVertex = vFinalPosition.xyz - cameraPosition;\n float cameraDepth = length(cameraVertex);\n gl_FragColor = packDepthToRGBA(clamp(cameraDepth / maxDepth, 0.0, 1.0));\n}\n",
20484
20489
  uniforms: { maxDepth: new e.Uniform(0) }
20485
20490
  });
20486
- function qg(e, t, n, r = 1e3) {
20487
- Kg.uniforms.maxDepth.value = r, Gg.copy(e.getClearColor());
20491
+ function Jg(e, t, n, r = 1e3) {
20492
+ qg.uniforms.maxDepth.value = r, Kg.copy(e.getClearColor());
20488
20493
  let i = e.getClearAlpha(), a = t.overrideMaterial;
20489
- t.overrideMaterial = Kg, e.setClearColor(Wg, 0), n.update(e, t), e.setClearColor(Gg, i), t.overrideMaterial = a;
20494
+ t.overrideMaterial = qg, e.setClearColor(Gg, 0), n.update(e, t), e.setClearColor(Kg, i), t.overrideMaterial = a;
20490
20495
  }
20491
20496
  //#endregion
20492
20497
  //#region build/five/controllers/panorama.js
20493
- var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20498
+ var Yg = Wu, Xg = new e.Raycaster(), Zg = new e.Vector3(), Qg = [
20494
20499
  new e.Vector3(0, 0, 0).multiplyScalar(.1),
20495
20500
  new e.Vector3(1, 0, 0).multiplyScalar(.1),
20496
20501
  new e.Vector3(-.5, 0, -Math.sqrt(3) / 2).multiplyScalar(.1),
20497
20502
  new e.Vector3(-.5, 0, Math.sqrt(3) / 2).multiplyScalar(.1)
20498
- ], Qg = Object.assign(Object.assign({}, tg), {
20503
+ ], $g = Object.assign(Object.assign({}, ng), {
20499
20504
  maxAccessibleDistance: 5,
20500
20505
  panoTapTriggerRadius: .5,
20501
20506
  panoCircleMeshCreator: (e, t) => e.position.distanceTo(e.standingPosition) > t.aerialObserverMinHeight ? new dh() : new oh(),
@@ -20508,20 +20513,20 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20508
20513
  tileAppearDuration: .5,
20509
20514
  tileMaxRequest: 3,
20510
20515
  flyEffectUseDepthBuffer: !1
20511
- }), $g = class t extends ng {
20516
+ }), e_ = class t extends rg {
20512
20517
  static parseArgs(e) {
20513
20518
  var n, r, i, a, o, s, c, l;
20514
20519
  if (e instanceof t) return e;
20515
20520
  let u = super.parseArgs(e);
20516
20521
  return Object.assign(Object.assign({}, u), {
20517
- maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ? Qg.maxAccessibleDistance : n,
20518
- panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ? Qg.panoTapTriggerRadius : r,
20519
- panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ? Qg.panoCircleMeshCreator : i,
20520
- adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ? Qg.adjustPanoCircleMeshPositionBasedOnModel : a,
20521
- tileLevelForFov: (o = e.tileLevelForFov) == null ? Qg.tileLevelForFov : o,
20522
- tileAppearDuration: (s = e.tileAppearDuration) == null ? Qg.tileAppearDuration : s,
20523
- tileMaxRequest: (c = e.tileMaxRequest) == null ? Qg.tileMaxRequest : c,
20524
- flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ? Qg.flyEffectUseDepthBuffer : l
20522
+ maxAccessibleDistance: (n = e.maxAccessibleDistance) == null ? $g.maxAccessibleDistance : n,
20523
+ panoTapTriggerRadius: (r = e.panoTapTriggerRadius) == null ? $g.panoTapTriggerRadius : r,
20524
+ panoCircleMeshCreator: (i = e.panoCircleMeshCreator) == null ? $g.panoCircleMeshCreator : i,
20525
+ adjustPanoCircleMeshPositionBasedOnModel: (a = e.adjustPanoCircleMeshPositionBasedOnModel) == null ? $g.adjustPanoCircleMeshPositionBasedOnModel : a,
20526
+ tileLevelForFov: (o = e.tileLevelForFov) == null ? $g.tileLevelForFov : o,
20527
+ tileAppearDuration: (s = e.tileAppearDuration) == null ? $g.tileAppearDuration : s,
20528
+ tileMaxRequest: (c = e.tileMaxRequest) == null ? $g.tileMaxRequest : c,
20529
+ flyEffectUseDepthBuffer: (l = e.flyEffectUseDepthBuffer) == null ? $g.flyEffectUseDepthBuffer : l
20525
20530
  });
20526
20531
  }
20527
20532
  static initAnimationEndState(e) {
@@ -20542,9 +20547,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20542
20547
  panoPicture: this.modelScene.parameter.resolveValue("pano1"),
20543
20548
  position: this.camera.pose.offset.clone(),
20544
20549
  effect: "fly",
20545
- effectEasing: Jg,
20550
+ effectEasing: Yg,
20546
20551
  fixCameraTransform: new e.Matrix4()
20547
- }, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new hi(), this.tiling = new Rg({ fiveId: this.fiveId }), this.panoVideo = new Ug(), this.scene.add(this.panoVideo.object), this.accessibleObserverFloorCheckCount = 0;
20552
+ }, this.panoPictureObserverMap = /* @__PURE__ */ new WeakMap(), this.textureLoader = new hi(), this.tiling = new zg({ fiveId: this.fiveId }), this.panoVideo = new Wg(), this.scene.add(this.panoVideo.object), this.accessibleObserverFloorCheckCount = 0;
20548
20553
  }
20549
20554
  get tileLevel() {
20550
20555
  return this.tiling.level;
@@ -20681,9 +20686,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20681
20686
  let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
20682
20687
  panoIndex: n.panoIndex,
20683
20688
  workCode: n.work.workCode
20684
- }), s = Zg.map((n) => {
20685
- Yg.ray.origin.copy(a), Yg.ray.origin.add(Xg.copy(n).setY(t)), Yg.ray.direction.set(0, -1, 0), Yg.firstHitOnly = !0, Yg.floorIndex = -1;
20686
- let [o] = r.intersectRaycaster(Yg);
20689
+ }), s = Qg.map((n) => {
20690
+ Xg.ray.origin.copy(a), Xg.ray.origin.add(Zg.copy(n).setY(t)), Xg.ray.direction.set(0, -1, 0), Xg.firstHitOnly = !0, Xg.floorIndex = -1;
20691
+ let [o] = r.intersectRaycaster(Xg);
20687
20692
  return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
20688
20693
  });
20689
20694
  s.sort((e, t) => t.y - e.y);
@@ -20730,7 +20735,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20730
20735
  else {
20731
20736
  t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
20732
20737
  let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
20733
- e && (Xg.set(e.x, e.y, e.z), Xg.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
20738
+ e && (Zg.set(e.x, e.y, e.z), Zg.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
20734
20739
  }
20735
20740
  let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
20736
20741
  if (n === Z(this.currentPano)) {
@@ -20833,9 +20838,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20833
20838
  generateMipmaps: !1
20834
20839
  });
20835
20840
  let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
20836
- t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, t, 500);
20841
+ t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
20837
20842
  let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
20838
- i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
20843
+ i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
20839
20844
  pano0Depth: {
20840
20845
  panoId: n.panoId,
20841
20846
  map: this.pano0DepthCubeRenderTarget.texture,
@@ -20926,7 +20931,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20926
20931
  let r = {
20927
20932
  panoId: c,
20928
20933
  effect: s,
20929
- effectEasing: (o = n.effectEasing) == null ? Jg : o,
20934
+ effectEasing: (o = n.effectEasing) == null ? Yg : o,
20930
20935
  panoPicture: {
20931
20936
  panoId: y.panoId,
20932
20937
  map: y.map,
@@ -20938,7 +20943,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20938
20943
  position: l.position.clone().applyMatrix4(l.work.transform),
20939
20944
  fixCameraTransform: new e.Matrix4()
20940
20945
  };
20941
- r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(_)).catch((e) => Jh(e)).then((e) => {
20946
+ r.panoPicture && this.panoPictureObserverMap.set(r.panoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(_)).catch((e) => Yh(e)).then((e) => {
20942
20947
  var i, a;
20943
20948
  if (!(e instanceof Error)) this.pending.delete(g), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0), this.doMoveToPano(t, r, n);
20944
20949
  else {
@@ -20983,11 +20988,11 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
20983
20988
  else {
20984
20989
  o.name = h;
20985
20990
  let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = l.images.histogram;
20986
- d || (d = new gm().formPixels(Hh(this.renderer, o, !0, fm).data), l.images.histogram = d);
20991
+ d || (d = new gm().formPixels(Uh(this.renderer, o, !0, fm).data), l.images.histogram = d);
20987
20992
  let f = {
20988
20993
  panoId: c,
20989
20994
  effect: s,
20990
- effectEasing: (a = n.effectEasing) == null ? Jg : a,
20995
+ effectEasing: (a = n.effectEasing) == null ? Yg : a,
20991
20996
  panoPicture: {
20992
20997
  panoId: c,
20993
20998
  map: o,
@@ -21052,14 +21057,14 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21052
21057
  pano: t
21053
21058
  })), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === h && ((r = this.panoMeshes.get(c)) == null || r.setProgress(e));
21054
21059
  }, this.renderer)).catch((e) => {
21055
- let n = Jh(e);
21060
+ let n = Yh(e);
21056
21061
  return this.emit("pano.texture.error", Q("pano.texture.error", {
21057
21062
  error: n,
21058
21063
  progress: 0,
21059
21064
  meta: null,
21060
21065
  pano: t
21061
21066
  })), n;
21062
- }), Promise.resolve().then(() => Dh(_)).catch((e) => Jh(e))]).then(([e, n]) => {
21067
+ }), Promise.resolve().then(() => Dh(_)).catch((e) => Yh(e))]).then(([e, n]) => {
21063
21068
  var r, i, a, o;
21064
21069
  if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(g), ((r = this.pendingPanoTask) == null ? void 0 : r.hash) === h ? (this.pendingPanoTask.onLoad(e), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
21065
21070
  error: null,
@@ -21283,7 +21288,7 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21283
21288
  panoMatrix: n.matrix.clone().premultiply(n.work.transform),
21284
21289
  alpha: 1
21285
21290
  }, t = $t(), r = this.videoTexture.image;
21286
- r.setAttribute("uuid", t), r.oncanplay = K, r.ontimeupdate = K, ag().then((i) => {
21291
+ r.setAttribute("uuid", t), r.oncanplay = K, r.ontimeupdate = K, og().then((i) => {
21287
21292
  i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
21288
21293
  r.oncanplay = K, r.play();
21289
21294
  }, r.ontimeupdate = () => {
@@ -21334,9 +21339,9 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21334
21339
  return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
21335
21340
  }), u = /* @__PURE__ */ new Map(), d = l.slice().sort((e, t) => {
21336
21341
  let n = c[e], r = u.get(n);
21337
- r === void 0 && (r = Xg.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
21342
+ r === void 0 && (r = Zg.copy(n.standingPosition).applyMatrix4(n.work.transform).distanceTo(a), u.set(n, r));
21338
21343
  let i = c[t], o = u.get(i);
21339
- return o === void 0 && (o = Xg.copy(i.standingPosition).applyMatrix4(i.work.transform).distanceTo(a), u.set(i, o)), r - o;
21344
+ return o === void 0 && (o = Zg.copy(i.standingPosition).applyMatrix4(i.work.transform).distanceTo(a), u.set(i, o)), r - o;
21340
21345
  });
21341
21346
  u.clear();
21342
21347
  for (let e of [
@@ -21347,13 +21352,13 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21347
21352
  ]) for (let t of d) {
21348
21353
  let n = c[t];
21349
21354
  if (n) {
21350
- let t = Xg.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
21355
+ let t = Zg.copy(n.standingPosition).applyMatrix4(n.work.transform).sub(a);
21351
21356
  if (t && t.length() !== 0 && s.angleTo(t) < e) return n;
21352
21357
  }
21353
21358
  }
21354
21359
  let f = null;
21355
21360
  if (n) {
21356
- let e = n.ray.intersectBox(this.modelScene.boundingBox, Xg);
21361
+ let e = n.ray.intersectBox(this.modelScene.boundingBox, Zg);
21357
21362
  e && (e.project(t), Math.abs(e.z) <= 1 && (f = e.clone()));
21358
21363
  } else f = new e.Vector3(0, 0, 0);
21359
21364
  if (f) {
@@ -21365,15 +21370,15 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21365
21370
  return Math.abs(i.z) > 1 || Math.abs(i.x) > 1 || Math.abs(i.y) > 1 ? !1 : n.loadable || n.active;
21366
21371
  }), n = /* @__PURE__ */ new Map(), i = e.slice().sort((e, r) => {
21367
21372
  let i = c[e], a = n.get(i);
21368
- a === void 0 && (a = Xg.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
21373
+ a === void 0 && (a = Zg.copy(i.position).applyMatrix4(i.work.transform).distanceTo(t.position), n.set(i, a));
21369
21374
  let o = c[r], s = n.get(o);
21370
- return s === void 0 && (s = Xg.copy(o.position).applyMatrix4(o.work.transform).distanceTo(t.position), n.set(o, s)), a - s;
21375
+ return s === void 0 && (s = Zg.copy(o.position).applyMatrix4(o.work.transform).distanceTo(t.position), n.set(o, s)), a - s;
21371
21376
  });
21372
21377
  n.clear();
21373
21378
  for (let e of i) {
21374
21379
  let n = c[e];
21375
21380
  if (n) {
21376
- let e = Xg.copy(n.position).applyMatrix4(n.work.transform);
21381
+ let e = Zg.copy(n.position).applyMatrix4(n.work.transform);
21377
21382
  if (e.project(t), Math.abs(e.z) > 1) continue;
21378
21383
  if (Math.pow(f.x - e.x, 2) + Math.pow(f.y - e.y, 2) < Math.pow(.4, 2)) return n;
21379
21384
  }
@@ -21391,12 +21396,12 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21391
21396
  let s = o.work.observers, c = o.accessibleNodes.filter((e) => {
21392
21397
  if (e === this.currentPano.panoIndex && o.work.workCode === this.currentPano.workCode) return !1;
21393
21398
  let t = s[e];
21394
- return !t || Xg.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
21399
+ return !t || Zg.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
21395
21400
  }), [l] = this.modelScene.intersectRaycaster(r);
21396
21401
  if (l) {
21397
21402
  let [e, t] = Rl(c, (e) => {
21398
21403
  let t = s[e];
21399
- return t ? Xg.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
21404
+ return t ? Zg.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(l.point) : Infinity;
21400
21405
  }, !0);
21401
21406
  typeof e == "number" && t < this.panoTapTriggerRadius && (a = (n = s[e]) == null ? null : n);
21402
21407
  }
@@ -21456,21 +21461,21 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21456
21461
  }
21457
21462
  }
21458
21463
  }
21459
- }, e_ = Math.PI / 180, t_ = 180 / Math.PI, n_ = .001, r_ = 1, i_ = (() => {
21464
+ }, t_ = Math.PI / 180, n_ = 180 / Math.PI, r_ = .001, i_ = 1, a_ = (() => {
21460
21465
  let e = typeof navigator < "u" && /iPad|iPhone|iPod/.test(navigator.platform);
21461
21466
  return () => e;
21462
- })(), a_ = (() => {
21467
+ })(), o_ = (() => {
21463
21468
  let e = typeof navigator < "u" && /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
21464
21469
  return () => e;
21465
- })(), o_ = (() => {
21470
+ })(), s_ = (() => {
21466
21471
  let e = typeof navigator < "u" && navigator.userAgent.indexOf("Firefox") !== -1 && navigator.userAgent.indexOf("Android") !== -1;
21467
21472
  return () => e;
21468
- })(), s_ = (() => {
21473
+ })(), c_ = (() => {
21469
21474
  let e = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9]+)/) : null, t = e ? parseInt(e[1], 10) : null;
21470
21475
  return () => t;
21471
- })(), c_ = (() => {
21476
+ })(), l_ = (() => {
21472
21477
  let e = !1;
21473
- if (s_() === 65) {
21478
+ if (c_() === 65) {
21474
21479
  let t = typeof navigator < "u" ? navigator.userAgent.match(/.*Chrome\/([0-9\.]*)/) : null;
21475
21480
  if (t) {
21476
21481
  let [n, r, i, a] = t[1].split(".");
@@ -21478,41 +21483,41 @@ var Jg = Wu, Yg = new e.Raycaster(), Xg = new e.Vector3(), Zg = [
21478
21483
  }
21479
21484
  }
21480
21485
  return () => e;
21481
- })(), l_ = (() => {
21482
- let e = i_() && a_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
21483
- return () => e;
21484
21486
  })(), u_ = (() => {
21487
+ let e = a_() && o_() && typeof navigator < "u" && navigator.userAgent.indexOf("13_4") !== -1;
21488
+ return () => e;
21489
+ })(), d_ = (() => {
21485
21490
  let e = typeof navigator < "u" && navigator.userAgent.indexOf("R7 Build") !== -1;
21486
21491
  return () => e;
21487
21492
  })();
21488
- function d_() {
21493
+ function f_() {
21489
21494
  let e = typeof window < "u" && (window.orientation == 90 || window.orientation == -90);
21490
- return u_() ? !e : e;
21491
- }
21492
- function f_(e) {
21493
- return !(isNaN(e) || e <= n_ || e > r_);
21495
+ return d_() ? !e : e;
21494
21496
  }
21495
21497
  function p_(e) {
21498
+ return !(isNaN(e) || e <= r_ || e > i_);
21499
+ }
21500
+ function m_(e) {
21496
21501
  return e.w > 1 ? 0 : 2 * Math.acos(e.w);
21497
21502
  }
21498
- var m_ = (() => {
21503
+ var h_ = (() => {
21499
21504
  let e = {};
21500
21505
  return (t, n) => {
21501
21506
  e[t] === void 0 && (console.warn("cardboard: " + n), e[t] = !0);
21502
21507
  };
21503
21508
  })();
21504
- function h_(e) {
21509
+ function g_(e) {
21505
21510
  let t, n = e.indexOf("://");
21506
21511
  t = n === -1 ? 0 : n + 3;
21507
21512
  let r = e.indexOf("/", t);
21508
21513
  return r === -1 && (r = e.length), e.substring(0, r);
21509
21514
  }
21510
- function g_() {
21515
+ function __() {
21511
21516
  if (typeof window > "u" || typeof document > "u") return !1;
21512
- let e = window.self !== window.top, t = h_(document.referrer), n = h_(window.location.href);
21517
+ let e = window.self !== window.top, t = g_(document.referrer), n = g_(window.location.href);
21513
21518
  return e && t !== n;
21514
21519
  }
21515
- var __ = (() => {
21520
+ var v_ = (() => {
21516
21521
  function e(e, t, n) {
21517
21522
  let r = t ? t[0] : 0, i = t ? t[1] : 0, a = t ? t[2] : 0, o = t ? t[3] : 1, s = r + r, c = i + i, l = a + a, u = r * s, d = r * c, f = r * l, p = i * c, m = i * l, h = a * l, g = o * s, _ = o * c, v = o * l;
21518
21523
  return e[0] = 1 - (p + h), e[1] = d + v, e[2] = f - _, e[3] = 0, e[4] = d - v, e[5] = 1 - (u + h), e[6] = m + g, e[7] = 0, e[8] = f + _, e[9] = m - g, e[10] = 1 - (u + p), e[11] = 0, e[12] = n ? n[0] : 0, e[13] = n ? n[1] : 0, e[14] = n ? n[2] : 0, e[15] = 1, e;
@@ -21528,7 +21533,7 @@ var __ = (() => {
21528
21533
  return (r, i, a) => {
21529
21534
  e(r, i), a && t(r, r, a), n(r, r);
21530
21535
  };
21531
- })(), v_ = class {
21536
+ })(), y_ = class {
21532
21537
  constructor(t = new e.Vector3(), n = 0) {
21533
21538
  this.sample = t, this.timestampS = n;
21534
21539
  }
@@ -21538,15 +21543,15 @@ var __ = (() => {
21538
21543
  copy(e) {
21539
21544
  this.set(e.sample, e.timestampS);
21540
21545
  }
21541
- }, y_ = class {
21546
+ }, b_ = class {
21542
21547
  constructor(t, n) {
21543
- this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new v_(), this.currentGyroMeasurement = new v_(), this.previousGyroMeasurement = new v_(), i_() ? this.filterQ = new e.Quaternion(-1, 0, 0, 1) : this.filterQ = new e.Quaternion(1, 0, 0, 1), this.previousFilterQ = new e.Quaternion(), this.previousFilterQ.copy(this.filterQ), this.accelQ = new e.Quaternion(), this.isOrientationInitialized = !1, this.estimatedGravity = new e.Vector3(), this.measuredGravity = new e.Vector3(), this.gyroIntegralQ = new e.Quaternion();
21548
+ this.kFilter = t, this.isDebug = n, this.currentAccelMeasurement = new y_(), this.currentGyroMeasurement = new y_(), this.previousGyroMeasurement = new y_(), a_() ? this.filterQ = new e.Quaternion(-1, 0, 0, 1) : this.filterQ = new e.Quaternion(1, 0, 0, 1), this.previousFilterQ = new e.Quaternion(), this.previousFilterQ.copy(this.filterQ), this.accelQ = new e.Quaternion(), this.isOrientationInitialized = !1, this.estimatedGravity = new e.Vector3(), this.measuredGravity = new e.Vector3(), this.gyroIntegralQ = new e.Quaternion();
21544
21549
  }
21545
21550
  addAccelMeasurement(e, t) {
21546
21551
  this.currentAccelMeasurement.set(e, t);
21547
21552
  }
21548
21553
  addGyroMeasurement(e, t) {
21549
- this.currentGyroMeasurement.set(e, t), f_(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
21554
+ this.currentGyroMeasurement.set(e, t), p_(t - this.previousGyroMeasurement.timestampS) && this.run_(), this.previousGyroMeasurement.copy(this.currentGyroMeasurement);
21550
21555
  }
21551
21556
  getOrientation() {
21552
21557
  return this.filterQ;
@@ -21561,7 +21566,7 @@ var __ = (() => {
21561
21566
  let r = new e.Quaternion();
21562
21567
  r.copy(this.filterQ), r.inverse(), this.estimatedGravity.set(0, 0, -1), this.estimatedGravity.applyQuaternion(r), this.estimatedGravity.normalize(), this.measuredGravity.copy(this.currentAccelMeasurement.sample), this.measuredGravity.normalize();
21563
21568
  let i = new e.Quaternion();
21564
- i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.inverse(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)", t_ * p_(i), this.estimatedGravity.x.toFixed(1), this.estimatedGravity.y.toFixed(1), this.estimatedGravity.z.toFixed(1), this.measuredGravity.x.toFixed(1), this.measuredGravity.y.toFixed(1), this.measuredGravity.z.toFixed(1));
21569
+ i.setFromUnitVectors(this.estimatedGravity, this.measuredGravity), i.inverse(), this.isDebug && console.log("Delta: %d deg, G_est: (%s, %s, %s), G_meas: (%s, %s, %s)", n_ * m_(i), this.estimatedGravity.x.toFixed(1), this.estimatedGravity.y.toFixed(1), this.estimatedGravity.z.toFixed(1), this.measuredGravity.x.toFixed(1), this.measuredGravity.y.toFixed(1), this.measuredGravity.z.toFixed(1));
21565
21570
  let a = new e.Quaternion();
21566
21571
  a.copy(this.filterQ), a.multiply(i), this.filterQ.slerp(a, 1 - this.kFilter), this.previousFilterQ.copy(this.filterQ);
21567
21572
  }
@@ -21575,7 +21580,7 @@ var __ = (() => {
21575
21580
  let r = new e.Quaternion(), i = new e.Vector3();
21576
21581
  return i.copy(t), i.normalize(), r.setFromAxisAngle(i, t.length() * n), r;
21577
21582
  }
21578
- }, b_ = class {
21583
+ }, x_ = class {
21579
21584
  constructor(t, n) {
21580
21585
  this.predictionTimeS = t, this.isDebug = n, this.previousQ = new e.Quaternion(), this.previousTimestampS = null, this.deltaQ = new e.Quaternion(), this.outQ = new e.Quaternion();
21581
21586
  }
@@ -21584,11 +21589,11 @@ var __ = (() => {
21584
21589
  let i = new e.Vector3();
21585
21590
  i.copy(n), i.normalize();
21586
21591
  let a = n.length();
21587
- if (a < e_ * 20) return this.isDebug && console.log("Moving slowly, at %s deg/s: no prediction", (t_ * a).toFixed(1)), this.outQ.copy(t), this.previousQ.copy(t), this.outQ;
21592
+ if (a < t_ * 20) return this.isDebug && console.log("Moving slowly, at %s deg/s: no prediction", (n_ * a).toFixed(1)), this.outQ.copy(t), this.previousQ.copy(t), this.outQ;
21588
21593
  let o = a * this.predictionTimeS;
21589
21594
  return this.deltaQ.setFromAxisAngle(i, o), this.outQ.copy(this.previousQ), this.outQ.multiply(this.deltaQ), this.previousQ.copy(t), this.previousTimestampS = r, this.outQ;
21590
21595
  }
21591
- }, x_ = class {
21596
+ }, S_ = class {
21592
21597
  constructor(e) {
21593
21598
  this.coefficients = e;
21594
21599
  }
@@ -21605,15 +21610,15 @@ var __ = (() => {
21605
21610
  for (let e = 0; e < this.coefficients.length; e++) n = t * (n + this.coefficients[e]);
21606
21611
  return (n + 1) * e;
21607
21612
  }
21608
- }, S_ = class {
21613
+ }, C_ = class {
21609
21614
  constructor() {
21610
21615
  this.angularAcceleration = null, this.angularVelocity = null, this.linearAcceleration = null, this.linearVelocity = null, this.orientation = null, this.position = null;
21611
21616
  }
21612
- }, C_ = class {
21617
+ }, w_ = class {
21613
21618
  constructor() {
21614
21619
  this.leftDegrees = 0, this.rightDegrees = 0, this.upDegrees = 0, this.downDegrees = 0;
21615
21620
  }
21616
- }, w_ = class {
21621
+ }, T_ = class {
21617
21622
  constructor(t, n, r, i) {
21618
21623
  this.viewer = {
21619
21624
  id: "CardboardV1",
@@ -21641,11 +21646,11 @@ var __ = (() => {
21641
21646
  widthMeters: .11,
21642
21647
  heightMeters: .062,
21643
21648
  bevelMeters: .004
21644
- }, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new y_(t, i), this.posePredictor = new b_(n, i), this.isFirefoxAndroid = o_(), this.isIOS = i_();
21645
- let a = s_();
21646
- this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion = c_() || l_(), this.filterToWorldQ = new e.Quaternion(), i_() ? this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), Math.PI / 2) : this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), -Math.PI / 2), this.inverseWorldToScreenQ = new e.Quaternion(), this.worldToScreenQ = new e.Quaternion(), this.originalPoseAdjustQ = new e.Quaternion();
21649
+ }, this.depthNear = .01, this.depthFar = 1e4, this.yawOnly = r, this.accelerometer = new e.Vector3(), this.gyroscope = new e.Vector3(), this.filter = new b_(t, i), this.posePredictor = new x_(n, i), this.isFirefoxAndroid = s_(), this.isIOS = a_();
21650
+ let a = c_();
21651
+ this.isDeviceMotionInRadians = !this.isIOS && a !== null && a < 66, this.isWithoutDeviceMotion = l_() || u_(), this.filterToWorldQ = new e.Quaternion(), a_() ? this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), Math.PI / 2) : this.filterToWorldQ.setFromAxisAngle(new e.Vector3(1, 0, 0), -Math.PI / 2), this.inverseWorldToScreenQ = new e.Quaternion(), this.worldToScreenQ = new e.Quaternion(), this.originalPoseAdjustQ = new e.Quaternion();
21647
21652
  let o = typeof window < "u" ? -window.orientation * Math.PI / 180 : 0;
21648
- this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(), d_() && this.filterToWorldQ.multiply(this.inverseWorldToScreenQ), this.resetQ = new e.Quaternion(), this.orientationOut_ = new Float32Array(4), this.previousTimestampS = Date.now();
21653
+ this.originalPoseAdjustQ.setFromAxisAngle(new e.Vector3(0, 0, 1), o), this.setScreenTransform_(), f_() && this.filterToWorldQ.multiply(this.inverseWorldToScreenQ), this.resetQ = new e.Quaternion(), this.orientationOut_ = new Float32Array(4), this.previousTimestampS = Date.now();
21649
21654
  }
21650
21655
  getPosition() {
21651
21656
  return null;
@@ -21670,20 +21675,20 @@ var __ = (() => {
21670
21675
  return n.copy(this.filterToWorldQ), n.multiply(this.resetQ), n.multiply(t), n.multiply(this.worldToScreenQ), this.yawOnly && (n.x = 0, n.z = 0, n.normalize()), this.orientationOut_[0] = n.x, this.orientationOut_[1] = n.y, this.orientationOut_[2] = n.z, this.orientationOut_[3] = n.w, this.orientationOut_;
21671
21676
  }
21672
21677
  getPose() {
21673
- let e = new S_();
21678
+ let e = new C_();
21674
21679
  return e.orientation = this.getOrientation(), e;
21675
21680
  }
21676
21681
  resetPose() {
21677
- this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(), d_() && this.resetQ.multiply(this.inverseWorldToScreenQ), this.resetQ.multiply(this.originalPoseAdjustQ);
21682
+ this.resetQ.copy(this.filter.getOrientation()), this.resetQ.x = 0, this.resetQ.y = 0, this.resetQ.z *= -1, this.resetQ.normalize(), f_() && this.resetQ.multiply(this.inverseWorldToScreenQ), this.resetQ.multiply(this.originalPoseAdjustQ);
21678
21683
  }
21679
21684
  getFrameData(e) {
21680
21685
  let t = this.getOrientation(), n = this.getEyeOffset(), r = this.getEyeProjectionMatrix();
21681
- return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right), __(e.leftViewMatrix, t, n.left), __(e.rightViewMatrix, t, n.right), e;
21686
+ return e.pose.angularAcceleration = null, e.pose.angularVelocity = null, e.pose.linearAcceleration = null, e.pose.linearVelocity = null, e.pose.orientation = t, e.pose.position = null, e.timestamp = this.previousTimestampS, e.leftProjectionMatrix.set(r.left), e.rightProjectionMatrix.set(r.right), v_(e.leftViewMatrix, t, n.left), v_(e.rightViewMatrix, t, n.right), e;
21682
21687
  }
21683
21688
  start() {
21684
21689
  if (typeof window > "u") return () => {};
21685
21690
  let e = this.onDeviceMotion_.bind(this), t = this.onOrientationChange_.bind(this), n = this.onMessage_.bind(this), r = this.onDeviceOrientation_.bind(this);
21686
- return i_() && g_() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
21691
+ return a_() && __() && window.addEventListener("message", n), window.addEventListener("orientationchange", t), this.isWithoutDeviceMotion ? window.addEventListener("deviceorientation", r) : window.addEventListener("devicemotion", e), () => {
21687
21692
  window.removeEventListener("devicemotion", e), window.removeEventListener("deviceorientation", t), window.removeEventListener("orientationchange", t), window.removeEventListener("message", n);
21688
21693
  };
21689
21694
  }
@@ -21707,17 +21712,17 @@ var __ = (() => {
21707
21712
  right: []
21708
21713
  };
21709
21714
  {
21710
- let i = e.left.upDegrees * e_, a = e.left.downDegrees * e_, o = e.left.leftDegrees * e_, s = e.left.rightDegrees * e_, c = 2 / (o + s), l = 2 / (i + a);
21715
+ let i = e.left.upDegrees * t_, a = e.left.downDegrees * t_, o = e.left.leftDegrees * t_, s = e.left.rightDegrees * t_, c = 2 / (o + s), l = 2 / (i + a);
21711
21716
  r.left[0] = c, r.left[1] = 0, r.left[2] = 0, r.left[3] = 0, r.left[4] = 0, r.left[5] = l, r.left[6] = 0, r.left[7] = 0, r.left[8] = -((o - s) * c * .5), r.left[9] = (i - a) * l * .5, r.left[10] = n / (t - n), r.left[11] = -1, r.left[12] = 0, r.left[13] = 0, r.left[14] = n * t / (t - n), r.left[15] = 0;
21712
21717
  }
21713
21718
  {
21714
- let i = e.right.upDegrees * e_, a = e.right.downDegrees * e_, o = e.right.leftDegrees * e_, s = e.right.rightDegrees * e_, c = 2 / (o + s), l = 2 / (i + a);
21719
+ let i = e.right.upDegrees * t_, a = e.right.downDegrees * t_, o = e.right.leftDegrees * t_, s = e.right.rightDegrees * t_, c = 2 / (o + s), l = 2 / (i + a);
21715
21720
  r.right[0] = c, r.right[1] = 0, r.right[2] = 0, r.right[3] = 0, r.right[4] = 0, r.right[5] = l, r.right[6] = 0, r.right[7] = 0, r.right[8] = -((o - s) * c * .5), r.right[9] = (i - a) * l * .5, r.right[10] = n / (t - n), r.right[11] = -1, r.right[12] = 0, r.right[13] = 0, r.right[14] = n * t / (t - n), r.right[15] = 0;
21716
21721
  }
21717
21722
  return r;
21718
21723
  }
21719
21724
  getEyeFieldOfView() {
21720
- let e = this.viewer, t = this.device, n = new x_(e.distortionCoefficients), r = e.screenLensDistance, i = (t.widthMeters - e.interLensDistance) / 2, a = e.interLensDistance / 2, o = e.baselineLensDistance - t.bevelMeters, s = t.heightMeters - o, c = t_ * Math.atan(n.distort(i / r)), l = t_ * Math.atan(n.distort(a / r)), u = t_ * Math.atan(n.distort(o / r)), d = t_ * Math.atan(n.distort(s / r)), f = new C_(), p = new C_();
21725
+ let e = this.viewer, t = this.device, n = new S_(e.distortionCoefficients), r = e.screenLensDistance, i = (t.widthMeters - e.interLensDistance) / 2, a = e.interLensDistance / 2, o = e.baselineLensDistance - t.bevelMeters, s = t.heightMeters - o, c = n_ * Math.atan(n.distort(i / r)), l = n_ * Math.atan(n.distort(a / r)), u = n_ * Math.atan(n.distort(o / r)), d = n_ * Math.atan(n.distort(s / r)), f = new w_(), p = new w_();
21721
21726
  return f.leftDegrees = Math.min(c, e.fov), f.rightDegrees = Math.min(l, e.fov), f.downDegrees = Math.min(u, e.fov), f.upDegrees = Math.min(d, e.fov), p.leftDegrees = f.rightDegrees, p.rightDegrees = f.leftDegrees, p.upDegrees = f.upDegrees, p.downDegrees = f.downDegrees, {
21722
21727
  left: f,
21723
21728
  right: p
@@ -21734,13 +21739,13 @@ var __ = (() => {
21734
21739
  updateDeviceMotion_(e) {
21735
21740
  let t = e.accelerationIncludingGravity, n = e.rotationRate, r = e.timeStamp / 1e3, i = r - this.previousTimestampS;
21736
21741
  if (i < 0) {
21737
- m_("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
21742
+ h_("fusion-pose-sensor:invalid:non-monotonic", "Invalid timestamps detected: non-monotonic timestamp from devicemotion"), this.previousTimestampS = r;
21738
21743
  return;
21739
- } else if (i <= n_ || i > r_) {
21740
- m_("fusion-pose-sensor:invalid:outside-threshold", "Invalid timestamps detected: Timestamp from devicemotion outside expected range."), this.previousTimestampS = r;
21744
+ } else if (i <= r_ || i > i_) {
21745
+ h_("fusion-pose-sensor:invalid:outside-threshold", "Invalid timestamps detected: Timestamp from devicemotion outside expected range."), this.previousTimestampS = r;
21741
21746
  return;
21742
21747
  }
21743
- t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (u_() ? this.gyroscope.set(-n.beta, n.alpha, n.gamma) : this.gyroscope.set(n.alpha, n.beta, n.gamma), this.isDeviceMotionInRadians || this.gyroscope.multiplyScalar(Math.PI / 180), this.filter.addGyroMeasurement(this.gyroscope, r)), this.filter.addAccelMeasurement(this.accelerometer, r)), this.previousTimestampS = r;
21748
+ t && (this.accelerometer.set(-t.x, -t.y, -t.z), n && (d_() ? this.gyroscope.set(-n.beta, n.alpha, n.gamma) : this.gyroscope.set(n.alpha, n.beta, n.gamma), this.isDeviceMotionInRadians || this.gyroscope.multiplyScalar(Math.PI / 180), this.filter.addGyroMeasurement(this.gyroscope, r)), this.filter.addAccelMeasurement(this.accelerometer, r)), this.previousTimestampS = r;
21744
21749
  }
21745
21750
  onOrientationChange_() {
21746
21751
  this.setScreenTransform_();
@@ -21762,19 +21767,19 @@ var __ = (() => {
21762
21767
  }
21763
21768
  this.inverseWorldToScreenQ.copy(this.worldToScreenQ), this.inverseWorldToScreenQ.inverse();
21764
21769
  }
21765
- }, T_ = [
21770
+ }, E_ = [
21766
21771
  0,
21767
21772
  0,
21768
21773
  .5,
21769
21774
  1
21770
- ], E_ = [
21775
+ ], D_ = [
21771
21776
  .5,
21772
21777
  0,
21773
21778
  .5,
21774
21779
  1
21775
- ], D_ = class {
21780
+ ], O_ = class {
21776
21781
  constructor(t) {
21777
- this.renderer = t, this.sensor = new w_(.98, .04, !1, !1), this.scale = 1, this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera();
21782
+ this.renderer = t, this.sensor = new T_(.98, .04, !1, !1), this.scale = 1, this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera();
21778
21783
  let n = this.sensor.start();
21779
21784
  this.dispose = () => {
21780
21785
  let t = this.renderer.getSize(new e.Vector2());
@@ -21787,15 +21792,15 @@ var __ = (() => {
21787
21792
  var i = t.autoUpdate;
21788
21793
  i && (t.updateMatrixWorld(), t.autoUpdate = !1);
21789
21794
  let a = {
21790
- x: Math.round(r.width * T_[0]),
21791
- y: Math.round(r.height * T_[1]),
21792
- width: Math.round(r.width * T_[2]),
21793
- height: Math.round(r.height * T_[3])
21794
- }, o = {
21795
21795
  x: Math.round(r.width * E_[0]),
21796
21796
  y: Math.round(r.height * E_[1]),
21797
21797
  width: Math.round(r.width * E_[2]),
21798
21798
  height: Math.round(r.height * E_[3])
21799
+ }, o = {
21800
+ x: Math.round(r.width * D_[0]),
21801
+ y: Math.round(r.height * D_[1]),
21802
+ width: Math.round(r.width * D_[2]),
21803
+ height: Math.round(r.height * D_[3])
21799
21804
  };
21800
21805
  this.renderer.setScissorTest(!0), this.renderer.autoClear && this.renderer.clear(), n.parent === null && n.updateMatrixWorld(), n.matrixWorld.decompose(this.cameraL.position, this.cameraL.quaternion, this.cameraL.scale), n.matrixWorld.decompose(this.cameraR.position, this.cameraR.quaternion, this.cameraR.scale);
21801
21806
  let s = this.sensor.getEyeOffset();
@@ -21805,7 +21810,7 @@ var __ = (() => {
21805
21810
  } else this.renderer.render(t, n);
21806
21811
  }
21807
21812
  dispose() {}
21808
- }, O_ = "data:image/png;base64,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", k_ = "data:image/png;base64,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", A_, j_ = {
21813
+ }, k_ = "data:image/png;base64,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", A_ = "data:image/png;base64,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", j_, M_ = {
21809
21814
  zh: {
21810
21815
  TITLE: "眼镜模式",
21811
21816
  HIT: "请将手机横屏放入 VR 眼镜中"
@@ -21818,7 +21823,7 @@ var __ = (() => {
21818
21823
  TITLE: "メガネモード",
21819
21824
  HIT: "携帯電話をVRメガネに水平に入れてください。"
21820
21825
  }
21821
- }, M_ = typeof navigator < "u" ? (A_ = j_[navigator.language.split("-")[0]]) == null ? j_.zh : A_ : j_.zh, N_ = `
21826
+ }, N_ = typeof navigator < "u" ? (j_ = M_[navigator.language.split("-")[0]]) == null ? M_.zh : j_ : M_.zh, P_ = `
21822
21827
  <style>
21823
21828
  .$id {
21824
21829
  all: initial;
@@ -21901,7 +21906,7 @@ var __ = (() => {
21901
21906
  .$id-modal-content-guide-cardboard-image {
21902
21907
  width: 100px;
21903
21908
  height: 82px;
21904
- background-image: url(${O_});
21909
+ background-image: url(${k_});
21905
21910
  background-size: 100%;
21906
21911
  background-repeat: no-repeat;
21907
21912
  }
@@ -21943,7 +21948,7 @@ var __ = (() => {
21943
21948
  .$id-modal-content-guide-phone-image {
21944
21949
  width: 58px;
21945
21950
  height: 56px;
21946
- background-image: url(${k_});
21951
+ background-image: url(${A_});
21947
21952
  background-size: 100%;
21948
21953
  background-repeat: no-repeat;
21949
21954
  }
@@ -22020,8 +22025,8 @@ Z
22020
22025
  </div>
22021
22026
  </div>
22022
22027
  <div class="$id-modal-content">
22023
- <div class="$id-modal-content-title">${M_.TITLE}</div>
22024
- <div class="$id-modal-content-hit">${M_.HIT}</div>
22028
+ <div class="$id-modal-content-title">${N_.TITLE}</div>
22029
+ <div class="$id-modal-content-hit">${N_.HIT}</div>
22025
22030
  <div class="$id-modal-content-guide">
22026
22031
  <div class="$id-modal-content-guide-phone">
22027
22032
  <div class="$id-modal-content-guide-phone-move-x">
@@ -22080,7 +22085,7 @@ Z
22080
22085
  </div>
22081
22086
  </div>
22082
22087
  `;
22083
- function P_(e) {
22088
+ function F_(e) {
22084
22089
  let t = 1, n = document.getElementsByTagName("meta");
22085
22090
  for (let e = 0; e < n.length; e++) {
22086
22091
  let r = n[e];
@@ -22090,15 +22095,15 @@ function P_(e) {
22090
22095
  }
22091
22096
  }
22092
22097
  let r = (e) => Math.floor(e * t) + "px";
22093
- return N_.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
22098
+ return P_.replace(/\n/g, " ").replace(/\ +/g, " ").replace(/\$id/g, e).replace(/(\d+)px/g, (e, t) => r(Number(t)));
22094
22099
  }
22095
- function F_() {
22096
- let e = "five_vr_helper_" + $t(), t = P_(e), n = document.createElement("div");
22100
+ function I_() {
22101
+ let e = "five_vr_helper_" + $t(), t = F_(e), n = document.createElement("div");
22097
22102
  return n.className = e, n.innerHTML = t, n;
22098
22103
  }
22099
22104
  //#endregion
22100
22105
  //#region build/five/meshes/panoSphereMesh.js
22101
- var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", R_ = "\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#include <common>\n#include <logdepthbuf_pars_fragment>\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, PI2);\n float gradient = (1.0 - smoothstep(0.0, PI2, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n #include <logdepthbuf_fragment>\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n", z_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", B_ = "\nvarying vec2 vUv;\nuniform float opacity;\n#include <common>\n#include <logdepthbuf_pars_fragment>\n\nfloat smoothDist = 0.01;\nvoid main() {\n #include <logdepthbuf_fragment>\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n", V_ = class extends e.Object3D {
22106
+ var L_ = new e.CircleBufferGeometry(.12, 16), R_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", z_ = "\nuniform float circleScale;\nuniform float circleFade;\nuniform float circleOpacity;\nuniform float loadingAngle;\nuniform float loadingOpacity;\nuniform float opacity;\nuniform float disable;\nvarying vec2 vUv;\n\n#include <common>\n#include <logdepthbuf_pars_fragment>\n#define SMOOTH_DIST 0.017\n#define CENTER vec2(0.5, 0.5)\n\nfloat inside(float innerDist) {\n float dist = length(CENTER - vUv);\n return smoothstep(innerDist, innerDist + SMOOTH_DIST, dist);\n}\nfloat outside(float outerDist) {\n float dist = length(CENTER - vUv);\n return 1.0 - smoothstep(outerDist - SMOOTH_DIST, outerDist, dist);\n}\n\nvec4 create_circle() {\n float dist = length(CENTER - vUv);\n float gradient = clamp(0.98 + abs(dot(normalize(vec2(1.0, -1.0)), vUv - CENTER)) * 2.0, 0.0, 1.0);\n vec3 color = mix(vec3(0.576, 0.635, 1.0), vec3(1.0, 1.0, 1.0), circleFade * 0.5);\n return vec4(color, 1.0 * gradient * circleOpacity * outside(0.3 * circleScale));\n}\n\nvec4 create_disable() {\n float dist = length(CENTER - vUv);\n return vec4(1.0, 1.0, 1.0, 0.5 * outside(0.32 * circleScale));\n}\n\nvec4 create_loading() {\n float angle = PI - atan(CENTER.x - vUv.x, CENTER.y - vUv.y);\n angle = mod(angle + loadingAngle, PI2);\n float gradient = (1.0 - smoothstep(0.0, PI2, angle)) * 0.9 + 0.1;\n return vec4(1.0, 1.0, 1.0, gradient * loadingOpacity * inside(0.2 * circleScale) * outside(0.25 * circleScale));\n}\n\nvoid main() {\n #include <logdepthbuf_fragment>\n gl_FragColor = vec4(1.0, 1.0, 1.0, 0);\n\n vec4 circleColor = create_circle();\n gl_FragColor = mix(gl_FragColor, circleColor, circleColor.a);\n\n vec4 loadingColor = create_loading();\n gl_FragColor = mix(gl_FragColor, loadingColor, loadingColor.a);\n\n gl_FragColor = mix(gl_FragColor, create_disable(), disable);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity);\n}\n", B_ = "\nvarying vec2 vUv;\n#include <common>\n#include <logdepthbuf_pars_vertex>\nvoid main() {\n vUv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n #include <logdepthbuf_vertex>\n}\n", V_ = "\nvarying vec2 vUv;\nuniform float opacity;\n#include <common>\n#include <logdepthbuf_pars_fragment>\n\nfloat smoothDist = 0.01;\nvoid main() {\n #include <logdepthbuf_fragment>\n vec2 center = vec2(0.5, 0.5);\n float dist = length(center - vUv);\n float outerDist = 0.49;\n float innerDist = 0.29;\n\n float outside = 1.0 - smoothstep(outerDist - smoothDist, outerDist, dist);\n float inside = smoothstep(innerDist, innerDist + smoothDist, dist);\n\n vec4 bg = vec4(0.576, 0.635, 1.0, 0.3);\n float gradientAlpha = clamp(abs(dist - (outerDist + innerDist) / 2.0) / (outerDist - innerDist) * 1.5 + 0.1, 0.0, 1.0);\n vec4 gradient = vec4(1.0, 1.0, 1.0, gradientAlpha);\n\n gl_FragColor = mix(bg, gradient, gradient.a);\n\n gl_FragColor = vec4(gl_FragColor.rgb, gl_FragColor.a * opacity * outside * inside);\n}\n", H_ = class extends e.Object3D {
22102
22107
  constructor() {
22103
22108
  super(), this.progress = 0, this.opacity = 0, this.loading = !1, this.current = !1, this.disabled = !1, this.currentMotion = new X({
22104
22109
  ringScale: 1.1,
@@ -22116,16 +22121,16 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22116
22121
  depthWrite: !1,
22117
22122
  transparent: !0
22118
22123
  };
22119
- this.hitTestMesh = new e.Mesh(I_, new e.MeshBasicMaterial(Object.assign(Object.assign({}, t), {
22124
+ this.hitTestMesh = new e.Mesh(L_, new e.MeshBasicMaterial(Object.assign(Object.assign({}, t), {
22120
22125
  color: 0,
22121
22126
  opacity: 0
22122
- }))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(I_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
22123
- vertexShader: z_,
22124
- fragmentShader: B_,
22127
+ }))), this.hitTestMesh.scale.set(1.5, 1.5, 1.5), this.ringMesh = new e.Mesh(L_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
22128
+ vertexShader: B_,
22129
+ fragmentShader: V_,
22125
22130
  uniforms: { opacity: { value: 0 } }
22126
- }))), this.panoMesh = new e.Mesh(I_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
22127
- vertexShader: L_,
22128
- fragmentShader: R_,
22131
+ }))), this.panoMesh = new e.Mesh(L_, new e.ShaderMaterial(Object.assign(Object.assign({}, t), {
22132
+ vertexShader: R_,
22133
+ fragmentShader: z_,
22129
22134
  uniforms: {
22130
22135
  circleScale: { value: 1.1 },
22131
22136
  circleFade: { value: 0 },
@@ -22278,7 +22283,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22278
22283
  dispose() {
22279
22284
  this.hitTestMesh.material.dispose(), this.ringMesh.material.dispose(), this.panoMesh.material.dispose();
22280
22285
  }
22281
- }, H_ = 1500, U_ = Object.assign({}, hr(Qg, ["maxLatitude", "minLatitude"])), W_ = class t extends $g {
22286
+ }, U_ = 1500, W_ = Object.assign({}, hr($g, ["maxLatitude", "minLatitude"])), G_ = class t extends e_ {
22282
22287
  static parseArgs(e) {
22283
22288
  if (e instanceof t) return e;
22284
22289
  let n = Object.assign(Object.assign({}, e), {
@@ -22293,10 +22298,10 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22293
22298
  }
22294
22299
  constructor(e) {
22295
22300
  let n = t.parseArgs(e);
22296
- super(n), this.mode = "VRPanorama", this.cardboard = new D_(this.renderer);
22297
- let r = F_();
22301
+ super(n), this.mode = "VRPanorama", this.cardboard = new O_(this.renderer);
22302
+ let r = I_();
22298
22303
  this.helperElement = r;
22299
- let i = new Uh(r);
22304
+ let i = new Wh(r);
22300
22305
  this.element.parentNode && (this.element.parentNode.insertBefore(r, this.element), this.updateHelperElementSize(), i.on("tap", () => this.emit("vr.requestExit", Q("vr.requestExit", {})))), this.destroyHelper = () => {
22301
22306
  i.destroy(), r.parentNode && r.parentNode.removeChild(r), this.helperElement = void 0;
22302
22307
  };
@@ -22403,7 +22408,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22403
22408
  let n = T.get(t);
22404
22409
  n ? (e.position.copy(n.position).applyMatrix4(n.work.transform), T.delete(t)) : (this.helper.remove(e), e.dispose(), this.panoMeshes.delete(t));
22405
22410
  }), T.forEach((e, t) => {
22406
- let n = new V_();
22411
+ let n = new H_();
22407
22412
  n.position.copy(e.position).applyMatrix4(e.work.transform), e.position.distanceTo(e.standingPosition) > this.aerialObserverMinHeight ? n.scale.setScalar(15) : n.scale.setScalar(1), this.panoMeshes.set(t, n), this.helper.add(n), T.delete(t);
22408
22413
  }), this.camera.pose.distance > .1 || b ? this.panoMeshes.forEach((e, r) => {
22409
22414
  e.setOpacity(0), e.updateTime && e.updateTime(t, n), e.visible = !1;
@@ -22480,9 +22485,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22480
22485
  generateMipmaps: !1
22481
22486
  });
22482
22487
  let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
22483
- t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, t, 500);
22488
+ t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
22484
22489
  let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
22485
- i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
22490
+ i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
22486
22491
  pano0Depth: {
22487
22492
  panoId: n.panoId,
22488
22493
  map: this.pano0DepthCubeRenderTarget.texture,
@@ -22519,7 +22524,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22519
22524
  this.intersectMesh.visible = !1, this.activePanoMesh = void 0, this.activeTime = void 0;
22520
22525
  return;
22521
22526
  }
22522
- if (this.activePanoMesh && this.activeTime && t - this.activeTime > H_) {
22527
+ if (this.activePanoMesh && this.activeTime && t - this.activeTime > U_) {
22523
22528
  let e = this.activePanoMesh, t = null;
22524
22529
  return this.panoMeshes.forEach((n, r) => {
22525
22530
  n === e && (t = r);
@@ -22571,7 +22576,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22571
22576
  onPinchGesture() {}
22572
22577
  onMouseMove() {}
22573
22578
  onMouseOut() {}
22574
- }, G_ = new e.Vector3(0, 1.6, 0), K_ = new e.Box3(), q_ = new e.Vector3(), J_ = Object.assign({}, tg), Y_ = class t extends ng {
22579
+ }, K_ = new e.Vector3(0, 1.6, 0), q_ = new e.Box3(), J_ = new e.Vector3(), Y_ = Object.assign({}, ng), X_ = class t extends rg {
22575
22580
  static parseArgs(e) {
22576
22581
  return e instanceof t ? e : super.parseArgs(e);
22577
22582
  }
@@ -22679,9 +22684,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22679
22684
  let n = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), r = [];
22680
22685
  for (let e of this.works) {
22681
22686
  let t = this.modelScene.models.find((t) => t.work === e);
22682
- if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (K_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), K_.containsPoint(n))) for (let t of e.observers) r.push(t);
22687
+ if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(n))) for (let t of e.observers) r.push(t);
22683
22688
  }
22684
- let i = Rl(r, (e) => q_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
22689
+ let i = Rl(r, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n));
22685
22690
  this.currentPano = i ? {
22686
22691
  workCode: i.work.workCode,
22687
22692
  panoIndex: i.panoIndex
@@ -22774,9 +22779,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22774
22779
  }, g = [];
22775
22780
  for (let e of this.works) {
22776
22781
  let t = this.modelScene.models.find((t) => t.work === e);
22777
- if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (K_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), K_.containsPoint(c))) for (let t of e.observers) g.push(t);
22782
+ if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(c))) for (let t of e.observers) g.push(t);
22778
22783
  }
22779
- let _ = Rl(g, (e) => q_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
22784
+ let _ = Rl(g, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(c)), v = _ ? {
22780
22785
  workCode: _.work.workCode,
22781
22786
  panoIndex: _.panoIndex
22782
22787
  } : {
@@ -22845,16 +22850,16 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22845
22850
  }
22846
22851
  }
22847
22852
  if (r) {
22848
- let n = new e.Vector3().copy(r.point).add(G_), i = [];
22853
+ let n = new e.Vector3().copy(r.point).add(K_), i = [];
22849
22854
  for (let e of this.works) {
22850
22855
  let t = this.modelScene.models.find((t) => t.work === e);
22851
- if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (K_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), K_.containsPoint(n))) for (let t of e.observers) i.push(t);
22856
+ if (!(!t || t.visible === !1) && !(e.observers.length <= 0) && (q_.copy(e.observerBox).expandByScalar(10).applyMatrix4(e.transform), q_.containsPoint(n))) for (let t of e.observers) i.push(t);
22852
22857
  }
22853
- let [a, o] = Rl(i, (e) => q_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n), !0);
22854
- a && o < 5 && (n.y = q_.copy(a.position).applyMatrix4(a.work.transform).y), t.state.offset.copy(n), t.state.distance = 0, this.emit("gesture.tap", t), t.defaultPrevented || this.moveToPosition(n, {}, !0);
22858
+ let [a, o] = Rl(i, (e) => J_.copy(e.position).applyMatrix4(e.work.transform).distanceTo(n), !0);
22859
+ a && o < 5 && (n.y = J_.copy(a.position).applyMatrix4(a.work.transform).y), t.state.offset.copy(n), t.state.distance = 0, this.emit("gesture.tap", t), t.defaultPrevented || this.moveToPosition(n, {}, !0);
22855
22860
  } else this.emit("gesture.tap", t), t.defaultPrevented || this.cameraBounce();
22856
22861
  }
22857
- }, X_ = new e.Box3(), Z_ = new e.Vector3(), Q_ = .5, $_ = Math.PI / 7, ev = {
22862
+ }, Z_ = new e.Box3(), Q_ = new e.Vector3(), $_ = .5, ev = Math.PI / 7, tv = {
22858
22863
  defaultLongitude: Math.PI / 4,
22859
22864
  defaultLatitude: Math.PI / 4,
22860
22865
  defaultDistance: 150,
@@ -22862,21 +22867,21 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
22862
22867
  minLatitude: 0,
22863
22868
  cameraType: "auto",
22864
22869
  cameraFence: null,
22865
- intersectMeshCreator: () => new qh()
22866
- }, tv = class t extends Wh {
22870
+ intersectMeshCreator: () => new Jh()
22871
+ }, nv = class t extends Gh {
22867
22872
  static parseArgs(e) {
22868
22873
  var n, r, i, a, o, s, c, l;
22869
22874
  if (e instanceof t) return e;
22870
22875
  let u = super.parseArgs(e);
22871
22876
  return Object.assign(Object.assign({}, u), {
22872
- defaultLongitude: (n = e.defaultLongitude) == null ? ev.defaultLongitude : n,
22873
- defaultLatitude: (r = e.defaultLatitude) == null ? ev.defaultLatitude : r,
22874
- defaultDistance: (i = e.defaultDistance) == null ? ev.defaultDistance : i,
22875
- maxLatitude: (a = e.maxLatitude) == null ? ev.maxLatitude : a,
22876
- minLatitude: (o = e.minLatitude) == null ? ev.minLatitude : o,
22877
- cameraType: (s = e.cameraType) == null ? ev.cameraType : s,
22878
- cameraFence: (c = e.cameraFence) == null ? ev.cameraFence : c,
22879
- intersectMeshCreator: (l = e.intersectMeshCreator) == null ? ev.intersectMeshCreator : l
22877
+ defaultLongitude: (n = e.defaultLongitude) == null ? tv.defaultLongitude : n,
22878
+ defaultLatitude: (r = e.defaultLatitude) == null ? tv.defaultLatitude : r,
22879
+ defaultDistance: (i = e.defaultDistance) == null ? tv.defaultDistance : i,
22880
+ maxLatitude: (a = e.maxLatitude) == null ? tv.maxLatitude : a,
22881
+ minLatitude: (o = e.minLatitude) == null ? tv.minLatitude : o,
22882
+ cameraType: (s = e.cameraType) == null ? tv.cameraType : s,
22883
+ cameraFence: (c = e.cameraFence) == null ? tv.cameraFence : c,
22884
+ intersectMeshCreator: (l = e.intersectMeshCreator) == null ? tv.intersectMeshCreator : l
22880
22885
  });
22881
22886
  }
22882
22887
  static distanceFromModel(e, t, n) {
@@ -23076,9 +23081,9 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23076
23081
  let n = [];
23077
23082
  for (let t of this.works) {
23078
23083
  let r = this.modelScene.models.find((e) => e.work === t);
23079
- if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (X_.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), X_.containsPoint(e.ray.origin) || e.ray.intersectsBox(X_))) for (let e of t.observers) n.push(e);
23084
+ if (!(!r || r.visible === !1) && !(t.observers.length <= 0) && (Z_.copy(t.observerBox).expandByScalar(10).applyMatrix4(t.transform), Z_.containsPoint(e.ray.origin) || e.ray.intersectsBox(Z_))) for (let e of t.observers) n.push(e);
23080
23085
  }
23081
- let [r, i] = Rl(n, (e) => Z_.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
23086
+ let [r, i] = Rl(n, (e) => Q_.copy(e.standingPosition).applyMatrix4(e.work.transform).distanceTo(t.point), !0);
23082
23087
  return r && i < Math.max(r.standingPosition.distanceTo(this.camera.position) / 5, 10) ? r : null;
23083
23088
  }
23084
23089
  coordinatesForOffset(t) {
@@ -23132,7 +23137,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23132
23137
  fixFinalState(t) {
23133
23138
  if (this.perspToOrthoMotion.getTargetKeyframe().value.perspToOrtho === 1) return;
23134
23139
  let n = Rt(t, new e.Vector3()), r = new e.Vector3().copy(t.offset).sub(n.clone().setLength(t.distance)), i = new e.Raycaster(r, n);
23135
- i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance > Q_ + i.near, i.near = this.camera.near, i.far = this.camera.far;
23140
+ i.params.Points = { threshold: .1 }, i.firstHitOnly = !0, i.hitFilter = (e) => e.distance > $_ + i.near, i.near = this.camera.near, i.far = this.camera.far;
23136
23141
  let a;
23137
23142
  if (a = this.modelScene.intersectRaycaster(i)[0], a && a.distance < this.camera.near && (a = void 0), !a) {
23138
23143
  let t = new e.Plane(new e.Vector3(0, 1, 0), -this.modelScene.boundingBox.min.y), n = i.ray.intersectPlane(t, new e.Vector3());
@@ -23207,7 +23212,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23207
23212
  }, i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = Rt(this.cameraMotion.value).setLength(this.locationMotion.value.distance).add(i), o = new e.Vector3().copy(a).sub(r.target).length();
23208
23213
  o *= Math.tan(this.camera.pose.fov / 2 * Math.PI / 180);
23209
23214
  let s = this.renderer.getSize(new e.Vector2()), c = 2 * n.x * o / s.y, l = 2 * n.y * o / s.y, u = new e.Vector3();
23210
- u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude < $_ ? u.setFromMatrixColumn(this.camera.matrix, 1) : (u.setFromMatrixColumn(this.camera.matrix, 0), u.crossVectors(this.camera.up, u)), u.multiplyScalar(l), i.add(u);
23215
+ u.setFromMatrixColumn(this.camera.matrix, 0), u.multiplyScalar(-c), i.add(u), this.camera.pose.latitude < ev ? u.setFromMatrixColumn(this.camera.matrix, 1) : (u.setFromMatrixColumn(this.camera.matrix, 0), u.crossVectors(this.camera.up, u)), u.multiplyScalar(l), i.add(u);
23211
23216
  let d = Object.assign(Object.assign({}, this.currentPano), {
23212
23217
  mode: this.mode,
23213
23218
  longitude: this.camera.pose.longitude,
@@ -23232,7 +23237,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23232
23237
  z: d.offset.z
23233
23238
  }, 0).catch(K)), t.isFinal) {
23234
23239
  let n = this.renderer.getSize(new e.Vector2()), r = 2 * t.velocityX * o / n.y, i = 2 * t.velocityY * o / n.y, a = new e.Vector3(), s = new e.Vector3();
23235
- a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude < $_ ? a.setFromMatrixColumn(this.camera.matrix, 1) : (a.setFromMatrixColumn(this.camera.matrix, 0), a.crossVectors(this.camera.up, a)), a.multiplyScalar(i), s.add(a), this.inMomentumMovement = { uuid: $t() }, this.requestMomentumMovement(t, !0, {
23240
+ a.setFromMatrixColumn(this.camera.matrix, 0), a.multiplyScalar(-r), s.add(a), this.camera.pose.latitude < ev ? a.setFromMatrixColumn(this.camera.matrix, 1) : (a.setFromMatrixColumn(this.camera.matrix, 0), a.crossVectors(this.camera.up, a)), a.multiplyScalar(i), s.add(a), this.inMomentumMovement = { uuid: $t() }, this.requestMomentumMovement(t, !0, {
23236
23241
  longitude: 0,
23237
23242
  latitude: 0,
23238
23243
  x: s.x,
@@ -23291,7 +23296,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23291
23296
  return;
23292
23297
  }
23293
23298
  if (i === void 0) return;
23294
- let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = U(i / n.scale, Q_, Infinity), c = n.state.offset.clone().sub(Rt(n.state).setLength(s)), l = this.modelScene.boundingBox.containsPoint(c), u;
23299
+ let a = this.modelScene.boundingBox.getCenter(new e.Vector3()), o = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), s = U(i / n.scale, $_, Infinity), c = n.state.offset.clone().sub(Rt(n.state).setLength(s)), l = this.modelScene.boundingBox.containsPoint(c), u;
23295
23300
  if (!l && this.pinchState && this.pinchState.scale > n.scale && a.distanceTo(c) > o ? u = n.state.distance : (u = s, this.pinchState && (this.pinchState.scale = n.scale)), n.state.distance = u, this.emit("gesture.pinch", n), !n.defaultPrevented && (this.locationMotion.set({ distance: n.state.distance }, 0).catch(K), n.pointerType !== "mouse" && (n.type = "gesture.pan", this.onPanGesture(n)), n.isFinal)) {
23296
23301
  if (!("__fixFinalState" in n)) {
23297
23302
  let e = n.state;
@@ -23357,7 +23362,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23357
23362
  let r = t.distanceFromModel(this.modelScene, this.cameraMotion.value.fov, this.camera.aspect), i = new e.Vector3(this.locationMotion.value.x, this.locationMotion.value.y, this.locationMotion.value.z), a = Rt(this.cameraMotion.value, new e.Vector3()).negate(), o = new e.Ray(i, a).intersectBox(this.modelScene.boundingBox, new e.Vector3());
23358
23363
  o && (r += o.distanceTo(i));
23359
23364
  let s = Math.max(this.locationMotion.value.distance - this.camera.near, 0), c = n.center.delta / 10 * Math.max(s / 5, .1);
23360
- if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= Q_) {
23365
+ if (s <= r || c > 0) if (this.locationMotion.value.distance - c >= $_) {
23361
23366
  let e = this.locationMotion.value.distance - c;
23362
23367
  n.state.distance = e;
23363
23368
  } else {
@@ -23432,7 +23437,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23432
23437
  return;
23433
23438
  }
23434
23439
  let p;
23435
- d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Jh(e)).then((e) => {
23440
+ d.pano0 && d.pano0.map.name === u ? p = d.pano0 : d.pano1 && d.pano1.map.name === u && (p = d.pano1), p ? Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e)).then((e) => {
23436
23441
  var t;
23437
23442
  e instanceof Error ? (this.pendingTextureId = null, e.message && this.emit("error", e)) : (d.pano0 && d.pano0.map !== p.map && d.pano0.map.dispose(), d.pano1 && d.pano1.map !== p.map && d.pano1.map !== ((t = d.pano0) == null ? void 0 : t.map) && d.pano1.map.dispose(), d.set({
23438
23443
  pano0: p,
@@ -23465,14 +23470,14 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23465
23470
  viaAjax: !0,
23466
23471
  fetcher: Sf(this.fiveId, r.work)
23467
23472
  }, void 0, void 0, void 0, this.renderer)).catch((e) => {
23468
- let t = Jh(e);
23473
+ let t = Yh(e);
23469
23474
  return this.emit("pano.texture.error", Q("pano.texture.error", {
23470
23475
  error: t,
23471
23476
  progress: 0,
23472
23477
  meta: null,
23473
23478
  pano: a
23474
23479
  })), t;
23475
- }), Promise.resolve().then(() => Dh(f)).catch((e) => Jh(e))]).then(([a, s]) => {
23480
+ }), Promise.resolve().then(() => Dh(f)).catch((e) => Yh(e))]).then(([a, s]) => {
23476
23481
  var c, l;
23477
23482
  if (!(a instanceof Error) && !(s instanceof Error)) {
23478
23483
  let { body: s } = a;
@@ -23482,7 +23487,7 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23482
23487
  }
23483
23488
  this.pendingTextureId = null, s.name = u;
23484
23489
  let f = Array.isArray(s.image) ? s.image[0] : s.image, p = (c = f == null ? void 0 : f.width) == null ? 2048 : c, m = r.images.histogram;
23485
- m || (m = new gm().formPixels(Hh(this.renderer, s, !0, fm).data), r.images.histogram = m);
23490
+ m || (m = new gm().formPixels(Uh(this.renderer, s, !0, fm).data), r.images.histogram = m);
23486
23491
  let h = {
23487
23492
  panoId: o,
23488
23493
  map: s,
@@ -23534,12 +23539,12 @@ var I_ = new e.CircleBufferGeometry(.12, 16), L_ = "\nvarying vec2 vUv;\n#includ
23534
23539
  };
23535
23540
  //#endregion
23536
23541
  //#region build/five/utils/isNil.js
23537
- function nv(e) {
23542
+ function rv(e) {
23538
23543
  return e == null;
23539
23544
  }
23540
23545
  //#endregion
23541
23546
  //#region build/five/webxr/xrController.js
23542
- var rv = { type: "move" }, iv = class {
23547
+ var iv = { type: "move" }, av = class {
23543
23548
  constructor() {
23544
23549
  this._targetRay = null, this._grip = null, this._hand = null, this._axes = [0, 0];
23545
23550
  }
@@ -23566,7 +23571,7 @@ var rv = { type: "move" }, iv = class {
23566
23571
  }
23567
23572
  update(t, n, r) {
23568
23573
  let i = null, a = null, o = null, s = this._targetRay, c = this._grip, l = this._hand;
23569
- if (t && t.gamepad && t.gamepad.axes && (this._axes = [t.gamepad.axes[2], t.gamepad.axes[3]]), t && n.session.visibilityState !== "visible-blurred") if (s !== null && (i = n.getPose(t.targetRaySpace, r), i !== null && (s.matrix.fromArray(i.transform.matrix), s.matrix.decompose(s.position, s.rotation, s.scale), i.linearVelocity ? (s.hasLinearVelocity = !0, s.linearVelocity.copy(i.linearVelocity)) : s.hasLinearVelocity = !1, i.angularVelocity ? (s.hasAngularVelocity = !0, s.angularVelocity.copy(i.angularVelocity)) : s.hasAngularVelocity = !1, this.dispatchEvent(rv))), l && t.hand) {
23574
+ if (t && t.gamepad && t.gamepad.axes && (this._axes = [t.gamepad.axes[2], t.gamepad.axes[3]]), t && n.session.visibilityState !== "visible-blurred") if (s !== null && (i = n.getPose(t.targetRaySpace, r), i !== null && (s.matrix.fromArray(i.transform.matrix), s.matrix.decompose(s.position, s.rotation, s.scale), i.linearVelocity ? (s.hasLinearVelocity = !0, s.linearVelocity.copy(i.linearVelocity)) : s.hasLinearVelocity = !1, i.angularVelocity ? (s.hasAngularVelocity = !0, s.angularVelocity.copy(i.angularVelocity)) : s.hasAngularVelocity = !1, this.dispatchEvent(iv))), l && t.hand) {
23570
23575
  o = !0;
23571
23576
  for (let i of t.hand.values()) {
23572
23577
  let t = n.getJointPose(i, r);
@@ -23590,25 +23595,25 @@ var rv = { type: "move" }, iv = class {
23590
23595
  } else c !== null && t.gripSpace && (a = n.getPose(t.gripSpace, r), a !== null && (c.matrix.fromArray(a.transform.matrix), c.matrix.decompose(c.position, c.rotation, c.scale), a.linearVelocity ? (c.hasLinearVelocity = !0, c.linearVelocity.copy(a.linearVelocity)) : c.hasLinearVelocity = !1, a.angularVelocity ? (c.hasAngularVelocity = !0, c.angularVelocity.copy(a.angularVelocity)) : c.hasAngularVelocity = !1));
23591
23596
  return s !== null && (s.visible = i !== null), c !== null && (c.visible = a !== null), l !== null && (l.visible = o !== null), this;
23592
23597
  }
23593
- }, av = 1, ov = () => {
23598
+ }, ov = 1, sv = () => {
23594
23599
  try {
23595
23600
  let e = /Macintosh/i.test(navigator.userAgent), t = navigator.maxTouchPoints === 5;
23596
23601
  return e && t;
23597
23602
  } catch (e) {
23598
23603
  return console.error("Error determining if the device is an Apple Vision Pro: ", e), !1;
23599
23604
  }
23600
- }, sv = () => {
23605
+ }, cv = () => {
23601
23606
  try {
23602
23607
  return /Oculus/i.test(navigator.userAgent);
23603
23608
  } catch (e) {
23604
23609
  return console.error("Error determining if the device is an Oculus: ", e), !1;
23605
23610
  }
23606
- }, cv = class {
23611
+ }, lv = class {
23607
23612
  constructor(t, n, r) {
23608
23613
  var i, a, o, s, c;
23609
23614
  this.isPanorama = (i = r == null ? void 0 : r.isPanorama) == null ? !0 : i, navigator.userAgent.toLowerCase();
23610
23615
  let l;
23611
- l = ov() ? "VP" : sv() ? "Oculus" : "Pico", this.machineType = (a = r == null ? void 0 : r.machineType) == null ? l : a, this.renderer = t, this.gl = n, this.enabled = !1, this.session = null, this.referenceSpaceType = (o = r == null ? void 0 : r.referenceSpaceType) == null ? "local-floor" : o, this.referenceSpace = null, this.onSessionStartCallback = (s = r == null ? void 0 : r.onSessionStart) == null ? K : s, this.onSessionEndCallback = (c = r == null ? void 0 : r.onSessionEnd) == null ? K : c, this.controllers = [new iv(), new iv()], this.inputSourcesMap = /* @__PURE__ */ new Map(), this.cameraVR = new e.ArrayCamera(), this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera(), this.cameraVR.cameras.push(this.cameraL, this.cameraR), this.cameraL.viewport = new e.Vector4(), this.cameraR.viewport = new e.Vector4(), this.cameraL.layers.enable(1), this.cameraR.layers.enable(2), this.cameraVR.layers.enable(1), this.cameraVR.layers.enable(2), this.isPresenting = !1, this.currentDepthNear = null, this.currentDepthFar = null, this.cameraLPos = new e.Vector3(), this.cameraRPos = new e.Vector3();
23616
+ l = sv() ? "VP" : cv() ? "Oculus" : "Pico", this.machineType = (a = r == null ? void 0 : r.machineType) == null ? l : a, this.renderer = t, this.gl = n, this.enabled = !1, this.session = null, this.referenceSpaceType = (o = r == null ? void 0 : r.referenceSpaceType) == null ? "local-floor" : o, this.referenceSpace = null, this.onSessionStartCallback = (s = r == null ? void 0 : r.onSessionStart) == null ? K : s, this.onSessionEndCallback = (c = r == null ? void 0 : r.onSessionEnd) == null ? K : c, this.controllers = [new av(), new av()], this.inputSourcesMap = /* @__PURE__ */ new Map(), this.cameraVR = new e.ArrayCamera(), this.cameraL = new e.PerspectiveCamera(), this.cameraR = new e.PerspectiveCamera(), this.cameraVR.cameras.push(this.cameraL, this.cameraR), this.cameraL.viewport = new e.Vector4(), this.cameraR.viewport = new e.Vector4(), this.cameraL.layers.enable(1), this.cameraR.layers.enable(2), this.cameraVR.layers.enable(1), this.cameraVR.layers.enable(2), this.isPresenting = !1, this.currentDepthNear = null, this.currentDepthFar = null, this.cameraLPos = new e.Vector3(), this.cameraRPos = new e.Vector3();
23612
23617
  }
23613
23618
  getController(e) {
23614
23619
  let t = this.controllers[e];
@@ -23724,7 +23729,7 @@ var rv = { type: "move" }, iv = class {
23724
23729
  alpha: e == null ? void 0 : e.alpha,
23725
23730
  depth: e == null ? void 0 : e.depth,
23726
23731
  stencil: e == null ? void 0 : e.stencil,
23727
- framebufferScaleFactor: av
23732
+ framebufferScaleFactor: ov
23728
23733
  };
23729
23734
  if (!this.session) {
23730
23735
  console.error("session is lose while set session!");
@@ -23750,7 +23755,7 @@ var rv = { type: "move" }, iv = class {
23750
23755
  });
23751
23756
  }
23752
23757
  }
23753
- }, lv = class extends e.InstancedBufferGeometry {
23758
+ }, uv = class extends e.InstancedBufferGeometry {
23754
23759
  constructor() {
23755
23760
  super(), this.type = "LineSegmentsGeometry", this.setIndex([
23756
23761
  0,
@@ -23869,10 +23874,10 @@ var rv = { type: "move" }, iv = class {
23869
23874
  }
23870
23875
  toJSON() {}
23871
23876
  };
23872
- Object.assign(lv.prototype, { isLineSegmentsGeometry: !0 });
23877
+ Object.assign(uv.prototype, { isLineSegmentsGeometry: !0 });
23873
23878
  //#endregion
23874
23879
  //#region build/line/utils/LineMaterial.js
23875
- var uv = {
23880
+ var dv = {
23876
23881
  uniforms: e.UniformsUtils.merge([
23877
23882
  e.UniformsLib.common,
23878
23883
  e.UniformsLib.fog,
@@ -23887,12 +23892,12 @@ var uv = {
23887
23892
  ]),
23888
23893
  vertexShader: "\n #include <common>\n #include <color_pars_vertex>\n #include <fog_pars_vertex>\n #include <logdepthbuf_pars_vertex>\n #include <clipping_planes_pars_vertex>\n\n uniform float linewidth;\n uniform vec2 resolution;\n\n attribute vec3 instanceStart;\n attribute vec3 instanceEnd;\n\n attribute vec3 instanceColorStart;\n attribute vec3 instanceColorEnd;\n\n varying vec2 vUv;\n\n #ifdef USE_DASH\n\n uniform float dashScale;\n attribute float instanceDistanceStart;\n attribute float instanceDistanceEnd;\n varying float vLineDistance;\n\n #endif\n\n void trimSegment( const in vec4 start, inout vec4 end ) {\n\n // trim end segment so it terminates between the camera plane and the near plane\n\n // conservative estimate of the near plane\n float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column\n float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column\n float nearEstimate = - 0.5 * b / a;\n\n float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );\n\n end.xyz = mix( start.xyz, end.xyz, alpha );\n\n }\n\n void main() {\n\n #ifdef USE_COLOR\n\n vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;\n\n #endif\n\n #ifdef USE_DASH\n\n vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;\n\n #endif\n\n float aspect = resolution.x / resolution.y;\n\n vUv = uv;\n\n // camera space\n vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );\n vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );\n\n // special case for perspective projection, and segments that terminate either in, or behind, the camera plane\n // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space\n // but we need to perform ndc-space calculations in the shader, so we must address this issue directly\n // perhaps there is a more elegant solution -- WestLangley\n\n bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column\n\n if ( perspective ) {\n\n if ( start.z < 0.0 && end.z >= 0.0 ) {\n\n trimSegment( start, end );\n\n } else if ( end.z < 0.0 && start.z >= 0.0 ) {\n\n trimSegment( end, start );\n\n }\n\n }\n\n // clip space\n vec4 clipStart = projectionMatrix * start;\n vec4 clipEnd = projectionMatrix * end;\n\n // ndc space\n vec2 ndcStart = clipStart.xy / clipStart.w;\n vec2 ndcEnd = clipEnd.xy / clipEnd.w;\n\n // direction\n vec2 dir = ndcEnd - ndcStart;\n\n // account for clip-space aspect ratio\n dir.x *= aspect;\n dir = normalize( dir );\n\n // perpendicular to dir\n vec2 offset = vec2( dir.y, - dir.x );\n\n // undo aspect ratio adjustment\n dir.x /= aspect;\n offset.x /= aspect;\n\n // sign flip\n if ( position.x < 0.0 ) offset *= - 1.0;\n\n // endcaps\n if ( position.y < 0.0 ) {\n\n offset += - dir;\n\n } else if ( position.y > 1.0 ) {\n\n offset += dir;\n\n }\n\n // adjust for linewidth\n offset *= linewidth;\n\n // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...\n offset /= resolution.y;\n\n // select end\n vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;\n\n // back to clip space\n offset *= clip.w;\n\n clip.xy += offset;\n\n gl_Position = clip;\n\n vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation\n\n #include <logdepthbuf_vertex>\n #include <clipping_planes_vertex>\n #include <fog_vertex>\n\n }\n ",
23889
23894
  fragmentShader: "\n uniform vec3 diffuse;\n uniform float opacity;\n\n #ifdef USE_DASH\n\n uniform float dashSize;\n uniform float gapSize;\n\n #endif\n\n varying float vLineDistance;\n\n #include <common>\n #include <color_pars_fragment>\n #include <fog_pars_fragment>\n #include <logdepthbuf_pars_fragment>\n #include <clipping_planes_pars_fragment>\n\n varying vec2 vUv;\n\n void main() {\n\n #include <clipping_planes_fragment>\n\n #ifdef USE_DASH\n\n if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps\n\n if ( mod( vLineDistance, dashSize + gapSize ) > dashSize ) discard; // todo - FIX\n\n #endif\n\n if ( abs( vUv.y ) > 1.0 ) {\n\n float a = vUv.x;\n float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;\n float len2 = a * a + b * b;\n\n if ( len2 > 1.0 ) discard;\n\n }\n\n vec4 diffuseColor = vec4( diffuse, opacity );\n\n #include <logdepthbuf_fragment>\n #include <color_fragment>\n\n gl_FragColor = vec4( diffuseColor.rgb, diffuseColor.a );\n\n #include <tonemapping_fragment>\n #include <fog_fragment>\n #include <premultiplied_alpha_fragment>\n\n }\n "
23890
- }, dv = class extends e.ShaderMaterial {
23895
+ }, fv = class extends e.ShaderMaterial {
23891
23896
  constructor(t) {
23892
23897
  super({
23893
- uniforms: e.UniformsUtils.clone(uv.uniforms),
23894
- vertexShader: uv.vertexShader,
23895
- fragmentShader: uv.fragmentShader,
23898
+ uniforms: e.UniformsUtils.clone(dv.uniforms),
23899
+ vertexShader: dv.vertexShader,
23900
+ fragmentShader: dv.fragmentShader,
23896
23901
  clipping: !0
23897
23902
  }), this.type = "LineMaterial", this.dashed = !1, Object.defineProperties(this, {
23898
23903
  color: {
@@ -23961,12 +23966,12 @@ var uv = {
23961
23966
  }), this.setValues(t);
23962
23967
  }
23963
23968
  };
23964
- Object.assign(dv.prototype, { isLineMaterial: !0 });
23969
+ Object.assign(fv.prototype, { isLineMaterial: !0 });
23965
23970
  //#endregion
23966
23971
  //#region build/line/utils/LineSegments2.js
23967
- var fv = class extends e.Mesh {
23972
+ var pv = class extends e.Mesh {
23968
23973
  constructor(e, t) {
23969
- super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new lv() : e, this.material = t === void 0 ? new dv({ color: Math.random() * 16777215 }) : t;
23974
+ super(), this.type = "LineSegments2", this.geometry = e === void 0 ? new uv() : e, this.material = t === void 0 ? new fv({ color: Math.random() * 16777215 }) : t;
23970
23975
  }
23971
23976
  computeLineDistances() {
23972
23977
  let t = this.geometry, n = t.attributes.instanceStart, r = t.attributes.instanceEnd, i = new Float32Array(2 * n.count), a = new e.Vector3(), o = new e.Vector3();
@@ -24003,18 +24008,18 @@ var fv = class extends e.Mesh {
24003
24008
  }
24004
24009
  }
24005
24010
  };
24006
- Object.assign(fv.prototype, { isLineSegments2: !0 });
24011
+ Object.assign(pv.prototype, { isLineSegments2: !0 });
24007
24012
  //#endregion
24008
24013
  //#region build/line/utils/Line2.js
24009
- var pv = class extends fv {
24014
+ var mv = class extends pv {
24010
24015
  constructor(e, t) {
24011
24016
  super(e, t), this.type = "Line2";
24012
24017
  }
24013
24018
  };
24014
- Object.assign(pv.prototype, { isLine2: !0 });
24019
+ Object.assign(mv.prototype, { isLine2: !0 });
24015
24020
  //#endregion
24016
24021
  //#region build/line/utils/LineGeometry.js
24017
- var mv = class extends lv {
24022
+ var hv = class extends uv {
24018
24023
  constructor() {
24019
24024
  super(), this.type = "LineGeometry";
24020
24025
  }
@@ -24040,24 +24045,24 @@ var mv = class extends lv {
24040
24045
  return this;
24041
24046
  }
24042
24047
  };
24043
- Object.assign(mv.prototype, { isLineGeometry: !0 });
24048
+ Object.assign(hv.prototype, { isLineGeometry: !0 });
24044
24049
  //#endregion
24045
24050
  //#region build/line/index.js
24046
- var hv = 14467195, gv = 8, _v = 2, vv = 20, yv = null, bv = class extends e.Object3D {
24051
+ var gv = 14467195, _v = 8, vv = 2, yv = 20, bv = null, xv = class extends e.Object3D {
24047
24052
  static get version() {
24048
- return "6.8.0-alpha.28";
24053
+ return "6.8.0-alpha.29";
24049
24054
  }
24050
24055
  constructor(t = new e.Vector3(), n = new e.Vector3()) {
24051
- super(), this.type = "FiveLine", this.needsRender = !0, this.line = new pv(new mv(), new dv({
24052
- color: hv,
24053
- linewidth: _v,
24054
- dashScale: vv,
24056
+ super(), this.type = "FiveLine", this.needsRender = !0, this.line = new mv(new hv(), new fv({
24057
+ color: gv,
24058
+ linewidth: vv,
24059
+ dashScale: yv,
24055
24060
  dashed: !1
24056
24061
  }));
24057
24062
  let r = new e.BufferGeometry(), i = new e.PointsMaterial({
24058
- color: hv,
24059
- size: gv,
24060
- map: yv || (yv = new e.TextureLoader().load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),
24063
+ color: gv,
24064
+ size: _v,
24065
+ map: bv || (bv = new e.TextureLoader().load("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sHDgwCEMBJZu0AAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAABM5JREFUWMO1V0tPG2cUPZ4Hxh6DazIOrjFNqJs0FIMqWFgWQkatsmvVbtggKlSVRVf5AWz4AWz4AUSKEChll19QJYSXkECuhFxsHjEhxCYm+DWGMZ5HF72DJq4bAzFXurI0M/I5997v3u9cC65vTJVn2lX/xHINQOYSBLTLEuIuCWw4Z3IGAEvf6ASmVHjNzHCXBG4A0AjACsAOwEbO0nsFQBnAGYASAIl+ZRMR7SolMEdsByD09fV5R0ZGgg8ePPjW5/N1iqLYpuu6RZblciKR2I9Go69evnwZnZ+fjwI4IS8AKBIRzeQfJWCANwKwh0KhtrGxsYehUOin1tbW+zzP23ietzY2NnIAoGmaLsuyUiqVyvl8XtrY2NiamZn589mzZxsAUgCOAeQAnFI2tI+VxIjaAeDzoaGh7xYWFuZOTk6OZVk+12uYqqq6JEnn0Wg0OT4+/geAXwGEAdwDIFJQXC1wO4DWR48e/RCPxxclSSroVzRFUbSDg4P848ePFwH8DuAhkWih83TRQWxFOXgAwvDwcOfo6OhvXV1d39tsNtuVBwTDWBwOh1UUxVsMw1hXVlbSdCgNV43uYSvrHg6H24aHh38eHBz85TrgF9FYLHA4HLzH43FvbW2d7u/vG+dANp8FpqIlbd3d3V8Fg8EfBUFw4BONZVmL3+9vHhkZCQL4AoAHgJPK8G+yzC0XDofdoVAo5PP5vkadTBAEtr+/39ff3x8gAp/RPOEqx2qjx+NpvXv3bk9DQ0NDvQgwDIOWlhZrMBj8kgi0UJdxRgYMArzL5XJ7vd57qLPZ7Xamp6fnNgBXtQxcjFuHw+Hyer3t9SYgCAITCAScAJoBNNEY/08GOFVVrfVMv7kMNDntFD1vjIAPrlRN0xjckOm6biFQ3jwNPwDMZrOnqVTqfb3Bi8Wivru7W/VCYkwPlKOjo0IikXh7EwQikYgE4Nw0CfXKDCipVCoTj8df3QABbW1tLUc6oUgkFPMkVACUNjc337148eKvw8PDbJ2jP1taWkoCyNDVXDSECmNSK4qiKNLq6urW8+fPI/UicHx8rD59+jSVy+WOAKSJhKENwFItLtoxk8mwsixzHR0dHe3t7c5PAU+n09rs7OzJkydPYqVSaQfANoDXALIk31S2smU1TWMPDg7K5XKZ7+3t9TudTut1U7+wsFCcmJiIpdPpbQBxADsAknQWymYCOukBHYCuKApisdhpMpnURFEU79y503TVyKenpzOTk5M7e3t7MQKPV0Zv1gNm+awB0MvlshqLxfLb29uyJElWURSbXC4XXyvqxcXFs6mpqeTc3Nzu3t7e3wQcA7BPZ8Cov1pNlJplmQtAG8MwHV6v95tAINA5MDBwPxAIuLu6upr8fr/VAN3c3JQjkcjZ+vp6fnl5+d2bN29SuVzuNYAEpf01CdRChUL+X1VskHACuA3Ay3Fcu9vt7nA6nZ7m5uYWQRCaNE3jVVW15PP580KhIGUymWw2m00DOAJwSP4WwPtq4LX2Ao6USxNlQyS/RcQcdLGwlNIz6vEMAaZpNzCk2Pll94LK/cDYimxERiBwG10sxjgvEZBE0UpE6vxj+0Ct5bTaXthgEhRmja8QWNkkPGsuIpfdjpkK+cZUWTC0KredVmtD/gdlSl6EG4AMvQAAAABJRU5ErkJggg==")),
24061
24066
  sizeAttenuation: !1,
24062
24067
  transparent: !0
24063
24068
  });
@@ -24085,10 +24090,10 @@ var hv = 14467195, gv = 8, _v = 2, vv = 20, yv = null, bv = class extends e.Obje
24085
24090
  (n.x !== e || n.y !== t) && (n.set(e, t), this.needsRender = !0);
24086
24091
  }
24087
24092
  };
24088
- Object.assign(bv.prototype, { isFiveLine: !0 });
24093
+ Object.assign(xv.prototype, { isFiveLine: !0 });
24089
24094
  //#endregion
24090
24095
  //#region build/five/webxr/motionHelper.js
24091
- var xv = {
24096
+ var Sv = {
24092
24097
  Handedness: Object.freeze({
24093
24098
  NONE: "none",
24094
24099
  LEFT: "left",
@@ -24119,24 +24124,24 @@ var xv = {
24119
24124
  VISIBILITY: "visibility"
24120
24125
  })
24121
24126
  };
24122
- function Sv(e) {
24127
+ function Cv(e) {
24123
24128
  return Vo(this, void 0, void 0, function* () {
24124
24129
  let t = yield fetch(e);
24125
24130
  if (t.ok) return t.json();
24126
24131
  throw Error(t.statusText);
24127
24132
  });
24128
24133
  }
24129
- function Cv(e) {
24134
+ function wv(e) {
24130
24135
  return Vo(this, void 0, void 0, function* () {
24131
24136
  if (!e) throw Error("No basePath supplied");
24132
- return yield Sv(`${e}/profilesList.json`);
24137
+ return yield Cv(`${e}/profilesList.json`);
24133
24138
  });
24134
24139
  }
24135
- function wv(e, t) {
24140
+ function Tv(e, t) {
24136
24141
  return Vo(this, arguments, void 0, function* (e, t, n = null, r = !0) {
24137
24142
  if (!e) throw Error("No xrInputSource supplied");
24138
24143
  if (!t) throw Error("No basePath supplied");
24139
- let i = yield Cv(t), a;
24144
+ let i = yield wv(t), a;
24140
24145
  if (e.profiles.some((e) => {
24141
24146
  let n = i[e];
24142
24147
  return n && (a = {
@@ -24154,7 +24159,7 @@ function wv(e, t) {
24154
24159
  deprecated: !!e.deprecated
24155
24160
  };
24156
24161
  }
24157
- let o = yield Sv(a.profilePath), s;
24162
+ let o = yield Cv(a.profilePath), s;
24158
24163
  if (r) {
24159
24164
  let t;
24160
24165
  if (t = o.layouts[e.handedness], !t) throw Error(`No matching handedness, ${e.handedness}, in profile ${a.profileId}`);
@@ -24166,13 +24171,13 @@ function wv(e, t) {
24166
24171
  };
24167
24172
  });
24168
24173
  }
24169
- var Tv = {
24174
+ var Ev = {
24170
24175
  xAxis: 0,
24171
24176
  yAxis: 0,
24172
24177
  button: 0,
24173
- state: xv.ComponentState.DEFAULT
24178
+ state: Sv.ComponentState.DEFAULT
24174
24179
  };
24175
- function Ev(e = 0, t = 0) {
24180
+ function Dv(e = 0, t = 0) {
24176
24181
  let n = e, r = t;
24177
24182
  if (Math.sqrt(e * e + t * t) > 1) {
24178
24183
  let i = Math.atan2(t, e);
@@ -24183,36 +24188,36 @@ function Ev(e = 0, t = 0) {
24183
24188
  normalizedYAxis: r * .5 + .5
24184
24189
  };
24185
24190
  }
24186
- var Dv = class {
24191
+ var Ov = class {
24187
24192
  constructor(e) {
24188
- this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === xv.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Tv);
24193
+ this.componentProperty = e.componentProperty, this.states = e.states, this.valueNodeName = e.valueNodeName, this.valueNodeProperty = e.valueNodeProperty, this.valueNodeProperty === Sv.VisualResponseProperty.TRANSFORM && (this.minNodeName = e.minNodeName, this.maxNodeName = e.maxNodeName), this.value = 0, this.updateFromComponent(Ev);
24189
24194
  }
24190
24195
  updateFromComponent({ xAxis: e, yAxis: t, button: n, state: r }) {
24191
- let { normalizedXAxis: i, normalizedYAxis: a } = Ev(e, t);
24196
+ let { normalizedXAxis: i, normalizedYAxis: a } = Dv(e, t);
24192
24197
  switch (this.componentProperty) {
24193
- case xv.ComponentProperty.X_AXIS:
24198
+ case Sv.ComponentProperty.X_AXIS:
24194
24199
  this.value = this.states.includes(r) ? i : .5;
24195
24200
  break;
24196
- case xv.ComponentProperty.Y_AXIS:
24201
+ case Sv.ComponentProperty.Y_AXIS:
24197
24202
  this.value = this.states.includes(r) ? a : .5;
24198
24203
  break;
24199
- case xv.ComponentProperty.BUTTON:
24204
+ case Sv.ComponentProperty.BUTTON:
24200
24205
  this.value = this.states.includes(r) ? n : 0;
24201
24206
  break;
24202
- case xv.ComponentProperty.STATE:
24203
- this.valueNodeProperty === xv.VisualResponseProperty.VISIBILITY ? this.value = this.states.includes(r) : this.value = this.states.includes(r) ? 1 : 0;
24207
+ case Sv.ComponentProperty.STATE:
24208
+ this.valueNodeProperty === Sv.VisualResponseProperty.VISIBILITY ? this.value = this.states.includes(r) : this.value = this.states.includes(r) ? 1 : 0;
24204
24209
  break;
24205
24210
  default: throw Error(`Unexpected visualResponse componentProperty ${this.componentProperty}`);
24206
24211
  }
24207
24212
  }
24208
- }, Ov = class {
24213
+ }, kv = class {
24209
24214
  constructor(e, t) {
24210
24215
  if (!e || !t || !t.visualResponses || !t.gamepadIndices || Object.keys(t.gamepadIndices).length === 0) throw Error("Invalid arguments supplied");
24211
24216
  this.id = e, this.type = t.type, this.rootNodeName = t.rootNodeName, this.touchPointNodeName = t.touchPointNodeName, this.visualResponses = {}, Object.keys(t.visualResponses).forEach((e) => {
24212
- let n = new Dv(t.visualResponses[e]);
24217
+ let n = new Ov(t.visualResponses[e]);
24213
24218
  this.visualResponses[e] = n;
24214
24219
  }), this.gamepadIndices = Object.assign({}, t.gamepadIndices), this.values = {
24215
- state: xv.ComponentState.DEFAULT,
24220
+ state: Sv.ComponentState.DEFAULT,
24216
24221
  button: this.gamepadIndices.button === void 0 ? void 0 : 0,
24217
24222
  xAxis: this.gamepadIndices.xAxis === void 0 ? void 0 : 0,
24218
24223
  yAxis: this.gamepadIndices.yAxis === void 0 ? void 0 : 0
@@ -24222,21 +24227,21 @@ var Dv = class {
24222
24227
  return Object.assign({ id: this.id }, this.values);
24223
24228
  }
24224
24229
  updateFromGamepad(e) {
24225
- if (this.values.state = xv.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
24230
+ if (this.values.state = Sv.ComponentState.DEFAULT, this.gamepadIndices.button !== void 0 && e.buttons.length > this.gamepadIndices.button) {
24226
24231
  let t = e.buttons[this.gamepadIndices.button];
24227
- this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state = xv.ComponentState.PRESSED : (t.touched || this.values.button > xv.ButtonTouchThreshold) && (this.values.state = xv.ComponentState.TOUCHED);
24232
+ this.values.button = t.value, this.values.button = this.values.button < 0 ? 0 : this.values.button, this.values.button = this.values.button > 1 ? 1 : this.values.button, t.pressed || this.values.button === 1 ? this.values.state = Sv.ComponentState.PRESSED : (t.touched || this.values.button > Sv.ButtonTouchThreshold) && (this.values.state = Sv.ComponentState.TOUCHED);
24228
24233
  }
24229
- this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state === xv.ComponentState.DEFAULT && Math.abs(this.values.xAxis) > xv.AxisTouchThreshold && (this.values.state = xv.ComponentState.TOUCHED)), this.gamepadIndices.yAxis !== void 0 && e.axes.length > this.gamepadIndices.yAxis && (this.values.yAxis = e.axes[this.gamepadIndices.yAxis], this.values.yAxis = this.values.yAxis < -1 ? -1 : this.values.yAxis, this.values.yAxis = this.values.yAxis > 1 ? 1 : this.values.yAxis, this.values.state === xv.ComponentState.DEFAULT && Math.abs(this.values.yAxis) > xv.AxisTouchThreshold && (this.values.state = xv.ComponentState.TOUCHED)), Object.values(this.visualResponses).forEach((e) => {
24234
+ this.gamepadIndices.xAxis !== void 0 && e.axes.length > this.gamepadIndices.xAxis && (this.values.xAxis = e.axes[this.gamepadIndices.xAxis], this.values.xAxis = this.values.xAxis < -1 ? -1 : this.values.xAxis, this.values.xAxis = this.values.xAxis > 1 ? 1 : this.values.xAxis, this.values.state === Sv.ComponentState.DEFAULT && Math.abs(this.values.xAxis) > Sv.AxisTouchThreshold && (this.values.state = Sv.ComponentState.TOUCHED)), this.gamepadIndices.yAxis !== void 0 && e.axes.length > this.gamepadIndices.yAxis && (this.values.yAxis = e.axes[this.gamepadIndices.yAxis], this.values.yAxis = this.values.yAxis < -1 ? -1 : this.values.yAxis, this.values.yAxis = this.values.yAxis > 1 ? 1 : this.values.yAxis, this.values.state === Sv.ComponentState.DEFAULT && Math.abs(this.values.yAxis) > Sv.AxisTouchThreshold && (this.values.state = Sv.ComponentState.TOUCHED)), Object.values(this.visualResponses).forEach((e) => {
24230
24235
  e.updateFromComponent(this.values);
24231
24236
  });
24232
24237
  }
24233
- }, kv = class {
24238
+ }, Av = class {
24234
24239
  constructor(e, t, n) {
24235
24240
  if (!e) throw Error("No xrInputSource supplied");
24236
24241
  if (!t) throw Error("No profile supplied");
24237
24242
  this.xrInputSource = e, this.assetUrl = n, this.id = t.profileId, this.layoutDescription = t.layouts[e.handedness], this.components = {}, Object.keys(this.layoutDescription.components).forEach((e) => {
24238
24243
  let t = this.layoutDescription.components[e];
24239
- this.components[e] = new Ov(e, t);
24244
+ this.components[e] = new kv(e, t);
24240
24245
  }), this.updateFromGamepad();
24241
24246
  }
24242
24247
  get gripSpace() {
@@ -24256,7 +24261,7 @@ var Dv = class {
24256
24261
  e.updateFromGamepad(this.xrInputSource.gamepad);
24257
24262
  });
24258
24263
  }
24259
- }, Av = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", jv = "generic-trigger", Mv = class extends r {
24264
+ }, jv = "https://cdn.jsdelivr.net/npm/@webxr-input-profiles/assets@1.0/dist/profiles", Mv = "generic-trigger", Nv = class extends r {
24260
24265
  constructor() {
24261
24266
  super(), this.motionController = null, this.envMap = null;
24262
24267
  }
@@ -24269,21 +24274,21 @@ var Dv = class {
24269
24274
  super.updateMatrixWorld(e), this.motionController && (this.motionController.updateFromGamepad(), Object.values(this.motionController.components).forEach((e) => {
24270
24275
  Object.values(e.visualResponses).forEach((e) => {
24271
24276
  let { valueNode: t, minNode: n, maxNode: r, value: i, valueNodeProperty: a } = e;
24272
- t && (a === xv.VisualResponseProperty.VISIBILITY ? t.visible = i : a === xv.VisualResponseProperty.TRANSFORM && (t.quaternion.copy(n.quaternion).slerp(r.quaternion, i), t.position.lerpVectors(n.position, r.position, i)));
24277
+ t && (a === Sv.VisualResponseProperty.VISIBILITY ? t.visible = i : a === Sv.VisualResponseProperty.TRANSFORM && (t.quaternion.copy(n.quaternion).slerp(r.quaternion, i), t.position.lerpVectors(n.position, r.position, i)));
24273
24278
  });
24274
24279
  }));
24275
24280
  }
24276
24281
  };
24277
- function Nv(e, r) {
24282
+ function Pv(e, r) {
24278
24283
  Object.values(e.components).forEach((e) => {
24279
24284
  let { type: a, touchPointNodeName: o, visualResponses: s } = e;
24280
- if (a === xv.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
24285
+ if (a === Sv.ComponentType.TOUCHPAD) if (e.touchPointNode = r.getObjectByName(o), e.touchPointNode) {
24281
24286
  let r = new t(new i(.001), new n({ color: 255 }));
24282
24287
  e.touchPointNode.add(r);
24283
24288
  } else console.warn(`Could not find touch dot, ${e.touchPointNodeName}, in touchpad component ${e.id}`);
24284
24289
  Object.values(s).forEach((e) => {
24285
24290
  let { valueNodeName: t, minNodeName: n, maxNodeName: i, valueNodeProperty: a } = e;
24286
- if (a === xv.VisualResponseProperty.TRANSFORM) {
24291
+ if (a === Sv.VisualResponseProperty.TRANSFORM) {
24287
24292
  if (e.minNode = r.getObjectByName(n), e.maxNode = r.getObjectByName(i), !e.minNode) {
24288
24293
  console.warn(`Could not find ${n} in the model`);
24289
24294
  return;
@@ -24297,27 +24302,27 @@ function Nv(e, r) {
24297
24302
  });
24298
24303
  });
24299
24304
  }
24300
- function Pv(t, n) {
24301
- Nv(t.motionController, n), t.envMap && n.traverse((n) => {
24305
+ function Fv(t, n) {
24306
+ Pv(t.motionController, n), t.envMap && n.traverse((n) => {
24302
24307
  n instanceof e.Mesh && n.isMesh && (n.material.envMap = t.envMap, n.material.needsUpdate = !0);
24303
24308
  }), t.add(n);
24304
24309
  }
24305
- var Fv = class {
24310
+ var Iv = class {
24306
24311
  constructor(e = null) {
24307
- this.gltfLoader = e, this.path = Av, this._assetCache = {};
24312
+ this.gltfLoader = e, this.path = jv, this._assetCache = {};
24308
24313
  }
24309
24314
  createControllerModel(e) {
24310
- let t = new Mv(), n = null;
24315
+ let t = new Nv(), n = null;
24311
24316
  return e.addEventListener("connected", (e) => {
24312
24317
  let r = e.data;
24313
- r.targetRayMode !== "tracked-pointer" || !r.gamepad || wv(r, this.path, jv).then(({ profile: e, assetPath: i }) => {
24314
- t.motionController = new kv(r, e, i);
24318
+ r.targetRayMode !== "tracked-pointer" || !r.gamepad || Tv(r, this.path, Mv).then(({ profile: e, assetPath: i }) => {
24319
+ t.motionController = new Av(r, e, i);
24315
24320
  let a = this._assetCache[t.motionController.assetUrl];
24316
- if (a) n = a.scene.clone(), Pv(t, n);
24321
+ if (a) n = a.scene.clone(), Fv(t, n);
24317
24322
  else {
24318
24323
  if (!this.gltfLoader) throw Error("GLTFLoader not set.");
24319
24324
  this.gltfLoader.load(t.motionController.assetUrl, (e) => {
24320
- this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), Pv(t, n);
24325
+ this._assetCache[t.motionController.assetUrl] = e, n = e.scene.clone(), Fv(t, n);
24321
24326
  });
24322
24327
  }
24323
24328
  }).catch((e) => {
@@ -24327,20 +24332,20 @@ var Fv = class {
24327
24332
  t.motionController = null, t.remove(n), n = null;
24328
24333
  }), t;
24329
24334
  }
24330
- }, Iv = Object.assign({}, hr(Qg, ["maxLatitude", "minLatitude"]));
24331
- function Lv(e, t) {
24335
+ }, Lv = Object.assign({}, hr($g, ["maxLatitude", "minLatitude"]));
24336
+ function Rv(e, t) {
24332
24337
  if (!t) return e;
24333
24338
  let n = e.match(/\d+_[a-z].png/);
24334
24339
  return e.substring(0, n.index) + t + "/" + e.substring(n.index);
24335
24340
  }
24336
- var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24337
- Floorplan: Qh,
24338
- Topview: eg,
24339
- Panorama: $g,
24340
- VRPanorama: W_,
24341
- Model: Y_,
24342
- Mapview: tv,
24343
- XRPanorama: class t extends $g {
24341
+ var zv = 300, Bv = new e.Raycaster(), Vv = new e.Vector3(), Hv = {
24342
+ Floorplan: $h,
24343
+ Topview: tg,
24344
+ Panorama: e_,
24345
+ VRPanorama: G_,
24346
+ Model: X_,
24347
+ Mapview: nv,
24348
+ XRPanorama: class t extends e_ {
24344
24349
  static parseArgs(e) {
24345
24350
  if (e instanceof t) return e;
24346
24351
  let n = Object.assign(Object.assign({}, e), {
@@ -24354,7 +24359,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24354
24359
  return Object.assign(Object.assign({}, n), { mode: "XRPanorama" });
24355
24360
  }
24356
24361
  constructor(t) {
24357
- super(t), this.xrManager = new cv(this.renderer, this.renderer.getContext(), {
24362
+ super(t), this.xrManager = new lv(this.renderer, this.renderer.getContext(), {
24358
24363
  onSessionStart: (e) => {
24359
24364
  this.emit("xr.session.start", Q("xr.session.start", {
24360
24365
  session: e,
@@ -24371,14 +24376,14 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24371
24376
  left: new e.Raycaster(),
24372
24377
  right: new e.Raycaster()
24373
24378
  }, this.xrControllerRay.left.params.Points = { threshold: .1 }, this.xrControllerRay.left.firstHitOnly = !0, this.xrControllerRay.left.floorIndex = -1, this.xrControllerRay.right.params.Points = { threshold: .1 }, this.xrControllerRay.right.firstHitOnly = !0, this.xrControllerRay.right.floorIndex = -1, this.gazeRay = null, this.pointerLines = {
24374
- left: new bv(),
24375
- right: new bv()
24379
+ left: new xv(),
24380
+ right: new xv()
24376
24381
  }, this.pointerLines.left.visible = !1, this.pointerLines.right.visible = !0, this.pointerLines.left.setMaterial({ color: new e.Vector3(1, 1, 1) }), this.pointerLines.left.points.material.depthTest = !1, this.pointerLines.right.setMaterial({ color: new e.Vector3(1, 1, 1) }), this.pointerLines.right.points.material.depthTest = !1, this.controllerWrappers = [new e.Group(), new e.Group()];
24377
24382
  let n = this.xrManager.getController(0);
24378
24383
  this.controllerWrappers[0].add(n);
24379
24384
  let r = this.xrManager.getController(1);
24380
24385
  this.controllerWrappers[1].add(r);
24381
- let i = new Fv();
24386
+ let i = new Iv();
24382
24387
  i.gltfLoader = { load(e, t) {
24383
24388
  pr.ajax(e, { responseType: "arraybuffer" }).then((t) => {
24384
24389
  var n;
@@ -24393,7 +24398,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24393
24398
  leftPanoPicture: null,
24394
24399
  position: this.camera.pose.offset.clone(),
24395
24400
  effect: "fade",
24396
- effectEasing: Jg,
24401
+ effectEasing: Yg,
24397
24402
  fixCameraTransform: new e.Matrix4()
24398
24403
  }, this.parallaxCameraMatrixs = [];
24399
24404
  let a = ri.shared.getContext();
@@ -24489,7 +24494,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24489
24494
  if (!l) throw Error("Invalid PanoIndex");
24490
24495
  let u = Yr(l.images.up), d = this.imageOptions.size;
24491
24496
  d === void 0 && l && u && (d = Number(u)), d === void 0 && (d = 2048);
24492
- let f = this.imageOptions.transform, p = (e, t) => Lv(qr(e, f, t)), m = Object.assign({ key: `pano.${c}` }, mr(this.imageOptions, [
24497
+ let f = this.imageOptions.transform, p = (e, t) => Rv(qr(e, f, t)), m = Object.assign({ key: `pano.${c}` }, mr(this.imageOptions, [
24493
24498
  "format",
24494
24499
  "size",
24495
24500
  "quality"
@@ -24532,7 +24537,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24532
24537
  let r = {
24533
24538
  panoId: c,
24534
24539
  effect: s,
24535
- effectEasing: (o = n.effectEasing) == null ? Jg : o,
24540
+ effectEasing: (o = n.effectEasing) == null ? Yg : o,
24536
24541
  leftPanoPicture: {
24537
24542
  panoId: b.panoId,
24538
24543
  map: b.map,
@@ -24545,7 +24550,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24545
24550
  fixCameraTransform: new e.Matrix4()
24546
24551
  };
24547
24552
  r.leftPanoPicture && this.panoPictureObserverMap.set(r.leftPanoPicture, l), this.pendingPanoTask = void 0, Promise.resolve().then(() => Dh(v)).catch((e) => {
24548
- let t = Jh(e);
24553
+ let t = Yh(e);
24549
24554
  return this.emit("error", t), t;
24550
24555
  }).then((e) => {
24551
24556
  var i, a;
@@ -24591,10 +24596,10 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24591
24596
  if (this.destroyed) o.dispose();
24592
24597
  else {
24593
24598
  o.name = g;
24594
- let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = new gm().formPixels(Hh(this.renderer, o, !0, fm).data), f = {
24599
+ let r = Array.isArray(o.image) ? o.image[0] : o.image, u = (i = r == null ? void 0 : r.width) == null ? 2048 : i, d = new gm().formPixels(Uh(this.renderer, o, !0, fm).data), f = {
24595
24600
  panoId: c,
24596
24601
  effect: s,
24597
- effectEasing: (a = n.effectEasing) == null ? Jg : a,
24602
+ effectEasing: (a = n.effectEasing) == null ? Yg : a,
24598
24603
  leftPanoPicture: {
24599
24604
  panoId: c,
24600
24605
  map: o,
@@ -24659,14 +24664,14 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24659
24664
  pano: t
24660
24665
  })), ((n = this.pendingPanoTask) == null ? void 0 : n.hash) === g && ((r = this.panoMeshes.get(c)) == null || r.setProgress(e));
24661
24666
  }, this.renderer)).catch((e) => {
24662
- let n = Jh(e);
24667
+ let n = Yh(e);
24663
24668
  return this.emit("pano.texture.error", Q("pano.texture.error", {
24664
24669
  error: n,
24665
24670
  progress: 0,
24666
24671
  meta: null,
24667
24672
  pano: t
24668
24673
  })), n;
24669
- }), Promise.resolve().then(() => Dh(v)).catch((e) => Jh(e))]).then(([e, n]) => {
24674
+ }), Promise.resolve().then(() => Dh(v)).catch((e) => Yh(e))]).then(([e, n]) => {
24670
24675
  var r, i, a, o;
24671
24676
  if (!(e instanceof Error) && !(n instanceof Error)) this.pending.delete(_), ((r = this.pendingPanoTask) == null ? void 0 : r.hash) === g ? (this.pendingPanoTask.onLoad(e), this.pendingPanoTask = void 0, (i = this.panoMeshes.get(c)) == null || i.setProgress(0)) : e.body.dispose(), this.emit("pano.texture.success", Q("pano.texture.success", {
24672
24677
  error: null,
@@ -24840,7 +24845,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24840
24845
  panoMatrix: n.matrix.clone().premultiply(n.work.transform),
24841
24846
  alpha: 1
24842
24847
  }, t = $t(), r = this.videoTexture.image;
24843
- r.setAttribute("uuid", t), ag().then((i) => {
24848
+ r.setAttribute("uuid", t), og().then((i) => {
24844
24849
  i && n.images.video && r.getAttribute("uuid") === t && (r.oncanplay = () => {
24845
24850
  r.oncanplay = K, r.play();
24846
24851
  }, r.ontimeupdate = () => {
@@ -24874,16 +24879,16 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24874
24879
  let a = i.work.observers, o = i.accessibleNodes.filter((e) => {
24875
24880
  if (e === this.currentPano.panoIndex && i.work.workCode === this.currentPano.workCode) return !1;
24876
24881
  let t = a[e];
24877
- return !t || Bv.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
24882
+ return !t || Vv.copy(t.position).applyMatrix4(t.work.transform).distanceTo(this.camera.position) > this.maxAccessibleDistance ? !1 : t.loadable || t.active;
24878
24883
  }), [s] = this.modelScene.intersectRaycaster(t);
24879
24884
  if (s) {
24880
24885
  let [e, t] = Rl(o, (e) => {
24881
24886
  let t = a[e];
24882
- return t ? Bv.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(s.point) : Infinity;
24887
+ return t ? Vv.copy(t.standingPosition).applyMatrix4(t.work.transform).distanceTo(s.point) : Infinity;
24883
24888
  }, !0);
24884
24889
  typeof e == "number" && t < this.panoTapTriggerRadius && (r = (n = a[e]) == null ? null : n);
24885
24890
  }
24886
- if (nv(r)) {
24891
+ if (rv(r)) {
24887
24892
  let e = this.getForwardObserverOrNot(this.xrManager.cameraVR, t);
24888
24893
  e && (r = e);
24889
24894
  }
@@ -24900,7 +24905,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
24900
24905
  }
24901
24906
  }
24902
24907
  }
24903
- if (nv(r)) return this.locationMotion.ended === !0 && this.cameraBounce(), null;
24908
+ if (rv(r)) return this.locationMotion.ended === !0 && this.cameraBounce(), null;
24904
24909
  if (!r.active) {
24905
24910
  let e = Z({
24906
24911
  panoIndex: r.panoIndex,
@@ -25091,9 +25096,9 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25091
25096
  let t = .3, i = .005, a = n.standingPosition.clone().applyMatrix4(n.work.transform), o = Z({
25092
25097
  panoIndex: n.panoIndex,
25093
25098
  workCode: n.work.workCode
25094
- }), s = Zg.map((n) => {
25095
- zv.ray.origin.copy(a), zv.ray.origin.add(Bv.copy(n).setY(t)), zv.ray.direction.set(0, -1, 0), zv.firstHitOnly = !0, zv.floorIndex = -1;
25096
- let [o] = r.intersectRaycaster(zv);
25099
+ }), s = Qg.map((n) => {
25100
+ Bv.ray.origin.copy(a), Bv.ray.origin.add(Vv.copy(n).setY(t)), Bv.ray.direction.set(0, -1, 0), Bv.firstHitOnly = !0, Bv.floorIndex = -1;
25101
+ let [o] = r.intersectRaycaster(Bv);
25097
25102
  return o && o.distance - i <= t ? new e.Vector3().copy(a).setY(o.point.y + i) : a;
25098
25103
  });
25099
25104
  s.sort((e, t) => t.y - e.y);
@@ -25140,7 +25145,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25140
25145
  else {
25141
25146
  t.position.copy(r.standingPosition).applyMatrix4(r.work.transform);
25142
25147
  let e = this.adjustPanoCircleMeshPositionFix.get(r.panoId);
25143
- e && (Bv.set(e.x, e.y, e.z), Bv.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
25148
+ e && (Vv.set(e.x, e.y, e.z), Vv.equals(t.position) && (t.position.y += e.w)), t.scale.setScalar(1.2);
25144
25149
  }
25145
25150
  let a = this.camera.position.clone().setY(t.position.y), o = new e.Vector3().copy(t.position).sub(a).normalize();
25146
25151
  if (n === Z(this.currentPano)) {
@@ -25243,9 +25248,9 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25243
25248
  generateMipmaps: !1
25244
25249
  });
25245
25250
  let t = new e.CubeCamera(this.camera.near, this.camera.far, this.pano0DepthCubeRenderTarget);
25246
- t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, t, 500);
25251
+ t.matrix.copy(n.matrix), t.matrixWorld.copy(t.matrix), t.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, t, 500);
25247
25252
  let i = new e.CubeCamera(this.camera.near, this.camera.far, this.pano1DepthCubeRenderTarget);
25248
- i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, qg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
25253
+ i.matrix.copy(r.matrix), i.matrixWorld.copy(i.matrix), i.matrixAutoUpdate = !1, Jg(this.renderer, this.modelScene, i, 500), this.modelScene.parameter.set({
25249
25254
  pano0Depth: {
25250
25255
  panoId: n.panoId,
25251
25256
  map: this.pano0DepthCubeRenderTarget.texture,
@@ -25340,7 +25345,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25340
25345
  leftRay: r,
25341
25346
  rightRay: i
25342
25347
  } }
25343
- }))) : n - this.xrHandleState[t].touchStartTime > Rv && this.emit("xr.gesture.press", Q("xr.gesture.tap", {
25348
+ }))) : n - this.xrHandleState[t].touchStartTime > zv && this.emit("xr.gesture.press", Q("xr.gesture.tap", {
25344
25349
  session: this.xrManager.session,
25345
25350
  machineType: this.xrManager.machineType,
25346
25351
  buttons: t,
@@ -25362,7 +25367,7 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25362
25367
  leftRay: r,
25363
25368
  rightRay: i
25364
25369
  } }
25365
- })), n - this.xrHandleState[t].touchStartTime <= Rv) {
25370
+ })), n - this.xrHandleState[t].touchStartTime <= zv) {
25366
25371
  let e = Q("xr.gesture.tap", {
25367
25372
  session: this.xrManager.session,
25368
25373
  machineType: this.xrManager.machineType,
@@ -25386,18 +25391,18 @@ var Rv = 300, zv = new e.Raycaster(), Bv = new e.Vector3(), Vv = {
25386
25391
  });
25387
25392
  }
25388
25393
  }
25389
- }, Hv = {
25390
- Floorplan: Zh,
25391
- Topview: $h,
25392
- Panorama: Qg,
25393
- VRPanorama: U_,
25394
- Model: J_,
25395
- Mapview: ev,
25396
- XRPanorama: Iv
25397
- }, Uv = /* @__PURE__ */ "gesture.pan,gesture.tap,gesture.dbltap,gesture.press,gesture.pinch,gesture.mousewheel,gesture.mousemove,gesture.momentum,gesture.fire,initAnimation.start,initAnimation.end,camera.update,intersect.update,pano.select,pano.moveTo,pano.moving,pano.arrived,pano.cancel,pano.error,pano.prepare,pano.texture.load,pano.texture.progress,pano.texture.success,pano.texture.error,pano.texture.abort,xr.session.start,xr.session.end,xr.gesture.tap,xr.gesture.press,xr.gesture.buttonUp,xr.gesture.buttonDown,xr.controller.update".split(",");
25394
+ }, Uv = {
25395
+ Floorplan: Qh,
25396
+ Topview: eg,
25397
+ Panorama: $g,
25398
+ VRPanorama: W_,
25399
+ Model: Y_,
25400
+ Mapview: tv,
25401
+ XRPanorama: Lv
25402
+ }, Wv = /* @__PURE__ */ "gesture.pan,gesture.tap,gesture.dbltap,gesture.press,gesture.pinch,gesture.mousewheel,gesture.mousemove,gesture.momentum,gesture.fire,initAnimation.start,initAnimation.end,camera.update,intersect.update,pano.select,pano.moveTo,pano.moving,pano.arrived,pano.cancel,pano.error,pano.prepare,pano.texture.load,pano.texture.progress,pano.texture.success,pano.texture.error,pano.texture.abort,xr.session.start,xr.session.end,xr.gesture.tap,xr.gesture.press,xr.gesture.buttonUp,xr.gesture.buttonDown,xr.controller.update".split(",");
25398
25403
  //#endregion
25399
25404
  //#region build/five/application/events-legacy.js
25400
- function Wv(e) {
25405
+ function Gv(e) {
25401
25406
  e.on("initAnimation.start", (t) => {
25402
25407
  e.emit("initAnimationWillStart", t.state.panoIndex, t.state, t.userAction);
25403
25408
  }), e.on("initAnimation.end", (t) => {
@@ -25539,7 +25544,7 @@ function Wv(e) {
25539
25544
  }
25540
25545
  //#endregion
25541
25546
  //#region build/five/application/generateDefaultVideoElement.js
25542
- function Gv() {
25547
+ function Kv() {
25543
25548
  if (typeof window < "u") {
25544
25549
  let e = document.createElement("video");
25545
25550
  e.loop = !0, e.autoplay = !0, e.playsInline = !0, e.muted = !0, e.crossOrigin = "";
@@ -25551,7 +25556,7 @@ function Gv() {
25551
25556
  }
25552
25557
  //#endregion
25553
25558
  //#region build/five/application/initLights.js
25554
- function Kv() {
25559
+ function qv() {
25555
25560
  let t = new e.Group();
25556
25561
  t.name = "internalLights";
25557
25562
  {
@@ -25574,7 +25579,7 @@ function Kv() {
25574
25579
  }
25575
25580
  //#endregion
25576
25581
  //#region build/five/application/getViewportScale.js
25577
- function qv(e) {
25582
+ function Jv(e) {
25578
25583
  var t, n;
25579
25584
  let r = {}, i = e.split(/(\;|\,)/);
25580
25585
  for (let e of i) {
@@ -25583,14 +25588,14 @@ function qv(e) {
25583
25588
  }
25584
25589
  return r;
25585
25590
  }
25586
- function Jv() {
25591
+ function Yv() {
25587
25592
  var e;
25588
25593
  if (typeof document < "u") {
25589
25594
  let t = document.getElementsByTagName("meta");
25590
25595
  for (let n = 0; n < t.length; n++) {
25591
25596
  let r = t[n];
25592
25597
  if (r.getAttribute("name") === "viewport") {
25593
- let t = qv((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
25598
+ let t = Jv((e = r.getAttribute("content")) == null ? "" : e), n = Number(t["initial-scale"]);
25594
25599
  if (!isNaN(n)) return n;
25595
25600
  }
25596
25601
  }
@@ -25599,7 +25604,7 @@ function Jv() {
25599
25604
  }
25600
25605
  //#endregion
25601
25606
  //#region build/five/assets/realsee-png-data-url.js
25602
- var Yv = "data:image/png;base64,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", Xv = [351, 63], Zv = [20, 20], Qv = new Float32Array([
25607
+ var Xv = "data:image/png;base64,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", Zv = [351, 63], Qv = [20, 20], $v = new Float32Array([
25603
25608
  -.5,
25604
25609
  -.5,
25605
25610
  0,
@@ -25612,7 +25617,7 @@ var Yv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
25612
25617
  .5,
25613
25618
  .5,
25614
25619
  0
25615
- ]), $v = new Float32Array([
25620
+ ]), ey = new Float32Array([
25616
25621
  0,
25617
25622
  0,
25618
25623
  1,
@@ -25621,57 +25626,57 @@ var Yv = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV8AAAA/CAQAAADtPwPkAAAR
25621
25626
  1,
25622
25627
  1,
25623
25628
  1
25624
- ]), ey = new Uint8Array([
25629
+ ]), ty = new Uint8Array([
25625
25630
  0,
25626
25631
  1,
25627
25632
  2,
25628
25633
  1,
25629
25634
  3,
25630
25635
  2
25631
- ]), ty = new e.BufferGeometry();
25632
- ty.setAttribute("position", new e.BufferAttribute(Qv, 3)), ty.setAttribute("uv", new e.BufferAttribute($v, 2)), ty.setIndex(new e.BufferAttribute(ey, 1));
25633
- var ny = new e.MeshBasicMaterial({
25636
+ ]), ny = new e.BufferGeometry();
25637
+ ny.setAttribute("position", new e.BufferAttribute($v, 3)), ny.setAttribute("uv", new e.BufferAttribute(ey, 2)), ny.setIndex(new e.BufferAttribute(ty, 1));
25638
+ var ry = new e.MeshBasicMaterial({
25634
25639
  transparent: !0,
25635
25640
  depthTest: !1,
25636
25641
  depthWrite: !1,
25637
25642
  stencilWrite: !1,
25638
25643
  fog: !1
25639
- }), ry = new e.Mesh(ty, ny);
25640
- ry.matrixAutoUpdate = !1;
25641
- var iy = new e.Scene();
25642
- iy.add(ry), iy.matrixAutoUpdate = !1;
25643
- var ay = new e.OrthographicCamera(-.5, .5, .5, -.5, .1, 1);
25644
- ay.position.set(0, 0, .5), ay.lookAt(0, 0, 0), ay.updateMatrixWorld(!0), ay.matrixAutoUpdate = !1;
25645
- var oy = new e.Vector4(), sy = new e.Vector4();
25646
- function cy(t) {
25647
- if (ny.map) {
25648
- let e = t.getViewport(oy), n = t.getScissor(sy), r = t.getScissorTest(), i = t.autoClear, a = n.x + Zv[0] / 3, o = n.y + Zv[1] / 3, s = Xv[0] / 3, c = Xv[1] / 3;
25649
- t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(iy, ay), t.setViewport(e), t.setScissor(n), t.setScissorTest(r), t.autoClear = i;
25644
+ }), iy = new e.Mesh(ny, ry);
25645
+ iy.matrixAutoUpdate = !1;
25646
+ var ay = new e.Scene();
25647
+ ay.add(iy), ay.matrixAutoUpdate = !1;
25648
+ var oy = new e.OrthographicCamera(-.5, .5, .5, -.5, .1, 1);
25649
+ oy.position.set(0, 0, .5), oy.lookAt(0, 0, 0), oy.updateMatrixWorld(!0), oy.matrixAutoUpdate = !1;
25650
+ var sy = new e.Vector4(), cy = new e.Vector4();
25651
+ function ly(t) {
25652
+ if (ry.map) {
25653
+ let e = t.getViewport(sy), n = t.getScissor(cy), r = t.getScissorTest(), i = t.autoClear, a = n.x + Qv[0] / 3, o = n.y + Qv[1] / 3, s = Zv[0] / 3, c = Zv[1] / 3;
25654
+ t.setViewport(a, o, s, c), t.setScissor(a, o, s, c), t.setScissorTest(!0), t.autoClear = !1, t.render(ay, oy), t.setViewport(e), t.setScissor(n), t.setScissorTest(r), t.autoClear = i;
25650
25655
  } else {
25651
25656
  let t = new e.Texture(), n = new Image();
25652
25657
  n.onload = () => {
25653
- t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1, ny.needsUpdate = !0, n.onload = K;
25654
- }, n.src = Yv, ny.map = t;
25658
+ t.image = n, t.wrapS = e.ClampToEdgeWrapping, t.wrapT = e.ClampToEdgeWrapping, t.minFilter = e.LinearFilter, t.needsUpdate = !0, t.generateMipmaps = !1, ry.needsUpdate = !0, n.onload = K;
25659
+ }, n.src = Xv, ry.map = t;
25655
25660
  }
25656
25661
  }
25657
25662
  //#endregion
25658
25663
  //#region build/five/gaussian-splatting/worker/dataWorker.js?worker&inline
25659
- var ly = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0&\\`\\`}}\\`}\\`\\0\\`\\v\\0\\`\\0\\0\\x07aa\\0\\0\\b\\x07\\0\\0\\x07‚€€\\bA€Œ\\v\\x07b\\0c\\0\\x07d\\0e\\0f\\0\\f\n™@\\x07T~@A€\\b(\\0\"­ \\0­B\\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA„\\bA06\\0A\\vA€\\b \\x006\\0 \\v\\0 \\0 Atr\\vr \\0¼\"Aÿÿÿq!@ AvAÿq\"E\\r\\0 Að\\0M@ A€€€rAñ\\0 kv!\\f\\v AK@A€ø!A\\0!\\f\\v A\ntA€€\\x07k!\\v  AvA€€qr A\\rvr\\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r  (\\0\"k\"A˜\\b(\\0I\\r \\0 j!\\0@@@Aœ\\b(\\0 G@ (\\f! AÿM@  (\\b\"G\\rAˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0  A~q6  \\0Ar6  \\x006\\0\\v  6\\f  6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v  \\x076 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 Aœ\\b(\\0G\\rA\\bA\\x006\\0Aœ\\bA\\x006\\0\\vAœ\\b(\\0\"\\x07 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!\\b  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v  A~q6  \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v  \\b6 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  \\0Ar6 \\0 j \\x006\\0  \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!Aˆ\\b(\\0\"A \\0Avt\"\\0qE@Aˆ\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0  6\\b \\0 6\\f  6\\f  \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v  6 B\\x007 AtA¸\nj!@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0  6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At!  Aqj\"(\"\\r\\0\\v  6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f  6\\bA!\\0A\\b!A\\0\\v!  j 6\\0  6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@Aˆ\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@Aˆ\\b A~ wq6\\0\\f\\v  \\x006\\f \\0 6\\b\\v A\\bj!\\0  Ar6  j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr  \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@Aˆ\\b A~ wq\"6\\0\\f\\v  6\\f  6\\b\\v \\0 Ar6 \\0 j\"\\x07  k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!Aœ\\b(\\0! A \\bAvt\"qE@Aˆ\\b  r6\\0 \\f\\v (\\b\\v!  6\\b  6\\f  6\\f  6\\b\\v \\0A\\bj!\\0Aœ\\b \\x076\\0A\\b 6\\0\\f\\v\\vAŒ\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\"   I\"\\x1B! \\0  \\x1B! \\0!\\f\\v\\v (!  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!AŒ\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\"   AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I!   \\x1B! \\0  \\x1B! \\0(\"  \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@Aœ\\b(\\0!\\0@  k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0Aœ\\b 6\\0 \\0A\\bj!\\0\\f \\v A”\\b(\\0\"I@A”\\b  k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB€\\xA0€€€€7\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A€ \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM  Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@  \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@  k  jA\\0 \\0kqj!\\v  M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v  k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\"  kjA\\0 kq\"AF\\r  j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@  \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA˜\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A˜\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b  6¼\\b \\0Aj\"\\0A G\\r\\0\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b  j\"6\\0  Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v  M  Kr\\r \\0(\\fA\\bq\\r \\0  j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A”\\bA”\\b(\\0 j\" \\0k\"\\x006\\0  \\0Ar6  jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA˜\\b(\\0 K@A˜\\b 6\\0\\v  j!AÈ\\v!\\0@@  \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@   \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b  j\"6\\0  \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0  A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v  F\\r\\0  (A~q6   k\"Ar6  6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@AŒ\\b(\\0\"A \\0t\"qE@AŒ\\b  r6\\0  6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"(\"\\r\\0\\v  6\\v  6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f  6\\b  \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0  j \\x006\\0\\vA”\\b(\\0\"\\0 M\\r\\0A”\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA„\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\"  \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6\\f\\vAœ\\b(\\0 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ \\0Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!@  G@ (\\b\"\\0 6\\f  \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ \\0wq6\\0\\f\\v@  (F@  6\\f\\v  6\\v E\\r\\v  6 (\"\\0@  \\x006 \\0 6\\v (\"\\0E\\r\\0  \\x006 \\0 6\\v \\x07 j!\\x07  j\"(!\\0\\v  \\0A~q6  \\x07Ar6  \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0Aˆ\\b(\\0\"A \\x07Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v  6 B\\x007 AtA¸\nj!\\0@@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v  6\\v  \\x006  6\\f  6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006  \\x006\\f  6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\x07A~ wq\"\\x076\\0\\f\\v@  \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@AŒ\\b  \\x07r6\\0  6\\0  6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"\\x07(\"\\r\\0\\v \\x07 6  6\\v  6\\f  6\\b\\f\\v (\\b\"\\0 6\\f  6\\b A\\x006  6\\f  \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\vA~ wq6\\0\\f\\v@  (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 \\b@ \\bAxqA°\\bj!\\0Aœ\\b(\\0!A \\bAvt\"\\x07 qE@Aˆ\\b  \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\vAœ\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v¡\\v\\v }#\\0A\\xA0k\"\\v$\\0 \\vA0jA\\0A$ü\\v\\0@  G@  Al\"\\fAjAt\"j*\\0!  \\fAjAt\"j*\\0! \\b \\fAt\"j  j*\\0\"8\\0 \\b j 8\\0 \\b j 8\\0 \\x07 Atj\"\\rA\\x006\\f \\r 8\\b \\r 8 \\r 8\\0@ \\0E@  j-\\0\\0E\\r\\v \\rA€€€\\b6\\f\\v \\r  At\"\\fAr\"j-\\0\\0A\\bt  \\fj-\\0\\0r  \\fAr\"j-\\0\\0Atr  \\fAr\"\\fj-\\0\\0Atr6 \\v  At\"j*\\0\"8 \\v  At\"j*\\0\"8” \\v  \\fAt\"j*\\0\"8˜ \\v  At\"j*\\0Œ\"8œ \\vAà\\0j\"\\f \\v*˜\"C\\0\\0\\0À” ” \\v*”\"C\\0\\0\\0À” ”C\\0\\0€?’’8\\0 \\f \\v*\" ’ \\v*”” \\v*˜\" ’ \\v*œ”“8 \\f \\v*\" ’ \\v*˜” \\v*”\" ’ \\v*œ”’8\\b \\f \\v*\" ’ \\v*”” \\v*˜\" ’ \\v*œ”’8\\f \\f \\v*˜\"C\\0\\0\\0À” ” \\v*\"C\\0\\0\\0À” ”C\\0\\0€?’’8 \\f \\v*”\" ’ \\v*˜” \\v*\" ’ \\v*œ”“8 \\f \\v*\" ’ \\v*˜” \\v*”\" ’ \\v*œ”“8 \\f \\v*”\" ’ \\v*˜” \\v*\" ’ \\v*œ”’8 \\f \\v*”\"C\\0\\0\\0À” ” \\v*\"C\\0\\0\\0À” ”C\\0\\0€?’’8 j 8\\0 j 8\\0 j 8\\0 j 8\\0 \\v  j*\\0\"80 \\v  j*\\0\"8@ \\v  j*\\0\"8P \n j 8\\0 \n j 8\\0 \n j 8\\0 \\v \\f* \\v*8” \\f*\\0 \\v*0” \\f*\\f \\v*4”’’8\\0 \\v \\f* \\v*8” \\f* \\v*0” \\f* \\v*4”’’8 \\v \\f* \\v*8” \\f*\\b \\v*0” \\f* \\v*4”’’8\\b \\v \\f* \\v*D” \\f*\\0 \\v*<” \\f*\\f \\v*@”’’8\\f \\v \\f* \\v*D” \\f* \\v*<” \\f* \\v*@”’’8 \\v \\f* \\v*D” \\f*\\b \\v*<” \\f* \\v*@”’’8 \\v \\f* \\v*P” \\f*\\0 \\v*H” \\f*\\f \\v*L”’’8 \\v \\f* \\v*P” \\f* \\v*H” \\f* \\v*L”’’8 \\v \\f* \\v*P” \\f*\\b \\v*H” \\f* \\v*L”’’8 \\v* ! \\v*\\b! \\v*! \\r \\v*\" ” \\v*\\0\" ” \\v*\\f\"\\x1B \\x1B”’’C\\0\\0€@”  \\v*\"”  \\v*\"” \\x1B \\v*\"”’’C\\0\\0€@”6 \\r  ”  ” \\x1B ”’’C\\0\\0€@”  ”  ”  ”’’C\\0\\0€@”6 \\r  ”  ”  ”’’C\\0\\0€@”  ”  ”  ”’’C\\0\\0€@”6 Aj!\\f\\v\\v \\vA\\xA0j$\\0\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._pack=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i=0,a=[],o=!1,s=!1,c,l,u,d,f,p,m,h,g,_=t=>e(void 0,void 0,void 0,function*(){for(;s;)yield new Promise(e=>setTimeout(e,0));n||(s=!0,yield r(),s=!1);let e=2**Math.ceil(Math.log2(t.vertexCount));e>i&&(i>0&&(n._free(c),n._free(l),n._free(u),n._free(d),n._free(f),n._free(p),n._free(m),n._free(h),n._free(g)),i=e,c=n._malloc(3*i*4),l=n._malloc(4*i*4),u=n._malloc(3*i*4),d=n._malloc(4*i),f=n._malloc(i),p=n._malloc(8*i*4),m=n._malloc(3*i*4),h=n._malloc(4*i*4),g=n._malloc(3*i*4)),n.HEAPF32.set(t.positions,c/4),n.HEAPF32.set(t.rotations,l/4),n.HEAPF32.set(t.scales,u/4),n.HEAPU8.set(t.colors,d),n.HEAPU8.set(t.selection,f),n._pack(t.selected,t.vertexCount,c,l,u,d,f,p,m,h,g);let a=new Uint32Array(n.HEAPU32.buffer,p,t.vertexCount*8),_=new Uint32Array(a.slice().buffer),v=new Float32Array(n.HEAPF32.buffer,m,t.vertexCount*3),y=new Float32Array(v.slice().buffer),b=new Float32Array(n.HEAPF32.buffer,h,t.vertexCount*4),x=new Float32Array(b.slice().buffer),S=new Float32Array(n.HEAPF32.buffer,g,t.vertexCount*3),C={data:_,worldPositions:y,worldRotations:x,worldScales:new Float32Array(S.slice().buffer),offset:t.offset,vertexCount:t.vertexCount,positions:t.positions.buffer,rotations:t.rotations.buffer,scales:t.scales.buffer,colors:t.colors.buffer,selection:t.selection.buffer};self.postMessage({response:C},[C.data.buffer,C.worldPositions.buffer,C.worldRotations.buffer,C.worldScales.buffer,C.positions,C.rotations,C.scales,C.colors,C.selection]),o=!1}),v=()=>{a.length!==0&&(o||(o=!0,_(a.shift()),setTimeout(()=>{o=!1,v()},0)))};self.onmessage=e=>new Promise((t,n)=>{if(e.data.splat){let n=e.data.splat;for(let e=0;e<a.length;e++)if(a[e].offset===n.offset){a[e]=n,t(!0);return}a.push(n),v(),t(!0)}})})();", uy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", ly], { type: "text/javascript;charset=utf-8" });
25660
- function dy(e) {
25664
+ var uy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\00\\b\\`\\`}}\\`|}\\`}\\`||\\`\\v\\0\\`\\0\\`\\0\\0\\x07aa\\0\\0\\r\\0\\0\\x07\\x07‚€€\\bAÀ¤\\v\\x07b\\0c\\0\\rd\\0\ne\\0\\ff\\0\\v\\f\núT\\rO| \\0 \\0¢\"\\0 \\0 \\0¢\"¢ \\0DiPîàB“ù>¢D'è‡ÀV¿\\xA0¢ DB:áSU¥?¢ \\0D^\\fýÿÿß¿¢D\\0\\0\\0\\0\\0\\0ð?\\xA0\\xA0\\xA0¶\\vT~@AÀ (\\0\"­ \\0­B\\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vAÄ A06\\0A\\vAÀ \\x006\\0 \\vK| \\0 \\0 \\0¢\"¢\"  ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù\\0*¿\\xA0¢  D²ûn‰?¢Dw¬ËTUUÅ¿\\xA0¢ \\0\\xA0\\xA0¶\\v¨\\0@ A€\\bN@ \\0D\\0\\0\\0\\0\\0\\0à¢!\\0 AÿI@ Aÿ\\x07k!\\f\\v \\0D\\0\\0\\0\\0\\0\\0à¢!\\0Aý  AýO\\x1BAþk!\\f\\v AxJ\\r\\0 \\0D\\0\\0\\0\\0\\0\\0\\`¢!\\0 A¸pK@ AÉ\\x07j!\\f\\v \\0D\\0\\0\\0\\0\\0\\0\\`¢!\\0Aðh  AðhM\\x1BA’j!\\v \\0 Aÿ\\x07j­B4†¿¢\\v…} \\0¼\"AvAÿq\"A•M} Aý\\0M@ \\0C\\0\\0\\0\\0”\\v} \\0‹\"\\0C\\0\\0\\0K’C\\0\\0\\0˒ \\0“\"C\\0\\0\\0?^@ \\0 ’C\\0\\0€¿’\\f\\v \\0 ’\"\\0 C\\0\\0\\0¿_E\\r\\0 \\0C\\0\\0€?’\\v\"\\0Œ \\0 A\\0H\\x1B \\0\\v\\v!\\0 \\0C\\0\\0\\0\\0—C\\0\\0\\0\\0 \\0¼Aÿÿÿÿ\\x07qA€€€ü\\x07M\\x1B\\v+\\0 \\0 \\0 \\0CkÓ\\r¼”Cº/½’”Cuª*>’” \\0C®å4¿”C\\0\\0€?’•\\vÈ| \\0C\\`B¢\\r]A\\0AÿA}C\\0\\0\\0\\0 \\0¼\"A€€€üF\\r\\0@ A€€€ü\\x07kAÿÿÿ‡xM@ At\"E@#\\0Ak\"C\\0\\0€¿8\\f *\\fC\\0\\0\\0\\0•\\f\\v A€€€ü\\x07F\\r A€€€xI A\\0NqE@ \\0 \\0“\"\\0 \\0•\\f\\v \\0C\\0\\0\\0K”¼A€€€Ü\\0k!\\vAˆ\n+\\0  A€€Ìùk\"A€€€|qk¾» AvAðq\"+€\\b¢D\\0\\0\\0\\0\\0\\0ð¿\\xA0\" ¢\"¢A\n+\\0 ¢A˜\n+\\0\\xA0\\xA0 ¢ Au·A€\n+\\0¢ +ˆ\\b\\xA0 \\xA0\\xA0¶!\\0\\v \\0\\vC\\0\\0@A’C\\0\\0¨A•C\\0\\0~C”C\\0\\0€?’ü\\0\" AL\\x1B\" AÿN\\x1B\\vAÿq\\vr \\0¼\"Aÿÿÿq!@ AvAÿq\"E\\r\\0 Að\\0M@ A€€€rAñ\\0 kv!\\f\\v AK@A€ø!A\\0!\\f\\v A\ntA€€\\x07k!\\v  AvA€€qr A\\rvr\\v¬|\n}@  $G@  $A\\fl\"\\0Aj\"j*\\0!  \\0A\\bj\"j*\\0! \\0 \\bj \\0 j*\\0\"8\\0 \\b j 8\\0  \\bj 8\\0 $At\"\\x1Bj  \\x1Bj\"*\\x008\\0 $At\"Ar\"At\"j  j\"*\\x008\\0 Ar\"At\"%j  %j\" *\\x008\\0 Ar\"!At\"&j  &j\"\"*\\x008\\0 \\0 \nj \\0 j\"'*\\x008\\0  \nj  j\"(*\\x008\\0 \n j  j*\\0\"8\\0 \\x07 \\x1Bj  j-\\0\\0  j-\\0\\0A\\btr  j-\\0\\0Atr  !j-\\0\\0Atr6\\0 \\x07 j   Atr6\\0 *\\0\" ” \"*\\0\" ” *\\0\" ” *\\0\" ”’’’\"C\\0\\0\\0\\0^@  ‘\"•!  •!  •!  •!\\vC\\0\\0€?!C\\0\\0\\0\\0!C\\0\\0\\0\\0!} C\\0\\0\\0\\0]@ Œ! Œ! Œ! Œ!\\v C\\0\\0€? C\\0\\0€?]\\x1B\"¼\"Aÿÿÿÿ\\x07q\"\\0A€€€üO@C\\0\\0\\0\\0CÚI@ A\\0N\\x1B \\0A€€€üF\\rC\\0\\0\\0\\0  “•\\f\\v} \\0Aÿÿÿ÷M@CÚÉ? \\0A€€”I\\rCh!¢3   ”\\x07”“ “CÚÉ?’\\f\\v A\\0H@CÚÉ? C\\0\\0€?’C\\0\\0\\0?”\"‘\"  \\x07”Ch!¢³’’“\" ’\\f\\vC\\0\\0€? “C\\0\\0\\0?”\"‘\" \\x07”  ¼A€\\`q¾\" ”“  ’•’ ’\" ’\\v\\v\"!#\\0Ak\"$\\0@ ¼\"Aÿÿÿÿ\\x07q\"\\0Aڟ¤úM@ \\0A€€€ÌI\\r »!\\f\\v \\0AѧíƒM@ »!\\v \\0Aã—Û€M@ A\\0H@ \\vD-DTû!ù?\\xA0Œ!\\f\\v \\vD-DTû!ù¿\\xA0!\\f\\vD-DTû! ÀD-DTû! @ A\\0N\\x1B \\v\\xA0š!\\f\\v \\0AÕ㈇M@ \\0AßÛ¿…M@ »!\\v A\\0H@ \\vDÒ!3|Ù@\\xA0!\\f\\v \\vDÒ!3|ÙÀ\\xA0Œ!\\f\\vD-DTû!@D-DTû!À A\\0H\\x1B »\\xA0!\\f\\v \\0A€€€ü\\x07O@  “!\\f\\v#\\0Ak\"$\\0@ ¼\")Aÿÿÿÿ\\x07q\"\\0Aڟ¤îM@  »\"\\f \\fDƒÈÉm0_ä?¢D\\0\\0\\0\\0\\0\\x008C\\xA0D\\0\\0\\0\\0\\0\\x008Ã\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA0\"\\r9\\b \\vü!\\0 \\rD\\0\\0\\0\\`û!é¿c@  \\f \\vD\\0\\0\\0\\0\\0\\0ð¿\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA09\\b \\0Ak!\\0\\f\\v \\rD\\0\\0\\0\\`û!é?dE\\r  \\f \\vD\\0\\0\\0\\0\\0\\0ð?\\xA0\"\\vD\\0\\0\\0Pû!ù¿¢\\xA0 \\vDcba´Q¾¢\\xA09\\b \\0Aj!\\0\\f\\v \\0A€€€ü\\x07O@   “»9\\bA\\0!\\0\\f\\v  \\0 \\0AvA–k\"\\0Atk¾»9\\b A\\bj!\"A\\0!#\\0A°k\"$\\0 \\0 \\0AkAm\"A\\0 A\\0J\\x1B\"Ahlj!A\\xA0\n(\\0\"A\\0N@ Aj!\\0 !@ AÀj Atj A\\0H|D\\0\\0\\0\\0\\0\\0\\0\\0 At(°\n·\\v9\\0 Aj! Aj\" \\0G\\r\\0\\v\\v Ak!\\x1BA\\0!\\0 A\\0 A\\0J\\x1B!@A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ \" Atj+\\0 AÀj \\0 kAtj+\\0¢ \\v\\xA0!\\v Aj\"AG\\r\\0\\v  \\0Atj \\v9\\0 \\0 F \\0Aj!\\0E\\r\\0\\vA/ k!*A0 k!# AtA°\nj!+ Ak!, !\\0@@  \\0Atj+\\0!\\vA\\0! \\0! \\0A\\0J@@ Aàj Atj \\vD\\0\\0\\0\\0\\0\\0p>¢ü·\"\\fD\\0\\0\\0\\0\\0\\0pÁ¢ \\v\\xA0ü6\\0  AtjA\\bk+\\0 \\f\\xA0!\\v Ak! Aj\" \\0G\\r\\0\\v\\v \\v \\x1B\"\\v \\vD\\0\\0\\0\\0\\0\\0À?¢œD\\0\\0\\0\\0\\0\\0 À¢\\xA0\"\\v \\vü\" ·¡!\\v@@@ \\x1BA\\0L\"-E@ \\0At j\" (Ü\"  #u\" #tk\"6Ü  j!  *u\\f\\v \\x1B\\r \\0At j(ÜAu\\v\"!A\\0L\\r\\f\\vA!! \\vD\\0\\0\\0\\0\\0\\0à?f\\r\\0A\\0!!\\f\\vA\\0!A\\0!A! \\0A\\0J@@ Aàj Atj\".(\\0!@ . Aÿÿÿ\\x07 E\\rA€€€\\b\\v k6\\0A!A\\0\\f\\vA\\0!A\\v! Aj\" \\0G\\r\\0\\v\\v@ -\\r\\0Aÿÿÿ!@@ ,\\0\\vAÿÿÿ!\\v \\0At j\" (Ü q6Ü\\v Aj! !AG\\r\\0D\\0\\0\\0\\0\\0\\0ð? \\v¡!\\vA!! \\r\\0 \\vD\\0\\0\\0\\0\\0\\0ð? \\x1B¡!\\v\\v \\vD\\0\\0\\0\\0\\0\\0\\0\\0a@A\\0! \\0!@ \\0 L\\r\\0@ Aàj Ak\"Atj(\\0 r!  J\\r\\0\\v E\\r\\0@ \\x1BAk!\\x1B Aàj \\0Ak\"\\0Atj(\\0E\\r\\0\\v\\f\\vA!@ \"Aj! Aàj  kAtj(\\0E\\r\\0\\v \\0 j!@ AÀj \\0Aj\"\\0Atj + \\0Atj(\\0·9\\0A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ \" Atj+\\0 AÀj \\0 kAtj+\\0¢ \\v\\xA0!\\v Aj\"AG\\r\\0\\v  \\0Atj \\v9\\0 \\0 H\\r\\0\\v !\\0\\f\\v\\v@ \\vA k\"\\vD\\0\\0\\0\\0\\0\\0pAf@ Aàj \\0Atj \\vD\\0\\0\\0\\0\\0\\0p>¢ü\"·D\\0\\0\\0\\0\\0\\0pÁ¢ \\v\\xA0ü6\\0 \\0Aj!\\0 !\\x1B\\f\\v \\vü!\\v Aàj \\0Atj 6\\0\\vD\\0\\0\\0\\0\\0\\0ð? \\x1B!\\v \\0A\\0N@ \\0!@  \"Atj \\v Aàj Atj(\\0·¢9\\0 Ak! \\vD\\0\\0\\0\\0\\0\\0p>¢!\\v \\r\\0\\vA\\0! \\0!@    J\\x1B!\\x1B \\0 k!  Atj!\"A\\0!D\\0\\0\\0\\0\\0\\0\\0\\0!\\v@ At\"#+€ \" #j+\\0¢ \\v\\xA0!\\v  \\x1BG Aj!\\r\\0\\v A\\xA0j Atj \\v9\\0 Ak! \\0 G Aj!\\r\\0\\v\\vD\\0\\0\\0\\0\\0\\0\\0\\0!\\v \\0A\\0N@@ \\0\"Ak!\\0 \\v A\\xA0j Atj+\\0\\xA0!\\v \\r\\0\\v\\v  \\vš \\v !\\x1B9\\0 A°j$\\0 A\\x07q!\\0 +\\0!\\v )A\\0H@  \\vš9\\bA\\0 \\0k!\\0\\f\\v  \\v9\\b\\v Aj$\\0 +\\b!\\v@@@@ \\0AqAk\\0\\v \\v!\\f\\v \\v!\\f\\v \\vš!\\f\\v \\vŒ!\\v Aj$\\0 C½7†5^@  •!  •!  •!\\v ‹ ‹’ ‹’\"C\\0\\0\\0\\0^@  •!  •!  •!\\v@ C\\0\\0\\0\\0\\`@ !\\f\\vC\\0\\0€? ‹“\" Œ C\\0\\0\\0\\0\\`\\x1B!C\\0\\0€? ‹“\" Œ C\\0\\0\\0\\0\\`\\x1B!\\v C\\0\\0\\0?”C\\0\\0\\0?’C\\0\\0C”! \\x07 %j C\\0\\0\\0?”C\\0\\0\\0?’C\\0\\0C”C\\0\\0C–üAt  r C\\0\\0C–üAtr6\\0 '*\\0\\b!\\0 \\x07 &j \\0 (*\\0\\bA\\btr \\bAtr  ’CÛI@•C\\0\\0C”C\\0\\0C–üAtr6\\0 $Aj!$\\f\\v\\v\\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r  (\\0\"k\"AØ (\\0I\\r \\0 j!\\0@@@AÜ (\\0 G@ (\\f! AÿM@  (\\b\"G\\rAÈ AÈ (\\0A~ Avwq6\\0\\f\\v (!\\x07  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rAÐ \\x006\\0  A~q6  \\0Ar6  \\x006\\0\\v  6\\f  6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ wq6\\0\\f\\v@  \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v  \\x076 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  O\\r\\0 (\"AqE\\r\\0@@@@ AqE@Aà (\\0 F@Aà 6\\0AÔ AÔ (\\0 \\0j\"\\x006\\0  \\0Ar6 AÜ (\\0G\\rAÐ A\\x006\\0AÜ A\\x006\\0\\vAÜ (\\0\"\\x07 F@AÜ 6\\0AÐ AÐ (\\0 \\0j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@AÈ AÈ (\\0A~ Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!\\b  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v  A~q6  \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ wq6\\0\\f\\v@  \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v  \\b6 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  \\0Ar6 \\0 j \\x006\\0  \\x07G\\r\\0AÐ \\x006\\0\\v \\0AÿM@ \\0AøqAð j!AÈ (\\0\"A \\0Avt\"\\0qE@AÈ \\0 r6\\0 \\f\\v (\\b\\v!\\0  6\\b \\0 6\\f  6\\f  \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v  6 B\\x007 AtAø\"j!@AÌ (\\0\"A t\"qE@AÌ  r6\\0  6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At!  Aqj\"(\"\\r\\0\\v  6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f  6\\bA!\\0A\\b!A\\0\\v!  j 6\\0  6\\f \\0 j 6\\0Aè Aè (\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@AÈ (\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"Að j\"\\0 (ø \"(\\b\"F@AÈ A~ wq6\\0\\f\\v  \\x006\\f \\0 6\\b\\v A\\bj!\\0  Ar6  j\" (Ar6\\f\\v\\v AÐ (\\0\"\\bM\\r @@A \\0t\"A\\0 kr  \\0tqh\"At\"Að j\" (ø \"\\0(\\b\"F@AÈ A~ wq\"6\\0\\f\\v  6\\f  6\\b\\v \\0 Ar6 \\0 j\"\\x07  k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqAð j!AÜ (\\0! A \\bAvt\"qE@AÈ  r6\\0 \\f\\v (\\b\\v!  6\\b  6\\f  6\\f  6\\b\\v \\0A\\bj!\\0AÜ \\x076\\0AÐ 6\\0\\f\\v\\vAÌ (\\0\"\\vE\\r \\vhAt(ø\"\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\"   I\"\\x1B! \\0  \\x1B! \\0!\\f\\v\\v (!  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!AÌ (\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(ø\"\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\"   AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(ø\"!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I!   \\x1B! \\0  \\x1B! \\0(\"  \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 AÐ (\\0 kO\\r\\0 (!\\b  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v AÐ (\\0\"M@AÜ (\\0!\\0@  k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vAÐ 6\\0AÜ 6\\0 \\0A\\bj!\\0\\f \\v AÔ (\\0\"I@AÔ  k\"6\\0Aà Aà (\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"A\\xA0$(\\0@A¨$(\\0\\f\\vA¬$B7\\0A¤$B€\\xA0€€€€7\\0A\\xA0$ \nA\\fjApqAتժs6\\0A´$A\\x006\\0A„$A\\x006\\0A€ \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bA€$(\\0\"@Aø#(\\0\"\\b j\" \\bM  Ir\\r \\v@A„$-\\0\\0AqE@@@@@Aà (\\0\"@Aˆ$!\\0@ \\0(\\0\"\\b M@  \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !A¤$(\\0\"\\0Ak\" q@  k  jA\\0 \\0kqj!\\v  M\\rA€$(\\0\"\\0@Aø#(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v  k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vA¨$(\\0\"  kjA\\0 kq\"AF\\r  j! \\0!\\f\\v AG\\r\\vA„$A„$(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vAø#Aø#(\\0 j\"\\x006\\0Aü#(\\0 \\0I@Aü# \\x006\\0\\v@Aà (\\0\"@Aˆ$!\\0@  \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vAØ (\\0\"\\0A\\0 \\0 M\\x1BE@AØ 6\\0\\vA\\0!\\0AŒ$ 6\\0Aˆ$ 6\\0Aè A6\\0Aì A\\xA0$(\\x006\\0A”$A\\x006\\0@ \\0At\" Að j\"6ø  6ü \\0Aj\"\\0A G\\r\\0\\vAÔ A(k\"\\0Ax kA\\x07q\"k\"6\\0Aà  j\"6\\0  Ar6 \\0 jA(6Aä A°$(\\x006\\0\\f\\v  M  Kr\\r \\0(\\fA\\bq\\r \\0  j6Aà Ax kA\\x07q\"\\0j\"6\\0AÔ AÔ (\\0 j\" \\0k\"\\x006\\0  \\0Ar6  jA(6Aä A°$(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vAØ (\\0 K@AØ 6\\0\\v  j!Aˆ$!\\0@@  \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAˆ$!\\0@@ \\0(\\0\" M@   \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vAÔ A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0Aà  j\"6\\0  \\x07Ar6 \\0 jA(6Aä A°$(\\x006\\0  A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 A$)\\x007 Aˆ$)\\x007\\bA$ A\\bj6\\0AŒ$ 6\\0Aˆ$ 6\\0A”$A\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v  F\\r\\0  (A~q6   k\"Ar6  6\\0 AÿM@ AøqAð j!\\0AÈ (\\0\"A Avt\"qE@AÈ  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtAø\"j!@@AÌ (\\0\"A \\0t\"qE@AÌ  r6\\0  6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"(\"\\r\\0\\v  6\\v  6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f  6\\b  \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0  j \\x006\\0\\vAÔ (\\0\"\\0 M\\r\\0AÔ \\0 k\"6\\0Aà Aà (\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vAÄ A06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\"  \\bj\"k!\\x07@Aà (\\0 F@Aà 6\\0AÔ AÔ (\\0 \\x07j\"\\x006\\0  \\0Ar6\\f\\vAÜ (\\0 F@AÜ 6\\0AÐ AÐ (\\0 \\x07j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@AÈ AÈ (\\0A~ \\0Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!@  G@ (\\b\"\\0 6\\f  \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(ø\" F@ Aø\"j 6\\0 \\rAÌ AÌ (\\0A~ \\0wq6\\0\\f\\v@  (F@  6\\f\\v  6\\v E\\r\\v  6 (\"\\0@  \\x006 \\0 6\\v (\"\\0E\\r\\0  \\x006 \\0 6\\v \\x07 j!\\x07  j\"(!\\0\\v  \\0A~q6  \\x07Ar6  \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqAð j!\\0AÈ (\\0\"A \\x07Avt\"qE@AÈ  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v  6 B\\x007 AtAø\"j!\\0@@AÌ (\\0\"A t\"qE@AÌ  r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v  6\\v  \\x006  6\\f  6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006  \\x006\\f  6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(ø\" F@ Aø\"j \\x006\\0 \\0\\rAÌ \\x07A~ wq\"\\x076\\0\\f\\v@  \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 AÿM@ AøqAð j!\\0AÈ (\\0\"A Avt\"qE@AÈ  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtAø\"j!@@ \\x07A \\0t\"qE@AÌ  \\x07r6\\0  6\\0  6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"\\x07(\"\\r\\0\\v \\x07 6  6\\v  6\\f  6\\b\\f\\v (\\b\"\\0 6\\f  6\\b A\\x006  6\\f  \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(ø\" F@ Aø\"j \\x006\\0 \\0\\rAÌ \\vA~ wq6\\0\\f\\v@  (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 \\b@ \\bAxqAð j!\\0AÜ (\\0!A \\bAvt\"\\x07 qE@AÈ  \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\vAÜ 6\\0AÐ 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v\\0\\v\\vË\\0A€\\b\\v÷¾óøyìaö?ÞªŒ€÷{Õ¿=ˆ¯Jíqõ?ÛmÀ§ð¾Ò¿°ðð9•ô?g:Q®п…¸°•Éó?é$‚¦Ø1Ë¿¥dˆ\\f\\ró?XwÀ\nOWÆ¿\\xA0Ž\\v{\"^ò?\\0œÇ+ªÁ¿?4JJ»ñ?^ŒÎvNº¿ºåŠðX#ñ?ÌaZ<—±¿§\\0™A?•ð?\\fá8ôR¢¿\\0\\0\\0\\0\\0\\0ð?\\0\\0\\0\\0\\0\\0\\0\\0¬GšýŒ\\`î?„Yò]ª¥ª?\\xA0j³¤ì?´.6ªS^¼?æüjW6 ë?\\bÛ wå&Å?-ª¡cÑÂé?pG\"\\r†ÂË?íAxæ†è?á~\\xA0ȋÑ?bHSõÜgç? î¶W0Ô?ï9úþB.æ?4ƒ¸H£пj\\và\\v[WÕ?#A\nòþÿß¿\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0ƒù¢\\0DNn\\0ü)\\0ÑW'\\0Ý4õ\\0bÛÀ\\0<™•\\0AC\\0cQþ\\0»Þ«\\0·aÅ\\0:n$\\0ÒMB\\0Ià\\0 ê.\\0’Ñ\\0ëþ\\0)±\\0è>§\\0õ5‚\\0D».\\0œé„\\0´&p\\0A~_\\0֑9\\0Sƒ9\\0œô9\\0‹_„\\0(ù½\\0ø;\\0Þÿ—\\0˜\\0/ï\\0\nZ‹\\0mm\\0Ï~6\\0 Ë'\\0FO·\\0žf?\\0-ê_\\0º'u\\0åëÇ\\0={ñ\\0÷9\\x07\\0’RŠ\\0ûkê\\0±_\\0\\b]\\x000V\\0{üF\\0ð«k\\0 ¼Ï\\x006ôš\\0ã©\\0^a‘\\0\\b\\x1Bæ\\0…™e\\0\\xA0_\\0@h\\0€Øÿ\\0'sM\\01\\0ÊV\\0ɨs\\0{â\\`\\0kŒÀ\\0ÄG\\0ÍgÃ\\0 èÜ\\0Yƒ*\\0‹vÄ\\0¦–\\0D¯Ý\\0WÑ\\0¥>\\0\\x07ÿ\\x003~?\\0Â2è\\0˜OÞ\\0»}2\\0&=Ã\\0kï\\0Ÿø^\\x005:\\0òÊ\\0ñ‡\\0|!\\0j$|\\0Õnú\\x000-w\\0;C\\0µÆ\\0Ý\\0­ÄÂ\\0,MA\\0\\f\\0]\\0†}F\\0ãq-\\0›Æš\\x003b\\0\\0´Ò|\\0´§—\\x007UÕ\\0×>ö\\0£\\0Mvü\\0d*\\0p׫\\0c|ø\\0z°W\\0ç\\0ÀIV\\0;ÖÙ\\0§„8\\0$#Ë\\0֊w\\0ZT#\\0\\0¹\\0ñ\n\\x1B\\0Îß\\0Ÿ1ÿ\\0fj\\0™Wa\\0¬ûG\\0~Ø\\0\"e·\\x002è‰\\0æ¿\\`\\0ïÄÍ\\0l6 \\0]?Ô\\0Þ×\\0X;Þ\\0ޛ’\\0Ò\"(\\0(†è\\0âXM\\0ÆÊ2\\0\\bã\\0à}Ë\\0ÀP\\0ó§\\0à[\\0.4\\0ƒb\\0ƒH\\0õŽ[\\0­°\\0éò\\0HJC\\0gÓ\\0ªÝØ\\0®_B\\0jaÎ\\0\n(¤\\0ә´\\0¦ò\\0\\\\w\\0£Âƒ\\0a<ˆ\\0Šsx\\0¯ŒZ\\0o×½\\0-¦c\\0ô¿Ë\\0ï\\0&Ág\\0UÊE\\0ÊÙ6\\0(¨Ò\\0Âa\\0Éw\\0&\\0F›\\0ÄYÄ\\0ÈÅD\\0M²‘\\0\\0ó\\0ÔC­\\0)Iå\\0ýÕ\\0\\0¾ü\\0”Ì\\0pÎî\\0>õ\\0ìñ€\\0³çÃ\\0Çø(\\0“”\\0Áq>\\0. ³\\0\\vEó\\0ˆœ\\0« {\\0.µŸ\\0G’Â\\0{2/\\0\\fUm\\0r§\\0kç\\x001˖\\0yJ\\0Ayâ\\0ô߉\\0蔗\\0âæ„\\0™1—\\0ˆík\\0__6\\0»ý\\0Hš´\\0g¤l\\0qrB\\0]2\\0Ÿ¸\\0¼å \\01%\\0÷t9\\x000\\0\\r\\f\\0K\\bh\\0,îX\\0Gª\\0tç\\0½Ö$\\0÷}¦\\0nHr\\0Ÿï\\0Ž”¦\\0´‘ö\\0ÑSQ\\0Ï\nò\\0 ˜3\\0õK~\\0²ch\\0Ý>_\\0@]\\0…‰\\0UR)\\x007dÀ\\0mØ\\x002H2\\0[Lu\\0NqÔ\\0ETn\\0\\v Á\\0*õi\\0fÕ\\0'\\x07\\0]P\\0´;Û\\0êvÅ\\0‡ù\\0Ik}\\0'º\\0–i)\\0ÆÌ¬\\0­T\\0âj\\0ˆÙ‰\\0,rP\\0¤¾\\0w\\x07”\\0ó0p\\0\\0ü'\\0êq¨\\0fÂI\\0dà=\\0—݃\\0£?—\\0C”ý\\0\\r†Œ\\x001AÞ\\0’9\\0ÝpŒ\\0·ç\\0\\bß;\\07+\\0\\\\€\\xA0\\0Z€“\\0’\\0èØ\\0l€¯\\0ÛÿK\\x008\\0Yv\\0b¥\\0aË»\\0lj¹\\0@½\\0Òò\\0Iu'\\0ë¶ö\\0Û\"»\\0\nª\\0‰&/\\0dƒv\\0 ;3\\0”\\0Q:ª\\0£Â\\0¯í®\\0\\\\&\\0mÂM\\0-zœ\\0ÀV—\\0?ƒ\\0 ðö\\0+@Œ\\0m1™\\x009´\\x07\\0\\f \\0ØÃ[\\0õ’Ä\\0Æ­K\\0NÊ¥\\0§7Í\\0æ©6\\0«’”\\0ÝBh\\0cÞ\\0vŒï\\0h‹R\\0üÛ7\\0®¡«\\0ß1\\0\\0®¡\\0\\fûÚ\\0dMf\\0í·\\0)e0\\0WV¿\\0Gÿ:\\0jù¹\\0u¾ó\\0(“ß\\0«€0\\0fŒö\\0Ë\\0ú\"\\0Ùä\\0=³¤\\0W\\x1B\\x006Í \\0NBé\\0¾¤\\x003#µ\\0ðª\\0Oe¨\\0ÒÁ¥\\0\\v?\\0[xÍ\\0#ùv\\0{‹\\0‰r\\0ƦS\\0onâ\\0ïë\\0\\0›JX\\0ÄÚ·\\0ªfº\\0vÏÏ\\0Ñ\\0±ñ-\\0Œ™Á\\0íw\\0†HÚ\\0÷]\\xA0\\0ƀô\\0¬ð/\\0Ýìš\\0?\\\\¼\\0ÐÞm\\0Ç\\0*Û¶\\0£%:\\0\\0¯š\\0­S“\\0¶W\\0)-´\\0K€~\\0Ú\\x07§\\0vª\\0{Y¡\\0*\\0Ü·-\\0úåý\\0‰Ûþ\\0‰¾ý\\0ävl\\0©ü\\0>€p\\0…n\\0ý‡ÿ\\0(>\\x07\\0ag3\\0*†\\0M½ê\\0³ç¯\\0mn\\0•g9\\x001¿[\\0„×H\\x000ß\\0Ç-C\\0%a5\\0ÉpÎ\\x000˸\\0¿lý\\0¤\\0¢\\0lä\\0ZÝ\\xA0\\0!oG\\0bÒ\\0¹\\\\„\\0paI\\0kVà\\0™R\\0PU7\\0Õ·\\x003ñÄ\\0n_\\0]0ä\\0….©\\0²Ã\\0¡26\\0\\b·¤\\0ê±Ô\\0÷!\\0iä\\0'ÿw\\0\\f€\\0@-\\0OÍ\\xA0\\0 ¥™\\0³¢Ó\\0/]\n\\0´ùB\\0ÚË\\0}¾Ð\\0›ÛÁ\\0«½\\0Ê¢\\0\\bj\\\\\\0.U\\0'\\0U\\0ð\\0á\\x07†\\0\\vd\\0–A\\0‡¾Þ\\0Úý*\\0k%¶\\0{‰4\\0óþ\\0¹¿ž\\0hjO\\0J*¨\\0OÄZ\\0-ø¼\\0×Z˜\\0ôǕ\\0\\rM\\0 :¦\\0¤W_\\0?±\\0€8•\\0Ì \\0q݆\\0ÉÞ¶\\0¿\\`õ\\0Me\\0\\x07k\\0Œ°¬\\0²ÀÐ\\0QUH\\0û\\0•rÃ\\0£;\\0À@5\\0Ü{\\0àEÌ\\0N)ú\\0ÖÊÈ\\0èóA\\0|dÞ\\0›dØ\\0Ù¾1\\0¤—Ã\\0wXÔ\\0iãÅ\\0ðÚ\\0º:<\\0FF\\0Uu_\\0Ò½õ\\0n’Æ\\0¬.]\\0Dí\\0>B\\0ać\\0)ýé\\0çÖó\\0\"|Ê\\0o‘5\\0\\bàÅ\\0ÿ׍\\0njâ\\0°ýÆ\\0“\\bÁ\\0|]t\\0k­²\\0Ín\\0>r{\\0Æj\\0÷Ï©\\0)sß\\0µÉº\\0·\\0Q\\0â²\\r\\0tº$\\0å}\\`\\0t؊\\0\\r,\\0\\f\\0~f”\\0)\\0Ÿzv\\0ýý¾\\0VEï\\0Ù~6\\0ìÙ\\0‹º¹\\0ėü\\x001¨'\\0ñnÃ\\0”Å6\\0بV\\0´¨µ\\0ÏÌ\\0‰-\\0oW4\\0,V‰\\0™Îã\\0Ö ¹\\0k^ª\\0>*œ\\0_Ì\\0ý\\vJ\\0áôû\\0Ž;m\\0â†,\\0éԄ\\0ü´©\\0ïîÑ\\0.5É\\0/9a\\x008!D\\0\\x1BÙÈ\\0ü\n\\0ûJj\\0/Ø\\0S´„\\0N™Œ\\0T\"Ì\\0*UÜ\\0ÀÆÖ\\0\\v–\\0p¸\\0i•d\\0&Z\\`\\0?Rî\\0\\0ôµ\\0üËõ\\x004¼-\\x004¼î\\0è]Ì\\0Ý^\\`\\0gŽ›\\0’3ï\\0ɸ\\0aX›\\0áW¼\\0QƒÆ\\0Ø>\\0ÝqH\\0-Ý\\0¯¡\\0!,F\\0Yó×\\0Ùz˜\\0žTÀ\\0O†ú\\0Vü\\0åy®\\0‰\"6\\x008­\"\\0g“Ü\\0Uèª\\0‚&8\\0Êç›\\0Q\\r¤\\0™3±\\0©×\\0iH\\0e²ð\\0ˆ§\\0ˆL—\\0ùÑ6\\0!’³\\0{‚J\\0˜Ï!\\0@ŸÜ\\0ÜGU\\0át:\\0gëB\\0þß\\0^Ô_\\0{g¤\\0º¬z\\0Uö¢\\0+ˆ#\\0AºU\\0Yn\\b\\0!*†\\x009Gƒ\\0‰ãæ\\0åžÔ\\0Iû@\\0ÿVé\\0Ê\\0ÅYŠ\\0”ú+\\0ÓÁÅ\\0ÅÏ\\0ÛZ®\\0Gņ\\0…Cb\\0!†;\\0,y”\\0a‡\\0*L{\\0€,\\0C¿\\0ˆ&\\0x<‰\\0¨Ää\\0åÛ{\\0Ä:Â\\0&ôê\\0÷gŠ\\0\\r’¿\\0e£+\\0=“±\\0½|\\v\\0¤QÜ\\0'Ýc\\0iáÝ\\0š”\\0¨)•\\0hÎ(\\0 í´\\0DŸ \\0N˜Ê\\0p‚c\\0~|#\\0¹2\\0§õŽ\\0Vç\\0!ñ\\b\\0µ*\\0o~M\\0¥Q\\0µù«\\0‚ßÖ\\0–Ýa\\06\\0Ä:Ÿ\\0ƒ¢¡\\0rím\\x009z\\0‚¸©\\0k2\\\\\\0F'[\\0\\x004í\\0Ò\\0w\\0üôU\\0YM\\0àq€\\0Aƒ \\v=@û!ù?\\0\\0\\0\\0-Dt>\\0\\0\\0€˜Fø<\\0\\0\\0\\`QÌx;\\0\\0\\0€ƒ\\x1Bð9\\0\\0\\0@ %z8\\0\\0\\0€\"‚ã6\\0\\0\\0\\0ói5\\0AÀ \\v@`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._pack=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i=0,a=[],o=!1,s=!1,c,l,u,d,f,p,m,h,g,_=t=>e(void 0,void 0,void 0,function*(){for(;s;)yield new Promise(e=>setTimeout(e,0));n||(s=!0,yield r(),s=!1);let e=2**Math.ceil(Math.log2(t.vertexCount));e>i&&(i>0&&(n._free(c),n._free(l),n._free(u),n._free(d),n._free(f),n._free(p),n._free(m),n._free(h),n._free(g)),i=e,c=n._malloc(3*i*4),l=n._malloc(4*i*4),u=n._malloc(3*i*4),d=n._malloc(4*i),f=n._malloc(i),p=n._malloc(8*i*4),m=n._malloc(3*i*4),h=n._malloc(4*i*4),g=n._malloc(3*i*4)),n.HEAPF32.set(t.positions,c/4),n.HEAPF32.set(t.rotations,l/4),n.HEAPF32.set(t.scales,u/4),n.HEAPU8.set(t.colors,d),n.HEAPU8.set(t.selection,f),n._pack(t.selected,t.vertexCount,c,l,u,d,f,p,m,h,g);let a=new Uint32Array(n.HEAPU32.buffer,p,t.vertexCount*8),_=new Uint32Array(a.slice().buffer),v=new Float32Array(n.HEAPF32.buffer,m,t.vertexCount*3),y=new Float32Array(v.slice().buffer),b=new Float32Array(n.HEAPF32.buffer,h,t.vertexCount*4),x=new Float32Array(b.slice().buffer),S=new Float32Array(n.HEAPF32.buffer,g,t.vertexCount*3),C={data:_,worldPositions:y,worldRotations:x,worldScales:new Float32Array(S.slice().buffer),offset:t.offset,vertexCount:t.vertexCount,positions:t.positions.buffer,rotations:t.rotations.buffer,scales:t.scales.buffer,colors:t.colors.buffer,selection:t.selection.buffer};self.postMessage({response:C},[C.data.buffer,C.worldPositions.buffer,C.worldRotations.buffer,C.worldScales.buffer,C.positions,C.rotations,C.scales,C.colors,C.selection]),o=!1}),v=()=>{a.length!==0&&(o||(o=!0,_(a.shift()),setTimeout(()=>{o=!1,v()},0)))};self.onmessage=e=>new Promise((t,n)=>{if(e.data.splat){let n=e.data.splat;for(let e=0;e<a.length;e++)if(a[e].offset===n.offset){a[e]=n,t(!0);return}a.push(n),v(),t(!0)}})})();", dy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", uy], { type: "text/javascript;charset=utf-8" });
25665
+ function fy(e) {
25661
25666
  let t;
25662
25667
  try {
25663
- if (t = uy && (self.URL || self.webkitURL).createObjectURL(uy), !t) throw "";
25668
+ if (t = dy && (self.URL || self.webkitURL).createObjectURL(dy), !t) throw "";
25664
25669
  let n = new Worker(t, { name: e == null ? void 0 : e.name });
25665
25670
  return n.addEventListener("error", () => {
25666
25671
  (self.URL || self.webkitURL).revokeObjectURL(t);
25667
25672
  }), n;
25668
25673
  } catch (t) {
25669
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(ly), { name: e == null ? void 0 : e.name });
25674
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(uy), { name: e == null ? void 0 : e.name });
25670
25675
  }
25671
25676
  }
25672
25677
  //#endregion
25673
- //#region \0@oxc-project+runtime@0.120.0/helpers/asyncToGenerator.js
25674
- function fy(e, t, n, r, i, a, o) {
25678
+ //#region \0@oxc-project+runtime@0.122.0/helpers/asyncToGenerator.js
25679
+ function py(e, t, n, r, i, a, o) {
25675
25680
  try {
25676
25681
  var s = e[a](o), c = s.value;
25677
25682
  } catch (e) {
@@ -25680,16 +25685,16 @@ function fy(e, t, n, r, i, a, o) {
25680
25685
  }
25681
25686
  s.done ? t(c) : Promise.resolve(c).then(r, i);
25682
25687
  }
25683
- function py(e) {
25688
+ function my(e) {
25684
25689
  return function() {
25685
25690
  var t = this, n = arguments;
25686
25691
  return new Promise(function(r, i) {
25687
25692
  var a = e.apply(t, n);
25688
25693
  function o(e) {
25689
- fy(a, r, i, o, s, "next", e);
25694
+ py(a, r, i, o, s, "next", e);
25690
25695
  }
25691
25696
  function s(e) {
25692
- fy(a, r, i, o, s, "throw", e);
25697
+ py(a, r, i, o, s, "throw", e);
25693
25698
  }
25694
25699
  o(void 0);
25695
25700
  });
@@ -25697,18 +25702,18 @@ function py(e) {
25697
25702
  }
25698
25703
  //#endregion
25699
25704
  //#region build/five/gaussian-splatting/wasm/data.js
25700
- function my() {
25701
- return hy.apply(this, arguments);
25702
- }
25703
25705
  function hy() {
25704
- return hy = py(function* (e = {}) {
25706
+ return gy.apply(this, arguments);
25707
+ }
25708
+ function gy() {
25709
+ return gy = my(function* (e = {}) {
25705
25710
  var t, n = e, r = !1, i = !0, a = import.meta.url;
25706
25711
  if (r || i) {
25707
25712
  try {
25708
25713
  new URL(".", a).href;
25709
25714
  } catch (e) {}
25710
25715
  (function() {
25711
- var e = py(function* (e) {
25716
+ var e = my(function* (e) {
25712
25717
  var t = yield fetch(e, { credentials: "same-origin" });
25713
25718
  if (t.ok) return t.arrayBuffer();
25714
25719
  throw Error(t.status + " : " + t.url);
@@ -25742,7 +25747,7 @@ function hy() {
25742
25747
  }
25743
25748
  var h;
25744
25749
  function g() {
25745
- return s("\0asm\0\0\0&``}}`}`\0`\v\0`\0\0\x07aa\0\0\b\x07\0\0\x07‚€€\bA€Œ\v\x07b\0c\0\x07d\0e\0f\0\f\n™@\x07T~@A€\b(\0\"­ \0­B\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\0?\0AtM\r \0\0\r\vA„\bA06\0A\vA€\b \x006\0 \v\0 \0 Atr\vr \0¼\"Aÿÿÿq!@ AvAÿq\"E\r\0 Að\0M@ A€€€rAñ\0 kv!\f\v AK@A€ø!A\0!\f\v A\ntA€€\x07k!\v  AvA€€qr A\rvr\vß\v\b@ \0E\r\0 \0A\bk\" \0Ak(\0\"Axq\"\0j!@ Aq\r\0 AqE\r  (\0\"k\"A˜\b(\0I\r \0 j!\0@@@Aœ\b(\0 G@ (\f! AÿM@  (\b\"G\rAˆ\bAˆ\b(\0A~ Avwq6\0\f\v (!\x07  G@ (\b\" 6\f  6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v (\"AqAG\rA\b \x006\0  A~q6  \0Ar6  \x006\0\v  6\f  6\b\f\vA\0!\v \x07E\r\0@ (\"At\"(¸\n F@ A¸\nj 6\0 \rAŒ\bAŒ\b(\0A~ wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 (\"@  6  6\v (\"E\r\0  6  6\v  O\r\0 (\"AqE\r\0@@@@ AqE@A\xA0\b(\0 F@A\xA0\b 6\0A”\bA”\b(\0 \0j\"\x006\0  \0Ar6 Aœ\b(\0G\rA\bA\x006\0Aœ\bA\x006\0\vAœ\b(\0\"\x07 F@Aœ\b 6\0A\bA\b(\0 \0j\"\x006\0  \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b\" F@Aˆ\bAˆ\b(\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\b  G@ (\b\" 6\f  6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v  A~q6  \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ (\"At\"(¸\n F@ A¸\nj 6\0 \rAŒ\bAŒ\b(\0A~ wq6\0\f\v@  \b(F@ \b 6\f\v \b 6\v E\r\v  \b6 (\"@  6  6\v (\"E\r\0  6  6\v  \0Ar6 \0 j \x006\0  \x07G\r\0A\b \x006\0\v \0AÿM@ \0AøqA°\bj!Aˆ\b(\0\"A \0Avt\"\0qE@Aˆ\b \0 r6\0 \f\v (\b\v!\0  6\b \0 6\f  6\f  \x006\b\vA! \0Aÿÿÿ\x07M@ \0A& \0A\bvg\"kvAq AtrA>s!\v  6 B\x007 AtA¸\nj!@AŒ\b(\0\"A t\"qE@AŒ\b  r6\0  6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ \"(Axq \0F\r Av! At!  Aqj\"(\"\r\0\v  6A! !A\b\v!\0 \"\f\v (\b\" 6\f  6\bA!\0A\b!A\0\v!  j 6\0  6\f \0 j 6\0A¨\bA¨\b(\0Ak\"\0A \0\x1B6\0\v\v¸'\v#\0Ak\"\n$\0@@@@@@@@@@ \0AôM@Aˆ\b(\0\"A \0A\vjAøq \0A\vI\x1B\"Av\"\0v\"Aq@@ AsAq \0j\"At\"A°\bj\"\0 (¸\b\"(\b\"F@Aˆ\b A~ wq6\0\f\v  \x006\f \0 6\b\v A\bj!\0  Ar6  j\" (Ar6\f\v\v A\b(\0\"\bM\r @@A \0t\"A\0 kr  \0tqh\"At\"A°\bj\" (¸\b\"\0(\b\"F@Aˆ\b A~ wq\"6\0\f\v  6\f  6\b\v \0 Ar6 \0 j\"\x07  k\"Ar6 \0 j 6\0 \b@ \bAxqA°\bj!Aœ\b(\0! A \bAvt\"qE@Aˆ\b  r6\0 \f\v (\b\v!  6\b  6\f  6\f  6\b\v \0A\bj!\0Aœ\b \x076\0A\b 6\0\f\v\vAŒ\b(\0\"\vE\r \vhAt(¸\n\"(Axq k! !@@ (\"\0E@ (\"\0E\r\v \0(Axq k\"   I\"\x1B! \0  \x1B! \0!\f\v\v (!  (\f\"\0G@ (\b\" \x006\f \0 6\b\f\n\v (\" Aj (\"E\r Aj\v!@ !\x07 \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v \x07A\x006\0\f \vA! \0A¿K\r\0 \0A\vj\"Axq!AŒ\b(\0\"\x07E\r\0A!\bA\0 k! \0Aôÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtkA>j!\b\v@@@ \bAt(¸\n\"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAG\x1Bt!@@ (Axq k\" O\r\0 ! \"\r\0A\0! !\0\f\v \0 (\"   AvAqj(\"F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A \bt\"\0A\0 \0kr \x07q\"\0E\r \0hAt(¸\n!\0\v \0E\r\v@ \0(Axq k\" I!   \x1B! \0  \x1B! \0(\"  \0(\v\"\0\r\0\v\v E\r\0 A\b(\0 kO\r\0 (!\b  (\f\"\0G@ (\b\" \x006\f \0 6\b\f\b\v (\" Aj (\"E\r Aj\v!@ ! \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v A\x006\0\f\x07\v A\b(\0\"M@Aœ\b(\0!\0@  k\"AO@ \0 j\" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j\" (Ar6A\0!A\0!\vA\b 6\0Aœ\b 6\0 \0A\bj!\0\f \v A”\b(\0\"I@A”\b  k\"6\0A\xA0\bA\xA0\b(\0\"\0 j\"6\0  Ar6 \0 Ar6 \0A\bj!\0\f \vA\0!\0 A/j\"Aà\v(\0@Aè\v(\0\f\vAì\vB7\0Aä\vB€\xA0€€€€7\0Aà\v \nA\fjApqAتժs6\0Aô\vA\x006\0AÄ\vA\x006\0A€ \v\"j\"A\0 k\"\x07q\" M\r\bAÀ\v(\0\"@A¸\v(\0\"\b j\" \bM  Ir\r \v@AÄ\v-\0\0AqE@@@@@A\xA0\b(\0\"@AÈ\v!\0@ \0(\0\"\b M@  \b \0(jI\r\v \0(\b\"\0\r\0\v\vA\0\"AF\r !Aä\v(\0\"\0Ak\" q@  k  jA\0 \0kqj!\v  M\rAÀ\v(\0\"\0@A¸\v(\0\" j\"\x07 M \0 \x07Ir\r\v \"\0 G\r\f\v  k \x07q\"\" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vAè\v(\0\"  kjA\0 kq\"AF\r  j! \0!\f\v AG\r\vAÄ\vAÄ\v(\0Ar6\0\v \"AFA\0\"\0AFr \0 Mr\r \0 k\" A(jM\r\vA¸\vA¸\v(\0 j\"\x006\0A¼\v(\0 \0I@A¼\v \x006\0\v@A\xA0\b(\0\"@AÈ\v!\0@  \0(\0\" \0(\"jF\r \0(\b\"\0\r\0\v\f\vA˜\b(\0\"\0A\0 \0 M\x1BE@A˜\b 6\0\vA\0!\0AÌ\v 6\0AÈ\v 6\0A¨\bA6\0A¬\bAà\v(\x006\0AÔ\vA\x006\0@ \0At\" A°\bj\"6¸\b  6¼\b \0Aj\"\0A G\r\0\vA”\b A(k\"\0Ax kA\x07q\"k\"6\0A\xA0\b  j\"6\0  Ar6 \0 jA(6A¤\bAð\v(\x006\0\f\v  M  Kr\r \0(\fA\bq\r \0  j6A\xA0\b Ax kA\x07q\"\0j\"6\0A”\bA”\b(\0 j\" \0k\"\x006\0  \0Ar6  jA(6A¤\bAð\v(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vA˜\b(\0 K@A˜\b 6\0\v  j!AÈ\v!\0@@  \0(\0\"G@ \0(\b\"\0\r\f\v\v \0-\0\fA\bqE\r\vAÈ\v!\0@@ \0(\0\" M@   \0(j\"I\r\v \0(\b!\0\f\v\vA”\b A(k\"\0Ax kA\x07q\"k\"\x076\0A\xA0\b  j\"6\0  \x07Ar6 \0 jA(6A¤\bAð\v(\x006\0  A' kA\x07qjA/k\"\0 \0 AjI\x1B\"A\x1B6 AÐ\v)\x007 AÈ\v)\x007\bAÐ\v A\bj6\0AÌ\v 6\0AÈ\v 6\0AÔ\vA\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k\"Ar6  6\0 AÿM@ AøqA°\bj!\0Aˆ\b(\0\"A Avt\"qE@Aˆ\b  r6\0 \0\f\v \0(\b\v! \0 6\b  6\fA\f!A\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA¸\nj!@@AŒ\b(\0\"A \0t\"qE@AŒ\b  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0  Aqj\"(\"\r\0\v  6\v  6A\b! \"!\0A\f\f\v (\b\"\0 6\f  6\b  \x006\bA\0!\0A!A\f\v j 6\0  j \x006\0\vA”\b(\0\"\0 M\r\0A”\b \0 k\"6\0A\xA0\bA\xA0\b(\0\"\0 j\"6\0  Ar6 \0 Ar6 \0A\bj!\0\f\vA„\bA06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kA\x07qj\"\b Ar6 Ax kA\x07qj\"  \bj\"k!\x07@A\xA0\b(\0 F@A\xA0\b 6\0A”\bA”\b(\0 \x07j\"\x006\0  \0Ar6\f\vAœ\b(\0 F@Aœ\b 6\0A\bA\b(\0 \x07j\"\x006\0  \0Ar6 \0 j \x006\0\f\v (\"\0AqAF@ \0Axq! (\f!@ \0AÿM@ (\b\" F@Aˆ\bAˆ\b(\0A~ \0Avwq6\0\f\v  6\f  6\b\f\v (!@  G@ (\b\"\0 6\f  \x006\b\f\v@ (\"\0 Aj (\"\0E\r Aj\v!@ ! \0\"Aj! \0(\"\0\r\0 Aj! (\"\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ (\"\0At\"(¸\n F@ A¸\nj 6\0 \rAŒ\bAŒ\b(\0A~ \0wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 (\"\0@  \x006 \0 6\v (\"\0E\r\0  \x006 \0 6\v \x07 j!\x07  j\"(!\0\v  \0A~q6  \x07Ar6  \x07j \x076\0 \x07AÿM@ \x07AøqA°\bj!\0Aˆ\b(\0\"A \x07Avt\"qE@Aˆ\b  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA! \x07Aÿÿÿ\x07M@ \x07A& \x07A\bvg\"\0kvAq \0AtrA>s!\v  6 B\x007 AtA¸\nj!\0@@AŒ\b(\0\"A t\"qE@AŒ\b  r6\0 \0 6\0\f\v \x07A AvkA\0 AG\x1Bt! \0(\0!@ \"\0(Axq \x07F\r Av! At! \0 Aqj\"(\"\r\0\v  6\v  \x006  6\f  6\b\f\v \0(\b\" 6\f \0 6\b A\x006  \x006\f  6\b\v \bA\bj!\0\f\v@ \bE\r\0@ (\"At\"(¸\n F@ A¸\nj \x006\0 \0\rAŒ\b \x07A~ wq\"\x076\0\f\v@  \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 (\"@ \0 6  \x006\v (\"E\r\0 \0 6  \x006\v@ AM@   j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v  Ar6  j\" Ar6  j 6\0 AÿM@ AøqA°\bj!\0Aˆ\b(\0\"A Avt\"qE@Aˆ\b  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtA¸\nj!@@ \x07A \0t\"qE@AŒ\b  \x07r6\0  6\0  6\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0  Aqj\"\x07(\"\r\0\v \x07 6  6\v  6\f  6\b\f\v (\b\"\0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\0\f\v@ E\r\0@ (\"At\"(¸\n F@ A¸\nj \x006\0 \0\rAŒ\b \vA~ wq6\0\f\v@  (F@ \x006\f\v \x006\v \0E\r\v \0 6 (\"@ \0 6  \x006\v (\"E\r\0 \0 6  \x006\v@ AM@   j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v  Ar6  j\" Ar6  j 6\0 \b@ \bAxqA°\bj!\0Aœ\b(\0!A \bAvt\"\x07 qE@Aˆ\b  \x07r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\vAœ\b 6\0A\b 6\0\v A\bj!\0\v \nAj$\0 \0\v¡\v\v }#\0A\xA0k\"\v$\0 \vA0jA\0A$ü\v\0@  G@  Al\"\fAjAt\"j*\0!  \fAjAt\"j*\0! \b \fAt\"j  j*\0\"8\0 \b j 8\0 \b j 8\0 \x07 Atj\"\rA\x006\f \r 8\b \r 8 \r 8\0@ \0E@  j-\0\0E\r\v \rA€€€\b6\f\v \r  At\"\fAr\"j-\0\0A\bt  \fj-\0\0r  \fAr\"j-\0\0Atr  \fAr\"\fj-\0\0Atr6 \v  At\"j*\0\"8 \v  At\"j*\0\"8” \v  \fAt\"j*\0\"8˜ \v  At\"j*\0Œ\"8œ \vAà\0j\"\f \v*˜\"C\0\0\0À” ” \v*”\"C\0\0\0À” ”C\0\0€?’’8\0 \f \v*\" ’ \v*”” \v*˜\" ’ \v*œ”“8 \f \v*\" ’ \v*˜” \v*”\" ’ \v*œ”’8\b \f \v*\" ’ \v*”” \v*˜\" ’ \v*œ”’8\f \f \v*˜\"C\0\0\0À” ” \v*\"C\0\0\0À” ”C\0\0€?’’8 \f \v*”\" ’ \v*˜” \v*\" ’ \v*œ”“8 \f \v*\" ’ \v*˜” \v*”\" ’ \v*œ”“8 \f \v*”\" ’ \v*˜” \v*\" ’ \v*œ”’8 \f \v*”\"C\0\0\0À” ” \v*\"C\0\0\0À” ”C\0\0€?’’8 j 8\0 j 8\0 j 8\0 j 8\0 \v  j*\0\"80 \v  j*\0\"8@ \v  j*\0\"8P \n j 8\0 \n j 8\0 \n j 8\0 \v \f* \v*8” \f*\0 \v*0” \f*\f \v*4”’’8\0 \v \f* \v*8” \f* \v*0” \f* \v*4”’’8 \v \f* \v*8” \f*\b \v*0” \f* \v*4”’’8\b \v \f* \v*D” \f*\0 \v*<” \f*\f \v*@”’’8\f \v \f* \v*D” \f* \v*<” \f* \v*@”’’8 \v \f* \v*D” \f*\b \v*<” \f* \v*@”’’8 \v \f* \v*P” \f*\0 \v*H” \f*\f \v*L”’’8 \v \f* \v*P” \f* \v*H” \f* \v*L”’’8 \v \f* \v*P” \f*\b \v*H” \f* \v*L”’’8 \v* ! \v*\b! \v*! \r \v*\" ” \v*\0\" ” \v*\f\"\x1B \x1B”’’C\0\0€@”  \v*\"”  \v*\"” \x1B \v*\"”’’C\0\0€@”6 \r  ”  ” \x1B ”’’C\0\0€@”  ”  ”  ”’’C\0\0€@”6 \r  ”  ”  ”’’C\0\0€@”  ”  ”  ”’’C\0\0€@”6 Aj!\f\v\v \vA\xA0j$\0\v\0\v\v \0A\b\v");
25750
+ return s("\0asm\0\0\00\b``}}`|}`}`||`\v\0`\0`\0\0\x07aa\0\0\r\0\0\x07\x07‚€€\bAÀ¤\v\x07b\0c\0\rd\0\ne\0\ff\0\v\f\núT\rO| \0 \0¢\"\0 \0 \0¢\"¢ \0DiPîàB“ù>¢D'è‡ÀV¿\xA0¢ DB:áSU¥?¢ \0D^\fýÿÿß¿¢D\0\0\0\0\0\0ð?\xA0\xA0\xA0¶\vT~@AÀ (\0\"­ \0­B\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\0?\0AtM\r \0\0\r\vAÄ A06\0A\vAÀ \x006\0 \vK| \0 \0 \0¢\"¢\"  ¢¢ D§F;Œ‡ÍÆ>¢DtçÊâù\0*¿\xA0¢  D²ûn‰?¢Dw¬ËTUUÅ¿\xA0¢ \0\xA0\xA0¶\v¨\0@ A€\bN@ \0D\0\0\0\0\0\0à¢!\0 AÿI@ Aÿ\x07k!\f\v \0D\0\0\0\0\0\0à¢!\0Aý  AýO\x1BAþk!\f\v AxJ\r\0 \0D\0\0\0\0\0\0`¢!\0 A¸pK@ AÉ\x07j!\f\v \0D\0\0\0\0\0\0`¢!\0Aðh  AðhM\x1BA’j!\v \0 Aÿ\x07j­B4†¿¢\v…} \0¼\"AvAÿq\"A•M} Aý\0M@ \0C\0\0\0\0”\v} \0‹\"\0C\0\0\0K’C\0\0\0˒ \0“\"C\0\0\0?^@ \0 ’C\0\0€¿’\f\v \0 ’\"\0 C\0\0\0¿_E\r\0 \0C\0\0€?’\v\"\0Œ \0 A\0H\x1B \0\v\v!\0 \0C\0\0\0\0—C\0\0\0\0 \0¼Aÿÿÿÿ\x07qA€€€ü\x07M\x1B\v+\0 \0 \0 \0CkÓ\r¼”Cº/½’”Cuª*>’” \0C®å4¿”C\0\0€?’•\vÈ| \0C`B¢\r]A\0AÿA}C\0\0\0\0 \0¼\"A€€€üF\r\0@ A€€€ü\x07kAÿÿÿ‡xM@ At\"E@#\0Ak\"C\0\0€¿8\f *\fC\0\0\0\0•\f\v A€€€ü\x07F\r A€€€xI A\0NqE@ \0 \0“\"\0 \0•\f\v \0C\0\0\0K”¼A€€€Ü\0k!\vAˆ\n+\0  A€€Ìùk\"A€€€|qk¾» AvAðq\"+€\b¢D\0\0\0\0\0\0ð¿\xA0\" ¢\"¢A\n+\0 ¢A˜\n+\0\xA0\xA0 ¢ Au·A€\n+\0¢ +ˆ\b\xA0 \xA0\xA0¶!\0\v \0\vC\0\0@A’C\0\0¨A•C\0\0~C”C\0\0€?’ü\0\" AL\x1B\" AÿN\x1B\vAÿq\vr \0¼\"Aÿÿÿq!@ AvAÿq\"E\r\0 Að\0M@ A€€€rAñ\0 kv!\f\v AK@A€ø!A\0!\f\v A\ntA€€\x07k!\v  AvA€€qr A\rvr\v¬|\n}@  $G@  $A\fl\"\0Aj\"j*\0!  \0A\bj\"j*\0! \0 \bj \0 j*\0\"8\0 \b j 8\0  \bj 8\0 $At\"\x1Bj  \x1Bj\"*\x008\0 $At\"Ar\"At\"j  j\"*\x008\0 Ar\"At\"%j  %j\" *\x008\0 Ar\"!At\"&j  &j\"\"*\x008\0 \0 \nj \0 j\"'*\x008\0  \nj  j\"(*\x008\0 \n j  j*\0\"8\0 \x07 \x1Bj  j-\0\0  j-\0\0A\btr  j-\0\0Atr  !j-\0\0Atr6\0 \x07 j   Atr6\0 *\0\" ” \"*\0\" ” *\0\" ” *\0\" ”’’’\"C\0\0\0\0^@  ‘\"•!  •!  •!  •!\vC\0\0€?!C\0\0\0\0!C\0\0\0\0!} C\0\0\0\0]@ Œ! Œ! Œ! Œ!\v C\0\0€? C\0\0€?]\x1B\"¼\"Aÿÿÿÿ\x07q\"\0A€€€üO@C\0\0\0\0CÚI@ A\0N\x1B \0A€€€üF\rC\0\0\0\0  “•\f\v} \0Aÿÿÿ÷M@CÚÉ? \0A€€”I\rCh!¢3   ”\x07”“ “CÚÉ?’\f\v A\0H@CÚÉ? C\0\0€?’C\0\0\0?”\"‘\"  \x07”Ch!¢³’’“\" ’\f\vC\0\0€? “C\0\0\0?”\"‘\" \x07”  ¼A€`q¾\" ”“  ’•’ ’\" ’\v\v\"!#\0Ak\"$\0@ ¼\"Aÿÿÿÿ\x07q\"\0Aڟ¤úM@ \0A€€€ÌI\r »!\f\v \0AѧíƒM@ »!\v \0Aã—Û€M@ A\0H@ \vD-DTû!ù?\xA0Œ!\f\v \vD-DTû!ù¿\xA0!\f\vD-DTû! ÀD-DTû! @ A\0N\x1B \v\xA0š!\f\v \0AÕ㈇M@ \0AßÛ¿…M@ »!\v A\0H@ \vDÒ!3|Ù@\xA0!\f\v \vDÒ!3|ÙÀ\xA0Œ!\f\vD-DTû!@D-DTû!À A\0H\x1B »\xA0!\f\v \0A€€€ü\x07O@  “!\f\v#\0Ak\"$\0@ ¼\")Aÿÿÿÿ\x07q\"\0Aڟ¤îM@  »\"\f \fDƒÈÉm0_ä?¢D\0\0\0\0\0\x008C\xA0D\0\0\0\0\0\x008Ã\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA0\"\r9\b \vü!\0 \rD\0\0\0`û!é¿c@  \f \vD\0\0\0\0\0\0ð¿\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA09\b \0Ak!\0\f\v \rD\0\0\0`û!é?dE\r  \f \vD\0\0\0\0\0\0ð?\xA0\"\vD\0\0\0Pû!ù¿¢\xA0 \vDcba´Q¾¢\xA09\b \0Aj!\0\f\v \0A€€€ü\x07O@   “»9\bA\0!\0\f\v  \0 \0AvA–k\"\0Atk¾»9\b A\bj!\"A\0!#\0A°k\"$\0 \0 \0AkAm\"A\0 A\0J\x1B\"Ahlj!A\xA0\n(\0\"A\0N@ Aj!\0 !@ AÀj Atj A\0H|D\0\0\0\0\0\0\0\0 At(°\n·\v9\0 Aj! Aj\" \0G\r\0\v\v Ak!\x1BA\0!\0 A\0 A\0J\x1B!@A\0!D\0\0\0\0\0\0\0\0!\v@ \" Atj+\0 AÀj \0 kAtj+\0¢ \v\xA0!\v Aj\"AG\r\0\v  \0Atj \v9\0 \0 F \0Aj!\0E\r\0\vA/ k!*A0 k!# AtA°\nj!+ Ak!, !\0@@  \0Atj+\0!\vA\0! \0! \0A\0J@@ Aàj Atj \vD\0\0\0\0\0\0p>¢ü·\"\fD\0\0\0\0\0\0pÁ¢ \v\xA0ü6\0  AtjA\bk+\0 \f\xA0!\v Ak! Aj\" \0G\r\0\v\v \v \x1B\"\v \vD\0\0\0\0\0\0À?¢œD\0\0\0\0\0\0 À¢\xA0\"\v \vü\" ·¡!\v@@@ \x1BA\0L\"-E@ \0At j\" (Ü\"  #u\" #tk\"6Ü  j!  *u\f\v \x1B\r \0At j(ÜAu\v\"!A\0L\r\f\vA!! \vD\0\0\0\0\0\0à?f\r\0A\0!!\f\vA\0!A\0!A! \0A\0J@@ Aàj Atj\".(\0!@ . Aÿÿÿ\x07 E\rA€€€\b\v k6\0A!A\0\f\vA\0!A\v! Aj\" \0G\r\0\v\v@ -\r\0Aÿÿÿ!@@ ,\0\vAÿÿÿ!\v \0At j\" (Ü q6Ü\v Aj! !AG\r\0D\0\0\0\0\0\0ð? \v¡!\vA!! \r\0 \vD\0\0\0\0\0\0ð? \x1B¡!\v\v \vD\0\0\0\0\0\0\0\0a@A\0! \0!@ \0 L\r\0@ Aàj Ak\"Atj(\0 r!  J\r\0\v E\r\0@ \x1BAk!\x1B Aàj \0Ak\"\0Atj(\0E\r\0\v\f\vA!@ \"Aj! Aàj  kAtj(\0E\r\0\v \0 j!@ AÀj \0Aj\"\0Atj + \0Atj(\0·9\0A\0!D\0\0\0\0\0\0\0\0!\v@ \" Atj+\0 AÀj \0 kAtj+\0¢ \v\xA0!\v Aj\"AG\r\0\v  \0Atj \v9\0 \0 H\r\0\v !\0\f\v\v@ \vA k\"\vD\0\0\0\0\0\0pAf@ Aàj \0Atj \vD\0\0\0\0\0\0p>¢ü\"·D\0\0\0\0\0\0pÁ¢ \v\xA0ü6\0 \0Aj!\0 !\x1B\f\v \vü!\v Aàj \0Atj 6\0\vD\0\0\0\0\0\0ð? \x1B!\v \0A\0N@ \0!@  \"Atj \v Aàj Atj(\0·¢9\0 Ak! \vD\0\0\0\0\0\0p>¢!\v \r\0\vA\0! \0!@    J\x1B!\x1B \0 k!  Atj!\"A\0!D\0\0\0\0\0\0\0\0!\v@ At\"#+€ \" #j+\0¢ \v\xA0!\v  \x1BG Aj!\r\0\v A\xA0j Atj \v9\0 Ak! \0 G Aj!\r\0\v\vD\0\0\0\0\0\0\0\0!\v \0A\0N@@ \0\"Ak!\0 \v A\xA0j Atj+\0\xA0!\v \r\0\v\v  \vš \v !\x1B9\0 A°j$\0 A\x07q!\0 +\0!\v )A\0H@  \vš9\bA\0 \0k!\0\f\v  \v9\b\v Aj$\0 +\b!\v@@@@ \0AqAk\0\v \v!\f\v \v!\f\v \vš!\f\v \vŒ!\v Aj$\0 C½7†5^@  •!  •!  •!\v ‹ ‹’ ‹’\"C\0\0\0\0^@  •!  •!  •!\v@ C\0\0\0\0`@ !\f\vC\0\0€? ‹“\" Œ C\0\0\0\0`\x1B!C\0\0€? ‹“\" Œ C\0\0\0\0`\x1B!\v C\0\0\0?”C\0\0\0?’C\0\0C”! \x07 %j C\0\0\0?”C\0\0\0?’C\0\0C”C\0\0C–üAt  r C\0\0C–üAtr6\0 '*\0\b!\0 \x07 &j \0 (*\0\bA\btr \bAtr  ’CÛI@•C\0\0C”C\0\0C–üAtr6\0 $Aj!$\f\v\v\vß\v\b@ \0E\r\0 \0A\bk\" \0Ak(\0\"Axq\"\0j!@ Aq\r\0 AqE\r  (\0\"k\"AØ (\0I\r \0 j!\0@@@AÜ (\0 G@ (\f! AÿM@  (\b\"G\rAÈ AÈ (\0A~ Avwq6\0\f\v (!\x07  G@ (\b\" 6\f  6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v (\"AqAG\rAÐ \x006\0  A~q6  \0Ar6  \x006\0\v  6\f  6\b\f\vA\0!\v \x07E\r\0@ (\"At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ wq6\0\f\v@  \x07(F@ \x07 6\f\v \x07 6\v E\r\v  \x076 (\"@  6  6\v (\"E\r\0  6  6\v  O\r\0 (\"AqE\r\0@@@@ AqE@Aà (\0 F@Aà 6\0AÔ AÔ (\0 \0j\"\x006\0  \0Ar6 AÜ (\0G\rAÐ A\x006\0AÜ A\x006\0\vAÜ (\0\"\x07 F@AÜ 6\0AÐ AÐ (\0 \0j\"\x006\0  \0Ar6 \0 j \x006\0\v Axq \0j!\0 (\f! AÿM@ (\b\" F@AÈ AÈ (\0A~ Avwq6\0\f\v  6\f  6\b\f\v (!\b  G@ (\b\" 6\f  6\b\f\v (\" Aj (\"E\r Aj\v!@ ! \"Aj! (\"\r\0 Aj! (\"\r\0\v A\x006\0\f\v  A~q6  \0Ar6 \0 j \x006\0\f\vA\0!\v \bE\r\0@ (\"At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ wq6\0\f\v@  \b(F@ \b 6\f\v \b 6\v E\r\v  \b6 (\"@  6  6\v (\"E\r\0  6  6\v  \0Ar6 \0 j \x006\0  \x07G\r\0AÐ \x006\0\v \0AÿM@ \0AøqAð j!AÈ (\0\"A \0Avt\"\0qE@AÈ \0 r6\0 \f\v (\b\v!\0  6\b \0 6\f  6\f  \x006\b\vA! \0Aÿÿÿ\x07M@ \0A& \0A\bvg\"kvAq AtrA>s!\v  6 B\x007 AtAø\"j!@AÌ (\0\"A t\"qE@AÌ  r6\0  6\0A!A\b\f\v \0A AvkA\0 AG\x1Bt! (\0!@ \"(Axq \0F\r Av! At!  Aqj\"(\"\r\0\v  6A! !A\b\v!\0 \"\f\v (\b\" 6\f  6\bA!\0A\b!A\0\v!  j 6\0  6\f \0 j 6\0Aè Aè (\0Ak\"\0A \0\x1B6\0\v\v¸'\v#\0Ak\"\n$\0@@@@@@@@@@ \0AôM@AÈ (\0\"A \0A\vjAøq \0A\vI\x1B\"Av\"\0v\"Aq@@ AsAq \0j\"At\"Að j\"\0 (ø \"(\b\"F@AÈ A~ wq6\0\f\v  \x006\f \0 6\b\v A\bj!\0  Ar6  j\" (Ar6\f\v\v AÐ (\0\"\bM\r @@A \0t\"A\0 kr  \0tqh\"At\"Að j\" (ø \"\0(\b\"F@AÈ A~ wq\"6\0\f\v  6\f  6\b\v \0 Ar6 \0 j\"\x07  k\"Ar6 \0 j 6\0 \b@ \bAxqAð j!AÜ (\0! A \bAvt\"qE@AÈ  r6\0 \f\v (\b\v!  6\b  6\f  6\f  6\b\v \0A\bj!\0AÜ \x076\0AÐ 6\0\f\v\vAÌ (\0\"\vE\r \vhAt(ø\"\"(Axq k! !@@ (\"\0E@ (\"\0E\r\v \0(Axq k\"   I\"\x1B! \0  \x1B! \0!\f\v\v (!  (\f\"\0G@ (\b\" \x006\f \0 6\b\f\n\v (\" Aj (\"E\r Aj\v!@ !\x07 \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v \x07A\x006\0\f \vA! \0A¿K\r\0 \0A\vj\"Axq!AÌ (\0\"\x07E\r\0A!\bA\0 k! \0Aôÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtkA>j!\b\v@@@ \bAt(ø\"\"E@A\0!\0\f\vA\0!\0 A \bAvkA\0 \bAG\x1Bt!@@ (Axq k\" O\r\0 ! \"\r\0A\0! !\0\f\v \0 (\"   AvAqj(\"F\x1B \0 \x1B!\0 At! \r\0\v\v \0 rE@A\0!A \bt\"\0A\0 \0kr \x07q\"\0E\r \0hAt(ø\"!\0\v \0E\r\v@ \0(Axq k\" I!   \x1B! \0  \x1B! \0(\"  \0(\v\"\0\r\0\v\v E\r\0 AÐ (\0 kO\r\0 (!\b  (\f\"\0G@ (\b\" \x006\f \0 6\b\f\b\v (\" Aj (\"E\r Aj\v!@ ! \"\0Aj! \0(\"\r\0 \0Aj! \0(\"\r\0\v A\x006\0\f\x07\v AÐ (\0\"M@AÜ (\0!\0@  k\"AO@ \0 j\" Ar6 \0 j 6\0 \0 Ar6\f\v \0 Ar6 \0 j\" (Ar6A\0!A\0!\vAÐ 6\0AÜ 6\0 \0A\bj!\0\f \v AÔ (\0\"I@AÔ  k\"6\0Aà Aà (\0\"\0 j\"6\0  Ar6 \0 Ar6 \0A\bj!\0\f \vA\0!\0 A/j\"A\xA0$(\0@A¨$(\0\f\vA¬$B7\0A¤$B€\xA0€€€€7\0A\xA0$ \nA\fjApqAتժs6\0A´$A\x006\0A„$A\x006\0A€ \v\"j\"A\0 k\"\x07q\" M\r\bA€$(\0\"@Aø#(\0\"\b j\" \bM  Ir\r \v@A„$-\0\0AqE@@@@@Aà (\0\"@Aˆ$!\0@ \0(\0\"\b M@  \b \0(jI\r\v \0(\b\"\0\r\0\v\vA\0\"AF\r !A¤$(\0\"\0Ak\" q@  k  jA\0 \0kqj!\v  M\rA€$(\0\"\0@Aø#(\0\" j\"\x07 M \0 \x07Ir\r\v \"\0 G\r\f\v  k \x07q\"\" \0(\0 \0(jF\r !\0\v \0AF\r A0j M@ \0!\f\vA¨$(\0\"  kjA\0 kq\"AF\r  j! \0!\f\v AG\r\vA„$A„$(\0Ar6\0\v \"AFA\0\"\0AFr \0 Mr\r \0 k\" A(jM\r\vAø#Aø#(\0 j\"\x006\0Aü#(\0 \0I@Aü# \x006\0\v@Aà (\0\"@Aˆ$!\0@  \0(\0\" \0(\"jF\r \0(\b\"\0\r\0\v\f\vAØ (\0\"\0A\0 \0 M\x1BE@AØ 6\0\vA\0!\0AŒ$ 6\0Aˆ$ 6\0Aè A6\0Aì A\xA0$(\x006\0A”$A\x006\0@ \0At\" Að j\"6ø  6ü \0Aj\"\0A G\r\0\vAÔ A(k\"\0Ax kA\x07q\"k\"6\0Aà  j\"6\0  Ar6 \0 jA(6Aä A°$(\x006\0\f\v  M  Kr\r \0(\fA\bq\r \0  j6Aà Ax kA\x07q\"\0j\"6\0AÔ AÔ (\0 j\" \0k\"\x006\0  \0Ar6  jA(6Aä A°$(\x006\0\f\vA\0!\0\f\vA\0!\0\f\vAØ (\0 K@AØ 6\0\v  j!Aˆ$!\0@@  \0(\0\"G@ \0(\b\"\0\r\f\v\v \0-\0\fA\bqE\r\vAˆ$!\0@@ \0(\0\" M@   \0(j\"I\r\v \0(\b!\0\f\v\vAÔ A(k\"\0Ax kA\x07q\"k\"\x076\0Aà  j\"6\0  \x07Ar6 \0 jA(6Aä A°$(\x006\0  A' kA\x07qjA/k\"\0 \0 AjI\x1B\"A\x1B6 A$)\x007 Aˆ$)\x007\bA$ A\bj6\0AŒ$ 6\0Aˆ$ 6\0A”$A\x006\0 Aj!\0@ \0A\x076 \0A\bj \0Aj!\0 I\r\0\v  F\r\0  (A~q6   k\"Ar6  6\0 AÿM@ AøqAð j!\0AÈ (\0\"A Avt\"qE@AÈ  r6\0 \0\f\v \0(\b\v! \0 6\b  6\fA\f!A\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtAø\"j!@@AÌ (\0\"A \0t\"qE@AÌ  r6\0  6\0\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0  Aqj\"(\"\r\0\v  6\v  6A\b! \"!\0A\f\f\v (\b\"\0 6\f  6\b  \x006\bA\0!\0A!A\f\v j 6\0  j \x006\0\vAÔ (\0\"\0 M\r\0AÔ \0 k\"6\0Aà Aà (\0\"\0 j\"6\0  Ar6 \0 Ar6 \0A\bj!\0\f\vAÄ A06\0A\0!\0\f\v \0 6\0 \0 \0( j6 Ax kA\x07qj\"\b Ar6 Ax kA\x07qj\"  \bj\"k!\x07@Aà (\0 F@Aà 6\0AÔ AÔ (\0 \x07j\"\x006\0  \0Ar6\f\vAÜ (\0 F@AÜ 6\0AÐ AÐ (\0 \x07j\"\x006\0  \0Ar6 \0 j \x006\0\f\v (\"\0AqAF@ \0Axq! (\f!@ \0AÿM@ (\b\" F@AÈ AÈ (\0A~ \0Avwq6\0\f\v  6\f  6\b\f\v (!@  G@ (\b\"\0 6\f  \x006\b\f\v@ (\"\0 Aj (\"\0E\r Aj\v!@ ! \0\"Aj! \0(\"\0\r\0 Aj! (\"\0\r\0\v A\x006\0\f\vA\0!\v E\r\0@ (\"\0At\"(ø\" F@ Aø\"j 6\0 \rAÌ AÌ (\0A~ \0wq6\0\f\v@  (F@  6\f\v  6\v E\r\v  6 (\"\0@  \x006 \0 6\v (\"\0E\r\0  \x006 \0 6\v \x07 j!\x07  j\"(!\0\v  \0A~q6  \x07Ar6  \x07j \x076\0 \x07AÿM@ \x07AøqAð j!\0AÈ (\0\"A \x07Avt\"qE@AÈ  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA! \x07Aÿÿÿ\x07M@ \x07A& \x07A\bvg\"\0kvAq \0AtrA>s!\v  6 B\x007 AtAø\"j!\0@@AÌ (\0\"A t\"qE@AÌ  r6\0 \0 6\0\f\v \x07A AvkA\0 AG\x1Bt! \0(\0!@ \"\0(Axq \x07F\r Av! At! \0 Aqj\"(\"\r\0\v  6\v  \x006  6\f  6\b\f\v \0(\b\" 6\f \0 6\b A\x006  \x006\f  6\b\v \bA\bj!\0\f\v@ \bE\r\0@ (\"At\"(ø\" F@ Aø\"j \x006\0 \0\rAÌ \x07A~ wq\"\x076\0\f\v@  \b(F@ \b \x006\f\v \b \x006\v \0E\r\v \0 \b6 (\"@ \0 6  \x006\v (\"E\r\0 \0 6  \x006\v@ AM@   j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v  Ar6  j\" Ar6  j 6\0 AÿM@ AøqAð j!\0AÈ (\0\"A Avt\"qE@AÈ  r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\f\vA!\0 Aÿÿÿ\x07M@ A& A\bvg\"\0kvAq \0AtrA>s!\0\v  \x006 B\x007 \0AtAø\"j!@@ \x07A \0t\"qE@AÌ  \x07r6\0  6\0  6\f\v A \0AvkA\0 \0AG\x1Bt!\0 (\0!@ \"(Axq F\r \0Av! \0At!\0  Aqj\"\x07(\"\r\0\v \x07 6  6\v  6\f  6\b\f\v (\b\"\0 6\f  6\b A\x006  6\f  \x006\b\v A\bj!\0\f\v@ E\r\0@ (\"At\"(ø\" F@ Aø\"j \x006\0 \0\rAÌ \vA~ wq6\0\f\v@  (F@ \x006\f\v \x006\v \0E\r\v \0 6 (\"@ \0 6  \x006\v (\"E\r\0 \0 6  \x006\v@ AM@   j\"\0Ar6 \0 j\"\0 \0(Ar6\f\v  Ar6  j\" Ar6  j 6\0 \b@ \bAxqAð j!\0AÜ (\0!A \bAvt\"\x07 qE@AÈ  \x07r6\0 \0\f\v \0(\b\v! \0 6\b  6\f  \x006\f  6\b\vAÜ 6\0AÐ 6\0\v A\bj!\0\v \nAj$\0 \0\v\0\v\vË\0A€\b\v÷¾óøyìaö?ÞªŒ€÷{Õ¿=ˆ¯Jíqõ?ÛmÀ§ð¾Ò¿°ðð9•ô?g:Q®п…¸°•Éó?é$‚¦Ø1Ë¿¥dˆ\f\ró?XwÀ\nOWÆ¿\xA0Ž\v{\"^ò?\0œÇ+ªÁ¿?4JJ»ñ?^ŒÎvNº¿ºåŠðX#ñ?ÌaZ<—±¿§\0™A?•ð?\fá8ôR¢¿\0\0\0\0\0\0ð?\0\0\0\0\0\0\0\0¬GšýŒ`î?„Yò]ª¥ª?\xA0j³¤ì?´.6ªS^¼?æüjW6 ë?\bÛ wå&Å?-ª¡cÑÂé?pG\"\r†ÂË?íAxæ†è?á~\xA0ȋÑ?bHSõÜgç? î¶W0Ô?ï9úþB.æ?4ƒ¸H£пj\và\v[WÕ?#A\nòþÿß¿\0\0\0\0\0\0\0\0\0\0\0\0ƒù¢\0DNn\0ü)\0ÑW'\0Ý4õ\0bÛÀ\0<™•\0AC\0cQþ\0»Þ«\0·aÅ\0:n$\0ÒMB\0Ià\0 ê.\0’Ñ\0ëþ\0)±\0è>§\0õ5‚\0D».\0œé„\0´&p\0A~_\0֑9\0Sƒ9\0œô9\0‹_„\0(ù½\0ø;\0Þÿ—\0˜\0/ï\0\nZ‹\0mm\0Ï~6\0 Ë'\0FO·\0žf?\0-ê_\0º'u\0åëÇ\0={ñ\0÷9\x07\0’RŠ\0ûkê\0±_\0\b]\x000V\0{üF\0ð«k\0 ¼Ï\x006ôš\0ã©\0^a‘\0\b\x1Bæ\0…™e\0\xA0_\0@h\0€Øÿ\0'sM\01\0ÊV\0ɨs\0{â`\0kŒÀ\0ÄG\0ÍgÃ\0 èÜ\0Yƒ*\0‹vÄ\0¦–\0D¯Ý\0WÑ\0¥>\0\x07ÿ\x003~?\0Â2è\0˜OÞ\0»}2\0&=Ã\0kï\0Ÿø^\x005:\0òÊ\0ñ‡\0|!\0j$|\0Õnú\x000-w\0;C\0µÆ\0Ý\0­ÄÂ\0,MA\0\f\0]\0†}F\0ãq-\0›Æš\x003b\0\0´Ò|\0´§—\x007UÕ\0×>ö\0£\0Mvü\0d*\0p׫\0c|ø\0z°W\0ç\0ÀIV\0;ÖÙ\0§„8\0$#Ë\0֊w\0ZT#\0\0¹\0ñ\n\x1B\0Îß\0Ÿ1ÿ\0fj\0™Wa\0¬ûG\0~Ø\0\"e·\x002è‰\0æ¿`\0ïÄÍ\0l6 \0]?Ô\0Þ×\0X;Þ\0ޛ’\0Ò\"(\0(†è\0âXM\0ÆÊ2\0\bã\0à}Ë\0ÀP\0ó§\0à[\0.4\0ƒb\0ƒH\0õŽ[\0­°\0éò\0HJC\0gÓ\0ªÝØ\0®_B\0jaÎ\0\n(¤\0ә´\0¦ò\0\\w\0£Âƒ\0a<ˆ\0Šsx\0¯ŒZ\0o×½\0-¦c\0ô¿Ë\0ï\0&Ág\0UÊE\0ÊÙ6\0(¨Ò\0Âa\0Éw\0&\0F›\0ÄYÄ\0ÈÅD\0M²‘\0\0ó\0ÔC­\0)Iå\0ýÕ\0\0¾ü\0”Ì\0pÎî\0>õ\0ìñ€\0³çÃ\0Çø(\0“”\0Áq>\0. ³\0\vEó\0ˆœ\0« {\0.µŸ\0G’Â\0{2/\0\fUm\0r§\0kç\x001˖\0yJ\0Ayâ\0ô߉\0蔗\0âæ„\0™1—\0ˆík\0__6\0»ý\0Hš´\0g¤l\0qrB\0]2\0Ÿ¸\0¼å \01%\0÷t9\x000\0\r\f\0K\bh\0,îX\0Gª\0tç\0½Ö$\0÷}¦\0nHr\0Ÿï\0Ž”¦\0´‘ö\0ÑSQ\0Ï\nò\0 ˜3\0õK~\0²ch\0Ý>_\0@]\0…‰\0UR)\x007dÀ\0mØ\x002H2\0[Lu\0NqÔ\0ETn\0\v Á\0*õi\0fÕ\0'\x07\0]P\0´;Û\0êvÅ\0‡ù\0Ik}\0'º\0–i)\0ÆÌ¬\0­T\0âj\0ˆÙ‰\0,rP\0¤¾\0w\x07”\0ó0p\0\0ü'\0êq¨\0fÂI\0dà=\0—݃\0£?—\0C”ý\0\r†Œ\x001AÞ\0’9\0ÝpŒ\0·ç\0\bß;\07+\0\\€\xA0\0Z€“\0’\0èØ\0l€¯\0ÛÿK\x008\0Yv\0b¥\0aË»\0lj¹\0@½\0Òò\0Iu'\0ë¶ö\0Û\"»\0\nª\0‰&/\0dƒv\0 ;3\0”\0Q:ª\0£Â\0¯í®\0\\&\0mÂM\0-zœ\0ÀV—\0?ƒ\0 ðö\0+@Œ\0m1™\x009´\x07\0\f \0ØÃ[\0õ’Ä\0Æ­K\0NÊ¥\0§7Í\0æ©6\0«’”\0ÝBh\0cÞ\0vŒï\0h‹R\0üÛ7\0®¡«\0ß1\0\0®¡\0\fûÚ\0dMf\0í·\0)e0\0WV¿\0Gÿ:\0jù¹\0u¾ó\0(“ß\0«€0\0fŒö\0Ë\0ú\"\0Ùä\0=³¤\0W\x1B\x006Í \0NBé\0¾¤\x003#µ\0ðª\0Oe¨\0ÒÁ¥\0\v?\0[xÍ\0#ùv\0{‹\0‰r\0ƦS\0onâ\0ïë\0\0›JX\0ÄÚ·\0ªfº\0vÏÏ\0Ñ\0±ñ-\0Œ™Á\0íw\0†HÚ\0÷]\xA0\0ƀô\0¬ð/\0Ýìš\0?\\¼\0ÐÞm\0Ç\0*Û¶\0£%:\0\0¯š\0­S“\0¶W\0)-´\0K€~\0Ú\x07§\0vª\0{Y¡\0*\0Ü·-\0úåý\0‰Ûþ\0‰¾ý\0ävl\0©ü\0>€p\0…n\0ý‡ÿ\0(>\x07\0ag3\0*†\0M½ê\0³ç¯\0mn\0•g9\x001¿[\0„×H\x000ß\0Ç-C\0%a5\0ÉpÎ\x000˸\0¿lý\0¤\0¢\0lä\0ZÝ\xA0\0!oG\0bÒ\0¹\\„\0paI\0kVà\0™R\0PU7\0Õ·\x003ñÄ\0n_\0]0ä\0….©\0²Ã\0¡26\0\b·¤\0ê±Ô\0÷!\0iä\0'ÿw\0\f€\0@-\0OÍ\xA0\0 ¥™\0³¢Ó\0/]\n\0´ùB\0ÚË\0}¾Ð\0›ÛÁ\0«½\0Ê¢\0\bj\\\0.U\0'\0U\0ð\0á\x07†\0\vd\0–A\0‡¾Þ\0Úý*\0k%¶\0{‰4\0óþ\0¹¿ž\0hjO\0J*¨\0OÄZ\0-ø¼\0×Z˜\0ôǕ\0\rM\0 :¦\0¤W_\0?±\0€8•\0Ì \0q݆\0ÉÞ¶\0¿`õ\0Me\0\x07k\0Œ°¬\0²ÀÐ\0QUH\0û\0•rÃ\0£;\0À@5\0Ü{\0àEÌ\0N)ú\0ÖÊÈ\0èóA\0|dÞ\0›dØ\0Ù¾1\0¤—Ã\0wXÔ\0iãÅ\0ðÚ\0º:<\0FF\0Uu_\0Ò½õ\0n’Æ\0¬.]\0Dí\0>B\0ać\0)ýé\0çÖó\0\"|Ê\0o‘5\0\bàÅ\0ÿ׍\0njâ\0°ýÆ\0“\bÁ\0|]t\0k­²\0Ín\0>r{\0Æj\0÷Ï©\0)sß\0µÉº\0·\0Q\0â²\r\0tº$\0å}`\0t؊\0\r,\0\f\0~f”\0)\0Ÿzv\0ýý¾\0VEï\0Ù~6\0ìÙ\0‹º¹\0ėü\x001¨'\0ñnÃ\0”Å6\0بV\0´¨µ\0ÏÌ\0‰-\0oW4\0,V‰\0™Îã\0Ö ¹\0k^ª\0>*œ\0_Ì\0ý\vJ\0áôû\0Ž;m\0â†,\0éԄ\0ü´©\0ïîÑ\0.5É\0/9a\x008!D\0\x1BÙÈ\0ü\n\0ûJj\0/Ø\0S´„\0N™Œ\0T\"Ì\0*UÜ\0ÀÆÖ\0\v–\0p¸\0i•d\0&Z`\0?Rî\0\0ôµ\0üËõ\x004¼-\x004¼î\0è]Ì\0Ý^`\0gŽ›\0’3ï\0ɸ\0aX›\0áW¼\0QƒÆ\0Ø>\0ÝqH\0-Ý\0¯¡\0!,F\0Yó×\0Ùz˜\0žTÀ\0O†ú\0Vü\0åy®\0‰\"6\x008­\"\0g“Ü\0Uèª\0‚&8\0Êç›\0Q\r¤\0™3±\0©×\0iH\0e²ð\0ˆ§\0ˆL—\0ùÑ6\0!’³\0{‚J\0˜Ï!\0@ŸÜ\0ÜGU\0át:\0gëB\0þß\0^Ô_\0{g¤\0º¬z\0Uö¢\0+ˆ#\0AºU\0Yn\b\0!*†\x009Gƒ\0‰ãæ\0åžÔ\0Iû@\0ÿVé\0Ê\0ÅYŠ\0”ú+\0ÓÁÅ\0ÅÏ\0ÛZ®\0Gņ\0…Cb\0!†;\0,y”\0a‡\0*L{\0€,\0C¿\0ˆ&\0x<‰\0¨Ää\0åÛ{\0Ä:Â\0&ôê\0÷gŠ\0\r’¿\0e£+\0=“±\0½|\v\0¤QÜ\0'Ýc\0iáÝ\0š”\0¨)•\0hÎ(\0 í´\0DŸ \0N˜Ê\0p‚c\0~|#\0¹2\0§õŽ\0Vç\0!ñ\b\0µ*\0o~M\0¥Q\0µù«\0‚ßÖ\0–Ýa\06\0Ä:Ÿ\0ƒ¢¡\0rím\x009z\0‚¸©\0k2\\\0F'[\0\x004í\0Ò\0w\0üôU\0YM\0àq€\0Aƒ \v=@û!ù?\0\0\0\0-Dt>\0\0\0€˜Fø<\0\0\0`QÌx;\0\0\0€ƒ\x1Bð9\0\0\0@ %z8\0\0\0€\"‚ã6\0\0\0\0ói5\0AÀ \v@");
25746
25751
  }
25747
25752
  function _(e) {
25748
25753
  return e;
@@ -25803,20 +25808,24 @@ function hy() {
25803
25808
  return te(), t = u ? n : new Promise((e, t) => {
25804
25809
  c = e;
25805
25810
  }), t;
25806
- }), hy.apply(this, arguments);
25811
+ }), gy.apply(this, arguments);
25807
25812
  }
25808
25813
  //#endregion
25809
25814
  //#region build/five/gaussian-splatting/util/renderData.js
25810
- var gy = null;
25811
- function _y() {
25812
- return gy || (gy = my()), gy;
25815
+ var _y = null;
25816
+ function vy() {
25817
+ return _y || (_y = hy()), _y;
25818
+ }
25819
+ var yy = null;
25820
+ function by() {
25821
+ return yy || (yy = new fy()), yy;
25813
25822
  }
25814
- var vy = class {
25823
+ var xy = class {
25815
25824
  static warmupWasm() {
25816
- _y();
25825
+ vy();
25817
25826
  }
25818
25827
  constructor(e, t = 0) {
25819
- this.dataChanged = !1, this.transformsChanged = !1, this.maxShDegree = 0, this.initialBuildComplete = !1, this.pendingInitialBuildCount = 0, this.disposed = !1, this.resolveReadyPromise = null, this.objectsInOrder = [], this.generation = t, this.readyPromise = new Promise((e) => {
25828
+ this.dataChanged = !1, this.transformsChanged = !1, this.maxShDegree = 0, this.initialBuildComplete = !1, this.pendingInitialBuildCount = 0, this.sortDataReleased = !1, this.aggregatedDataReleased = !1, this.shDataReleased = !1, this.indexDataReleased = !1, this.disposed = !1, this.resolveReadyPromise = null, this.objectsInOrder = [], this.generation = t, this.readyPromise = new Promise((e) => {
25820
25829
  this.resolveReadyPromise = e;
25821
25830
  });
25822
25831
  let n = 0, r = 0;
@@ -25826,23 +25835,23 @@ var vy = class {
25826
25835
  this.splatIndices.set(e, r), this.offsets.set(e, n), i.set(n, e);
25827
25836
  let t = e.gsViewLayerKey || e.uuid, a = this.layerKeyToIndex.get(t);
25828
25837
  a === void 0 && (a = this.layerKeys.length, this.layerKeys.push(t), this.layerKeyToIndex.set(t, a)), this.objectLayerIndices.set(e, a), n += e.numPoints, r++, this.objectsInOrder.push(e);
25829
- }), this.numPoints = n, this.pendingInitialBuildCount = e.length, this.initialBuildComplete = this.pendingInitialBuildCount === 0, this.width = 2048, this.height = Math.ceil(2 * this.numPoints / this.width), this.data = new Uint32Array(this.width * this.height * 4), this.transformsWidth = 5, this.transformsHeight = i.size, this.transforms = new Float32Array(this.transformsWidth * this.transformsHeight * 4), this.transformIndicesWidth = 1024, this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = new Uint32Array(this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesWidth = 1024, this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = new Uint32Array(this.layerIndicesWidth * this.layerIndicesHeight), this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
25838
+ }), this.numPoints = n, this.pendingInitialBuildCount = e.length, this.initialBuildComplete = this.pendingInitialBuildCount === 0, this.width = 2048, this.height = Math.ceil(this.numPoints / this.width), this.data = new Uint32Array(this.width * this.height * 4), this.transformsWidth = 5, this.transformsHeight = i.size, this.transforms = new Float32Array(this.transformsWidth * this.transformsHeight * 4), this.transformIndicesWidth = 1024, this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = new Uint32Array(this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesWidth = 1024, this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = new Uint32Array(this.layerIndicesWidth * this.layerIndicesHeight), this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
25830
25839
  let a = 0;
25831
25840
  e.forEach((e) => {
25832
25841
  e.maxSHDegree > a && (a = e.maxSHDegree);
25833
25842
  }), this.maxShDegree = a, a >= 1 && (this.sh1 = new Float32Array(this.numPoints * 9)), a >= 2 && (this.sh2 = new Float32Array(this.numPoints * 15)), a >= 3 && (this.sh3 = new Float32Array(this.numPoints * 21)), e.forEach((e) => {
25834
25843
  let t = this.offsets.get(e);
25835
25844
  e.sh1 && this.sh1 && this.sh1.set(e.sh1, t * 9), e.sh2 && this.sh2 && this.sh2.set(e.sh2, t * 15), e.sh3 && this.sh3 && this.sh3.set(e.sh3, t * 21);
25836
- }), this.worker = new dy(), this.worker.onmessage = (e) => {
25845
+ }), this.worker = by(), this.worker.onmessage = (e) => {
25837
25846
  if (!this.disposed && e.data.response) {
25838
25847
  let t = e.data.response, n = i.get(t.offset);
25839
25848
  if (!n) return;
25840
25849
  this.updateTransform(n);
25841
25850
  let r = this.splatIndices.get(n), a = this.objectLayerIndices.get(n);
25842
25851
  for (let e = 0; e < n.numPoints; e++) this.transformIndices[t.offset + e] = r, this.layerIndices[t.offset + e] = a;
25843
- this.data.set(t.data, t.offset * 8), n.reattach(t.positions, t.rotations, t.scales, t.colors, t.selection), this.positions.set(t.worldPositions, t.offset * 3), this.rotations.set(t.worldRotations, t.offset * 4), this.scales.set(t.worldScales, t.offset * 3), n.selectedChanged = !1, this.dataChanged = !0;
25852
+ this.data.set(t.data, t.offset * 4), n.reattach(t.positions, t.rotations, t.scales, t.colors, t.selection), this.positions.set(t.worldPositions, t.offset * 3), this.rotations.set(t.worldRotations, t.offset * 4), this.scales.set(t.worldScales, t.offset * 3), n.selectedChanged = !1, this.dataChanged = !0;
25844
25853
  }
25845
- }, _y().then((e) => {
25854
+ }, vy().then((e) => {
25846
25855
  if (this.disposed) {
25847
25856
  this.completeInitialBuild();
25848
25857
  return;
@@ -25858,6 +25867,36 @@ var vy = class {
25858
25867
  let t = this.splatIndices.get(e);
25859
25868
  this.transforms.set(e.matrixWorld.elements, t * 20), this.transforms[t * 20 + 16] = e.selected ? 1 : 0, e.transformChanged = !1, e.selectedChanged = !1, this.transformsChanged = !0;
25860
25869
  }
25870
+ releaseSortData() {
25871
+ this.sortDataReleased || (this.positions = new Float32Array(), this.rotations = new Float32Array(), this.scales = new Float32Array(), this.sortDataReleased = !0);
25872
+ }
25873
+ releaseAggregatedData() {
25874
+ this.aggregatedDataReleased || (this.data = new Uint32Array(), this.indexDataReleased || this.releaseIndexData(), this.shDataReleased || this.releaseSHData(), this.aggregatedDataReleased = !0);
25875
+ }
25876
+ releaseSHData() {
25877
+ this.shDataReleased || (this.sh1 = void 0, this.sh2 = void 0, this.sh3 = void 0, this.shDataReleased = !0);
25878
+ }
25879
+ releaseIndexData() {
25880
+ this.indexDataReleased || (this.transformIndices = new Uint32Array(), this.layerIndices = new Uint32Array(), this.indexDataReleased = !0);
25881
+ }
25882
+ rebuildSortData() {
25883
+ return Vo(this, void 0, void 0, function* () {
25884
+ if (!this.sortDataReleased || this.disposed) return;
25885
+ let e = yield vy();
25886
+ if (!this.disposed) {
25887
+ this.positions = new Float32Array(this.numPoints * 3), this.rotations = new Float32Array(this.numPoints * 4), this.scales = new Float32Array(this.numPoints * 3);
25888
+ for (let t of this.objectsInOrder) {
25889
+ let n = this.offsets.get(t);
25890
+ if (n === void 0) continue;
25891
+ let r = e._malloc(3 * t.numPoints * 4), i = e._malloc(4 * t.numPoints * 4), a = e._malloc(3 * t.numPoints * 4), o = e._malloc(4 * t.numPoints), s = e._malloc(t.numPoints), c = e._malloc(4 * t.numPoints * 4), l = e._malloc(3 * t.numPoints * 4), u = e._malloc(4 * t.numPoints * 4), d = e._malloc(3 * t.numPoints * 4);
25892
+ e.HEAPF32.set(t.positions, r / 4), e.HEAPF32.set(t.rotations, i / 4), e.HEAPF32.set(t.scales, a / 4), e.HEAPU8.set(t.colors, o), e.HEAPU8.set(t.selection, s), e._pack(t.selected, t.numPoints, r, i, a, o, s, c, l, u, d);
25893
+ let f = new Float32Array(e.HEAPF32.buffer, l, t.numPoints * 3), p = new Float32Array(e.HEAPF32.buffer, u, t.numPoints * 4), m = new Float32Array(e.HEAPF32.buffer, d, t.numPoints * 3);
25894
+ this.positions.set(f, n * 3), this.rotations.set(p, n * 4), this.scales.set(m, n * 3), e._free(r), e._free(i), e._free(a), e._free(o), e._free(s), e._free(c), e._free(l), e._free(u), e._free(d);
25895
+ }
25896
+ this.sortDataReleased = !1;
25897
+ }
25898
+ });
25899
+ }
25861
25900
  getObjectsInOrder() {
25862
25901
  return this.objectsInOrder;
25863
25902
  }
@@ -25870,10 +25909,10 @@ var vy = class {
25870
25909
  return Vo(this, void 0, void 0, function* () {
25871
25910
  if (this.disposed) return !1;
25872
25911
  if (e.length === 0) return !0;
25873
- let t = yield _y();
25912
+ let t = yield vy();
25874
25913
  if (this.disposed) return !1;
25875
25914
  let n = this.numPoints, r = this.objectsInOrder.length, i = n + e.reduce((e, t) => e + t.numPoints, 0), a = r + e.length;
25876
- this.numPoints = i, this.height = Math.ceil(2 * this.numPoints / this.width), this.data = this.expandUint32Array(this.data, this.width * this.height * 4), this.transformsHeight = a, this.transforms = this.expandFloat32Array(this.transforms, this.transformsWidth * this.transformsHeight * 4), this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = this.expandUint32Array(this.transformIndices, this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = this.expandUint32Array(this.layerIndices, this.layerIndicesWidth * this.layerIndicesHeight), this.positions = this.expandFloat32Array(this.positions, this.numPoints * 3), this.rotations = this.expandFloat32Array(this.rotations, this.numPoints * 4), this.scales = this.expandFloat32Array(this.scales, this.numPoints * 3);
25915
+ this.numPoints = i, this.height = Math.ceil(this.numPoints / this.width), this.data = this.expandUint32Array(this.data, this.width * this.height * 4), this.transformsHeight = a, this.transforms = this.expandFloat32Array(this.transforms, this.transformsWidth * this.transformsHeight * 4), this.transformIndicesHeight = Math.ceil(this.numPoints / this.transformIndicesWidth), this.transformIndices = this.expandUint32Array(this.transformIndices, this.transformIndicesWidth * this.transformIndicesHeight), this.layerIndicesHeight = Math.ceil(this.numPoints / this.layerIndicesWidth), this.layerIndices = this.expandUint32Array(this.layerIndices, this.layerIndicesWidth * this.layerIndicesHeight), this.positions = this.expandFloat32Array(this.positions, this.numPoints * 3), this.rotations = this.expandFloat32Array(this.rotations, this.numPoints * 4), this.scales = this.expandFloat32Array(this.scales, this.numPoints * 3);
25877
25916
  let o = e.reduce((e, t) => Math.max(e, t.maxSHDegree), this.maxShDegree);
25878
25917
  o > this.maxShDegree && (this.maxShDegree = o), this.maxShDegree >= 1 && (this.sh1 = this.expandFloat32Array(this.sh1, this.numPoints * 9)), this.maxShDegree >= 2 && (this.sh2 = this.expandFloat32Array(this.sh2, this.numPoints * 15)), this.maxShDegree >= 3 && (this.sh3 = this.expandFloat32Array(this.sh3, this.numPoints * 21));
25879
25918
  let s = n, c = r;
@@ -25889,11 +25928,11 @@ var vy = class {
25889
25928
  buildImmediate(e, t) {
25890
25929
  if (this.disposed) return;
25891
25930
  this.updateTransform(t);
25892
- let n = e._malloc(3 * t.numPoints * 4), r = e._malloc(4 * t.numPoints * 4), i = e._malloc(3 * t.numPoints * 4), a = e._malloc(4 * t.numPoints), o = e._malloc(t.numPoints), s = e._malloc(8 * t.numPoints * 4), c = e._malloc(3 * t.numPoints * 4), l = e._malloc(4 * t.numPoints * 4), u = e._malloc(3 * t.numPoints * 4);
25931
+ let n = e._malloc(3 * t.numPoints * 4), r = e._malloc(4 * t.numPoints * 4), i = e._malloc(3 * t.numPoints * 4), a = e._malloc(4 * t.numPoints), o = e._malloc(t.numPoints), s = e._malloc(4 * t.numPoints * 4), c = e._malloc(3 * t.numPoints * 4), l = e._malloc(4 * t.numPoints * 4), u = e._malloc(3 * t.numPoints * 4);
25893
25932
  e.HEAPF32.set(t.positions, n / 4), e.HEAPF32.set(t.rotations, r / 4), e.HEAPF32.set(t.scales, i / 4), e.HEAPU8.set(t.colors, a), e.HEAPU8.set(t.selection, o), e._pack(t.selected, t.numPoints, n, r, i, a, o, s, c, l, u);
25894
- let d = new Uint32Array(e.HEAPU32.buffer, s, t.numPoints * 8), f = new Float32Array(e.HEAPF32.buffer, c, t.numPoints * 3), p = new Float32Array(e.HEAPF32.buffer, l, t.numPoints * 4), m = new Float32Array(e.HEAPF32.buffer, u, t.numPoints * 3), h = this.splatIndices.get(t), g = this.offsets.get(t), _ = this.objectLayerIndices.get(t);
25933
+ let d = new Uint32Array(e.HEAPU32.buffer, s, t.numPoints * 4), f = new Float32Array(e.HEAPF32.buffer, c, t.numPoints * 3), p = new Float32Array(e.HEAPF32.buffer, l, t.numPoints * 4), m = new Float32Array(e.HEAPF32.buffer, u, t.numPoints * 3), h = this.splatIndices.get(t), g = this.offsets.get(t), _ = this.objectLayerIndices.get(t);
25895
25934
  for (let e = 0; e < t.numPoints; e++) this.transformIndices[g + e] = h, this.layerIndices[g + e] = _;
25896
- this.data.set(d, g * 8), this.positions.set(f, g * 3), this.rotations.set(p, g * 4), this.scales.set(m, g * 3), e._free(n), e._free(r), e._free(i), e._free(a), e._free(o), e._free(s), e._free(c), e._free(l), e._free(u), this.dataChanged = !0, this.pendingInitialBuildCount = Math.max(0, this.pendingInitialBuildCount - 1), this.pendingInitialBuildCount === 0 && this.completeInitialBuild();
25935
+ this.data.set(d, g * 4), this.positions.set(f, g * 3), this.rotations.set(p, g * 4), this.scales.set(m, g * 3), e._free(n), e._free(r), e._free(i), e._free(a), e._free(o), e._free(s), e._free(c), e._free(l), e._free(u), this.dataChanged = !0, this.pendingInitialBuildCount = Math.max(0, this.pendingInitialBuildCount - 1), this.pendingInitialBuildCount === 0 && this.completeInitialBuild();
25897
25936
  }
25898
25937
  expandFloat32Array(e, t) {
25899
25938
  if (!e) return new Float32Array(t);
@@ -25918,33 +25957,33 @@ var vy = class {
25918
25957
  return t - this.offsets.get(e);
25919
25958
  }
25920
25959
  dispose() {
25921
- this.disposed || (this.disposed = !0, this.worker.terminate(), this.completeInitialBuild());
25960
+ this.disposed || (this.disposed = !0, this.completeInitialBuild());
25922
25961
  }
25923
25962
  completeInitialBuild() {
25924
25963
  this.initialBuildComplete || (this.initialBuildComplete = !0), this.resolveReadyPromise && (this.resolveReadyPromise(), this.resolveReadyPromise = null);
25925
25964
  }
25926
- }, yy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0\\`\\`\\0\\` \\0\\`\\0\\0\\x07aa\\0\\0\\0\\0\\x07‚€€\\bA€Œ\\v\\x07b\\0c\\0d\\0e\\0f\\0\\f\n9T~@A€\\b(\\0\"­ \\0­B\\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA„\\bA06\\0A\\vA€\\b \\x006\\0 \\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r  (\\0\"k\"A˜\\b(\\0I\\r \\0 j!\\0@@@Aœ\\b(\\0 G@ (\\f! AÿM@  (\\b\"G\\rAˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0  A~q6  \\0Ar6  \\x006\\0\\v  6\\f  6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v  \\x076 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 Aœ\\b(\\0G\\rA\\bA\\x006\\0Aœ\\bA\\x006\\0\\vAœ\\b(\\0\"\\x07 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!\\b  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v  A~q6  \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v  \\b6 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  \\0Ar6 \\0 j \\x006\\0  \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!Aˆ\\b(\\0\"A \\0Avt\"\\0qE@Aˆ\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0  6\\b \\0 6\\f  6\\f  \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v  6 B\\x007 AtA¸\nj!@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0  6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At!  Aqj\"(\"\\r\\0\\v  6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f  6\\bA!\\0A\\b!A\\0\\v!  j 6\\0  6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@Aˆ\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@Aˆ\\b A~ wq6\\0\\f\\v  \\x006\\f \\0 6\\b\\v A\\bj!\\0  Ar6  j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr  \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@Aˆ\\b A~ wq\"6\\0\\f\\v  6\\f  6\\b\\v \\0 Ar6 \\0 j\"\\x07  k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!Aœ\\b(\\0! A \\bAvt\"qE@Aˆ\\b  r6\\0 \\f\\v (\\b\\v!  6\\b  6\\f  6\\f  6\\b\\v \\0A\\bj!\\0Aœ\\b \\x076\\0A\\b 6\\0\\f\\v\\vAŒ\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\"   I\"\\x1B! \\0  \\x1B! \\0!\\f\\v\\v (!  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!AŒ\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\"   AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I!   \\x1B! \\0  \\x1B! \\0(\"  \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@Aœ\\b(\\0!\\0@  k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0Aœ\\b 6\\0 \\0A\\bj!\\0\\f \\v A”\\b(\\0\"I@A”\\b  k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB€\\xA0€€€€7\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A€ \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM  Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@  \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@  k  jA\\0 \\0kqj!\\v  M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v  k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\"  kjA\\0 kq\"AF\\r  j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@  \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA˜\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A˜\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b  6¼\\b \\0Aj\"\\0A G\\r\\0\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b  j\"6\\0  Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v  M  Kr\\r \\0(\\fA\\bq\\r \\0  j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A”\\bA”\\b(\\0 j\" \\0k\"\\x006\\0  \\0Ar6  jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA˜\\b(\\0 K@A˜\\b 6\\0\\v  j!AÈ\\v!\\0@@  \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@   \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b  j\"6\\0  \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0  A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v  F\\r\\0  (A~q6   k\"Ar6  6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@AŒ\\b(\\0\"A \\0t\"qE@AŒ\\b  r6\\0  6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"(\"\\r\\0\\v  6\\v  6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f  6\\b  \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0  j \\x006\\0\\vA”\\b(\\0\"\\0 M\\r\\0A”\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA„\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\"  \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6\\f\\vAœ\\b(\\0 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ \\0Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!@  G@ (\\b\"\\0 6\\f  \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ \\0wq6\\0\\f\\v@  (F@  6\\f\\v  6\\v E\\r\\v  6 (\"\\0@  \\x006 \\0 6\\v (\"\\0E\\r\\0  \\x006 \\0 6\\v \\x07 j!\\x07  j\"(!\\0\\v  \\0A~q6  \\x07Ar6  \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0Aˆ\\b(\\0\"A \\x07Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v  6 B\\x007 AtA¸\nj!\\0@@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v  6\\v  \\x006  6\\f  6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006  \\x006\\f  6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\x07A~ wq\"\\x076\\0\\f\\v@  \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@AŒ\\b  \\x07r6\\0  6\\0  6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"\\x07(\"\\r\\0\\v \\x07 6  6\\v  6\\f  6\\b\\f\\v (\\b\"\\0 6\\f  6\\b A\\x006  6\\f  \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\vA~ wq6\\0\\f\\v@  (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 \\b@ \\bAxqA°\\bj!\\0Aœ\\b(\\0!A \\bAvt\"\\x07 qE@Aˆ\\b  \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\vAœ\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v§\n}#\\0A€\\bk\"\\f$\\0A! @  \\rFE@  \\rA\\flj\"\n*\\0! \n*\\b! \n*!  \\rAt\"j(\\0\"\nG@  \nAÐ\\0lj\" *< \\0*8\"” *8 \\0*(\"” *0 \\0*\\b\"” \\0*\" *4”’’’! *, ” *( ” * ”  *$”’’’! * ” * ” * ”  *”’’’! *\\f ” *\\b ” *\\0 ” * ”’’’! \n! \\v  j   ”  ”  ”’’’¼\"\nAA€€€€x \nA\\0H\\x1Bs6\\0 \\rAj!\\r\\f\\v\\v@  \\vFE@  \\vAtj \\v6\\0 \\vAj!\\v\\f\\v\\v !\\0A\\0!@ \\0! AF@@ \\0 F\\r\\0 At\"\\0E\\r\\0   \\0ü\n\\0\\0\\v \\fA€\\bj$\\0\\vA\\0!\\0 \\bA\\0A€\\bü\\v\\0 At!@ \\0 F@ \\fA\\x006ü\\x07Aþ!\\v@A\\0!\\0 \\vA\\0HE@ \\f \\vAt\"\\0j \\b \\0Aj\"\\0j(\\0 \\0 \\fj(\\0j6\\0 \\vAk!\\v\\f\\v\\v@ \\0 FE@ \\f   \\0Atj(\\0\" Atj(\\0 vAÿqAtj\"\n \n(\\0\"\nAj6\\0 \\x07 \nAtj 6\\0 \\0Aj!\\0\\f\\v\\v Aj! \\x07!\\0 !\\x07\\f \\b   \\0Atj(\\0Atj(\\0 vAÿqAtj\" (\\0Aj6\\0 \\0Aj!\\0\\f\\v\\0\\v\\0\\v\\0\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._sort=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i,a,o,s,c,l,u,d,f,p=0,m=0,h=[],g=!0,_=!1,v=!1,y=!1,b=()=>e(void 0,void 0,void 0,function*(){if(_){v=!0;return}_=!0,v=!1,n||(yield r());let e=2**Math.ceil(Math.log2(i.vertexCount));p<e&&(p>0&&(n._free(a),n._free(s),n._free(c),n._free(l),n._free(u),n._free(d),n._free(f)),p=e,a=n._malloc(64),s=n._malloc(p*4),c=n._malloc(3*p*4),l=n._malloc(p*4),u=n._malloc(p*4),d=n._malloc(p*4),f=n._malloc(p*4)),m<i.transforms.length&&(m>0&&n._free(o),m=i.transforms.length,o=n._malloc(m*4)),_=!1,v&&(v=!1,yield b())}),x=()=>{if(_||v||!n)return;_=!0,n.HEAPF32.set(i.positions,c/4),n.HEAPF32.set(i.transforms,o/4),n.HEAPU32.set(i.transformIndices,s/4),n.HEAPF32.set(new Float32Array(h),a/4),n._sort(a,o,s,i.vertexCount,c,l,u,d,f);let e=new Uint32Array(n.HEAPU32.buffer,u,i.vertexCount),t=new Uint32Array(e.slice().buffer);self.postMessage({depthIndex:t,generation:i.generation},[t.buffer]),_=!1,g=!1},S=()=>{y||(y=!0,g&&x(),setTimeout(()=>{y=!1,S()}))};self.onmessage=e=>new Promise(t=>{if(e.data.warmup){r().finally(()=>t(!0));return}e.data.sortData&&(i={positions:new Float32Array(e.data.sortData.positions),transforms:new Float32Array(e.data.sortData.transforms),transformIndices:new Uint32Array(e.data.sortData.transformIndices),vertexCount:e.data.sortData.vertexCount,generation:e.data.sortData.generation??0},g=!0,b()),e.data.viewProj?(e.data.viewProj.every(e=>h.includes(e))===!1&&(h=e.data.viewProj,g=!0),S(),t(!0)):t(!0)})})();", by = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", yy], { type: "text/javascript;charset=utf-8" });
25927
- function xy(e) {
25965
+ }, Sy = "(function(){function e(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}async function t(e={}){var t,n=e,r=!1,i=!0,a=self.location.href;if(r||i)try{new URL(`.`,a).href}catch{}console.log.bind(console),console.error.bind(console);var o=!1;function s(e){for(var t=0,n=e.length,r=new Uint8Array(n),i;t<n;++t)i=e.charCodeAt(t),r[t]=~i>>8&i;return r}var c,l,u=!1;function d(){var e=M.buffer;new Int8Array(e),new Int16Array(e),n.HEAPU8=l=new Uint8Array(e),new Uint16Array(e),new Int32Array(e),n.HEAPU32=new Uint32Array(e),n.HEAPF32=new Float32Array(e),new Float64Array(e),new BigInt64Array(e),new BigUint64Array(e)}function f(){if(n.preRun)for(typeof n.preRun==`function`&&(n.preRun=[n.preRun]);n.preRun.length;)T(n.preRun.shift());x(w)}function p(){u=!0,I.c()}function m(){if(n.postRun)for(typeof n.postRun==`function`&&(n.postRun=[n.postRun]);n.postRun.length;)C(n.postRun.shift());x(S)}var h;function g(){return s(`\\0asm\\0\\0\\0\\x1B\\`\\`\\0\\`\n\\`\\0\\0\\x07aa\\0\\0\\0\\0\\x07‚€€\\bA€Œ\\v\\x07b\\0c\\0d\\0e\\0f\\0\\f\nü9T~@A€\\b(\\0\"­ \\0­B\\x07|Bøÿÿÿƒ|\"BÿÿÿÿX@ §\"\\0?\\0AtM\\r \\0\\0\\r\\vA„\\bA06\\0A\\vA€\\b \\x006\\0 \\vß\\v\\b@ \\0E\\r\\0 \\0A\\bk\" \\0Ak(\\0\"Axq\"\\0j!@ Aq\\r\\0 AqE\\r  (\\0\"k\"A˜\\b(\\0I\\r \\0 j!\\0@@@Aœ\\b(\\0 G@ (\\f! AÿM@  (\\b\"G\\rAˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v (!\\x07  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v (\"AqAG\\rA\\b \\x006\\0  A~q6  \\0Ar6  \\x006\\0\\v  6\\f  6\\b\\f\\vA\\0!\\v \\x07E\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\x07(F@ \\x07 6\\f\\v \\x07 6\\v E\\r\\v  \\x076 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  O\\r\\0 (\"AqE\\r\\0@@@@ AqE@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 Aœ\\b(\\0G\\rA\\bA\\x006\\0Aœ\\bA\\x006\\0\\vAœ\\b(\\0\"\\x07 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\0j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\v Axq \\0j!\\0 (\\f! AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!\\b  G@ (\\b\" 6\\f  6\\b\\f\\v (\" Aj (\"E\\r Aj\\v!@ ! \"Aj! (\"\\r\\0 Aj! (\"\\r\\0\\v A\\x006\\0\\f\\v  A~q6  \\0Ar6 \\0 j \\x006\\0\\f\\vA\\0!\\v \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ wq6\\0\\f\\v@  \\b(F@ \\b 6\\f\\v \\b 6\\v E\\r\\v  \\b6 (\"@  6  6\\v (\"E\\r\\0  6  6\\v  \\0Ar6 \\0 j \\x006\\0  \\x07G\\r\\0A\\b \\x006\\0\\v \\0AÿM@ \\0AøqA°\\bj!Aˆ\\b(\\0\"A \\0Avt\"\\0qE@Aˆ\\b \\0 r6\\0 \\f\\v (\\b\\v!\\0  6\\b \\0 6\\f  6\\f  \\x006\\b\\vA! \\0Aÿÿÿ\\x07M@ \\0A& \\0A\\bvg\"kvAq AtrA>s!\\v  6 B\\x007 AtA¸\nj!@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0  6\\0A!A\\b\\f\\v \\0A AvkA\\0 AG\\x1Bt! (\\0!@ \"(Axq \\0F\\r Av! At!  Aqj\"(\"\\r\\0\\v  6A! !A\\b\\v!\\0 \"\\f\\v (\\b\" 6\\f  6\\bA!\\0A\\b!A\\0\\v!  j 6\\0  6\\f \\0 j 6\\0A¨\\bA¨\\b(\\0Ak\"\\0A \\0\\x1B6\\0\\v\\v¸'\\v#\\0Ak\"\n$\\0@@@@@@@@@@ \\0AôM@Aˆ\\b(\\0\"A \\0A\\vjAøq \\0A\\vI\\x1B\"Av\"\\0v\"Aq@@ AsAq \\0j\"At\"A°\\bj\"\\0 (¸\\b\"(\\b\"F@Aˆ\\b A~ wq6\\0\\f\\v  \\x006\\f \\0 6\\b\\v A\\bj!\\0  Ar6  j\" (Ar6\\f\\v\\v A\\b(\\0\"\\bM\\r @@A \\0t\"A\\0 kr  \\0tqh\"At\"A°\\bj\" (¸\\b\"\\0(\\b\"F@Aˆ\\b A~ wq\"6\\0\\f\\v  6\\f  6\\b\\v \\0 Ar6 \\0 j\"\\x07  k\"Ar6 \\0 j 6\\0 \\b@ \\bAxqA°\\bj!Aœ\\b(\\0! A \\bAvt\"qE@Aˆ\\b  r6\\0 \\f\\v (\\b\\v!  6\\b  6\\f  6\\f  6\\b\\v \\0A\\bj!\\0Aœ\\b \\x076\\0A\\b 6\\0\\f\\v\\vAŒ\\b(\\0\"\\vE\\r \\vhAt(¸\n\"(Axq k! !@@ (\"\\0E@ (\"\\0E\\r\\v \\0(Axq k\"   I\"\\x1B! \\0  \\x1B! \\0!\\f\\v\\v (!  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\n\\v (\" Aj (\"E\\r Aj\\v!@ !\\x07 \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v \\x07A\\x006\\0\\f \\vA! \\0A¿K\\r\\0 \\0A\\vj\"Axq!AŒ\\b(\\0\"\\x07E\\r\\0A!\\bA\\0 k! \\0Aôÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtkA>j!\\b\\v@@@ \\bAt(¸\n\"E@A\\0!\\0\\f\\vA\\0!\\0 A \\bAvkA\\0 \\bAG\\x1Bt!@@ (Axq k\" O\\r\\0 ! \"\\r\\0A\\0! !\\0\\f\\v \\0 (\"   AvAqj(\"F\\x1B \\0 \\x1B!\\0 At! \\r\\0\\v\\v \\0 rE@A\\0!A \\bt\"\\0A\\0 \\0kr \\x07q\"\\0E\\r \\0hAt(¸\n!\\0\\v \\0E\\r\\v@ \\0(Axq k\" I!   \\x1B! \\0  \\x1B! \\0(\"  \\0(\\v\"\\0\\r\\0\\v\\v E\\r\\0 A\\b(\\0 kO\\r\\0 (!\\b  (\\f\"\\0G@ (\\b\" \\x006\\f \\0 6\\b\\f\\b\\v (\" Aj (\"E\\r Aj\\v!@ ! \"\\0Aj! \\0(\"\\r\\0 \\0Aj! \\0(\"\\r\\0\\v A\\x006\\0\\f\\x07\\v A\\b(\\0\"M@Aœ\\b(\\0!\\0@  k\"AO@ \\0 j\" Ar6 \\0 j 6\\0 \\0 Ar6\\f\\v \\0 Ar6 \\0 j\" (Ar6A\\0!A\\0!\\vA\\b 6\\0Aœ\\b 6\\0 \\0A\\bj!\\0\\f \\v A”\\b(\\0\"I@A”\\b  k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f \\vA\\0!\\0 A/j\"Aà\\v(\\0@Aè\\v(\\0\\f\\vAì\\vB7\\0Aä\\vB€\\xA0€€€€7\\0Aà\\v \nA\\fjApqAتժs6\\0Aô\\vA\\x006\\0AÄ\\vA\\x006\\0A€ \\v\"j\"A\\0 k\"\\x07q\" M\\r\\bAÀ\\v(\\0\"@A¸\\v(\\0\"\\b j\" \\bM  Ir\\r \\v@AÄ\\v-\\0\\0AqE@@@@@A\\xA0\\b(\\0\"@AÈ\\v!\\0@ \\0(\\0\"\\b M@  \\b \\0(jI\\r\\v \\0(\\b\"\\0\\r\\0\\v\\vA\\0\"AF\\r !Aä\\v(\\0\"\\0Ak\" q@  k  jA\\0 \\0kqj!\\v  M\\rAÀ\\v(\\0\"\\0@A¸\\v(\\0\" j\"\\x07 M \\0 \\x07Ir\\r\\v \"\\0 G\\r\\f\\v  k \\x07q\"\" \\0(\\0 \\0(jF\\r !\\0\\v \\0AF\\r A0j M@ \\0!\\f\\vAè\\v(\\0\"  kjA\\0 kq\"AF\\r  j! \\0!\\f\\v AG\\r\\vAÄ\\vAÄ\\v(\\0Ar6\\0\\v \"AFA\\0\"\\0AFr \\0 Mr\\r \\0 k\" A(jM\\r\\vA¸\\vA¸\\v(\\0 j\"\\x006\\0A¼\\v(\\0 \\0I@A¼\\v \\x006\\0\\v@A\\xA0\\b(\\0\"@AÈ\\v!\\0@  \\0(\\0\" \\0(\"jF\\r \\0(\\b\"\\0\\r\\0\\v\\f\\vA˜\\b(\\0\"\\0A\\0 \\0 M\\x1BE@A˜\\b 6\\0\\vA\\0!\\0AÌ\\v 6\\0AÈ\\v 6\\0A¨\\bA6\\0A¬\\bAà\\v(\\x006\\0AÔ\\vA\\x006\\0@ \\0At\" A°\\bj\"6¸\\b  6¼\\b \\0Aj\"\\0A G\\r\\0\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"6\\0A\\xA0\\b  j\"6\\0  Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0\\f\\v  M  Kr\\r \\0(\\fA\\bq\\r \\0  j6A\\xA0\\b Ax kA\\x07q\"\\0j\"6\\0A”\\bA”\\b(\\0 j\" \\0k\"\\x006\\0  \\0Ar6  jA(6A¤\\bAð\\v(\\x006\\0\\f\\vA\\0!\\0\\f\\vA\\0!\\0\\f\\vA˜\\b(\\0 K@A˜\\b 6\\0\\v  j!AÈ\\v!\\0@@  \\0(\\0\"G@ \\0(\\b\"\\0\\r\\f\\v\\v \\0-\\0\\fA\\bqE\\r\\vAÈ\\v!\\0@@ \\0(\\0\" M@   \\0(j\"I\\r\\v \\0(\\b!\\0\\f\\v\\vA”\\b A(k\"\\0Ax kA\\x07q\"k\"\\x076\\0A\\xA0\\b  j\"6\\0  \\x07Ar6 \\0 jA(6A¤\\bAð\\v(\\x006\\0  A' kA\\x07qjA/k\"\\0 \\0 AjI\\x1B\"A\\x1B6 AÐ\\v)\\x007 AÈ\\v)\\x007\\bAÐ\\v A\\bj6\\0AÌ\\v 6\\0AÈ\\v 6\\0AÔ\\vA\\x006\\0 Aj!\\0@ \\0A\\x076 \\0A\\bj \\0Aj!\\0 I\\r\\0\\v  F\\r\\0  (A~q6   k\"Ar6  6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\fA\\f!A\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@AŒ\\b(\\0\"A \\0t\"qE@AŒ\\b  r6\\0  6\\0\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"(\"\\r\\0\\v  6\\v  6A\\b! \"!\\0A\\f\\f\\v (\\b\"\\0 6\\f  6\\b  \\x006\\bA\\0!\\0A!A\\f\\v j 6\\0  j \\x006\\0\\vA”\\b(\\0\"\\0 M\\r\\0A”\\b \\0 k\"6\\0A\\xA0\\bA\\xA0\\b(\\0\"\\0 j\"6\\0  Ar6 \\0 Ar6 \\0A\\bj!\\0\\f\\vA„\\bA06\\0A\\0!\\0\\f\\v \\0 6\\0 \\0 \\0( j6 Ax kA\\x07qj\"\\b Ar6 Ax kA\\x07qj\"  \\bj\"k!\\x07@A\\xA0\\b(\\0 F@A\\xA0\\b 6\\0A”\\bA”\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6\\f\\vAœ\\b(\\0 F@Aœ\\b 6\\0A\\bA\\b(\\0 \\x07j\"\\x006\\0  \\0Ar6 \\0 j \\x006\\0\\f\\v (\"\\0AqAF@ \\0Axq! (\\f!@ \\0AÿM@ (\\b\" F@Aˆ\\bAˆ\\b(\\0A~ \\0Avwq6\\0\\f\\v  6\\f  6\\b\\f\\v (!@  G@ (\\b\"\\0 6\\f  \\x006\\b\\f\\v@ (\"\\0 Aj (\"\\0E\\r Aj\\v!@ ! \\0\"Aj! \\0(\"\\0\\r\\0 Aj! (\"\\0\\r\\0\\v A\\x006\\0\\f\\vA\\0!\\v E\\r\\0@ (\"\\0At\"(¸\n F@ A¸\nj 6\\0 \\rAŒ\\bAŒ\\b(\\0A~ \\0wq6\\0\\f\\v@  (F@  6\\f\\v  6\\v E\\r\\v  6 (\"\\0@  \\x006 \\0 6\\v (\"\\0E\\r\\0  \\x006 \\0 6\\v \\x07 j!\\x07  j\"(!\\0\\v  \\0A~q6  \\x07Ar6  \\x07j \\x076\\0 \\x07AÿM@ \\x07AøqA°\\bj!\\0Aˆ\\b(\\0\"A \\x07Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA! \\x07Aÿÿÿ\\x07M@ \\x07A& \\x07A\\bvg\"\\0kvAq \\0AtrA>s!\\v  6 B\\x007 AtA¸\nj!\\0@@AŒ\\b(\\0\"A t\"qE@AŒ\\b  r6\\0 \\0 6\\0\\f\\v \\x07A AvkA\\0 AG\\x1Bt! \\0(\\0!@ \"\\0(Axq \\x07F\\r Av! At! \\0 Aqj\"(\"\\r\\0\\v  6\\v  \\x006  6\\f  6\\b\\f\\v \\0(\\b\" 6\\f \\0 6\\b A\\x006  \\x006\\f  6\\b\\v \\bA\\bj!\\0\\f\\v@ \\bE\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\x07A~ wq\"\\x076\\0\\f\\v@  \\b(F@ \\b \\x006\\f\\v \\b \\x006\\v \\0E\\r\\v \\0 \\b6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 AÿM@ AøqA°\\bj!\\0Aˆ\\b(\\0\"A Avt\"qE@Aˆ\\b  r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\f\\vA!\\0 Aÿÿÿ\\x07M@ A& A\\bvg\"\\0kvAq \\0AtrA>s!\\0\\v  \\x006 B\\x007 \\0AtA¸\nj!@@ \\x07A \\0t\"qE@AŒ\\b  \\x07r6\\0  6\\0  6\\f\\v A \\0AvkA\\0 \\0AG\\x1Bt!\\0 (\\0!@ \"(Axq F\\r \\0Av! \\0At!\\0  Aqj\"\\x07(\"\\r\\0\\v \\x07 6  6\\v  6\\f  6\\b\\f\\v (\\b\"\\0 6\\f  6\\b A\\x006  6\\f  \\x006\\b\\v A\\bj!\\0\\f\\v@ E\\r\\0@ (\"At\"(¸\n F@ A¸\nj \\x006\\0 \\0\\rAŒ\\b \\vA~ wq6\\0\\f\\v@  (F@ \\x006\\f\\v \\x006\\v \\0E\\r\\v \\0 6 (\"@ \\0 6  \\x006\\v (\"E\\r\\0 \\0 6  \\x006\\v@ AM@   j\"\\0Ar6 \\0 j\"\\0 \\0(Ar6\\f\\v  Ar6  j\" Ar6  j 6\\0 \\b@ \\bAxqA°\\bj!\\0Aœ\\b(\\0!A \\bAvt\"\\x07 qE@Aˆ\\b  \\x07r6\\0 \\0\\f\\v \\0(\\b\\v! \\0 6\\b  6\\f  \\x006\\f  6\\b\\vAœ\\b 6\\0A\\b 6\\0\\v A\\bj!\\0\\v \nAj$\\0 \\0\\v†\n}@ E@\\f\\vA!\\v@  \\fF@A\\0!\\f \\x07A\\0A€€ü\\v\\0 \\bA\\0A€€ü\\v\\0A\\0!\n@  \nF@A\\0!\n@ \nA€€F@A\\0!\n@  \nF@A\\0!A\\0!\n@ \nA€€F@A\\0!\n@ \n \\fF\\r\\v \\b  \nAtj(\\0\"\\0Atj(\\0AsAvAüÿqj\" (\\0\"Aj6\\0  Atj \\x006\\0 \nAj!\n\\f\\0\\v\\0 \\b \nAtj\"\\0(\\0 \\0 6\\0 \nAj!\n j!\\f\\v\\0\\v\\0\\v  \nAtj(\\0\"\\0A€€€ü\\x07G@ \\x07 \\0AsAÿÿqAtj\"\\0 \\0(\\0\"\\0Aj6\\0 \\0Atj \n6\\0\\v \nAj!\n\\f\\0\\v\\0 \\x07 \nAtj\"\\0(\\0 \\0 \\f6\\0 \nAj!\n \\fj!\\f\\f\\v\\0\\v\\0\\v  \nAtj(\\0\"\\0A€€€ü\\x07G@ \\x07 \\0As\"\\0AÿÿqAtj\" (\\0Aj6\\0 \\b \\0AvAüÿqj\"\\0 \\0(\\0Aj6\\0\\v \nAj!\n\\f\\0\\v\\0  \\fA\\flj\"\n*\\0! \n*\\b! \n*! \\v  \\fAt\"\\rj(\\0\"\nG@  \nAÐ\\0lj\"\\v*< \\0*8\"” \\v*8 \\0*(\"” \\v*0 \\0*\\b\"” \\0*\" \\v*4”’’’! \\v*, ” \\v*( ” \\v* ”  \\v*$”’’’! \\v* ” \\v* ” \\v* ”  \\v*”’’’! \\v*\\f ” \\v*\\b ” \\v*\\0 ” \\v* ”’’’! \n!\\v\\vA€€€ü\\x07!\n  \\rj   ”  ”  ”’’’\"C\\0\\0€\\\\ ¼\"\nAA€€€€x \nA\\0H\\x1BsA€€€ü\\x07\\v6\\0 \\fAj!\\f\\f\\v\\0\\v\\0\\v \\f\\v\\0\\v\\v \\0A\\b\\v`)}function _(e){return e}function v(e,t){var n,r=_(e);return n=new WebAssembly.Module(r),[new WebAssembly.Instance(n,t),n]}function y(){return{a:P}}function b(){function e(e,t){return I=e.exports,N(I),d(),I}var t=y();return n.instantiateWasm?new Promise((r,i)=>{n.instantiateWasm(t,(t,n)=>{r(e(t,n))})}):(h??=g(),e(v(h,t)[0]))}for(var x=e=>{for(;e.length>0;)e.shift()(n)},S=[],C=e=>S.push(e),w=[],T=e=>w.push(e),E=()=>2147483648,D=(e,t)=>Math.ceil(e/t)*t,O=e=>{var t=(e-M.buffer.byteLength+65535)/65536|0;try{return M.grow(t),d(),1}catch{}},k=e=>{var t=l.length;e>>>=0;var n=E();if(e>n)return!1;for(var r=1;r<=4;r*=2){var i=t*(1+.2/r);if(i=Math.min(i,e+100663296),O(Math.min(n,D(Math.max(e,i),65536))))return!0}return!1},A=new Uint8Array(123),j=25;j>=0;--j)A[48+j]=52+j,A[65+j]=j,A[97+j]=26+j;if(A[43]=62,A[47]=63,n.noExitRuntime&&n.noExitRuntime,n.print&&n.print,n.printErr&&n.printErr,n.wasmBinary&&n.wasmBinary,n.arguments&&n.arguments,n.thisProgram&&n.thisProgram,n.preInit)for(typeof n.preInit==`function`&&(n.preInit=[n.preInit]);n.preInit.length>0;)n.preInit.shift()();var M;function N(e){n._sort=e.d,n._malloc=e.e,n._free=e.f,M=e.b,e.__indirect_function_table}var P={a:k};function F(){f();function e(){n.calledRun=!0,!o&&(p(),c?.(n),n.onRuntimeInitialized?.(),m())}n.setStatus?(n.setStatus(`Running...`),setTimeout(()=>{setTimeout(()=>n.setStatus(``),1),e()},1)):e()}var I=b();return F(),t=u?n:new Promise((e,t)=>{c=e}),t}let n;function r(){return e(this,void 0,void 0,function*(){n=yield t()})}let i,a,o,s,c,l,u,d,f,p,m=0,h=0,g=!1,_=[],v=!0,y=!0,b=!1,x=!1,S=!1,C=65536,w=()=>e(void 0,void 0,void 0,function*(){if(b){x=!0;return}b=!0,x=!1,n||(yield r());let e=2**Math.ceil(Math.log2(i.vertexCount));m<e&&(m>0&&(n._free(a),n._free(s),n._free(c),n._free(l),n._free(u),n._free(p)),m=e,a=n._malloc(64),s=n._malloc(m*4),c=n._malloc(3*m*4),l=n._malloc(m*4),u=n._malloc(m*4),p=n._malloc(m*4)),g||=(d=n._malloc(C*4),f=n._malloc(C*4),!0),h<i.transforms.length&&(h>0&&n._free(o),h=i.transforms.length,o=n._malloc(h*4)),b=!1,x&&(x=!1,yield w())}),T=()=>{if(b||x||!n)return;b=!0,y&&=(n.HEAPF32.set(i.positions,c/4),n.HEAPF32.set(i.transforms,o/4),n.HEAPU32.set(i.transformIndices,s/4),!1),n.HEAPF32.set(new Float32Array(_),a/4);let e=n._sort(a,o,s,i.vertexCount,c,l,u,d,f,p),t=Math.min(e,i.vertexCount),r=new Uint32Array(n.HEAPU32.buffer,u,t),m=new Uint32Array(r.slice().buffer);self.postMessage({depthIndex:m,generation:i.generation},[m.buffer]),b=!1,v=!1},E=()=>{S||(S=!0,v&&T(),setTimeout(()=>{S=!1,E()}))};self.onmessage=e=>new Promise(t=>{if(e.data.warmup){r().finally(()=>t(!0));return}e.data.sortData&&(i={positions:e.data.sortData.positions,transforms:e.data.sortData.transforms,transformIndices:e.data.sortData.transformIndices,vertexCount:e.data.sortData.vertexCount,generation:e.data.sortData.generation??0},v=!0,y=!0,w()),e.data.viewProj?(e.data.viewProj.every(e=>_.includes(e))===!1&&(_=e.data.viewProj,v=!0),E(),t(!0)):t(!0)})})();", Cy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", Sy], { type: "text/javascript;charset=utf-8" });
25966
+ function wy(e) {
25928
25967
  let t;
25929
25968
  try {
25930
- if (t = by && (self.URL || self.webkitURL).createObjectURL(by), !t) throw "";
25969
+ if (t = Cy && (self.URL || self.webkitURL).createObjectURL(Cy), !t) throw "";
25931
25970
  let n = new Worker(t, { name: e == null ? void 0 : e.name });
25932
25971
  return n.addEventListener("error", () => {
25933
25972
  (self.URL || self.webkitURL).revokeObjectURL(t);
25934
25973
  }), n;
25935
25974
  } catch (t) {
25936
- return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(yy), { name: e == null ? void 0 : e.name });
25975
+ return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(Sy), { name: e == null ? void 0 : e.name });
25937
25976
  }
25938
25977
  }
25939
25978
  //#endregion
25940
25979
  //#region build/five/model/shaders/pbm_gaussian_splatting/vertex.js
25941
- var Sy = function(...e) {
25980
+ var Ty = function(...e) {
25942
25981
  return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
25943
- }("}rpvv|{-uvtu}-sy|nH}rpvv|{-uvtu}-v{Hnvor-sy|n-}ynV{qr\x07H{vs|z-uvtu}-nz}yr?Q-lr\x07rH{vs|z-uvtu}-nz}yr?Q-ln{s|zH{vs|z-uvtu}-nz}yr?Q-ln{s|zV{qvprH{vs|z-uvtu}-nz}yr?Q-lyn\brV{qvprH{vs|z-uvtu}-nz}yr?Q-luar\x07rH{vs|z-rp?-luar\x07r`v rH{vs|z-v{-lzn\x07`uQrtrrH0vs-[bZlT`lPYV]]R_`-K-=----{vs|z-rp?-lyn\brPyv}}r_n{trh[bZlT`lYNfR_`jH----{vs|z-znA-lpyv}}rZnvprV{rrh[bZlT`lPYV]]R_`jH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-o||y-lnttrtnv|{R{noyrqH{vs|z-sy|n-lnttrtnv|{]|trH-------<<-整个动画的归一化进度-h=9->j{vs|z-sy|n-lnttrtnv|{]|v{Qnv|{H--<<-每个点的固定聚合时长(归一化到总时长,可调试){vs|z-rp@-lnttrtnv|{O|{qZv{H{vs|z-rp@-lnttrtnv|{O|{qZn\x07Hn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH<<参考Tnvn{`}yn@qp|{-sy|n-\0E-J-\05E;=6H<<原版的固定xr{ry`v r,不要轻易调整这个数p|{-sy|n-xr{ry?Q`v r-J-=;@Hp|{-sy|n-zn\x07`prr{`}npr`}yn`v r-J-?=AE;=H<<固定的u相关系数p|{-sy|n-`UlP>-J-=;AEEC=?B>>F=?F>FFHp|{-sy|n-`UlP?l=-J->;=F?BAEAHp|{-sy|n-`UlP?l>-J-:>;=F?BAEAHp|{-sy|n-`UlP?l?-J-=;@>B@F>CHp|{-sy|n-`UlP?l@-J-:>;=F?BAEAHp|{-sy|n-`UlP?lA-J-=;BAC?DA?Hrp?-tr`UQnnbc5v{-}ynVq\x079-v{-p|z}|{r{\\ssr9-rp?-r\x07r`v r6-\n----v{-uP|z}|{r{P|{-J-=H----vs-5lzn\x07`uQrtrr-KJ->6-uP|z}|{r{P|{-8J-FH----vs-5lzn\x07`uQrtrr-KJ-?6-uP|z}|{r{P|{-8J->BH----vs-5lzn\x07`uQrtrr-KJ-@6-uP|z}|{r{P|{-8J-?>H--------v{-}nqqrqP|z}|{r{P|{-J-uP|z}|{r{P|{H----vs-5}nqqrqP|z}|{r{P|{-2-A-.J-=6-\n--------}nqqrqP|z}|{r{P|{-J-55}nqqrqP|z}|{r{P|{-<-A6-8->6-7-AH----\f--------sy|n-yv{rnP|z}|{r{V{qr\x07-J-sy|n5}ynVq\x07-7-}nqqrqP|z}|{r{P|{-8-p|z}|{r{\\ssr6H----sy|n-r\x07ryV{qr\x07-J-yv{rnP|z}|{r{V{qr\x07-<-A;=H------sy|n-q-J-r\x07ryV{qr\x07-<-r\x07r`v r;\x07H----sy|n-\b-J-sy||5q6-<-r\x07r`v r;\bH----sy|n-\x07-J-snp5q6H----r{-rp?5\x079-\b6H\f|vq-znv{-56-\n----v{-}ynV{qr\x07b-J-v{5}ynV{qr\x07-8-=;B6H----v{-}ynV{qr\x07V-J-v{5}ynV{qr\x07b6H----rpA-pr{-J-r\x07rySrpu5lr\x07r9-vrp?55}ynV{qr\x07b-3-=\x07@ss6-II->9-}ynV{qr\x07b-KK->=69-=6H--------v{-n{s|zV{qr\x07-J-r\x07rySrpu5ln{s|zV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x07H----znA-n{s|z-J-znA5--------r\x07rySrpu5ln{s|z9-vrp?5=9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5>9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5?9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5@9-n{s|zV{qr\x0769-=6----6H----znA-n{s|zZ|qrycvrZnv\x07-J-vrZnv\x07-7-n{s|zH----rp@-}ynPr{r-J-v{Ova|Sy|n5pr{;\x07\b 6H----rpA-|yqPr{r-J-n{s|z-7-rpA5}ynPr{r9->;=6H----<<-JJJ-聚合特效-JJJ----sy|n-y|pny]|tr-J-lnttrtnv|{]|trH----sy|n-pnyr]|tr-J-=;=H----o||y-v{O|{qS|Nttrtnv|{-J-snyrH----vs-5lnttrtnv|{R{noyrq-33-lnttrtnv|{]|tr-I->;=6-\n--------o||y-v{O|{q-J-|yqPr{r;\x07-KJ-lnttrtnv|{O|{qZv{;\x07---------------------33-|yqPr{r;\x07-IJ-lnttrtnv|{O|{qZn\x07;\x07---------------------33-|yqPr{r; -KJ-lnttrtnv|{O|{qZv{; ---------------------33-|yqPr{r; -IJ-lnttrtnv|{O|{qZn\x07; H--------vs-5v{O|{q6-\n------------v{O|{qS|Nttrtnv|{-J-rH------------<<-归一化高度-h=9>j,>J最高,=J最低------------sy|n-urvtu_n{tr-J-lnttrtnv|{O|{qZn\x07;\b-:-lnttrtnv|{O|{qZv{;\bH------------sy|n-{|znyv rqUrvtu-J-urvtu_n{tr-K-=;==>----------------L-pynz}55|yqPr{r;\b-:-lnttrtnv|{O|{qZv{;\b6-<-urvtu_n{tr9-=;=9->;=6----------------G-=;BH------------<<-lnttrtnv|{]|v{Qnv|{G-每个点的固定聚合时长(归一化,占总时长的比例)------------<<-最高处5{|znyv rqUrvtuJ>6G-navzrJ=9-r{qavzrJ}|v{Q------------<<-最低处5{|znyv rqUrvtuJ=6G-navzrJ>:}|v{Q9-r{qavzrJ>------------<<-保证最底部的点在总动画结束时刚好聚合完毕------------sy|n-}|v{Q-J-pynz}5lnttrtnv|{]|v{Qnv|{9-=;=>9->;=6H------------sy|n-navzr-J-5>;=-:-{|znyv rqUrvtu6-7-5>;=-:-}|v{Q6H------------y|pny]|tr-J-pynz}55lnttrtnv|{]|tr-:-navzr6-<-}|v{Q9-=;=9->;=6H------------<<-聚合|ssr曲线:先加速后减速(rnr:v{:|)------------sy|n-|ssr]|tr-J-z||ur}5=;=9->;=9-y|pny]|tr6H------------<<-pnyr曲线:缓慢加速,加速度越来越大(rnr:v{-三次方)------------pnyr]|tr-J-y|pny]|tr-7-y|pny]|tr-7-y|pny]|tr-H------------rp@-nttrtnv|{Pr{r-J-5lnttrtnv|{O|{qZv{-8-lnttrtnv|{O|{qZn\x076-<-?;=H------------rp@-qv-J-|yqPr{r;\x07\b -:-nttrtnv|{Pr{rH------------sy|n-qv-J-yr{tu5qv6H------------<<-基于-}ynPr{r-的伪随机距离-8-v{<p|-螺旋方向------------sy|n-n{q`rrq-J-q|5}ynPr{r9-rp@5>?;FEFE9-DE;?@@9-AB;>CA66H------------sy|n-n{qQv-J-snp5v{5n{q`rrq6-7-A@DBE;BAB@6H------------sy|n-n{tyr-J-n{q`rrq-7->=;=H------------rp@-pnrQv-J-{|znyv r5rp@5----------------p|5n{tyr69----------------zv\x075:=;D9-=;>9-snp5v{5n{q`rrq-7->;D6-7-A@DBE;BAB@669----------------v{5n{tyr6------------66H------------sy|n-r\x07}y|v|{Snp|-J-5>;=-:-|ssr]|tr6-7-5>;=-8->;=-7-n{qQv6H------------rp@-|ssr-J-pnrQv-7-qv-7-r\x07}y|v|{Snp|H------------|yqPr{r;\x07\b -8J-|ssrH------------}ynPr{r-J-5v{rr5n{s|z6-7-|yqPr{r6;\x07\b H--------\f----\f----0vs-[bZlT`lPYV]]R_`-K-=----v{-yn\brV{qr\x07-J-v{5r\x07rySrpu5lyn\brV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x076H----vs-5yn\brV{qr\x07-KJ-=-33-yn\brV{qr\x07-I-[bZlT`lYNfR_`6-\n--------rp?-pyv}_n{tr-J-lyn\brPyv}}r_n{trhyn\brV{qr\x07jH--------v{-pyv}`n-J-v{5pyv}_n{tr;\x07-8-=;B6H--------v{-pyv}P|{-J-v{5pyv}_n{tr;\b-8-=;B6H--------v{-pyv}R{q-J-pyv}`n-8-pyv}P|{H--------s|-5v{-v-J-=H-v-I-[bZlT`lPYV]]R_`H-v886-\n----------------vs-5v-I-pyv}`n-\v\v-v-KJ-pyv}R{q6-\n--------------------p|{v{rH----------------\f----------------rpA-pyv}}r]|vv|{-J-lpyv}}rZnvprV{rrhvj-7-|yqPr{rH----------------o||y-pyv}}rq-J-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH----------------vs-5pyv}}rq6-\n--------------------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------------------r{H----------------\f--------\f----\f----0r{qvs----rpA-vrPr{r-J-n{s|zZ|qrycvrZnv\x07-7-rpA5}ynPr{r9->;=6H----rpA-pyv}Pr{r-J-}|wrpv|{Znv\x07-7-vrPr{rH----<<剔除超出视锥体的}yn----sy|n-pyv}-J->;?-7-pyv}Pr{r;H----vs-5pyv}Pr{r; -I-:pyv}Pr{r;-\v\v-pyv}Pr{r; -K-pyv}Pr{r;-\v\v---------pyv}Pr{r;\x07-I-:pyv}-\v\v-pyv}Pr{r;\x07-K-pyv}-\v\v---------pyv}Pr{r;\b-I-:pyv}-\v\v-pyv}Pr{r;\b-K-pyv}6-\n--------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------r{H----\f----rp@-{qpPr{r-J-pyv}Pr{r;\x07\b -<-pyv}Pr{r;H----rp?-s|pny-J-rp?5--------}|wrpv|{Znv\x07h=jh=j-7-r|yv|{;\x07-7-=;B9--------}|wrpv|{Znv\x07h>jh>j-7-r|yv|{;\b-7-=;B----6H--------]|vv|{-J-}|vv|{;\x07\bH----<<-读取协方差数据(使用-unys?\x07>C-打包)----rpA-p|-J-r\x07rySrpu5lr\x07r9-vrp?555}ynV{qr\x07b-3-=\x07@ss6-II->6-\v->9-}ynV{qr\x07b-KK->=69-=6H----rp?->-J-{}npxUnys?\x07>C5p|;\x076H-----rp?-?-J-{}npxUnys?\x07>C5p|;\b6H------rp?-@-J-{}npxUnys?\x07>C5p|; 6H----------sy|n-Z>>-J->;\x07-<-A;=H----sy|n-Z>?-J->;\b-<-A;=H----sy|n-Z>@-J-?;\x07-<-A;=H----sy|n-Z??-J-?;\b-<-A;=H----sy|n-Z?@-J-@;\x07-<-A;=H----sy|n-Z@@-J-@;\b-<-A;=H--------zn@-cx-J-zn@5--------Z>>9-Z>?9-Z>@9--------Z>?9-Z??9-Z?@9----------Z>@9-Z?@9-Z@@-------6H----<<-判断是否是正交模式:透视时-}|wrpv|{Znv\x07h@jh@j-J-=,正交时-J->----o||y-v\\u|tn}uvp-J-}|wrpv|{Znv\x07h@jh@j-K-=;DH----sy|n-n{vznv|{]|tr-J--}|wrpv|{Znv\x07h@jh@jH----zn@-WH----vs-5v\\u|tn}uvp6-\n--------<<-正交模式的雅可比矩阵--------W-J-n{}|r5zn@5------------s|pny;\x079-=;=9-=;=9------------=;=9-s|pny;\b9-=;=9------------=;=9-=;=9-=;=--------66H----\f-ryr-\n--------<<-透视模式的雅可比矩阵--------sy|n--J->;=-<-5vrPr{r; -7-vrPr{r; 6H--------W-J-zn@5------------s|pny;\x07-<-vrPr{r; 9-=;=9-:5s|pny;\x07-7-vrPr{r;\x076-7-9------------=;=9-s|pny;\b-<-vrPr{r; 9-:5s|pny;\b-7-vrPr{r;\b6-7-9------------=;=9-=;=9-=;=--------6H----\f----zn@-d-J-n{}|r5zn@5n{s|zZ|qrycvrZnv\x0766H----zn@-a-J-d-7-WH----<<-将-@Q-协方差矩阵变换为-?Q-协方差矩阵----zn@-p|?Qz-J-n{}|r5a6-7-cx-7-aH----p|?Qzh=jh=j-8J-xr{ry?Q`v rH----p|?Qzh>jh>j-8J-xr{ry?Q`v rH----rp@-p|?Q-J-rp@5p|?Qzh=jh=j9-p|?Qzh=jh>j9-p|?Qzh>jh>j6H----sy|n-n-J-p|?Q;\x07H----sy|n-q-J-p|?Q; H----sy|n-o-J-p|?Q;\bH----sy|n-Q-J-n-7-q-:-o-7-oH----sy|n-npr-J-n-8-qH----sy|n-npr\\r?-J-=;B-7-nprH----sy|n-rz?-J-\05zn\x075=;>9-npr\\r?-7-npr\\r?-:-Q66H----sy|n-rvtr{cnyr>-J-npr\\r?-8-rz?H----sy|n-rvtr{cnyr?-J-npr\\r?-:-rz?H----vs-5rvtr{cnyr?-IJ-=;=6-\n--------r{H----\f----rp?-rvtr{crp|>-J-{|znyv r5rp?5o9-rvtr{cnyr>-:-n66H----rp?-rvtr{crp|?-J-rp?5rvtr{crp|>;\b9-:rvtr{crp|>;\x076H----rp?-onvcrp|>-J-rvtr{crp|>--7-zv{5\0E-7-\05rvtr{cnyr>69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcrp|?-J-rvtr{crp|?--7-zv{5\0E-7-\05rvtr{cnyr?69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcvr}|-J-rp?5>;=-<-r|yv|{;\x079->;=-<-r|yv|{;\b6H----rp?-{qp\\ssr-J-rp?5]|vv|{;\x07-7-onvcrp|>-8-]|vv|{;\b-7-onvcrp|?6-7---------------------onvcvr}|-7-?;=H----<<-JJJ-点云→@QT`-过渡-JJJ----vs-5lnttrtnv|{R{noyrq6-\n--------sy|n-sv{ny`pnyr]|tr-J-v{O|{qS|Nttrtnv|{-L-pnyr]|tr-G-5lnttrtnv|{]|tr-7-lnttrtnv|{]|tr-7-lnttrtnv|{]|tr6H--------{qp\\ssr-7J-zv\x075=;>9->;=9-sv{ny`pnyr]|tr6H----\f----rpA-\0nq]|-J-rpA5{qpPr{r;\x07\b-8-{qp\\ssr9-{qpPr{r; 9->;=6H----tyl]|vv|{-J-\0nq]|H----<<-读取颜色----rpA-p|y|-J-rpA5--------5p|;6-3-=\x07ss9--------5p|;-KK-E6-3-=\x07ss9--------5p|;-KK->C6-3-=\x07ss9--------5p|;-KK-?A6-3-=\x07ss----6-<-?BB;=H----<<应用球谐光照,目前只兼容=>?----vs-5lzn\x07`uQrtrr-KJ->6-\n--------rp@-pnzrn]|V{\\owrp-J-rp@5v{rr5n{s|z6-7-rpA5pnzrn]|vv|{9->;=66H--------rp@-|owrpcvrQv-J-{|znyv r5}ynPr{r-:-pnzrn]|V{\\owrp6H----------------rpA-u=>?@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-=9-luar\x07r`v r66H----------rpA-uABCD-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-A9-luar\x07r`v r66H----------rpA-uEF>=>>-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-E9-luar\x07r`v r66H-----------------rp@-u>-J-u=>?@;toH-----------------------------------rp@-u?-J-rp@5u=>?@;n9-uABCD;t6H---------------------rp@-u@-J-rp@5uABCD;on9-uEF>=>>;6H-----------------------------sy|n-\x07-J-|owrpcvrQv;\x07H--------sy|n-\b-J-|owrpcvrQv;\bH--------sy|n- -J-|owrpcvrQv; H--------rp@-uP|y|-J-u>-7-5:=;AEEC=?B-7-\b6-8-u?-7-5=;AEEC=?B-7- 6-8-u@-7-5:=;AEEC=?B-7-\x076H--------p|y|;to-8J-uP|y|H----------------vs-5lzn\x07`uQrtrr-KJ-?6-\n----------------------rpA-u>?>@>A>B-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->?9-luar\x07r`v r66H------------rpA-u>C>D>E>F-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->C9-luar\x07r`v r66H-------------rpA-u?=?>???@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-?=9-luar\x07r`v r66H-------------------------rp@-uA-J-uEF>=>>;tonH------------------------------------rp@-uB-J-u>?>@>A>B;toH----------------------------------rp@-uC-J-rp@5u>?>@>A>B;n9-u>C>D>E>F;t6H---------------rp@-uD-J-rp@5u>C>D>E>F;on9-u?=?>???@;6H---------------rp@-uElqrt?-J-u?=?>???@;tonH-----------------------------------------sy|n-\x07\x07-J-\x07-7-\x07H------------sy|n-\b\b-J-\b-7-\bH------------sy|n- -J- -7- H------------sy|n-\x07\b-J-\x07-7-\bH------------sy|n-\b -J-\b-7- H------------sy|n-\x07 -J-\x07-7- H------------------------p|y|;to-8J----------------5`UlP?l=-7-\x07\b6-7-uA-8----------------5`UlP?l>-7-\b 6-7-uB-8----------------5`UlP?l?-7-5?;=-7- -:-\x07\x07-:-\b\b66-7-uC-8----------------5`UlP?l@-7-\x07 6-7-uD-8----------------5`UlP?lA-7-5\x07\x07-:-\b\b66-7-uElqrt?H--------\f----\f--------p|y|;to-J-pynz}5p|y|;to9-rp@5=;=69-rp@5>;=66H----P|y|-J-p|y|H----]|vv|{-7J-\0EH----b-J-}|vv|{;\x07\bH\f"), Cy = function(...e) {
25982
+ }("}rpvv|{-uvtu}-sy|nH}rpvv|{-uvtu}-v{Hnvor-sy|n-}ynV{qr\x07H{vs|z-uvtu}-nz}yr?Q-lr\x07rH{vs|z-uvtu}-nz}yr?Q-ln{s|zH{vs|z-uvtu}-nz}yr?Q-ln{s|zV{qvprH{vs|z-uvtu}-nz}yr?Q-lyn\brV{qvprH{vs|z-uvtu}-nz}yr?Q-luar\x07rH{vs|z-rp?-luar\x07r`v rH{vs|z-v{-lzn\x07`uQrtrrH0vs-[bZlT`lPYV]]R_`-K-=----{vs|z-rp?-lyn\brPyv}}r_n{trh[bZlT`lYNfR_`jH----{vs|z-znA-lpyv}}rZnvprV{rrh[bZlT`lPYV]]R_`jH0r{qvs{vs|z-rp?-r|yv|{H{vs|z-o||y-lnttrtnv|{R{noyrqH{vs|z-sy|n-lnttrtnv|{]|trH{vs|z-sy|n-lnttrtnv|{]|v{Qnv|{H{vs|z-rp@-lnttrtnv|{O|{qZv{H{vs|z-rp@-lnttrtnv|{O|{qZn\x07Hn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bHp|{-sy|n-\0E-J-\05E;=6Hp|{-sy|n-xr{ry?Q`v r-J-=;@Hp|{-sy|n-zn\x07`prr{`}npr`}yn`v r-J-?=AE;=Hp|{-sy|n-]V-J-@;>A>BF?CBH<<-Y|t:pnyr-qrp|qv{t-p|{n{-5znpuv{t-qnn;p}}6p|{-sy|n-Y[l`PNYRlZV[-J-:>?;=Hp|{-sy|n-Y[l`PNYRlZNe-J-F;=H<<-`U-p|{n{p|{-sy|n-`UlP>-J-=;AEEC=?B>>F=?F>FFHp|{-sy|n-`UlP?l=-J->;=F?BAEAHp|{-sy|n-`UlP?l>-J-:>;=F?BAEAHp|{-sy|n-`UlP?l?-J-=;@>B@F>CHp|{-sy|n-`UlP?l@-J-:>;=F?BAEAHp|{-sy|n-`UlP?lA-J-=;BAC?DA?H<<-Qrp|qr-y|t:r{p|qrq-v{E-pnyr-onpx-|-sy|nsy|n-qrp|qrY|t`pnyr5v{-r{p|qrq6-\n----vs-5r{p|qrq-JJ-=6-r{-=;=H-<<-?QT`-znxr----sy|n-{|znyv rq-J-5sy|n5r{p|qrq6-:->;=6-<-?BA;=H----r{-r\x07}5{|znyv rq-7-5Y[l`PNYRlZNe-:-Y[l`PNYRlZV[6-8-Y[l`PNYRlZV[6H\f<<-Qrp|qr-|pnurqny-n\x07v:n{tyr-\0nr{v|{-s|z-@-v{E-nyrrpA-qrp|qr^n\\pnurqny5v{-r{pe9-v{-r{pf9-v{-r{pg6-\n----<<-Qrp|qr-|pnurqny-qvrpv|{----sy|n-|\x07-J-sy|n5r{pe6-<-?BB;=-7-?;=-:->;=H----sy|n-|\b-J-sy|n5r{pf6-<-?BB;=-7-?;=-:->;=H----<<-\\pnurqny-|-{v-rp|----sy|n-| -J->;=-:-no5|\x076-:-no5|\b6H----vs-5| -I-=;=6-\n--------sy|n-z}e-J-|\x07H--------|\x07-J-5>;=-:-no5|\b66-7-5|\x07-KJ-=;=-L->;=-G-:>;=6H--------|\b-J-5>;=-:-no5z}e66-7-5|\b-KJ-=;=-L->;=-G-:>;=6H----\f----rp@-n\x07v-J-{|znyv r5rp@5|\x079-|\b9-| 66H----<<-Qrp|qr-n{tyr-h=9-]Vj----sy|n-n{tyr-J-sy|n5r{pg6-<-?BB;=-7-]VH----sy|n-unysN{tyr-J-n{tyr-7-=;BH----sy|n-v{Unys-J-v{5unysN{tyr6H----sy|n-p|Unys-J-p|5unysN{tyr6H----r{-rpA5n\x07v-7-v{Unys9-p|Unys6H-<<-5\x079-\b9- 9-6\f<<-Ovyq-|nv|{-znv\x07-s|z-\0nr{v|{-5\x079-\b9- 9-6zn@-\0na|Zn@5rpA-\x006-\n----sy|n-\x07-J-\0;\x079-\b-J-\0;\b9- -J-\0; 9--J-\0;H----r{-zn@5-------->;=-:-?;=75\b7\b-8- 7 69-?;=75\x077\b-:- 769-------?;=75\x077 -8-\b769--------?;=75\x077\b-8- 769------->;=-:-?;=75\x077\x07-8- 7 69-?;=75\b7 -:-\x07769--------?;=75\x077 -:-\b769-------?;=75\b7 -8-\x07769------->;=-:-?;=75\x077\x07-8-\b7\b6----6H\frp?-tr`UQnnbc5v{-}ynVq\x079-v{-p|z}|{r{\\ssr9-rp?-r\x07r`v r6-\n----v{-uP|z}|{r{P|{-J-=H----vs-5lzn\x07`uQrtrr-KJ->6-uP|z}|{r{P|{-8J-FH----vs-5lzn\x07`uQrtrr-KJ-?6-uP|z}|{r{P|{-8J->BH----vs-5lzn\x07`uQrtrr-KJ-@6-uP|z}|{r{P|{-8J-?>H----v{-}nqqrqP|z}|{r{P|{-J-uP|z}|{r{P|{H----vs-5}nqqrqP|z}|{r{P|{-2-A-.J-=6-\n--------}nqqrqP|z}|{r{P|{-J-55}nqqrqP|z}|{r{P|{-<-A6-8->6-7-AH----\f----sy|n-yv{rnP|z}|{r{V{qr\x07-J-sy|n5}ynVq\x07-7-}nqqrqP|z}|{r{P|{-8-p|z}|{r{\\ssr6H----sy|n-r\x07ryV{qr\x07-J-yv{rnP|z}|{r{V{qr\x07-<-A;=H----sy|n-q-J-r\x07ryV{qr\x07-<-r\x07r`v r;\x07H----sy|n-\b-J-sy||5q6-<-r\x07r`v r;\bH----sy|n-\x07-J-snp5q6H----r{-rp?5\x079-\b6H\f|vq-znv{-56-\n----v{-}ynV{qr\x07b-J-v{5}ynV{qr\x07-8-=;B6H----v{-}ynV{qr\x07V-J-v{5}ynV{qr\x07b6H----<<-JJJ-P|z}np-s|znG-v{tyr-r\x07rySrpu9-A-\x07-v{@?-J->C-o\br<}yn-JJJ----<<-qnnh=jG-_-\v-TIIE-\v-OII>C-\v-NII?A----<<-qnnh>jG-pr{re5s>C6-\v-pr{rf5s>C6----<<-qnnh?jG-pr{rg5s>C6-\v-\0ne5E6II>C-\v-\0nf5E6II?A----<<-qnnh@jG-pnyre5E6-\v-pnyrf5E6IIE-\v-pnyrg5E6II>C-\v-\0ng5E6II?A----rpA-}npxrq-J-r\x07rySrpu5lr\x07r9-vrp?5}ynV{qr\x07b-3-=\x07Dss9-}ynV{qr\x07b-KK->>69-=6H----<<-Qrp|qr-}|vv|{-s|z-sy|n>C----rp?-}|ef-J-{}npxUnys?\x07>C5}npxrq;\b6H----rp?-}|g\0e-J-{}npxUnys?\x07>C5}npxrq; 6H----rp@-}ynPr{r-J-rp@5}|ef;\x079-}|ef;\b9-}|g\0e;\x076H----<<-Qrp|qr-\0nr{v|{-s|z-|pnurqny-r{p|qv{t----v{-\0nR{pe-J-5}npxrq; -KK->C6-3-=\x07ssH----v{-\0nR{pf-J-5}npxrq; -KK-?A6-3-=\x07ssH----v{-\0nR{pg-J-5}npxrq;-KK-?A6-3-=\x07ssH----rpA-\0n-J-qrp|qr^n\\pnurqny5\0nR{pe9-\0nR{pf9-\0nR{pg6H----<<-Qrp|qr-pnyr-s|z-y|t:r{p|qrq-v{E----sy|n-pnyre-J-qrp|qrY|t`pnyr5}npxrq;-3-=\x07ss6H----sy|n-pnyrf-J-qrp|qrY|t`pnyr55}npxrq;-KK-E6-3-=\x07ss6H----sy|n-pnyrg-J-qrp|qrY|t`pnyr55}npxrq;-KK->C6-3-=\x07ss6H----<<-Qrp|qr-p|y|----rpA-p|y|-J-rpA5--------sy|n5}npxrq;\x07-3-=\x07ss69--------sy|n55}npxrq;\x07-KK-E6-3-=\x07ss69--------sy|n55}npxrq;\x07-KK->C6-3-=\x07ss69--------sy|n55}npxrq;\x07-KK-?A6-3-=\x07ss6----6-<-?BB;=H----<<-_rnq-n{s|z----v{-n{s|zV{qr\x07-J-r\x07rySrpu5ln{s|zV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x07H----znA-n{s|z-J-znA5--------r\x07rySrpu5ln{s|z9-vrp?5=9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5>9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5?9-n{s|zV{qr\x0769-=69--------r\x07rySrpu5ln{s|z9-vrp?5@9-n{s|zV{qr\x0769-=6----6H----znA-n{s|zZ|qrycvrZnv\x07-J-vrZnv\x07-7-n{s|zH----rpA-|yqPr{r-J-n{s|z-7-rpA5}ynPr{r9->;=6H----<<-JJJ-Nttrtnv|{-rssrp-JJJ----sy|n-y|pny]|tr-J-lnttrtnv|{]|trH----sy|n-pnyr]|tr-J-=;=H----o||y-v{O|{qS|Nttrtnv|{-J-snyrH----vs-5lnttrtnv|{R{noyrq-33-lnttrtnv|{]|tr-I->;=6-\n--------o||y-v{O|{q-J-|yqPr{r;\x07-KJ-lnttrtnv|{O|{qZv{;\x07---------------------33-|yqPr{r;\x07-IJ-lnttrtnv|{O|{qZn\x07;\x07---------------------33-|yqPr{r; -KJ-lnttrtnv|{O|{qZv{; ---------------------33-|yqPr{r; -IJ-lnttrtnv|{O|{qZn\x07; H--------vs-5v{O|{q6-\n------------v{O|{qS|Nttrtnv|{-J-rH------------sy|n-urvtu_n{tr-J-lnttrtnv|{O|{qZn\x07;\b-:-lnttrtnv|{O|{qZv{;\bH------------sy|n-{|znyv rqUrvtu-J-urvtu_n{tr-K-=;==>----------------L-pynz}55|yqPr{r;\b-:-lnttrtnv|{O|{qZv{;\b6-<-urvtu_n{tr9-=;=9->;=6----------------G-=;BH------------sy|n-}|v{Q-J-pynz}5lnttrtnv|{]|v{Qnv|{9-=;=>9->;=6H------------sy|n-navzr-J-5>;=-:-{|znyv rqUrvtu6-7-5>;=-:-}|v{Q6H------------y|pny]|tr-J-pynz}55lnttrtnv|{]|tr-:-navzr6-<-}|v{Q9-=;=9->;=6H------------sy|n-|ssr]|tr-J-z||ur}5=;=9->;=9-y|pny]|tr6H------------pnyr]|tr-J-y|pny]|tr-7-y|pny]|tr-7-y|pny]|trH------------rp@-nttrtnv|{Pr{r-J-5lnttrtnv|{O|{qZv{-8-lnttrtnv|{O|{qZn\x076-<-?;=H------------rp@-qv-J-|yqPr{r;\x07\b -:-nttrtnv|{Pr{rH------------sy|n-qv-J-yr{tu5qv6H------------sy|n-n{q`rrq-J-q|5}ynPr{r9-rp@5>?;FEFE9-DE;?@@9-AB;>CA66H------------sy|n-n{qQv-J-snp5v{5n{q`rrq6-7-A@DBE;BAB@6H------------sy|n-n{tyr-J-n{q`rrq-7->=;=H------------rp@-pnrQv-J-{|znyv r5rp@5----------------p|5n{tyr69----------------zv\x075:=;D9-=;>9-snp5v{5n{q`rrq-7->;D6-7-A@DBE;BAB@669----------------v{5n{tyr6------------66H------------sy|n-r\x07}y|v|{Snp|-J-5>;=-:-|ssr]|tr6-7-5>;=-8->;=-7-n{qQv6H------------rp@-|ssr-J-pnrQv-7-qv-7-r\x07}y|v|{Snp|H------------|yqPr{r;\x07\b -8J-|ssrH------------}ynPr{r-J-5v{rr5n{s|z6-7-|yqPr{r6;\x07\b H--------\f----\f----<<-JJJ-Pyv}}r-purpx-JJJ----0vs-[bZlT`lPYV]]R_`-K-=----v{-yn\brV{qr\x07-J-v{5r\x07rySrpu5lyn\brV{qvpr9-vrp?5}ynV{qr\x07b-3-=\x07@ss9-}ynV{qr\x07b-KK->=69-=6;\x076H----vs-5yn\brV{qr\x07-KJ-=-33-yn\brV{qr\x07-I-[bZlT`lYNfR_`6-\n--------rp?-pyv}_n{tr-J-lyn\brPyv}}r_n{trhyn\brV{qr\x07jH--------v{-pyv}`n-J-v{5pyv}_n{tr;\x07-8-=;B6H--------v{-pyv}P|{-J-v{5pyv}_n{tr;\b-8-=;B6H--------v{-pyv}R{q-J-pyv}`n-8-pyv}P|{H--------s|-5v{-v-J-=H-v-I-[bZlT`lPYV]]R_`H-v886-\n----------------vs-5v-I-pyv}`n-\v\v-v-KJ-pyv}R{q6-\n--------------------p|{v{rH----------------\f----------------rpA-pyv}}r]|vv|{-J-lpyv}}rZnvprV{rrhvj-7-|yqPr{rH----------------o||y-pyv}}rq-J-pyv}}r]|vv|{;\x07-K-:=;B-33-pyv}}r]|vv|{;\x07-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{;\b-K-:=;B-33-pyv}}r]|vv|{;\b-I-=;BH----------------pyv}}rq-J-pyv}}rq-33-pyv}}r]|vv|{; -K-:=;B-33-pyv}}r]|vv|{; -I-=;BH----------------vs-5pyv}}rq6-\n--------------------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------------------r{H----------------\f--------\f----\f----0r{qvs----rpA-vrPr{r-J-n{s|zZ|qrycvrZnv\x07-7-rpA5}ynPr{r9->;=6H----rpA-pyv}Pr{r-J-}|wrpv|{Znv\x07-7-vrPr{rH----<<-Sz-pyyv{t----sy|n-pyv}-J->;?-7-pyv}Pr{r;H----vs-5pyv}Pr{r; -I-:pyv}Pr{r;-\v\v-pyv}Pr{r; -K-pyv}Pr{r;-\v\v--------pyv}Pr{r;\x07-I-:pyv}-\v\v-pyv}Pr{r;\x07-K-pyv}-\v\v--------pyv}Pr{r;\b-I-:pyv}-\v\v-pyv}Pr{r;\b-K-pyv}6-\n--------tyl]|vv|{-J-rpA5=;=9-=;=9-?;=9->;=6H--------r{H----\f----rp@-{qpPr{r-J-pyv}Pr{r;\x07\b -<-pyv}Pr{r;H----rp?-s|pny-J-rp?5--------}|wrpv|{Znv\x07h=jh=j-7-r|yv|{;\x07-7-=;B9--------}|wrpv|{Znv\x07h>jh>j-7-r|yv|{;\b-7-=;B----6H----]|vv|{-J-}|vv|{;\x07\bH----<<-JJJ-P|z}r-@Q-p|nvn{pr-s|z-\0nr{v|{-8-pnyr-5v{:unqr9-{|-}r:p|z}nv|{6-JJJ----<<-auv-r}ynpr-ur-}r:p|z}rq-p|nvn{pr-rnq-s|z-ur-|yq-@?:o\br-s|zn;----<<-_rsrr{prG-`}nx-p|z}r-p|nvn{pr-v{-rr\x07-unqr-s|z-}npxrq-\0nr{v|{8pnyr;----zn@-|Zn-J-\0na|Zn@5\0n6H----zn@-pnyrZn-J-zn@5--------pnyre9-=;=9-=;=9--------=;=9-pnyrf9-=;=9--------=;=9-=;=9-pnyrg----6H----zn@-Z-J-pnyrZn-7-|ZnH----<<-cx-J-Z-7-Zka-5@Q-p|nvn{pr-v{-|owrp-}npr6----zn@-cx-J-zn@5--------q|5Zh=j9-Zh=j69-q|5Zh=j9-Zh>j69-q|5Zh=j9-Zh?j69--------q|5Zh>j9-Zh=j69-q|5Zh>j9-Zh>j69-q|5Zh>j9-Zh?j69--------q|5Zh?j9-Zh=j69-q|5Zh?j9-Zh>j69-q|5Zh?j9-Zh?j6----6H----<<-Wnp|ovn{-s|-}r}rpvr<|u|tn}uvp-}|wrpv|{----o||y-v\\u|tn}uvp-J-}|wrpv|{Znv\x07h@jh@j-K-=;DH----zn@-WH----vs-5v\\u|tn}uvp6-\n--------W-J-n{}|r5zn@5------------s|pny;\x079-=;=9-=;=9------------=;=9-s|pny;\b9-=;=9------------=;=9-=;=9-=;=--------66H----\f-ryr-\n--------sy|n--J->;=-<-5vrPr{r; -7-vrPr{r; 6H--------W-J-zn@5------------s|pny;\x07-<-vrPr{r; 9-=;=9-:5s|pny;\x07-7-vrPr{r;\x076-7-9------------=;=9-s|pny;\b-<-vrPr{r; 9-:5s|pny;\b-7-vrPr{r;\b6-7-9------------=;=9-=;=9-=;=--------6H----\f----zn@-d-J-n{}|r5zn@5n{s|zZ|qrycvrZnv\x0766H----zn@-a-J-d-7-WH----<<-]|wrp-@Q-p|nvn{pr-|-?Q----zn@-p|?Qz-J-n{}|r5a6-7-cx-7-aH----p|?Qzh=jh=j-8J-xr{ry?Q`v rH----p|?Qzh>jh>j-8J-xr{ry?Q`v rH----rp@-p|?Q-J-rp@5p|?Qzh=jh=j9-p|?Qzh=jh>j9-p|?Qzh>jh>j6H----sy|n-n-J-p|?Q;\x07H----sy|n-q-J-p|?Q; H----sy|n-o-J-p|?Q;\bH----sy|n-Q-J-n-7-q-:-o-7-oH----sy|n-npr-J-n-8-qH----sy|n-npr\\r?-J-=;B-7-nprH----sy|n-rz?-J-\05zn\x075=;>9-npr\\r?-7-npr\\r?-:-Q66H----sy|n-rvtr{cnyr>-J-npr\\r?-8-rz?H----sy|n-rvtr{cnyr?-J-npr\\r?-:-rz?H----vs-5rvtr{cnyr?-IJ-=;=6-\n--------r{H----\f----rp?-rvtr{crp|>-J-{|znyv r5rp?5o9-rvtr{cnyr>-:-n66H----rp?-rvtr{crp|?-J-rp?5rvtr{crp|>;\b9-:rvtr{crp|>;\x076H----rp?-onvcrp|>-J-rvtr{crp|>-7-zv{5\0E-7-\05rvtr{cnyr>69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcrp|?-J-rvtr{crp|?-7-zv{5\0E-7-\05rvtr{cnyr?69-zn\x07`prr{`}npr`}yn`v r6H----rp?-onvcvr}|-J-rp?5>;=-<-r|yv|{;\x079->;=-<-r|yv|{;\b6H----rp?-{qp\\ssr-J-rp?5]|vv|{;\x07-7-onvcrp|>-8-]|vv|{;\b-7-onvcrp|?6-7---------------------onvcvr}|-7-?;=H----<<-]|v{:py|q-|-@QT`-n{vv|{----vs-5lnttrtnv|{R{noyrq6-\n--------sy|n-sv{ny`pnyr]|tr-J-v{O|{qS|Nttrtnv|{-L-pnyr]|tr-G-5lnttrtnv|{]|tr-7-lnttrtnv|{]|tr-7-lnttrtnv|{]|tr6H--------{qp\\ssr-7J-zv\x075=;>9->;=9-sv{ny`pnyr]|tr6H----\f----rpA-\0nq]|-J-rpA5{qpPr{r;\x07\b-8-{qp\\ssr9-{qpPr{r; 9->;=6H----tyl]|vv|{-J-\0nq]|H----<<-JJJ-`U-yvtuv{t-JJJ----vs-5lzn\x07`uQrtrr-KJ->6-\n--------rp@-pnzrn]|V{\\owrp-J-rp@5v{rr5n{s|z6-7-rpA5pnzrn]|vv|{9->;=66H--------rp@-|owrpcvrQv-J-{|znyv r5}ynPr{r-:-pnzrn]|V{\\owrp6H--------rpA-u=>?@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-=9-luar\x07r`v r66H--------rpA-uABCD-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-A9-luar\x07r`v r66H--------rpA-uEF>=>>-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-E9-luar\x07r`v r66H--------rp@-u>-J-u=>?@;toH--------rp@-u?-J-rp@5u=>?@;n9-uABCD;t6H--------rp@-u@-J-rp@5uABCD;on9-uEF>=>>;6H--------sy|n-\x07-J-|owrpcvrQv;\x07H--------sy|n-\b-J-|owrpcvrQv;\bH--------sy|n- -J-|owrpcvrQv; H--------rp@-uP|y|-J-u>-7-5:=;AEEC=?B-7-\b6-8-u?-7-5=;AEEC=?B-7- 6-8-u@-7-5:=;AEEC=?B-7-\x076H--------p|y|;to-8J-uP|y|H--------vs-5lzn\x07`uQrtrr-KJ-?6-\n------------rpA-u>?>@>A>B-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->?9-luar\x07r`v r66H------------rpA-u>C>D>E>F-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9->C9-luar\x07r`v r66H------------rpA-u?=?>???@-J-r\x07r5luar\x07r9-tr`UQnnbc5}ynV{qr\x07V9-?=9-luar\x07r`v r66H------------rp@-uA-J-uEF>=>>;tonH------------rp@-uB-J-u>?>@>A>B;toH------------rp@-uC-J-rp@5u>?>@>A>B;n9-u>C>D>E>F;t6H------------rp@-uD-J-rp@5u>C>D>E>F;on9-u?=?>???@;6H------------rp@-uElqrt?-J-u?=?>???@;tonH------------sy|n-\x07\x07-J-\x07-7-\x07H------------sy|n-\b\b-J-\b-7-\bH------------sy|n- -J- -7- H------------sy|n-\x07\b-J-\x07-7-\bH------------sy|n-\b -J-\b-7- H------------sy|n-\x07 -J-\x07-7- H------------p|y|;to-8J----------------5`UlP?l=-7-\x07\b6-7-uA-8----------------5`UlP?l>-7-\b 6-7-uB-8----------------5`UlP?l?-7-5?;=-7- -:-\x07\x07-:-\b\b66-7-uC-8----------------5`UlP?l@-7-\x07 6-7-uD-8----------------5`UlP?lA-7-5\x07\x07-:-\b\b66-7-uElqrt?H--------\f----\f----p|y|;to-J-pynz}5p|y|;to9-rp@5=;=69-rp@5>;=66H----P|y|-J-p|y|H----]|vv|{-7J-\0EH----b-J-}|vv|{;\x07\bH\f"), Ey = function(...e) {
25944
25983
  return e[0].split("").map((e) => e.charCodeAt(0) > 126 ? e : String.fromCharCode((e.charCodeAt(0) + 113) % 126)).join("");
25945
- }("}rpvv|{-uvtu}-sy|nH0v{pyqr-Ip|zz|{Kn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH|vq-znv{-56-\n----<<-计算从-}yn-中心到当前片段的平方距离----<<-由于-]|vv|{-已经按-\05E6-缩放,平方结果会被缩放-E-倍----<<-如果平方结果大于-E,说明在椭圆外,距离均值超过-\05E6-个标准差----sy|n-N-J-q|5]|vv|{9-]|vv|{6H----vs-5N-K-E;=6-qvpnqH--------rp@-p|y|-J-P|y|;toH--------<<-由于渲染的-}yn-按-\05E6-缩放,高斯公式中的逆协方差矩阵部分变成单位矩阵----<<-因此只剩下-5e-:-zrn{6-7-5e-:-zrn{6,而-zrn{-为零,所以是-e-7-e,即-N----sy|n-|}npv\b-J-r\x07}5:=;B-7-N6-7-P|y|;nH--------tylSntP|y|-J-rpA5p|y|;to9-|}npv\b6H\f"), wy = class extends e.Mesh {
25984
+ }("}rpvv|{-uvtu}-sy|nH0v{pyqr-Ip|zz|{Kn\bv{t-rpA-P|y|Hn\bv{t-rp?-]|vv|{Hn\bv{t-rp?-bH|vq-znv{-56-\n----<<-计算从-}yn-中心到当前片段的平方距离----<<-由于-]|vv|{-已经按-\05E6-缩放,平方结果会被缩放-E-倍----<<-如果平方结果大于-E,说明在椭圆外,距离均值超过-\05E6-个标准差----sy|n-N-J-q|5]|vv|{9-]|vv|{6H----vs-5N-K-E;=6-qvpnqH--------rp@-p|y|-J-P|y|;toH--------<<-由于渲染的-}yn-按-\05E6-缩放,高斯公式中的逆协方差矩阵部分变成单位矩阵----<<-因此只剩下-5e-:-zrn{6-7-5e-:-zrn{6,而-zrn{-为零,所以是-e-7-e,即-N----sy|n-|}npv\b-J-r\x07}5:=;B-7-N6-7-P|y|;nH--------tylSntP|y|-J-rpA5p|y|;to9-|}npv\b6H\f"), Dy = 2, Oy = class extends e.Mesh {
25946
25985
  constructor() {
25947
- super(), this.renderData = null, this.needsRender = !1, this.sortWorker = null, this.depthIndex = new Uint32Array(), this.splatIndexCapacity = 0, this.activeSlot = null, this.pendingSlot = null, this.rebuildGeneration = 0, this.forceClipperUniformRefresh = !1, this.incrementalUpdateInFlight = !1, this.dataTexture = null, this.transformsTexture = null, this.transformIndicesTexture = null, this.layerIndicesTexture = null, this.shTexture = null, this.usedSHDegree = 0, this.onBeforeRender = (t, n, r) => {
25986
+ super(), this.renderData = null, this.needsRender = !1, this.sortWorker = null, this.depthIndex = new Uint32Array(), this.splatIndexCapacity = 0, this.activeSlot = null, this.pendingSlot = null, this.rebuildGeneration = 0, this.forceClipperUniformRefresh = !1, this.incrementalUpdateInFlight = !1, this.freeSlotPool = [], this.dataTexture = null, this.transformsTexture = null, this.transformIndicesTexture = null, this.layerIndicesTexture = null, this.shTexture = null, this.usedSHDegree = 0, this.sortDataRebuilding = !1, this.onBeforeRender = (t, n, r) => {
25948
25987
  let i = r, a = this.collectObjects(n);
25949
25988
  if (a.length === 0) {
25950
25989
  this.geometry.instanceCount = 0;
@@ -25971,7 +26010,7 @@ var Sy = function(...e) {
25971
26010
  this.geometry = t, this.material = n, this.frustumCulled = !1, this.renderOrder = -99999999999, this.gsSceneState = {
25972
26011
  lastObjectsHash: "",
25973
26012
  lastClipperHash: ""
25974
- }, this.sortWorker = new xy(), this.sortWorker.postMessage({ warmup: !0 }), vy.warmupWasm(), this.sortWorker.onmessage = (e) => {
26013
+ }, this.sortWorker = new wy(), this.sortWorker.postMessage({ warmup: !0 }), xy.warmupWasm(), this.sortWorker.onmessage = (e) => {
25975
26014
  if (e.data.depthIndex) {
25976
26015
  let t = e.data.generation;
25977
26016
  if (this.pendingSlot && t === this.pendingSlot.generation) {
@@ -26027,8 +26066,8 @@ var Sy = function(...e) {
26027
26066
  }
26028
26067
  createMaterial() {
26029
26068
  return new e.ShaderMaterial({
26030
- vertexShader: Sy,
26031
- fragmentShader: Cy,
26069
+ vertexShader: Ty,
26070
+ fragmentShader: Ey,
26032
26071
  defines: {
26033
26072
  NUM_GS_LAYERS: 0,
26034
26073
  NUM_GS_CLIPPERS: 0
@@ -26065,24 +26104,28 @@ var Sy = function(...e) {
26065
26104
  createDefaultClipperMatrices(t) {
26066
26105
  return Array.from({ length: t }, () => new e.Matrix4());
26067
26106
  }
26068
- createTextures(t) {
26069
- let n = new e.DataTexture(t.data, t.width, t.height, e.RGBAIntegerFormat, e.UnsignedIntType);
26070
- n.internalFormat = "RGBA32UI", n.minFilter = e.NearestFilter, n.magFilter = e.NearestFilter, n.needsUpdate = !0;
26071
- let r = new e.DataTexture(t.transforms, t.transformsWidth, t.transformsHeight, e.RGBAFormat, e.FloatType);
26072
- r.internalFormat = "RGBA32F", r.minFilter = e.NearestFilter, r.magFilter = e.NearestFilter, r.needsUpdate = !0;
26073
- let i = new e.DataTexture(t.transformIndices, t.transformIndicesWidth, t.transformIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType);
26074
- i.internalFormat = "R32UI", i.minFilter = e.NearestFilter, i.magFilter = e.NearestFilter, i.needsUpdate = !0;
26075
- let a = new e.DataTexture(t.layerIndices, t.layerIndicesWidth, t.layerIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType);
26076
- return a.internalFormat = "R32UI", a.minFilter = e.NearestFilter, a.magFilter = e.NearestFilter, a.needsUpdate = !0, {
26077
- dataTexture: n,
26078
- transformsTexture: r,
26079
- transformIndicesTexture: i,
26080
- layerIndicesTexture: a,
26081
- shTexture: null
26107
+ createTextures(t, n) {
26108
+ var r;
26109
+ let i;
26110
+ n && n.dataTexture.image.width === t.width && n.dataTexture.image.height === t.height ? (i = n.dataTexture, i.image.data = t.data, i.needsUpdate = !0) : (n && n.dataTexture.dispose(), i = new e.DataTexture(t.data, t.width, t.height, e.RGBAIntegerFormat, e.UnsignedIntType), i.internalFormat = "RGBA32UI", i.minFilter = e.NearestFilter, i.magFilter = e.NearestFilter, i.needsUpdate = !0);
26111
+ let a;
26112
+ n && n.transformsTexture.image.width === t.transformsWidth && n.transformsTexture.image.height === t.transformsHeight ? (a = n.transformsTexture, a.image.data = t.transforms, a.needsUpdate = !0) : (n && n.transformsTexture.dispose(), a = new e.DataTexture(t.transforms, t.transformsWidth, t.transformsHeight, e.RGBAFormat, e.FloatType), a.internalFormat = "RGBA32F", a.minFilter = e.NearestFilter, a.magFilter = e.NearestFilter, a.needsUpdate = !0);
26113
+ let o;
26114
+ n && n.transformIndicesTexture.image.width === t.transformIndicesWidth && n.transformIndicesTexture.image.height === t.transformIndicesHeight ? (o = n.transformIndicesTexture, o.image.data = t.transformIndices, o.needsUpdate = !0) : (n && n.transformIndicesTexture.dispose(), o = new e.DataTexture(t.transformIndices, t.transformIndicesWidth, t.transformIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType), o.internalFormat = "R32UI", o.minFilter = e.NearestFilter, o.magFilter = e.NearestFilter, o.needsUpdate = !0);
26115
+ let s;
26116
+ n && n.layerIndicesTexture.image.width === t.layerIndicesWidth && n.layerIndicesTexture.image.height === t.layerIndicesHeight ? (s = n.layerIndicesTexture, s.image.data = t.layerIndices, s.needsUpdate = !0) : (n && n.layerIndicesTexture.dispose(), s = new e.DataTexture(t.layerIndices, t.layerIndicesWidth, t.layerIndicesHeight, e.RedIntegerFormat, e.UnsignedIntType), s.internalFormat = "R32UI", s.minFilter = e.NearestFilter, s.magFilter = e.NearestFilter, s.needsUpdate = !0);
26117
+ let c = (r = n == null ? void 0 : n.shTexture) == null ? null : r;
26118
+ return {
26119
+ dataTexture: i,
26120
+ transformsTexture: a,
26121
+ transformIndicesTexture: o,
26122
+ layerIndicesTexture: s,
26123
+ shTexture: c
26082
26124
  };
26083
26125
  }
26084
26126
  createSHTexture(t) {
26085
26127
  let { renderData: n, textures: r } = t;
26128
+ if (n.shDataReleased) return;
26086
26129
  r.shTexture && (r.shTexture.dispose(), r.shTexture = null);
26087
26130
  let i = Math.min(this.usedSHDegree, n.maxShDegree), a = 0;
26088
26131
  if (i >= 1 && (a += 9), i >= 2 && (a += 15), i >= 3 && (a += 21), a === 0) return;
@@ -26104,7 +26147,7 @@ var Sy = function(...e) {
26104
26147
  u[s] = n.sh3[e * 21 + i], r++;
26105
26148
  }
26106
26149
  }
26107
- r.shTexture = new e.DataTexture(u, c, l, e.RGBAFormat, e.FloatType), r.shTexture.internalFormat = "RGBA32F", r.shTexture.minFilter = e.NearestFilter, r.shTexture.magFilter = e.NearestFilter, r.shTexture.needsUpdate = !0, this.material.uniforms.u_shTextureSize.value.set(c, l), this.material.uniforms.u_maxShDegree.value = i;
26150
+ r.shTexture = new e.DataTexture(u, c, l, e.RGBAFormat, e.FloatType), r.shTexture.internalFormat = "RGBA32F", r.shTexture.minFilter = e.NearestFilter, r.shTexture.magFilter = e.NearestFilter, r.shTexture.needsUpdate = !0, this.material.uniforms.u_shTextureSize.value.set(c, l), this.material.uniforms.u_maxShDegree.value = i, t.renderData.releaseSHData();
26108
26151
  }
26109
26152
  setMaxShDegree(e) {
26110
26153
  var t, n;
@@ -26125,6 +26168,15 @@ var Sy = function(...e) {
26125
26168
  disposeSlot(e) {
26126
26169
  e && (e.renderData.dispose(), this.disposeTextures(e.textures));
26127
26170
  }
26171
+ recycleSlot(e) {
26172
+ if (e) {
26173
+ if (this.freeSlotPool.length >= Dy) {
26174
+ let e = this.freeSlotPool.shift();
26175
+ this.disposeSlot(e);
26176
+ }
26177
+ e.renderData.releaseSortData(), e.renderData.releaseAggregatedData(), e.awaitingFirstSort = !0, e.sortDataUploaded = !1, this.freeSlotPool.push(e);
26178
+ }
26179
+ }
26128
26180
  disposeTextures(e) {
26129
26181
  e.dataTexture.dispose(), e.transformsTexture.dispose(), e.transformIndicesTexture.dispose(), e.layerIndicesTexture.dispose(), e.shTexture && (e.shTexture.dispose(), e.shTexture = null);
26130
26182
  }
@@ -26136,7 +26188,7 @@ var Sy = function(...e) {
26136
26188
  swapPendingToActive(e) {
26137
26189
  if (!this.pendingSlot) return;
26138
26190
  let t = this.activeSlot;
26139
- this.activeSlot = this.pendingSlot, this.pendingSlot = null, this.renderData = this.activeSlot.renderData, this.ensureSplatIndexCapacity(this.activeSlot.renderData.numPoints), this.bindSlotTextures(this.activeSlot), this.activeSlot.sortDataUploaded = !0, this.forceClipperUniformRefresh = !0, this.applyDepthIndex(e), t && this.disposeSlot(t);
26191
+ this.activeSlot = this.pendingSlot, this.pendingSlot = null, this.renderData = this.activeSlot.renderData, this.ensureSplatIndexCapacity(this.activeSlot.renderData.numPoints), this.bindSlotTextures(this.activeSlot), this.activeSlot.sortDataUploaded = !0, this.forceClipperUniformRefresh = !0, this.applyDepthIndex(e), t && this.recycleSlot(t);
26140
26192
  }
26141
26193
  createSlot(e) {
26142
26194
  let t = {
@@ -26149,11 +26201,11 @@ var Sy = function(...e) {
26149
26201
  return this.usedSHDegree > 0 && e.maxShDegree > 0 && this.createSHTexture(t), t;
26150
26202
  }
26151
26203
  updateSlotTextures(e) {
26152
- e.renderData.dataChanged && (e.textures.dataTexture.needsUpdate = !0, e.renderData.dataChanged = !1), e.renderData.transformsChanged && (e.textures.transformsTexture.needsUpdate = !0, e.textures.transformIndicesTexture.needsUpdate = !0, e.renderData.transformsChanged = !1);
26204
+ e.renderData.dataChanged && (e.textures.dataTexture.needsUpdate = !0, e.renderData.dataChanged = !1), e.renderData.transformsChanged && (e.textures.transformsTexture.needsUpdate = !0, e.renderData.indexDataReleased || (e.textures.transformIndicesTexture.needsUpdate = !0), e.renderData.transformsChanged = !1);
26153
26205
  }
26154
26206
  postSortData(e) {
26155
26207
  var t;
26156
- let n = new Float32Array(e.renderData.positions.slice().buffer), r = new Float32Array(e.renderData.transforms.slice().buffer), i = new Uint32Array(e.renderData.transformIndices.slice().buffer);
26208
+ let n = e.renderData.positions, r = new Float32Array(e.renderData.transforms.slice().buffer), i = new Uint32Array(e.renderData.transformIndices.slice().buffer);
26157
26209
  (t = this.sortWorker) == null || t.postMessage({ sortData: {
26158
26210
  positions: n,
26159
26211
  transforms: r,
@@ -26164,11 +26216,22 @@ var Sy = function(...e) {
26164
26216
  n.buffer,
26165
26217
  r.buffer,
26166
26218
  i.buffer
26167
- ]), e.sortDataUploaded = !0;
26219
+ ]), e.renderData.releaseSortData(), e.renderData.releaseIndexData(), e.sortDataUploaded = !0;
26168
26220
  }
26169
26221
  requestSort(e, t) {
26170
26222
  var n;
26171
- e.renderData.initialBuildComplete && ((e.renderData.dataChanged || e.renderData.transformsChanged || !e.sortDataUploaded) && this.postSortData(e), (n = this.sortWorker) == null || n.postMessage({ viewProj: t }));
26223
+ if (e.renderData.initialBuildComplete) {
26224
+ if (e.renderData.dataChanged || e.renderData.transformsChanged || !e.sortDataUploaded) {
26225
+ if (e.renderData.sortDataReleased) {
26226
+ this.sortDataRebuilding || (this.sortDataRebuilding = !0, e.renderData.rebuildSortData().then(() => {
26227
+ this.sortDataRebuilding = !1, (this.activeSlot === e || this.pendingSlot === e) && (e.sortDataUploaded = !1, this.needsRender = !0);
26228
+ }));
26229
+ return;
26230
+ }
26231
+ this.postSortData(e);
26232
+ }
26233
+ (n = this.sortWorker) == null || n.postMessage({ viewProj: t });
26234
+ }
26172
26235
  }
26173
26236
  syncTransformsForSlot(e, t) {
26174
26237
  e && t.forEach((t) => {
@@ -26223,9 +26286,19 @@ var Sy = function(...e) {
26223
26286
  this.material.uniforms.u_layerClipperRanges.value = l, this.material.uniforms.u_clipperMatricesInverse.value = u, this.updateClipperCounts(s, d);
26224
26287
  }
26225
26288
  startPendingRebuild(e) {
26226
- this.pendingSlot && (this.disposeSlot(this.pendingSlot), this.pendingSlot = null), this.rebuildGeneration += 1;
26227
- let t = new vy(e, this.rebuildGeneration);
26228
- this.pendingSlot = this.createSlot(t);
26289
+ this.pendingSlot && (this.recycleSlot(this.pendingSlot), this.pendingSlot = null), this.rebuildGeneration += 1;
26290
+ let t = new xy(e, this.rebuildGeneration), n = this.freeSlotPool.pop();
26291
+ if (n) {
26292
+ n.renderData.dispose();
26293
+ let e = this.createTextures(t, n.textures);
26294
+ this.pendingSlot = {
26295
+ generation: t.generation,
26296
+ renderData: t,
26297
+ textures: e,
26298
+ awaitingFirstSort: !0,
26299
+ sortDataUploaded: !1
26300
+ };
26301
+ } else this.pendingSlot = this.createSlot(t);
26229
26302
  }
26230
26303
  tryStartIncrementalUpdate(e) {
26231
26304
  if (!this.activeSlot || this.pendingSlot || this.incrementalUpdateInFlight) return !1;
@@ -26236,9 +26309,7 @@ var Sy = function(...e) {
26236
26309
  this.incrementalUpdateInFlight = !0;
26237
26310
  let r = this.activeSlot;
26238
26311
  return r.renderData.appendObjects(n).then((e) => {
26239
- if (!e || this.activeSlot !== r || r.renderData.disposed) return;
26240
- let t = r.textures;
26241
- r.textures = this.createTextures(r.renderData), this.usedSHDegree > 0 && r.renderData.maxShDegree > 0 && this.createSHTexture(r), this.bindSlotTextures(r), this.ensureSplatIndexCapacity(r.renderData.numPoints), r.sortDataUploaded = !1, r.awaitingFirstSort = !0, this.disposeTextures(t), this.forceClipperUniformRefresh = !0, this.gsSceneState.lastClipperHash = "", this.needsRender = !0;
26312
+ e && (this.activeSlot !== r || r.renderData.disposed || (r.textures = this.createTextures(r.renderData, r.textures), this.usedSHDegree > 0 && r.renderData.maxShDegree > 0 && this.createSHTexture(r), this.bindSlotTextures(r), this.ensureSplatIndexCapacity(r.renderData.numPoints), r.sortDataUploaded = !1, r.awaitingFirstSort = !0, this.forceClipperUniformRefresh = !0, this.gsSceneState.lastClipperHash = "", this.needsRender = !0));
26242
26313
  }).catch((e) => {
26243
26314
  console.warn("Incremental append failed, fallback to rebuild:", e);
26244
26315
  }).finally(() => {
@@ -26246,9 +26317,11 @@ var Sy = function(...e) {
26246
26317
  }), !0;
26247
26318
  }
26248
26319
  dispose() {
26249
- this.disposeSlot(this.pendingSlot), this.pendingSlot = null, this.disposeSlot(this.activeSlot), this.activeSlot = null, this.renderData = null, this.sortWorker && this.sortWorker.terminate(), this.bindSlotTextures(null), this.geometry.dispose(), this.material.dispose();
26320
+ this.disposeSlot(this.pendingSlot), this.pendingSlot = null, this.disposeSlot(this.activeSlot), this.activeSlot = null;
26321
+ for (let e of this.freeSlotPool) this.disposeSlot(e);
26322
+ this.freeSlotPool.length = 0, this.renderData = null, this.sortWorker && this.sortWorker.terminate(), this.bindSlotTextures(null), this.geometry.dispose(), this.material.dispose();
26250
26323
  }
26251
- }, Ty = class extends e.Mesh {
26324
+ }, ky = class extends e.Mesh {
26252
26325
  constructor() {
26253
26326
  super(), this.onBeforeRender = (e, t, n) => {
26254
26327
  this.collectObjects(t).length > 0 && console.warn("未开启webgl2, 3dgs仅支持在开启webgl2模式后使用");
@@ -26260,9 +26333,9 @@ var Sy = function(...e) {
26260
26333
  e instanceof Yn && e.visible && t.push(e);
26261
26334
  }), t;
26262
26335
  }
26263
- }, Ey = 1e3, Dy = 90, Oy = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/", "//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/", "//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/", "//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/", "//vr-image-1.realsee-cdn.cn/"), ky = new e.Sphere(), Ay = new e.Box3(), jy = new e.Vector4(), My = new e.Vector4(), Ny = new e.Color(), Py = new e.Vector2(), Fy = /* @__PURE__ */ new WeakMap(), Iy = tm([Qp(null)]), Ly = {}, Ry = class t extends an {
26336
+ }, Ay = 1e3, jy = 90, My = (e) => e.replace("//vrlab-public.ljcdn.com/", "//vr-public.realsee-cdn.cn/").replace("//vrlab-image4.ljcdn.com/", "//vr-image-4.realsee-cdn.cn/").replace("//vrlab-image3.ljcdn.com/", "//vr-image-3.realsee-cdn.cn/").replace("//vrlab-image2.ljcdn.com/", "//vr-image-2.realsee-cdn.cn/").replace("//vrlab-image1.ljcdn.com/", "//vr-image-1.realsee-cdn.cn/"), Ny = new e.Sphere(), Py = new e.Box3(), Fy = new e.Vector4(), Iy = new e.Vector4(), Ly = new e.Color(), Ry = new e.Vector2(), zy = /* @__PURE__ */ new WeakMap(), By = tm([Qp(null)]), Vy = {}, Hy = class t extends an {
26264
26337
  static get version() {
26265
- return "6.8.0-alpha.28";
26338
+ return "6.8.0-alpha.29";
26266
26339
  }
26267
26340
  static get dracoPath() {
26268
26341
  return eo.decoderPath;
@@ -26284,7 +26357,7 @@ var Sy = function(...e) {
26284
26357
  }
26285
26358
  constructor(t = {}) {
26286
26359
  var n, r, i, a, o, s, c, l, u, d, f;
26287
- if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(), Ly[this.fiveId] = this, this.currentUpdateArgs = {
26360
+ if (super(), this.pbmGaussianSplattingRenderMesh = null, this.fiveId = $t(), Vy[this.fiveId] = this, this.currentUpdateArgs = {
26288
26361
  time: H(),
26289
26362
  args: []
26290
26363
  }, this.currentMode = "Panorama", this.pano = {
@@ -26301,7 +26374,7 @@ var Sy = function(...e) {
26301
26374
  }, this.fps = {
26302
26375
  testCount: 0,
26303
26376
  testTime: H()
26304
- }, this.modeChangeDuration = (c = t.modeChangeDuration) == null ? Ey : c, this.enableWheel = (l = t.enableWheel) == null ? !0 : l, typeof window < "u") if ("renderer" in t) t.renderer instanceof Jm && this.throwError(/* @__PURE__ */ Error("cannot render a internal renderer")), this.renderer = t.renderer;
26377
+ }, this.modeChangeDuration = (c = t.modeChangeDuration) == null ? Ay : c, this.enableWheel = (l = t.enableWheel) == null ? !0 : l, typeof window < "u") if ("renderer" in t) t.renderer instanceof Jm && this.throwError(/* @__PURE__ */ Error("cannot render a internal renderer")), this.renderer = t.renderer;
26305
26378
  else try {
26306
26379
  this.renderer = new Jm({
26307
26380
  preserveDrawingBuffer: t.preserveDrawingBuffer,
@@ -26311,7 +26384,7 @@ var Sy = function(...e) {
26311
26384
  precision: t.precision,
26312
26385
  powerPreference: t.powerPreference
26313
26386
  });
26314
- let e = Jv();
26387
+ let e = Yv();
26315
26388
  this.renderer.setPixelRatio(e === 1 ? window.devicePixelRatio : 1), this.renderer.setSize(512, 512), this.renderer.setClearColor(this.backgroundColor, this.backgroundAlpha);
26316
26389
  } catch (e) {
26317
26390
  let t = e instanceof Error ? e : Error(String(e));
@@ -26325,7 +26398,7 @@ var Sy = function(...e) {
26325
26398
  bottom: 0,
26326
26399
  width: 1,
26327
26400
  height: 1
26328
- }, t.viewport), this.camera = new Zt(Dy), this.scene = new th(), this.xrCustomObjectsScene = new e.Scene(), this.scene.add(this.xrCustomObjectsScene), this.scene.matrixAutoUpdate = !1, this.loadWorkTask = Promise.resolve(), this.requestProxy = (f = t.requestProxy) == null ? Oy : f, this.networkSubscribe = new sr(), this.networkSubscribe.on("network", (e, t, n, r) => {
26401
+ }, t.viewport), this.camera = new Zt(jy), this.scene = new th(), this.xrCustomObjectsScene = new e.Scene(), this.scene.add(this.xrCustomObjectsScene), this.scene.matrixAutoUpdate = !1, this.loadWorkTask = Promise.resolve(), this.requestProxy = (f = t.requestProxy) == null ? My : f, this.networkSubscribe = new sr(), this.networkSubscribe.on("network", (e, t, n, r) => {
26329
26402
  var i;
26330
26403
  this.emit("network.resource", Q("network.resource", {
26331
26404
  source: e,
@@ -26333,17 +26406,17 @@ var Sy = function(...e) {
26333
26406
  requestState: n,
26334
26407
  detail: r
26335
26408
  })), (i = this.analysis) == null || i.network(this.works, e, t, n, r);
26336
- }), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup), Fy.set(this, Iy), this.modelScene = new Qf({ fiveId: this.fiveId }), this.modelScene.addEventListener("model.create", (e) => {
26409
+ }), this.readyCallbacks = [], this.syncingState = !1, this.helperGroup = new e.Group(), this.helperGroup.name = "helper", this.helperGroup.matrixAutoUpdate = !1, this.scene.add(this.helperGroup), zy.set(this, By), this.modelScene = new Qf({ fiveId: this.fiveId }), this.modelScene.addEventListener("model.create", (e) => {
26337
26410
  this.bindModel(e.model);
26338
26411
  }), this.scene.add(this.modelScene);
26339
- let [p] = this.modelScene.setModels(Iy, { forceReplaceImmediately: !0 });
26412
+ let [p] = this.modelScene.setModels(By, { forceReplaceImmediately: !0 });
26340
26413
  V(p, "loaded", {
26341
26414
  get() {
26342
26415
  return !1;
26343
26416
  },
26344
26417
  set(e) {}
26345
- }), this.videoTexture = new e.VideoTexture(t.videoInstance || Gv());
26346
- let m = Kv();
26418
+ }), this.videoTexture = new e.VideoTexture(t.videoInstance || Kv());
26419
+ let m = qv();
26347
26420
  this.scene.add(m), this.state = {
26348
26421
  mode: this.currentMode,
26349
26422
  workCode: this.pano.workCode,
@@ -26373,7 +26446,7 @@ var Sy = function(...e) {
26373
26446
  }
26374
26447
  }
26375
26448
  }
26376
- Wv(this), this.fiveRenderer = new qm(), this.adaptiveLuminancePass = new Em(), this.adaptiveLuminancePass.enabled = !1, this.fiveRenderer.composer.addPass(this.adaptiveLuminancePass), this.eyeDomeLightingPass = new km(this.camera), this.eyeDomeLightingPass.enabled = !1, this.fiveRenderer.composer.addPass(this.eyeDomeLightingPass), t.webgl2 ? (this.pbmGaussianSplattingRenderMesh = new wy(), this.scene.add(this.pbmGaussianSplattingRenderMesh)) : this.scene.add(new Ty());
26449
+ Gv(this), this.fiveRenderer = new qm(), this.adaptiveLuminancePass = new Em(), this.adaptiveLuminancePass.enabled = !1, this.fiveRenderer.composer.addPass(this.adaptiveLuminancePass), this.eyeDomeLightingPass = new km(this.camera), this.eyeDomeLightingPass.enabled = !1, this.fiveRenderer.composer.addPass(this.eyeDomeLightingPass), t.webgl2 ? (this.pbmGaussianSplattingRenderMesh = new Oy(), this.scene.add(this.pbmGaussianSplattingRenderMesh)) : this.scene.add(new ky());
26377
26450
  }
26378
26451
  get ident() {
26379
26452
  return this.fiveId;
@@ -26387,11 +26460,11 @@ var Sy = function(...e) {
26387
26460
  dispose() {
26388
26461
  var t;
26389
26462
  if (this.destroyed === !0) return;
26390
- delete Ly[this.fiveId], this.emit("dispose"), this.destroyed = !0, this.pause(), this.stopAnimationLoop && (this.stopAnimationLoop(), this.stopAnimationLoop = void 0), this.off(), this.networkSubscribe.off(), this.controller && (this.controller.destroy(), this.controller = void 0);
26463
+ delete Vy[this.fiveId], this.emit("dispose"), this.destroyed = !0, this.pause(), this.stopAnimationLoop && (this.stopAnimationLoop(), this.stopAnimationLoop = void 0), this.off(), this.networkSubscribe.off(), this.controller && (this.controller.destroy(), this.controller = void 0);
26391
26464
  let n = this.getElement();
26392
26465
  n && n.parentNode && n.parentNode.removeChild(n);
26393
26466
  let r = this.modelScene.parameter;
26394
- r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(), this.scene.dispose(), this.xrCustomObjectsScene.dispose(), Fy.set(this, Iy), this.renderer && this.renderer.render(new e.Scene(), new e.Camera()), this.fiveRenderer.dispose(), this.renderer instanceof Jm && (this.renderer.forceContextLoss && this.renderer.forceContextLoss(), this.renderer.dispose());
26467
+ r.pano0 && r.pano0.map.dispose(), r.pano1 && r.pano1.map !== ((t = r.pano0) == null ? void 0 : t.map) && r.pano1.map.dispose(), r.reset("pano0", "pano1"), this.modelScene.dispose(), this.scene.dispose(), this.xrCustomObjectsScene.dispose(), zy.set(this, By), this.renderer && this.renderer.render(new e.Scene(), new e.Camera()), this.fiveRenderer.dispose(), this.renderer instanceof Jm && (this.renderer.forceContextLoss && this.renderer.forceContextLoss(), this.renderer.dispose());
26395
26468
  }
26396
26469
  setViewport(e) {
26397
26470
  Object.assign(this.viewport, e), this.needsRender = !0;
@@ -26426,7 +26499,7 @@ var Sy = function(...e) {
26426
26499
  if (!this.renderer) return;
26427
26500
  let a = this.renderer.domElement.parentNode, { width: o = (n = a == null ? void 0 : a.offsetWidth) == null ? 512 : n, height: s = (r = a == null ? void 0 : a.offsetHeight) == null ? 512 : r } = e;
26428
26501
  if (o = Math.max(1, o), s = Math.max(1, s), !t) {
26429
- let e = Jv(), n = typeof window < "u" ? window.devicePixelRatio : 1;
26502
+ let e = Yv(), n = typeof window < "u" ? window.devicePixelRatio : 1;
26430
26503
  if (t = (i = e === 1 ? n : 1) == null ? 1 : i, t > 1) {
26431
26504
  let e = Math.max(o, s) * t, n = Math.min(this.renderer.capabilities.maxTextureSize, 4096);
26432
26505
  e > n && (t = Math.max(t / e * n, 1), t = Math.floor(t * 100) / 100);
@@ -26460,7 +26533,7 @@ var Sy = function(...e) {
26460
26533
  return this.controller.updateCameraWithKeyframes(e, t, n);
26461
26534
  }
26462
26535
  get works() {
26463
- return Fy.get(this) || Iy;
26536
+ return zy.get(this) || By;
26464
26537
  }
26465
26538
  get work() {
26466
26539
  return this.works[0];
@@ -26484,7 +26557,7 @@ var Sy = function(...e) {
26484
26557
  load_(n, r, i, a = !0) {
26485
26558
  var o, s, c, l, u, d, f, p, m, h;
26486
26559
  let g = {};
26487
- typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works === Iy && (g.duration === void 0 && (g.duration = 0), g.effect === void 0 && (g.effect = "instant"));
26560
+ typeof i == "number" ? g.duration = i : typeof i == "object" && Object.assign(g, i), this.works === By && (g.duration === void 0 && (g.duration = 0), g.effect === void 0 && (g.effect = "instant"));
26488
26561
  let _ = {};
26489
26562
  Object.assign(_, g.model), !_["3d-tiles"] && g["3d-tiles"] && (_["3d-tiles"] = g["3d-tiles"]), !_.textureOptions && g.textureOptions && (_.textureOptions = g.textureOptions), !_.textureOptions && this.textureOptions && (_.textureOptions = this.textureOptions);
26490
26563
  let v = [];
@@ -26498,7 +26571,7 @@ var Sy = function(...e) {
26498
26571
  return this.throwError(e), Promise.reject(e);
26499
26572
  }
26500
26573
  for (let e of y) this.bindWorkFetcher(e);
26501
- r === void 0 && (r = "inherit"), r === "inherit" && this.works === Iy && (r = "initial");
26574
+ r === void 0 && (r = "inherit"), r === "inherit" && this.works === By && (r = "initial");
26502
26575
  let b = this.currentMode, x = y.initial, S = x.work.observers[0], C = S ? {
26503
26576
  workCode: S.work.workCode,
26504
26577
  panoIndex: S.panoIndex
@@ -26569,7 +26642,7 @@ var Sy = function(...e) {
26569
26642
  duration: E,
26570
26643
  effect: D,
26571
26644
  userAction: a
26572
- } }, this.commonParams()), this.controllerInits[e]), c = Vv[o.mode].initAnimationEndState(s);
26645
+ } }, this.commonParams()), this.controllerInits[e]), c = Hv[o.mode].initAnimationEndState(s);
26573
26646
  if (this.controller && b === e) this.controller.updateWork(y, c, {
26574
26647
  effect: D,
26575
26648
  duration: E
@@ -26577,7 +26650,7 @@ var Sy = function(...e) {
26577
26650
  else {
26578
26651
  if (this.controller) this.controller.destroy();
26579
26652
  else {
26580
- let t = Vv[e].initAnimationEndState(s);
26653
+ let t = Hv[e].initAnimationEndState(s);
26581
26654
  this.camera.setFromPose(t), this.emit("camera.update", Q("camera.update", {
26582
26655
  state: this.getCurrentState(),
26583
26656
  userAction: a
@@ -26598,7 +26671,7 @@ var Sy = function(...e) {
26598
26671
  }
26599
26672
  this.updateTime(this.currentUpdateArgs.time, 0, ...this.currentUpdateArgs.args);
26600
26673
  };
26601
- Fy.set(this, y);
26674
+ zy.set(this, y);
26602
26675
  let k = Promise.resolve();
26603
26676
  if (w === t.Mode.Floorplan || w === t.Mode.Topview || w === t.Mode.Mapview || w === t.Mode.Model) {
26604
26677
  this.modelScene.loaded === !1 && (this.camera.setFromPose(T), Mh(this.state, this.camera.pose));
@@ -26649,12 +26722,12 @@ var Sy = function(...e) {
26649
26722
  pano0: null,
26650
26723
  pano1: null,
26651
26724
  modelAlpha: 1
26652
- }), Fy.set(this, Iy), this.modelScene.setModels(Iy, { forceReplaceImmediately: !0 }), this.renderer && this.modelScene.update(this.renderer, this.camera), this.needsRender = !0, this.currentMode = "Panorama", this.pano = {
26725
+ }), zy.set(this, By), this.modelScene.setModels(By, { forceReplaceImmediately: !0 }), this.renderer && this.modelScene.update(this.renderer, this.camera), this.needsRender = !0, this.currentMode = "Panorama", this.pano = {
26653
26726
  workCode: "",
26654
26727
  panoIndex: 0
26655
26728
  }, this.camera.setFromPose({
26656
26729
  distance: 0,
26657
- fov: Dy,
26730
+ fov: jy,
26658
26731
  longitude: 0,
26659
26732
  latitude: 0,
26660
26733
  offset: new e.Vector3(0, 0, 0)
@@ -26703,7 +26776,7 @@ var Sy = function(...e) {
26703
26776
  duration: f,
26704
26777
  effect: p,
26705
26778
  userAction: i
26706
- } }, this.commonParams()), this.controllerInits[e]), a = Vv[e].initAnimationEndState(r), o = Q("mode.change.request", {
26779
+ } }, this.commonParams()), this.controllerInits[e]), a = Hv[e].initAnimationEndState(r), o = Q("mode.change.request", {
26707
26780
  prevMode: this.currentMode,
26708
26781
  mode: e,
26709
26782
  state: a,
@@ -26738,10 +26811,10 @@ var Sy = function(...e) {
26738
26811
  let c = H(), l = this.renderer.getPixelRatio(), u = this.renderer.getRenderTarget(), d = this.getSize(new e.Vector2()), f = 0, p = 0, m = 1, h = 1, g, _, v, y, b;
26739
26812
  typeof t == "number" ? (f = t, typeof n == "number" && (p = n), typeof r == "number" && (m = r), typeof i == "number" && (h = i), g = a, _ = o, b = s) : (f = t.x, p = t.y, m = t.width, h = t.height, g = t.pixelRatio, _ = t.flipY, v = t.helperVisible, y = t.skipPanorama, b = t.buffer), f = Math.floor(f), p = Math.floor(p), m = Math.floor(m), h = Math.floor(h), g = Math.floor(g == null ? l : g), _ = _ == null ? !1 : _;
26740
26813
  let x = this.helperVisible, S = this.modelScene.parameter.modelAlpha;
26741
- this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof Vv.Panorama || this.controller instanceof Vv.VRPanorama || this.controller instanceof Vv.XRPanorama) && y === !0 && this.modelScene.parameter.set("modelAlpha", 1), this.modelScene.update(this.renderer, this.camera);
26814
+ this.helperVisible = v == null ? this.helperVisible : v, y && (this.controller instanceof Hv.Panorama || this.controller instanceof Hv.VRPanorama || this.controller instanceof Hv.XRPanorama) && y === !0 && this.modelScene.parameter.set("modelAlpha", 1), this.modelScene.update(this.renderer, this.camera);
26742
26815
  let C = this.getPixelsRenderTarget;
26743
26816
  C.setSize(m * g, h * g), this.renderer.setRenderTarget(C), this.camera.pixelRatio = g, this.camera.resolution.set(m, h), this.camera.setViewOffset(d.width, d.height, f, d.height - p - h, m, h), this.camera.aspect = d.width / d.height, this.camera.updateTime(c), this.scene.update(this.renderer, this.camera);
26744
- let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = Ny.copy(this.renderer.getClearColor()), k = this.renderer.getClearAlpha(), A = this.renderer.getScissorTest();
26817
+ let w = this.renderer.autoClear, T = this.renderer.autoClearColor, E = this.renderer.autoClearDepth, D = this.renderer.autoClearStencil, O = Ly.copy(this.renderer.getClearColor()), k = this.renderer.getClearAlpha(), A = this.renderer.getScissorTest();
26745
26818
  this.renderer.autoClear = !0, this.renderer.autoClearColor = !0, this.renderer.autoClearDepth = !0, this.renderer.autoClearStencil = !0, this.renderer.setScissorTest(!1);
26746
26819
  let j = this.scene.background;
26747
26820
  this.scene.background = this.camera.isOrthographicCamera ? null : j, this.renderer.render(this.scene, this.camera), this.scene.background = j, this.renderer.autoClear = w, this.renderer.autoClearColor = T, this.renderer.autoClearDepth = E, this.renderer.autoClearStencil = D, this.renderer.setClearColor(O, k), this.renderer.setScissorTest(A), this.helperVisible = x, S === void 0 ? this.modelScene.parameter.reset("modelAlpha") : this.modelScene.parameter.set("modelAlpha", S), this.renderer.setRenderTarget(u), this.camera.clearViewOffset(), this.camera.pixelRatio = l, this.camera.resolution.copy(d), this.camera.aspect = this.camera.resolution.width / this.camera.resolution.height, this.camera.updateTime(c), this.modelScene.update(this.renderer, this.camera), this.scene.update(this.renderer, this.camera);
@@ -26764,9 +26837,9 @@ var Sy = function(...e) {
26764
26837
  if (!t) return;
26765
26838
  let n = t.getRenderTarget();
26766
26839
  t.setRenderTarget(null);
26767
- let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = Ny.copy(t.getClearColor()), c = t.getClearAlpha(), l = t.getViewport(jy), u = t.getScissor(My), d = t.getScissorTest();
26840
+ let r = t.autoClear, i = t.autoClearColor, a = t.autoClearDepth, o = t.autoClearStencil, s = Ly.copy(t.getClearColor()), c = t.getClearAlpha(), l = t.getViewport(Fy), u = t.getScissor(Iy), d = t.getScissorTest();
26768
26841
  t.autoClear = !0, t.autoClearColor = !0, t.autoClearDepth = !0, t.autoClearStencil = !0;
26769
- let f = t.getSize(Py), p = Math.floor(f.x * this.viewport.left), m = Math.floor(f.y * this.viewport.bottom), h = Math.floor(f.x * this.viewport.width), g = Math.floor(f.y * this.viewport.height);
26842
+ let f = t.getSize(Ry), p = Math.floor(f.x * this.viewport.left), m = Math.floor(f.y * this.viewport.bottom), h = Math.floor(f.x * this.viewport.width), g = Math.floor(f.y * this.viewport.height);
26770
26843
  t.setClearColor(this.backgroundColor, this.backgroundAlpha), t.setViewport(p, m, h, g), t.setScissor(p, m, h, g);
26771
26844
  let _ = this.viewport.bottom !== 0 || this.viewport.left !== 0 || this.viewport.width !== 1 || this.viewport.height !== 1;
26772
26845
  t.setScissorTest(_);
@@ -26775,7 +26848,7 @@ var Sy = function(...e) {
26775
26848
  let y = !0;
26776
26849
  if (this.controller && this.controller.render() && (y = !1), y) {
26777
26850
  let e = this.fiveRenderer.render(t, this.scene, this.modelScene, this.camera, this.needsRender);
26778
- this.poweredByRealsee && e && cy(t);
26851
+ this.poweredByRealsee && e && ly(t);
26779
26852
  }
26780
26853
  this.scene.background = v, t.autoClear = r, t.autoClearColor = i, t.autoClearDepth = a, t.autoClearStencil = o, t.setClearColor(s, c), t.setViewport(l), t.setScissor(u), t.setScissorTest(d), t.setRenderTarget(n), e && ri.shared.add(e, !0);
26781
26854
  }
@@ -26793,8 +26866,8 @@ var Sy = function(...e) {
26793
26866
  }, !0, 0, 10);
26794
26867
  }
26795
26868
  if (this.camera.autoNearFar) {
26796
- Ay.makeEmpty(), Ay.expandByObject(this.modelScene.boundingMesh);
26797
- let t = Ay.getBoundingSphere(ky), n = t.radius * 2;
26869
+ Py.makeEmpty(), Py.expandByObject(this.modelScene.boundingMesh);
26870
+ let t = Py.getBoundingSphere(Ny), n = t.radius * 2;
26798
26871
  t.containsPoint(this.camera.position) || (n = this.camera.position.distanceTo(t.center) + t.radius), n = U(n, 800);
26799
26872
  let r = n / 1e4;
26800
26873
  r = U(r, .03, .1), this.camera.near !== r && (this.camera.near = r), this.camera.far !== n && (this.camera.far = n), this.camera.updateTime(e);
@@ -26924,7 +26997,7 @@ var Sy = function(...e) {
26924
26997
  duration: this.modeChangeDuration,
26925
26998
  effect: "fly",
26926
26999
  userAction: !1
26927
- } }, this.commonParams()), this.controllerInits[h]), i = Vv[h].initAnimationEndState(r);
27000
+ } }, this.commonParams()), this.controllerInits[h]), i = Hv[h].initAnimationEndState(r);
26928
27001
  g = i.longitude, _ = i.latitude, v = i.fov, y = i.offset, b = i.distance;
26929
27002
  } else g = (s = t.longitude) == null ? this.state.longitude : s, _ = (c = t.latitude) == null ? this.state.latitude : c, v = (l = t.fov) == null ? this.state.fov : l, y = (u = t.offset) == null ? this.state.offset : u, b = (d = t.distance) == null ? this.state.distance : d;
26930
27003
  let x = {
@@ -26962,7 +27035,7 @@ var Sy = function(...e) {
26962
27035
  return this.changeMode(this.state.mode, e, this.modeChangeDuration, this.controller.userAction), !0;
26963
27036
  }
26964
27037
  if (!this.controller.isReady()) return !1;
26965
- if (this.controller instanceof Vv.Model) {
27038
+ if (this.controller instanceof Hv.Model) {
26966
27039
  if (bh(this.camera.pose.offset, this.state.offset)) {
26967
27040
  let e = {
26968
27041
  longitude: this.state.longitude,
@@ -26988,7 +27061,7 @@ var Sy = function(...e) {
26988
27061
  return this.controller.moveToPano(e, t, !1), !0;
26989
27062
  }
26990
27063
  }
26991
- if (this.controller instanceof Vv.Floorplan || this.controller instanceof Vv.Topview || this.controller instanceof Vv.Mapview) {
27064
+ if (this.controller instanceof Hv.Floorplan || this.controller instanceof Hv.Topview || this.controller instanceof Hv.Mapview) {
26992
27065
  let t = .2, n = Math.PI / 45, r = i ? this.state.fov : ym(this.camera.pose.fov, this.state.fov, 1), a = Math.abs(this.camera.pose.distance - this.state.distance), o = a > t * 15 ? a / 15 : .2, s = i ? this.state.distance : ym(this.camera.pose.distance, this.state.distance, o), c = this.camera.pose.offset.distanceTo(this.state.offset), l = c > t * 15 ? c / 15 : t, u = i ? new e.Vector3().copy(this.state.offset) : bm(this.camera.pose.offset, this.state.offset, l), { longitude: d, latitude: f } = i ? {
26993
27066
  longitude: this.state.longitude,
26994
27067
  latitude: this.state.latitude
@@ -27035,7 +27108,7 @@ var Sy = function(...e) {
27035
27108
  if (!(e === t.Mode.Floorplan || e === t.Mode.Topview || e === t.Mode.Mapview || e === t.Mode.Model) || this.modelScene.loaded) {
27036
27109
  let e = this.readyCallbacks.slice();
27037
27110
  this.readyCallbacks.length = 0;
27038
- for (let t of e) this.controller instanceof Vv.Panorama && t.tile === !0 && !this.controller.isTileReady() ? this.readyCallbacks.push(t) : t();
27111
+ for (let t of e) this.controller instanceof Hv.Panorama && t.tile === !0 && !this.controller.isTileReady() ? this.readyCallbacks.push(t) : t();
27039
27112
  }
27040
27113
  }
27041
27114
  return !1;
@@ -27135,14 +27208,14 @@ var Sy = function(...e) {
27135
27208
  }
27136
27209
  applyController(e, n) {
27137
27210
  if (!this.renderer) throw Error("renderer is not initialized.");
27138
- let r = Vv[e];
27211
+ let r = Hv[e];
27139
27212
  this.currentMode = e;
27140
27213
  let i = new r(n);
27141
- for (let e of Uv) i.on(e, (...t) => {
27214
+ for (let e of Wv) i.on(e, (...t) => {
27142
27215
  if (this.emit(e, ...t)) return !1;
27143
27216
  });
27144
27217
  {
27145
- let t = Vv[e].initAnimationEndState(n), r = n.initial.userAction;
27218
+ let t = Hv[e].initAnimationEndState(n), r = n.initial.userAction;
27146
27219
  jh(this.state, t) || (Ah(this.state, t), this.emit("state.change", Q("state.change", {
27147
27220
  userAction: r,
27148
27221
  state: this.state
@@ -27326,7 +27399,7 @@ var Sy = function(...e) {
27326
27399
  this.modelScene.needsRender = e;
27327
27400
  }
27328
27401
  };
27329
- Ry.Mode = {
27402
+ Hy.Mode = {
27330
27403
  Panorama: "Panorama",
27331
27404
  Model: "Model",
27332
27405
  Floorplan: "Floorplan",
@@ -27336,12 +27409,12 @@ Ry.Mode = {
27336
27409
  XRPanorama: "XRPanorama"
27337
27410
  }, typeof window < "u" && Object.assign(window, { __FIVE_DEBUG__: {
27338
27411
  THREE: e,
27339
- constructor: Ry,
27340
- instances: Ly
27412
+ constructor: Hy,
27413
+ instances: Vy
27341
27414
  } });
27342
27415
  //#endregion
27343
27416
  //#region build/five/webxr/xrButton.js
27344
- var zy = class {
27417
+ var Uy = class {
27345
27418
  static createButton(e) {
27346
27419
  let t = document.createElement("button");
27347
27420
  function n() {
@@ -27372,4 +27445,4 @@ var zy = class {
27372
27445
  }
27373
27446
  };
27374
27447
  //#endregion
27375
- export { Em as AdaptiveLuminancePass, ri as AnimationFrameLoop, Xf as BoundingMesh, Zt as Camera, sn as CustomShader, sn as PBMCustomShader, nm as EffectComposer, km as EyeDomeLightingPass, fr as Fetcher, Ry as Five, im as FivePass, qm as FiveRenderer, rm as FullScreenQuad, gm as Histogram, Jm as InternalWebGLRenderer, Vf as Model, Qf as ModelScene, X as Motion, sr as NetworkSubscribe, Kn as PBMContainer, Yn as PBMGSObject, bt as PBMGroup, gn as PBMMesh, hn as PBMMeshMaterial, cn as PBMPanoFilter, En as PBMPointCloud, Tn as PBMPointCloudMaterial, _n as PBMSkinnedMesh, on as PBMUpdateable, Uv as PROXY_CONTROLLER_EVENT_NAMES, oh as PanoCircleMesh, gh as PanoCircleMeshCustom, dh as PanoCircleMeshSolid, G as Parameter, th as Scene, an as Subscribe, hi as TextureLoader, Il as Tile, bf as Tile3D, bf as Tile3DModel, cd as TileCache, Zu as TileNode, ad as TileRequestScheduler, md as Tileset, td as Trajectory, nd as TrajectoryNode, Zp as Work, em as WorkResolvedObserver, zy as XRButton, Hv as controllersDefaultInitArgs, Rt as coordinatesToVector, jl as createDebugBoundingMesh, tm as createWorks, Kr as defaultImageURLTransform, eo as draco, Jv as getViewportScale, Vt as headingToLongitude, kr as imageSupport, El as isBoundingVolume, _p as isPanoId, co as ktx2, ea as loadAt3d, cs as loadB3dm, ia as loadDome, da as loadDomez, Cc as loadFbx, _s as loadGltf, Mi as loadPbm, ys as loadPly, hs as loadPnts, ol as loadSplat, es as loadSpz, rl as loadX3p, Bt as longitudeToHeading, Dl as makeBoundingVolume, gp as panoEqual, hp as panoParse, Z as panoStringify, Qp as parseWork, zt as vectorToCoordinates, rp as workToJson };
27448
+ export { Em as AdaptiveLuminancePass, ri as AnimationFrameLoop, Xf as BoundingMesh, Zt as Camera, sn as CustomShader, sn as PBMCustomShader, nm as EffectComposer, km as EyeDomeLightingPass, fr as Fetcher, Hy as Five, im as FivePass, qm as FiveRenderer, rm as FullScreenQuad, gm as Histogram, Jm as InternalWebGLRenderer, Vf as Model, Qf as ModelScene, X as Motion, sr as NetworkSubscribe, Kn as PBMContainer, Yn as PBMGSObject, bt as PBMGroup, gn as PBMMesh, hn as PBMMeshMaterial, cn as PBMPanoFilter, En as PBMPointCloud, Tn as PBMPointCloudMaterial, _n as PBMSkinnedMesh, on as PBMUpdateable, Wv as PROXY_CONTROLLER_EVENT_NAMES, oh as PanoCircleMesh, gh as PanoCircleMeshCustom, dh as PanoCircleMeshSolid, G as Parameter, th as Scene, an as Subscribe, hi as TextureLoader, Il as Tile, bf as Tile3D, bf as Tile3DModel, cd as TileCache, Zu as TileNode, ad as TileRequestScheduler, md as Tileset, td as Trajectory, nd as TrajectoryNode, Zp as Work, em as WorkResolvedObserver, Uy as XRButton, Uv as controllersDefaultInitArgs, Rt as coordinatesToVector, jl as createDebugBoundingMesh, tm as createWorks, Kr as defaultImageURLTransform, eo as draco, Yv as getViewportScale, Vt as headingToLongitude, kr as imageSupport, El as isBoundingVolume, _p as isPanoId, co as ktx2, ea as loadAt3d, cs as loadB3dm, ia as loadDome, da as loadDomez, Cc as loadFbx, _s as loadGltf, Mi as loadPbm, ys as loadPly, hs as loadPnts, ol as loadSplat, es as loadSpz, rl as loadX3p, Bt as longitudeToHeading, Dl as makeBoundingVolume, gp as panoEqual, hp as panoParse, Z as panoStringify, Qp as parseWork, zt as vectorToCoordinates, rp as workToJson };