@iwsdk/core 0.4.2 → 0.5.0

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 (314) hide show
  1. package/README.md +4 -7
  2. package/dist/asset/asset-manager.d.ts +136 -8
  3. package/dist/asset/asset-manager.d.ts.map +1 -1
  4. package/dist/asset/asset-manager.js +491 -47
  5. package/dist/asset/asset-manager.js.map +1 -1
  6. package/dist/asset/cache-manager.d.ts +4 -2
  7. package/dist/asset/cache-manager.d.ts.map +1 -1
  8. package/dist/asset/cache-manager.js +10 -3
  9. package/dist/asset/cache-manager.js.map +1 -1
  10. package/dist/asset/loaders/audio-loader.d.ts +1 -1
  11. package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
  12. package/dist/asset/loaders/audio-loader.js +8 -26
  13. package/dist/asset/loaders/audio-loader.js.map +1 -1
  14. package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
  15. package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
  16. package/dist/asset/loaders/cached-asset-load.js +100 -0
  17. package/dist/asset/loaders/cached-asset-load.js.map +1 -0
  18. package/dist/asset/loaders/gltf-loader.d.ts +28 -1
  19. package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
  20. package/dist/asset/loaders/gltf-loader.js +254 -33
  21. package/dist/asset/loaders/gltf-loader.js.map +1 -1
  22. package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
  23. package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
  24. package/dist/asset/loaders/hdr-texture-loader.js +19 -29
  25. package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
  26. package/dist/asset/loaders/texture-loader.d.ts +1 -1
  27. package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
  28. package/dist/asset/loaders/texture-loader.js +9 -26
  29. package/dist/asset/loaders/texture-loader.js.map +1 -1
  30. package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
  31. package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
  32. package/dist/asset/loaders/uikitml-loader.js +44 -0
  33. package/dist/asset/loaders/uikitml-loader.js.map +1 -0
  34. package/dist/audio/audio-pool.d.ts +7 -0
  35. package/dist/audio/audio-pool.d.ts.map +1 -1
  36. package/dist/audio/audio-pool.js.map +1 -1
  37. package/dist/audio/audio-system.d.ts +1 -0
  38. package/dist/audio/audio-system.d.ts.map +1 -1
  39. package/dist/audio/audio-system.js +16 -2
  40. package/dist/audio/audio-system.js.map +1 -1
  41. package/dist/camera/camera-system.d.ts.map +1 -1
  42. package/dist/camera/camera-system.js +5 -3
  43. package/dist/camera/camera-system.js.map +1 -1
  44. package/dist/depth/depth-sensing-system.d.ts.map +1 -1
  45. package/dist/depth/depth-sensing-system.js +31 -10
  46. package/dist/depth/depth-sensing-system.js.map +1 -1
  47. package/dist/ecs/builtin-components.d.ts +1239 -0
  48. package/dist/ecs/builtin-components.d.ts.map +1 -0
  49. package/dist/ecs/builtin-components.js +87 -0
  50. package/dist/ecs/builtin-components.js.map +1 -0
  51. package/dist/ecs/component-editor-metadata.d.ts +19 -0
  52. package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
  53. package/dist/ecs/component-editor-metadata.js +19 -0
  54. package/dist/ecs/component-editor-metadata.js.map +1 -0
  55. package/dist/ecs/component-manifest.d.ts +24 -0
  56. package/dist/ecs/component-manifest.d.ts.map +1 -0
  57. package/dist/ecs/component-manifest.js +121 -0
  58. package/dist/ecs/component-manifest.js.map +1 -0
  59. package/dist/ecs/component.d.ts +1 -0
  60. package/dist/ecs/component.d.ts.map +1 -1
  61. package/dist/ecs/entity.d.ts +20 -2
  62. package/dist/ecs/entity.d.ts.map +1 -1
  63. package/dist/ecs/entity.js +59 -3
  64. package/dist/ecs/entity.js.map +1 -1
  65. package/dist/ecs/index.d.ts +3 -1
  66. package/dist/ecs/index.d.ts.map +1 -1
  67. package/dist/ecs/system.d.ts +9 -0
  68. package/dist/ecs/system.d.ts.map +1 -1
  69. package/dist/ecs/system.js.map +1 -1
  70. package/dist/ecs/world.d.ts +158 -4
  71. package/dist/ecs/world.d.ts.map +1 -1
  72. package/dist/ecs/world.js +304 -5
  73. package/dist/ecs/world.js.map +1 -1
  74. package/dist/environment/dome-gradient.d.ts +2 -1
  75. package/dist/environment/dome-gradient.d.ts.map +1 -1
  76. package/dist/environment/dome-gradient.js +2 -1
  77. package/dist/environment/dome-gradient.js.map +1 -1
  78. package/dist/environment/environment-system.d.ts +19 -3
  79. package/dist/environment/environment-system.d.ts.map +1 -1
  80. package/dist/environment/environment-system.js +78 -48
  81. package/dist/environment/environment-system.js.map +1 -1
  82. package/dist/environment/gradient-environment.d.ts.map +1 -1
  83. package/dist/environment/gradient-environment.js +13 -7
  84. package/dist/environment/gradient-environment.js.map +1 -1
  85. package/dist/environment/scene-ar-environment.d.ts +39 -0
  86. package/dist/environment/scene-ar-environment.d.ts.map +1 -0
  87. package/dist/environment/scene-ar-environment.js +93 -0
  88. package/dist/environment/scene-ar-environment.js.map +1 -0
  89. package/dist/grab/grab-helpers.d.ts +39 -0
  90. package/dist/grab/grab-helpers.d.ts.map +1 -0
  91. package/dist/grab/grab-helpers.js +59 -0
  92. package/dist/grab/grab-helpers.js.map +1 -0
  93. package/dist/grab/grab-system.d.ts +45 -0
  94. package/dist/grab/grab-system.d.ts.map +1 -1
  95. package/dist/grab/grab-system.js +67 -5
  96. package/dist/grab/grab-system.js.map +1 -1
  97. package/dist/grab/grab-warnings.d.ts +14 -0
  98. package/dist/grab/grab-warnings.d.ts.map +1 -0
  99. package/dist/grab/grab-warnings.js +53 -0
  100. package/dist/grab/grab-warnings.js.map +1 -0
  101. package/dist/grab/handles.d.ts.map +1 -1
  102. package/dist/grab/handles.js +8 -3
  103. package/dist/grab/handles.js.map +1 -1
  104. package/dist/index.d.ts +4 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +42 -16
  107. package/dist/index.js.map +1 -1
  108. package/dist/init/world-initializer.d.ts +11 -7
  109. package/dist/init/world-initializer.d.ts.map +1 -1
  110. package/dist/init/world-initializer.js +118 -57
  111. package/dist/init/world-initializer.js.map +1 -1
  112. package/dist/init/xr.d.ts +0 -1
  113. package/dist/init/xr.d.ts.map +1 -1
  114. package/dist/init/xr.js +12 -3
  115. package/dist/init/xr.js.map +1 -1
  116. package/dist/input/input-system.d.ts.map +1 -1
  117. package/dist/input/input-system.js +26 -11
  118. package/dist/input/input-system.js.map +1 -1
  119. package/dist/layers/xr-layer-state.d.ts +47 -0
  120. package/dist/layers/xr-layer-state.d.ts.map +1 -0
  121. package/dist/layers/xr-layer-state.js +23 -0
  122. package/dist/layers/xr-layer-state.js.map +1 -0
  123. package/dist/layers/xr-layer-system.d.ts +45 -93
  124. package/dist/layers/xr-layer-system.d.ts.map +1 -1
  125. package/dist/layers/xr-layer-system.js +4 -25
  126. package/dist/layers/xr-layer-system.js.map +1 -1
  127. package/dist/level/index.d.ts +6 -2
  128. package/dist/level/index.d.ts.map +1 -1
  129. package/dist/level/level-component-applier.d.ts +24 -0
  130. package/dist/level/level-component-applier.d.ts.map +1 -0
  131. package/dist/level/level-component-applier.js +199 -0
  132. package/dist/level/level-component-applier.js.map +1 -0
  133. package/dist/level/level-player-rig.d.ts +17 -0
  134. package/dist/level/level-player-rig.d.ts.map +1 -0
  135. package/dist/level/level-player-rig.js +113 -0
  136. package/dist/level/level-player-rig.js.map +1 -0
  137. package/dist/level/level-scene-environment.d.ts +28 -0
  138. package/dist/level/level-scene-environment.d.ts.map +1 -0
  139. package/dist/level/level-scene-environment.js +121 -0
  140. package/dist/level/level-scene-environment.js.map +1 -0
  141. package/dist/level/level-scene-json-importer.d.ts +53 -0
  142. package/dist/level/level-scene-json-importer.d.ts.map +1 -0
  143. package/dist/level/level-scene-json-importer.js +256 -0
  144. package/dist/level/level-scene-json-importer.js.map +1 -0
  145. package/dist/level/level-scene-material.d.ts +22 -0
  146. package/dist/level/level-scene-material.d.ts.map +1 -0
  147. package/dist/level/level-scene-material.js +231 -0
  148. package/dist/level/level-scene-material.js.map +1 -0
  149. package/dist/level/level-scene-object.d.ts +49 -0
  150. package/dist/level/level-scene-object.d.ts.map +1 -0
  151. package/dist/level/level-scene-object.js +396 -0
  152. package/dist/level/level-scene-object.js.map +1 -0
  153. package/dist/level/level-scene-primitive.d.ts +21 -0
  154. package/dist/level/level-scene-primitive.d.ts.map +1 -0
  155. package/dist/level/level-scene-primitive.js +159 -0
  156. package/dist/level/level-scene-primitive.js.map +1 -0
  157. package/dist/level/level-system.d.ts +14 -20
  158. package/dist/level/level-system.d.ts.map +1 -1
  159. package/dist/level/level-system.js +114 -49
  160. package/dist/level/level-system.js.map +1 -1
  161. package/dist/lighting/index.d.ts +10 -0
  162. package/dist/lighting/index.d.ts.map +1 -0
  163. package/dist/lighting/index.js +4 -0
  164. package/dist/lighting/index.js.map +1 -0
  165. package/dist/lighting/light-binding.d.ts +76 -0
  166. package/dist/lighting/light-binding.d.ts.map +1 -0
  167. package/dist/lighting/light-binding.js +229 -0
  168. package/dist/lighting/light-binding.js.map +1 -0
  169. package/dist/lighting/light-components.d.ts +885 -0
  170. package/dist/lighting/light-components.d.ts.map +1 -0
  171. package/dist/lighting/light-components.js +146 -0
  172. package/dist/lighting/light-components.js.map +1 -0
  173. package/dist/lighting/light-system.d.ts +919 -0
  174. package/dist/lighting/light-system.d.ts.map +1 -0
  175. package/dist/lighting/light-system.js +244 -0
  176. package/dist/lighting/light-system.js.map +1 -0
  177. package/dist/locomotion/locomotion-environment.d.ts +27 -0
  178. package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
  179. package/dist/locomotion/locomotion-environment.js +22 -0
  180. package/dist/locomotion/locomotion-environment.js.map +1 -0
  181. package/dist/locomotion/locomotion.d.ts +5 -34
  182. package/dist/locomotion/locomotion.d.ts.map +1 -1
  183. package/dist/locomotion/locomotion.js +33 -31
  184. package/dist/locomotion/locomotion.js.map +1 -1
  185. package/dist/locomotion/materials/line.js +1 -1
  186. package/dist/locomotion/slide.d.ts.map +1 -1
  187. package/dist/locomotion/slide.js +2 -2
  188. package/dist/locomotion/slide.js.map +1 -1
  189. package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
  190. package/dist/mcp/ecs-debug-tools.js +10 -2
  191. package/dist/mcp/ecs-debug-tools.js.map +1 -1
  192. package/dist/mcp/mcp-runtime.d.ts.map +1 -1
  193. package/dist/mcp/mcp-runtime.js +4 -1
  194. package/dist/mcp/mcp-runtime.js.map +1 -1
  195. package/dist/mcp/scene-tools.d.ts +152 -1
  196. package/dist/mcp/scene-tools.d.ts.map +1 -1
  197. package/dist/mcp/scene-tools.js +538 -8
  198. package/dist/mcp/scene-tools.js.map +1 -1
  199. package/dist/physics/index.js +11 -4
  200. package/dist/physics/index.js.map +1 -1
  201. package/dist/physics/physics-system.d.ts +704 -11
  202. package/dist/physics/physics-system.d.ts.map +1 -1
  203. package/dist/physics/physics-system.js +307 -25
  204. package/dist/physics/physics-system.js.map +1 -1
  205. package/dist/physics/physicsBody.d.ts +40 -1
  206. package/dist/physics/physicsBody.d.ts.map +1 -1
  207. package/dist/physics/physicsBody.js +39 -0
  208. package/dist/physics/physicsBody.js.map +1 -1
  209. package/dist/physics/physicsManipulation.d.ts +1 -1
  210. package/dist/physics/physicsManipulation.d.ts.map +1 -1
  211. package/dist/physics/physicsShape.d.ts +5 -3
  212. package/dist/physics/physicsShape.d.ts.map +1 -1
  213. package/dist/physics/physicsShape.js +2 -1
  214. package/dist/physics/physicsShape.js.map +1 -1
  215. package/dist/physics/utils.d.ts +10 -0
  216. package/dist/physics/utils.d.ts.map +1 -1
  217. package/dist/physics/utils.js +82 -48
  218. package/dist/physics/utils.js.map +1 -1
  219. package/dist/project/index.d.ts +11 -0
  220. package/dist/project/index.d.ts.map +1 -0
  221. package/dist/project/index.js +5 -0
  222. package/dist/project/index.js.map +1 -0
  223. package/dist/project/normalize.d.ts +19 -0
  224. package/dist/project/normalize.d.ts.map +1 -0
  225. package/dist/project/normalize.js +206 -0
  226. package/dist/project/normalize.js.map +1 -0
  227. package/dist/project/paths.d.ts +21 -0
  228. package/dist/project/paths.d.ts.map +1 -0
  229. package/dist/project/paths.js +75 -0
  230. package/dist/project/paths.js.map +1 -0
  231. package/dist/project/types.d.ts +159 -0
  232. package/dist/project/types.d.ts.map +1 -0
  233. package/dist/project/types.js +11 -0
  234. package/dist/project/types.js.map +1 -0
  235. package/dist/project/validation.d.ts +17 -0
  236. package/dist/project/validation.d.ts.map +1 -0
  237. package/dist/project/validation.js +501 -0
  238. package/dist/project/validation.js.map +1 -0
  239. package/dist/scene-understanding/scene-understanding-system.d.ts +23 -2
  240. package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
  241. package/dist/scene-understanding/scene-understanding-system.js +76 -54
  242. package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
  243. package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
  244. package/dist/transform/transform-component.d.ts +32 -0
  245. package/dist/transform/transform-component.d.ts.map +1 -0
  246. package/dist/transform/transform-component.js +24 -0
  247. package/dist/transform/transform-component.js.map +1 -0
  248. package/dist/transform/transform.d.ts +9 -42
  249. package/dist/transform/transform.d.ts.map +1 -1
  250. package/dist/transform/transform.js +8 -25
  251. package/dist/transform/transform.js.map +1 -1
  252. package/dist/ui/document.d.ts +9 -2
  253. package/dist/ui/document.d.ts.map +1 -1
  254. package/dist/ui/document.js +30 -5
  255. package/dist/ui/document.js.map +1 -1
  256. package/dist/ui/follow-component.d.ts +57 -0
  257. package/dist/ui/follow-component.d.ts.map +1 -0
  258. package/dist/ui/follow-component.js +38 -0
  259. package/dist/ui/follow-component.js.map +1 -0
  260. package/dist/ui/follow.d.ts +28 -102
  261. package/dist/ui/follow.d.ts.map +1 -1
  262. package/dist/ui/follow.js +10 -48
  263. package/dist/ui/follow.js.map +1 -1
  264. package/dist/ui/index.d.ts +3 -0
  265. package/dist/ui/index.d.ts.map +1 -1
  266. package/dist/ui/panel-components.d.ts +29 -0
  267. package/dist/ui/panel-components.d.ts.map +1 -0
  268. package/dist/ui/panel-components.js +22 -0
  269. package/dist/ui/panel-components.js.map +1 -0
  270. package/dist/ui/screenspace-component.d.ts +39 -0
  271. package/dist/ui/screenspace-component.d.ts.map +1 -0
  272. package/dist/ui/screenspace-component.js +21 -0
  273. package/dist/ui/screenspace-component.js.map +1 -0
  274. package/dist/ui/screenspace.d.ts +47 -135
  275. package/dist/ui/screenspace.d.ts.map +1 -1
  276. package/dist/ui/screenspace.js +127 -65
  277. package/dist/ui/screenspace.js.map +1 -1
  278. package/dist/ui/ui.d.ts +20 -122
  279. package/dist/ui/ui.d.ts.map +1 -1
  280. package/dist/ui/ui.js +44 -107
  281. package/dist/ui/ui.js.map +1 -1
  282. package/dist/ui/uikitml-asset.d.ts +25 -0
  283. package/dist/ui/uikitml-asset.d.ts.map +1 -0
  284. package/dist/ui/uikitml-asset.js +56 -0
  285. package/dist/ui/uikitml-asset.js.map +1 -0
  286. package/dist/ui/uikitml.d.ts +41 -0
  287. package/dist/ui/uikitml.d.ts.map +1 -0
  288. package/dist/ui/uikitml.js +119 -0
  289. package/dist/ui/uikitml.js.map +1 -0
  290. package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
  291. package/dist/version.d.ts +1 -1
  292. package/dist/version.js +1 -1
  293. package/dist/visibility/visibility-component.d.ts +14 -0
  294. package/dist/visibility/visibility-component.d.ts.map +1 -0
  295. package/dist/visibility/visibility-component.js +15 -0
  296. package/dist/visibility/visibility-component.js.map +1 -0
  297. package/dist/visibility/visibility.d.ts +3 -10
  298. package/dist/visibility/visibility.d.ts.map +1 -1
  299. package/dist/visibility/visibility.js +9 -12
  300. package/dist/visibility/visibility.js.map +1 -1
  301. package/package.json +48 -19
  302. package/LICENSE +0 -21
  303. package/dist/ecs/component-registry.d.ts +0 -54
  304. package/dist/ecs/component-registry.d.ts.map +0 -1
  305. package/dist/ecs/component-registry.js +0 -86
  306. package/dist/ecs/component-registry.js.map +0 -1
  307. package/dist/level/level-entity-creator.d.ts +0 -27
  308. package/dist/level/level-entity-creator.d.ts.map +0 -1
  309. package/dist/level/level-entity-creator.js +0 -108
  310. package/dist/level/level-entity-creator.js.map +0 -1
  311. package/dist/level/level-glxf-importer.d.ts +0 -23
  312. package/dist/level/level-glxf-importer.d.ts.map +0 -1
  313. package/dist/level/level-glxf-importer.js +0 -40
  314. package/dist/level/level-glxf-importer.js.map +0 -1
@@ -1,5 +1,6 @@
1
+ import { sha256Bytes } from '@iwsdk/scene-composition';
1
2
  import '../runtime/three.js';
2
- import { Vector3, Quaternion } from 'three';
3
+ import { Box3, Vector3, Quaternion, DoubleSide, BackSide, FrontSide, ACESFilmicToneMapping, CineonToneMapping, ReinhardToneMapping, LinearToneMapping, NoToneMapping, PCFSoftShadowMap, PCFShadowMap, BasicShadowMap } from 'three';
3
4
 
4
5
  /**
5
6
  * Copyright (c) Meta Platforms, Inc. and affiliates.
@@ -9,9 +10,419 @@ import { Vector3, Quaternion } from 'three';
9
10
  */
10
11
  /** Default maximum number of children per node before truncation. */
11
12
  const DEFAULT_MAX_CHILDREN = 50;
13
+ /** Read raw renderer counters and scene resource counts without applying a profile. */
14
+ function getRenderStats(world) {
15
+ var _a, _b;
16
+ const geometries = new Set();
17
+ const materials = new Set();
18
+ const sceneAssets = [];
19
+ const sceneLights = [];
20
+ const sceneMaterials = [];
21
+ let meshCount = 0;
22
+ let shadowCasters = 0;
23
+ world.scene.traverse((object) => {
24
+ var _a;
25
+ const assetId = (_a = object.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneAssetId;
26
+ if (typeof assetId === 'string') {
27
+ let assetMeshCount = 0;
28
+ object.traverse((descendant) => {
29
+ if (descendant.isMesh === true) {
30
+ assetMeshCount += 1;
31
+ }
32
+ });
33
+ sceneAssets.push({
34
+ id: assetId,
35
+ meshCount: assetMeshCount,
36
+ });
37
+ }
38
+ const lightState = inspectSceneLight(object);
39
+ if (lightState != null) {
40
+ sceneLights.push(lightState);
41
+ }
42
+ const renderable = object;
43
+ if (renderable.isMesh !== true) {
44
+ return;
45
+ }
46
+ meshCount += 1;
47
+ if (renderable.castShadow === true) {
48
+ shadowCasters += 1;
49
+ }
50
+ if (renderable.geometry != null) {
51
+ geometries.add(renderable.geometry);
52
+ }
53
+ const objectMaterials = Array.isArray(renderable.material)
54
+ ? renderable.material
55
+ : [renderable.material];
56
+ objectMaterials.forEach((material) => {
57
+ if (material != null) {
58
+ const firstUse = !materials.has(material);
59
+ materials.add(material);
60
+ if (firstUse) {
61
+ const materialState = inspectSceneMaterial(material);
62
+ if (materialState != null) {
63
+ sceneMaterials.push(materialState);
64
+ }
65
+ }
66
+ }
67
+ });
68
+ });
69
+ world.scene.updateMatrixWorld(true);
70
+ const activeRoot = world.getActiveRoot();
71
+ const worldBounds = serializeRuntimeBounds(new Box3().setFromObject(activeRoot));
72
+ const framingBounds = serializeRuntimeBounds(measureFramingBounds(activeRoot));
73
+ const info = world.renderer.info;
74
+ return {
75
+ available: true,
76
+ calls: info.render.calls,
77
+ triangles: info.render.triangles,
78
+ points: info.render.points,
79
+ lines: info.render.lines,
80
+ geometries: info.memory.geometries,
81
+ textures: info.memory.textures,
82
+ programs: (_b = (_a = info.programs) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0,
83
+ meshCount,
84
+ materialCount: materials.size,
85
+ shadowCasters,
86
+ framingBounds,
87
+ worldBounds,
88
+ environment: {
89
+ canvas: {
90
+ width: world.renderer.domElement.width,
91
+ height: world.renderer.domElement.height,
92
+ },
93
+ pixelRatio: world.renderer.getPixelRatio(),
94
+ renderer: world.renderer.constructor.name,
95
+ shadows: world.renderer.shadowMap.enabled,
96
+ toneMapping: world.renderer.toneMapping,
97
+ },
98
+ sceneAssets: sceneAssets.sort(compareRuntimeState),
99
+ sceneEnvironment: inspectSceneEnvironment(world),
100
+ sceneLights: sceneLights.sort(compareRuntimeState),
101
+ sceneMaterials: sceneMaterials.sort(compareRuntimeState),
102
+ };
103
+ }
104
+ function measureFramingBounds(root) {
105
+ const bounds = new Box3().makeEmpty();
106
+ root.traverseVisible((object) => {
107
+ var _a;
108
+ if (((_a = object.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneFramingRole) === 'support') {
109
+ return;
110
+ }
111
+ expandByOwnGeometry(bounds, object);
112
+ });
113
+ return bounds;
114
+ }
115
+ function expandByOwnGeometry(bounds, object) {
116
+ var _a, _b;
117
+ const geometry = object.geometry;
118
+ if (geometry == null) {
119
+ return;
120
+ }
121
+ let localBounds;
122
+ if (object.isInstancedMesh === true || object.isSkinnedMesh === true) {
123
+ (_a = object.computeBoundingBox) === null || _a === void 0 ? void 0 : _a.call(object);
124
+ localBounds = object.boundingBox;
125
+ }
126
+ else {
127
+ (_b = geometry.computeBoundingBox) === null || _b === void 0 ? void 0 : _b.call(geometry);
128
+ localBounds = geometry.boundingBox;
129
+ }
130
+ if (localBounds == null || localBounds.isEmpty()) {
131
+ return;
132
+ }
133
+ bounds.union(localBounds.clone().applyMatrix4(object.matrixWorld));
134
+ }
135
+ function serializeRuntimeBounds(bounds) {
136
+ if (bounds.isEmpty()) {
137
+ return null;
138
+ }
139
+ return {
140
+ min: bounds.min.toArray(),
141
+ max: bounds.max.toArray(),
142
+ size: bounds.getSize(new Vector3()).toArray(),
143
+ };
144
+ }
145
+ function inspectSceneMaterial(value) {
146
+ var _a, _b, _c, _d, _e, _f;
147
+ const material = value;
148
+ const id = (_a = material.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneMaterialId;
149
+ if (typeof id !== 'string') {
150
+ return null;
151
+ }
152
+ const model = material.isMeshPhysicalMaterial
153
+ ? 'physical'
154
+ : material.isMeshStandardMaterial
155
+ ? 'standard'
156
+ : material.isMeshBasicMaterial
157
+ ? 'basic'
158
+ : 'unknown';
159
+ const textures = inspectMaterialTextures(material);
160
+ return {
161
+ baseColor: (_b = colorToHex(material.color)) !== null && _b !== void 0 ? _b : '#000000',
162
+ ...(model === 'standard' || model === 'physical'
163
+ ? {
164
+ emissive: (_c = colorToHex(material.emissive)) !== null && _c !== void 0 ? _c : '#000000',
165
+ emissiveIntensity: finiteNumber(material.emissiveIntensity, 1),
166
+ flatShading: material.flatShading === true,
167
+ metalness: finiteNumber(material.metalness, 0),
168
+ roughness: finiteNumber(material.roughness, 0),
169
+ }
170
+ : {}),
171
+ ...(model === 'physical'
172
+ ? {
173
+ anisotropy: finiteNumber(material.anisotropy, 0),
174
+ anisotropyRotationDeg: (finiteNumber(material.anisotropyRotation, 0) * 180) / Math.PI,
175
+ attenuationColor: (_d = colorToHex(material.attenuationColor)) !== null && _d !== void 0 ? _d : '#ffffff',
176
+ attenuationDistance: material.attenuationDistance === Infinity
177
+ ? 'infinity'
178
+ : finiteNumber(material.attenuationDistance, 0),
179
+ clearcoat: finiteNumber(material.clearcoat, 0),
180
+ clearcoatRoughness: finiteNumber(material.clearcoatRoughness, 0),
181
+ envMapIntensity: finiteNumber(material.envMapIntensity, 1),
182
+ ior: finiteNumber(material.ior, 1.5),
183
+ sheen: finiteNumber(material.sheen, 0),
184
+ sheenColor: (_e = colorToHex(material.sheenColor)) !== null && _e !== void 0 ? _e : '#000000',
185
+ sheenRoughness: finiteNumber(material.sheenRoughness, 1),
186
+ specularColor: (_f = colorToHex(material.specularColor)) !== null && _f !== void 0 ? _f : '#ffffff',
187
+ specularIntensity: finiteNumber(material.specularIntensity, 1),
188
+ thickness: finiteNumber(material.thickness, 0),
189
+ transmission: finiteNumber(material.transmission, 0),
190
+ }
191
+ : {}),
192
+ id,
193
+ model,
194
+ opacity: finiteNumber(material.opacity, 1),
195
+ side: materialSideName(material.side),
196
+ ...(Object.keys(textures).length === 0 ? {} : { textures }),
197
+ };
198
+ }
199
+ function inspectMaterialTextures(material) {
200
+ var _a, _b, _c, _d, _e, _f;
201
+ const result = {};
202
+ const mappings = [
203
+ ['albedo', material.map],
204
+ ['emissive', material.emissiveMap],
205
+ ['roughness', material.roughnessMap],
206
+ ['metalness', material.metalnessMap],
207
+ ['ambientOcclusion', material.aoMap],
208
+ ['alpha', material.alphaMap],
209
+ ['normal', material.normalMap],
210
+ ['bump', material.bumpMap],
211
+ ];
212
+ for (const [channel, texture] of mappings) {
213
+ const metadata = (_a = texture === null || texture === void 0 ? void 0 : texture.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneProceduralTexture;
214
+ const data = (_b = texture === null || texture === void 0 ? void 0 : texture.image) === null || _b === void 0 ? void 0 : _b.data;
215
+ if (metadata == null ||
216
+ typeof metadata !== 'object' ||
217
+ data == null ||
218
+ !(data instanceof Uint8Array)) {
219
+ continue;
220
+ }
221
+ const values = metadata;
222
+ result[channel] = {
223
+ algorithm: String((_c = values.algorithm) !== null && _c !== void 0 ? _c : ''),
224
+ channel,
225
+ dataHash: sha256Bytes(data),
226
+ height: finiteNumber((_d = texture === null || texture === void 0 ? void 0 : texture.image) === null || _d === void 0 ? void 0 : _d.height, 0),
227
+ recipeHash: String((_e = values.recipeHash) !== null && _e !== void 0 ? _e : ''),
228
+ width: finiteNumber((_f = texture === null || texture === void 0 ? void 0 : texture.image) === null || _f === void 0 ? void 0 : _f.width, 0),
229
+ };
230
+ }
231
+ return result;
232
+ }
233
+ function inspectSceneLight(object) {
234
+ var _a, _b;
235
+ const light = object;
236
+ const nodeId = (_a = light.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneNodeId;
237
+ if (light.isLight !== true || typeof nodeId !== 'string') {
238
+ return null;
239
+ }
240
+ const type = lightTypeName(light.type);
241
+ const sourceNodeId = (_b = light.userData) === null || _b === void 0 ? void 0 : _b.iwsdkSceneSourceNodeId;
242
+ const color = colorToHex(light.color);
243
+ const groundColor = colorToHex(light.groundColor);
244
+ return {
245
+ ...(type === 'spot' && typeof light.angle === 'number'
246
+ ? { angleDeg: (light.angle * 180) / Math.PI }
247
+ : {}),
248
+ castShadow: light.castShadow === true,
249
+ ...(color != null
250
+ ? type === 'hemisphere'
251
+ ? { skyColor: color }
252
+ : { color }
253
+ : {}),
254
+ ...((type === 'point' || type === 'spot') && typeof light.decay === 'number'
255
+ ? { decay: light.decay }
256
+ : {}),
257
+ ...((type === 'point' || type === 'spot') &&
258
+ typeof light.distance === 'number'
259
+ ? { distance: light.distance }
260
+ : {}),
261
+ ...(type === 'hemisphere' && groundColor != null ? { groundColor } : {}),
262
+ ...(type === 'rect-area' && typeof light.width === 'number'
263
+ ? { width: light.width }
264
+ : {}),
265
+ ...(type === 'rect-area' && typeof light.height === 'number'
266
+ ? { height: light.height }
267
+ : {}),
268
+ intensity: finiteNumber(light.intensity, 1),
269
+ nodeId,
270
+ ...(type === 'spot' && typeof light.penumbra === 'number'
271
+ ? { penumbra: light.penumbra }
272
+ : {}),
273
+ ...(typeof sourceNodeId === 'string' ? { sourceNodeId } : {}),
274
+ ...(light.castShadow === true && light.shadow != null
275
+ ? { shadow: inspectSceneShadow(light.shadow, type) }
276
+ : {}),
277
+ type,
278
+ };
279
+ }
280
+ function inspectSceneShadow(shadow, lightType) {
281
+ var _a, _b;
282
+ const value = shadow;
283
+ const mapSize = (_b = (_a = value.mapSize) === null || _a === void 0 ? void 0 : _a.toArray) === null || _b === void 0 ? void 0 : _b.call(_a);
284
+ return {
285
+ bias: finiteNumber(value.bias, 0),
286
+ ...(value.camera != null
287
+ ? {
288
+ camera: {
289
+ far: finiteNumber(value.camera.far, 0),
290
+ near: finiteNumber(value.camera.near, 0),
291
+ ...(lightType === 'directional'
292
+ ? {
293
+ bottom: finiteNumber(value.camera.bottom, 0),
294
+ left: finiteNumber(value.camera.left, 0),
295
+ right: finiteNumber(value.camera.right, 0),
296
+ top: finiteNumber(value.camera.top, 0),
297
+ }
298
+ : {}),
299
+ },
300
+ }
301
+ : {}),
302
+ mapSize: Array.isArray(mapSize) && mapSize.length >= 2
303
+ ? mapSize.slice(0, 2)
304
+ : [512, 512],
305
+ normalBias: finiteNumber(value.normalBias, 0),
306
+ radius: finiteNumber(value.radius, 1),
307
+ };
308
+ }
309
+ function inspectSceneEnvironment(world) {
310
+ var _a, _b, _c, _d, _e;
311
+ const background = world.scene.background;
312
+ const environmentTexture = world.scene.environment;
313
+ const gradient = (_a = background === null || background === void 0 ? void 0 : background.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneGradientBackground;
314
+ const imageBasedLighting = (_b = environmentTexture === null || environmentTexture === void 0 ? void 0 : environmentTexture.userData) === null || _b === void 0 ? void 0 : _b.iwsdkSceneImageBasedLighting;
315
+ const fog = world.scene.fog;
316
+ return {
317
+ background: (background === null || background === void 0 ? void 0 : background.isColor) === true
318
+ ? { color: (_c = colorToHex(background)) !== null && _c !== void 0 ? _c : '#000000', type: 'color' }
319
+ : (background === null || background === void 0 ? void 0 : background.isTexture) === true && (gradient === null || gradient === void 0 ? void 0 : gradient.type) === 'gradient'
320
+ ? {
321
+ bottomColor: normalizeHexColor(gradient.bottomColor),
322
+ exponent: finiteNumber(gradient.exponent, 1),
323
+ topColor: normalizeHexColor(gradient.topColor),
324
+ type: 'gradient',
325
+ }
326
+ : background == null && world.renderer.getClearAlpha() === 0
327
+ ? { type: 'transparent' }
328
+ : null,
329
+ clearAlpha: world.renderer.getClearAlpha(),
330
+ exposure: world.renderer.toneMappingExposure,
331
+ imageBasedLighting: (imageBasedLighting === null || imageBasedLighting === void 0 ? void 0 : imageBasedLighting.type) === 'room'
332
+ ? {
333
+ intensity: world.scene.environmentIntensity,
334
+ sigma: finiteNumber(imageBasedLighting.sigma, 0.04),
335
+ texture: (environmentTexture === null || environmentTexture === void 0 ? void 0 : environmentTexture.isTexture) === true,
336
+ type: 'room',
337
+ }
338
+ : null,
339
+ fog: (fog === null || fog === void 0 ? void 0 : fog.isFog) === true
340
+ ? {
341
+ color: (_d = colorToHex(fog.color)) !== null && _d !== void 0 ? _d : '#000000',
342
+ far: finiteNumber(fog.far, 0),
343
+ near: finiteNumber(fog.near, 0),
344
+ type: 'linear',
345
+ }
346
+ : (fog === null || fog === void 0 ? void 0 : fog.isFogExp2) === true
347
+ ? {
348
+ color: (_e = colorToHex(fog.color)) !== null && _e !== void 0 ? _e : '#000000',
349
+ density: finiteNumber(fog.density, 0),
350
+ type: 'exponential',
351
+ }
352
+ : null,
353
+ shadows: world.renderer.shadowMap.enabled,
354
+ shadowMapType: shadowMapTypeName(world.renderer.shadowMap.type),
355
+ toneMapping: toneMappingName(world.renderer.toneMapping),
356
+ };
357
+ }
358
+ function shadowMapTypeName(value) {
359
+ switch (value) {
360
+ case BasicShadowMap:
361
+ return 'basic';
362
+ case PCFShadowMap:
363
+ return 'pcf';
364
+ case PCFSoftShadowMap:
365
+ return 'pcf-soft';
366
+ default:
367
+ return 'unknown';
368
+ }
369
+ }
370
+ function colorToHex(value) {
371
+ var _a;
372
+ const hex = (_a = value === null || value === void 0 ? void 0 : value.getHexString) === null || _a === void 0 ? void 0 : _a.call(value);
373
+ return typeof hex === 'string' && /^[0-9a-f]{6}$/i.test(hex)
374
+ ? `#${hex.toLowerCase()}`
375
+ : null;
376
+ }
377
+ function normalizeHexColor(value) {
378
+ const color = String(value);
379
+ return /^#[0-9a-f]{6}$/i.test(color) ? color.toLowerCase() : color;
380
+ }
381
+ function finiteNumber(value, fallback) {
382
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
383
+ }
384
+ function lightTypeName(type) {
385
+ if (type === 'RectAreaLight') {
386
+ return 'rect-area';
387
+ }
388
+ return type.endsWith('Light')
389
+ ? type.slice(0, -'Light'.length).toLowerCase()
390
+ : type.toLowerCase();
391
+ }
392
+ function materialSideName(side) {
393
+ switch (side) {
394
+ case FrontSide:
395
+ return 'front';
396
+ case BackSide:
397
+ return 'back';
398
+ case DoubleSide:
399
+ return 'double';
400
+ default:
401
+ return 'unknown';
402
+ }
403
+ }
404
+ function toneMappingName(value) {
405
+ switch (value) {
406
+ case NoToneMapping:
407
+ return 'none';
408
+ case LinearToneMapping:
409
+ return 'linear';
410
+ case ReinhardToneMapping:
411
+ return 'reinhard';
412
+ case CineonToneMapping:
413
+ return 'cineon';
414
+ case ACESFilmicToneMapping:
415
+ return 'aces';
416
+ default:
417
+ return 'unknown';
418
+ }
419
+ }
420
+ function compareRuntimeState(left, right) {
421
+ return JSON.stringify(left).localeCompare(JSON.stringify(right));
422
+ }
12
423
  /**
13
424
  * Get the Three.js scene hierarchy as a JSON tree.
14
- * Returns object names, UUIDs, and entity indices where available.
425
+ * Returns object identity, native scene render metadata, and entity indices.
15
426
  */
16
427
  function getSceneHierarchy(world, params) {
17
428
  const { parentId, maxDepth = 5, maxChildren = DEFAULT_MAX_CHILDREN, } = params;
@@ -28,10 +439,66 @@ function getSceneHierarchy(world, params) {
28
439
  return buildHierarchy(root, 0, maxDepth, maxChildren);
29
440
  }
30
441
  function buildHierarchy(obj, depth, maxDepth, maxChildren) {
442
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
31
443
  const node = {
32
444
  name: obj.name || '(unnamed)',
33
445
  uuid: obj.uuid,
34
446
  };
447
+ if (typeof obj.type === 'string' && obj.type.length > 0) {
448
+ node.objectType = obj.type;
449
+ }
450
+ if (typeof ((_a = obj.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneNodeId) === 'string') {
451
+ node.sceneNodeId = obj.userData.iwsdkSceneNodeId;
452
+ }
453
+ if (typeof ((_b = obj.userData) === null || _b === void 0 ? void 0 : _b.iwsdkSceneSourceNodeId) === 'string') {
454
+ node.sourceNodeId = obj.userData.iwsdkSceneSourceNodeId;
455
+ }
456
+ const runtimeHash = cloneRuntimeHash((_c = obj.userData) === null || _c === void 0 ? void 0 : _c.iwsdkSceneRuntimeHash);
457
+ if (runtimeHash != null) {
458
+ node.runtimeHash = runtimeHash;
459
+ }
460
+ const content = cloneSceneContent((_d = obj.userData) === null || _d === void 0 ? void 0 : _d.iwsdkSceneContent);
461
+ if (content != null) {
462
+ node.contentType = content.type;
463
+ node.content = content;
464
+ }
465
+ const framingRole = (_e = obj.userData) === null || _e === void 0 ? void 0 : _e.iwsdkSceneFramingRole;
466
+ if (framingRole === 'content' || framingRole === 'support') {
467
+ node.framingRole = framingRole;
468
+ }
469
+ const metadata = cloneJsonObject((_f = obj.userData) === null || _f === void 0 ? void 0 : _f.iwsdkSceneMetadata);
470
+ if (metadata != null) {
471
+ node.metadata = metadata;
472
+ }
473
+ const resourceRefs = getResourceRefs(content);
474
+ const userDataAssetId = (_g = obj.userData) === null || _g === void 0 ? void 0 : _g.iwsdkSceneAssetId;
475
+ if (typeof userDataAssetId === 'string') {
476
+ resourceRefs.assetId = userDataAssetId;
477
+ }
478
+ if (Object.keys(resourceRefs).length > 0) {
479
+ node.resourceRefs = resourceRefs;
480
+ node.assetId = resourceRefs.assetId;
481
+ }
482
+ const instanceIds = cloneStringArray((_h = obj.userData) === null || _h === void 0 ? void 0 : _h.iwsdkSceneInstanceIds);
483
+ if (instanceIds != null) {
484
+ const limit = Math.max(1, maxChildren);
485
+ node.instanceIds = instanceIds.slice(0, limit);
486
+ if (instanceIds.length > limit) {
487
+ node.truncatedInstances = instanceIds.length - limit;
488
+ }
489
+ }
490
+ const resources = cloneJsonObjectAs((_j = obj.userData) === null || _j === void 0 ? void 0 : _j.iwsdkSceneResources);
491
+ if (resources != null) {
492
+ node.resources = resources;
493
+ }
494
+ const environment = cloneJsonObjectAs((_k = obj.userData) === null || _k === void 0 ? void 0 : _k.iwsdkSceneEnvironment);
495
+ if (environment != null) {
496
+ node.environment = environment;
497
+ }
498
+ const documentMetadata = cloneJsonObject((_l = obj.userData) === null || _l === void 0 ? void 0 : _l.iwsdkSceneDocumentMetadata);
499
+ if (documentMetadata != null) {
500
+ node.documentMetadata = documentMetadata;
501
+ }
35
502
  // Check if Object3D has associated entity (entityIdx is set by Transform component)
36
503
  if ('entityIdx' in obj && typeof obj.entityIdx === 'number') {
37
504
  node.entityIndex = obj.entityIdx;
@@ -47,18 +514,68 @@ function buildHierarchy(obj, depth, maxDepth, maxChildren) {
47
514
  }
48
515
  return node;
49
516
  }
517
+ function cloneSceneContent(value) {
518
+ if (!isRecord(value) || !isSceneContentType(value.type)) {
519
+ return undefined;
520
+ }
521
+ return cloneJson(value);
522
+ }
523
+ function isSceneContentType(value) {
524
+ return (value === 'group' ||
525
+ value === 'asset' ||
526
+ value === 'instance' ||
527
+ value === 'pattern');
528
+ }
529
+ function getResourceRefs(content) {
530
+ switch (content === null || content === void 0 ? void 0 : content.type) {
531
+ case 'asset':
532
+ return { assetId: content.asset };
533
+ case 'instance':
534
+ case 'pattern':
535
+ return { prefabId: content.prefab };
536
+ default:
537
+ return {};
538
+ }
539
+ }
540
+ function cloneRuntimeHash(value) {
541
+ return typeof value === 'string' && /^sha256:[0-9a-f]{64}$/u.test(value)
542
+ ? value
543
+ : undefined;
544
+ }
545
+ function cloneStringArray(value) {
546
+ return Array.isArray(value) &&
547
+ value.every((entry) => typeof entry === 'string')
548
+ ? [...value]
549
+ : undefined;
550
+ }
551
+ function cloneJsonObject(value) {
552
+ return cloneJsonObjectAs(value);
553
+ }
554
+ function cloneJsonObjectAs(value) {
555
+ return isRecord(value) ? cloneJson(value) : undefined;
556
+ }
557
+ function cloneJson(value) {
558
+ return JSON.parse(JSON.stringify(value));
559
+ }
560
+ function isRecord(value) {
561
+ return value != null && typeof value === 'object' && !Array.isArray(value);
562
+ }
50
563
  /**
51
564
  * Get local and global transforms of an Object3D.
52
565
  * Includes positionRelativeToXROrigin which can be used directly with IWER look_at tool.
53
566
  */
54
567
  function getObjectTransform(world, params) {
55
- const { uuid } = params;
56
- if (!uuid) {
57
- throw new Error('uuid parameter is required. Use get_scene_hierarchy to discover object UUIDs.');
568
+ const { nodeId, uuid } = params;
569
+ if (!uuid && !nodeId) {
570
+ throw new Error('uuid or nodeId parameter is required. Use get_scene_hierarchy for Object3D UUIDs or scene_get_hierarchy for native scene node ids.');
58
571
  }
59
- const obj = world.scene.getObjectByProperty('uuid', uuid);
572
+ const obj = uuid != null
573
+ ? world.scene.getObjectByProperty('uuid', uuid)
574
+ : findObjectBySceneNodeId(world.scene, nodeId);
60
575
  if (!obj) {
61
- throw new Error(`Object not found with UUID '${uuid}'. Use get_scene_hierarchy to discover available objects.`);
576
+ throw new Error(uuid != null
577
+ ? `Object not found with UUID '${uuid}'. Use get_scene_hierarchy to discover available objects.`
578
+ : `Object not found with scene node id '${nodeId}'. Use scene_get_hierarchy to discover native scene node ids.`);
62
579
  }
63
580
  // Ensure world matrix is up to date
64
581
  obj.updateWorldMatrix(true, false);
@@ -90,6 +607,19 @@ function getObjectTransform(world, params) {
90
607
  positionRelativeToXROrigin,
91
608
  };
92
609
  }
610
+ function findObjectBySceneNodeId(object, nodeId) {
611
+ var _a;
612
+ if (((_a = object.userData) === null || _a === void 0 ? void 0 : _a.iwsdkSceneNodeId) === nodeId) {
613
+ return object;
614
+ }
615
+ for (const child of object.children) {
616
+ const found = findObjectBySceneNodeId(child, nodeId);
617
+ if (found != null) {
618
+ return found;
619
+ }
620
+ }
621
+ return undefined;
622
+ }
93
623
 
94
- export { getObjectTransform, getSceneHierarchy };
624
+ export { getObjectTransform, getRenderStats, getSceneHierarchy };
95
625
  //# sourceMappingURL=scene-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene-tools.js","sources":["../../src/mcp/scene-tools.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-tools.js","sources":["../../src/mcp/scene-tools.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAAA;;;;;AAKG;AAsNH;AACA,MAAM,oBAAoB,GAAG,EAAE;AAE/B;AACM,SAAU,cAAc,CAAC,KAAY,EAAA;;AACzC,IAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAW;AACrC,IAAA,MAAM,SAAS,GAAG,IAAI,GAAG,EAAW;IACpC,MAAM,WAAW,GAA6B,EAAE;IAChD,MAAM,WAAW,GAA6B,EAAE;IAChD,MAAM,cAAc,GAAgC,EAAE;IACtD,IAAI,SAAS,GAAG,CAAC;IACjB,IAAI,aAAa,GAAG,CAAC;IACrB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAI;;QAC9B,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB;AAClD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,cAAc,GAAG,CAAC;AACtB,YAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,KAAI;AAC7B,gBAAA,IAAK,UAA8C,CAAC,MAAM,KAAK,IAAI,EAAE;oBACnE,cAAc,IAAI,CAAC;gBACrB;AACF,YAAA,CAAC,CAAC;YACF,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,EAAE,EAAE,OAAO;AACX,gBAAA,SAAS,EAAE,cAAc;AAC1B,aAAA,CAAC;QACJ;AACA,QAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC;AAC5C,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,YAAA,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9B;QACA,MAAM,UAAU,GAAG,MAKlB;AACD,QAAA,IAAI,UAAU,CAAC,MAAM,KAAK,IAAI,EAAE;YAC9B;QACF;QACA,SAAS,IAAI,CAAC;AACd,QAAA,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE;YAClC,aAAa,IAAI,CAAC;QACpB;AACA,QAAA,IAAI,UAAU,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC/B,YAAA,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QACrC;QACA,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ;cACrD,UAAU,CAAC;AACb,cAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;AACzB,QAAA,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AACnC,YAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;gBACpB,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzC,gBAAA,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACvB,IAAI,QAAQ,EAAE;AACZ,oBAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC;AACpD,oBAAA,IAAI,aAAa,IAAI,IAAI,EAAE;AACzB,wBAAA,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC;oBACpC;gBACF;YACF;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,CAAC;AAEF,IAAA,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AACnC,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE;AACxC,IAAA,MAAM,WAAW,GAAG,sBAAsB,CACxC,IAAI,IAAI,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CACrC;IACD,MAAM,aAAa,GAAG,sBAAsB,CAC1C,oBAAoB,CAAC,UAAU,CAAC,CACjC;AACD,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI;IAChC,OAAO;AACL,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,QAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AAChC,QAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AAC1B,QAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,QAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;AAClC,QAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;QAC9B,QAAQ,EAAE,MAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;QACpC,SAAS;QACT,aAAa,EAAE,SAAS,CAAC,IAAI;QAC7B,aAAa;QACb,aAAa;QACb,WAAW;AACX,QAAA,WAAW,EAAE;AACX,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK;AACtC,gBAAA,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM;AACzC,aAAA;AACD,YAAA,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC1C,YAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AACzC,YAAA,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;AACzC,YAAA,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;AACxC,SAAA;AACD,QAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAClD,QAAA,gBAAgB,EAAE,uBAAuB,CAAC,KAAK,CAAC;AAChD,QAAA,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC;AAClD,QAAA,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC;KACzD;AACH;AAeA,SAAS,oBAAoB,CAAC,IAAc,EAAA;IAC1C,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,SAAS,EAAE;AACrC,IAAA,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAI;;QAC9B,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,0CAAE,qBAAqB,MAAK,SAAS,EAAE;YACxD;QACF;AACA,QAAA,mBAAmB,CAAC,MAAM,EAAE,MAA6B,CAAC;AAC5D,IAAA,CAAC,CAAC;AACF,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,mBAAmB,CAAC,MAAY,EAAE,MAA2B,EAAA;;AACpE,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,IAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB;IACF;AACA,IAAA,IAAI,WAAoC;AACxC,IAAA,IAAI,MAAM,CAAC,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,aAAa,KAAK,IAAI,EAAE;AACpE,QAAA,CAAA,EAAA,GAAA,MAAM,CAAC,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,MAAA,CAAI;AAC7B,QAAA,WAAW,GAAG,MAAM,CAAC,WAAW;IAClC;SAAO;AACL,QAAA,CAAA,EAAA,GAAA,QAAQ,CAAC,kBAAkB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,QAAA,CAAI;AAC/B,QAAA,WAAW,GAAG,QAAQ,CAAC,WAAW;IACpC;IACA,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE;QAChD;IACF;AACA,IAAA,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACpE;AAEA,SAAS,sBAAsB,CAC7B,MAAY,EAAA;AAEZ,IAAA,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;AACpB,QAAA,OAAO,IAAI;IACb;IACA,OAAO;AACL,QAAA,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAA8B;AACrD,QAAA,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAA8B;QACrD,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,EAA8B;KAC1E;AACH;AAiDA,SAAS,oBAAoB,CAC3B,KAAc,EAAA;;IAEd,MAAM,QAAQ,GAAG,KAA4B;IAC7C,MAAM,EAAE,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,oBAAoB;AAClD,IAAA,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;AAC1B,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,KAAK,GAAG,QAAQ,CAAC;AACrB,UAAE;UACA,QAAQ,CAAC;AACT,cAAE;cACA,QAAQ,CAAC;AACT,kBAAE;kBACA,SAAS;AACjB,IAAA,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC;IAClD,OAAO;QACL,SAAS,EAAE,MAAA,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;AAClD,QAAA,IAAI,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK;AACpC,cAAE;gBACE,QAAQ,EAAE,MAAA,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;gBACpD,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;AAC9D,gBAAA,WAAW,EAAE,QAAQ,CAAC,WAAW,KAAK,IAAI;gBAC1C,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9C,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;AAC/C;cACD,EAAE,CAAC;QACP,IAAI,KAAK,KAAK;AACZ,cAAE;gBACE,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;AAChD,gBAAA,qBAAqB,EACnB,CAAC,YAAY,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE;gBAChE,gBAAgB,EAAE,MAAA,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;AACpE,gBAAA,mBAAmB,EACjB,QAAQ,CAAC,mBAAmB,KAAK;AAC/B,sBAAG;sBACD,YAAY,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;gBACnD,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9C,kBAAkB,EAAE,YAAY,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAChE,eAAe,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC1D,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;gBACpC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtC,UAAU,EAAE,MAAA,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;gBACxD,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,CAAC;gBACxD,aAAa,EAAE,MAAA,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;gBAC9D,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBAC9D,SAAS,EAAE,YAAY,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC9C,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;AACrD;cACD,EAAE,CAAC;QACP,EAAE;QACF,KAAK;QACL,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,EAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;KAC5D;AACH;AAEA,SAAS,uBAAuB,CAC9B,QAA6B,EAAA;;IAI7B,MAAM,MAAM,GAER,EAAE;AACN,IAAA,MAAM,QAAQ,GAGR;AACJ,QAAA,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC;AACxB,QAAA,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC;AAClC,QAAA,CAAC,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC;AACpC,QAAA,CAAC,WAAW,EAAE,QAAQ,CAAC,YAAY,CAAC;AACpC,QAAA,CAAC,kBAAkB,EAAE,QAAQ,CAAC,KAAK,CAAC;AACpC,QAAA,CAAC,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC;AAC5B,QAAA,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC;AAC9B,QAAA,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC;KAC3B;IACD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE;AACzC,QAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,2BAA2B;AAC/D,QAAA,MAAM,IAAI,GAAG,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI;QACjC,IACE,QAAQ,IAAI,IAAI;YAChB,OAAO,QAAQ,KAAK,QAAQ;AAC5B,YAAA,IAAI,IAAI,IAAI;AACZ,YAAA,EAAE,IAAI,YAAY,UAAU,CAAC,EAC7B;YACA;QACF;QACA,MAAM,MAAM,GAAG,QAAmC;QAClD,MAAM,CAAC,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,MAAM,CAAC,CAAA,EAAA,GAAA,MAAM,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;YACzC,OAAO;AACP,YAAA,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;AAC3B,YAAA,MAAM,EAAE,YAAY,CAAC,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,EAAE,CAAC,CAAC;YAC/C,UAAU,EAAE,MAAM,CAAC,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;AAC3C,YAAA,KAAK,EAAE,YAAY,CAAC,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,KAAK,EAAE,CAAC,CAAC;SAC9C;IACH;AACA,IAAA,OAAO,MAAM;AACf;AAEA,SAAS,iBAAiB,CAAC,MAAgB,EAAA;;IACzC,MAAM,KAAK,GAAG,MAqBb;IACD,MAAM,MAAM,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,gBAAgB;IAC/C,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACxD,QAAA,OAAO,IAAI;IACb;IACA,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;IACtC,MAAM,YAAY,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,sBAAsB;IAC3D,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC;IACjD,OAAO;QACL,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK;AAC5C,cAAE,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE;cACzC,EAAE,CAAC;AACP,QAAA,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI;QACrC,IAAI,KAAK,IAAI;cACT,IAAI,KAAK;AACT,kBAAE,EAAE,QAAQ,EAAE,KAAK;kBACjB,EAAE,KAAK;cACT,EAAE,CAAC;AACP,QAAA,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,KAAK,OAAO,KAAK,CAAC,KAAK,KAAK;AAClE,cAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;cACpB,EAAE,CAAC;QACP,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;AACxC,YAAA,OAAO,KAAK,CAAC,QAAQ,KAAK;AACxB,cAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;cAC1B,EAAE,CAAC;AACP,QAAA,IAAI,IAAI,KAAK,YAAY,IAAI,WAAW,IAAI,IAAI,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;QACxE,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK;AACjD,cAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK;cACpB,EAAE,CAAC;QACP,IAAI,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK;AAClD,cAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;cACtB,EAAE,CAAC;QACP,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3C,MAAM;QACN,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK;AAC/C,cAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;cAC1B,EAAE,CAAC;AACP,QAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI;AAC/C,cAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC;cAChD,EAAE,CAAC;QACP,IAAI;KACL;AACH;AAEA,SAAS,kBAAkB,CACzB,MAEC,EACD,SAAiB,EAAA;;IAEjB,MAAM,KAAK,GAAG,MAcb;IACD,MAAM,OAAO,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,CAAI;IAC1C,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACjC,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI;AAClB,cAAE;AACE,gBAAA,MAAM,EAAE;oBACN,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBACxC,IAAI,SAAS,KAAK;AAChB,0BAAE;4BACE,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;4BAC5C,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;4BACxC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;4BAC1C,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AACvC;0BACD,EAAE,CAAC;AACR,iBAAA;AACF;cACD,EAAE,CAAC;AACP,QAAA,OAAO,EACL,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI;cACxC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AACpB,cAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QAChB,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;QAC7C,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;KACtC;AACH;AAEA,SAAS,uBAAuB,CAAC,KAAY,EAAA;;AAC3C,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,UAMvB;AACR,IAAA,MAAM,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,WAG/B;AACR,IAAA,MAAM,QAAQ,GAAG,CAAA,EAAA,GAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,4BAO1B;AACb,IAAA,MAAM,kBAAkB,GAAG,CAAA,EAAA,GAAA,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlB,kBAAkB,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CACnD,4BAES;AACb,IAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAOhB;IACR,OAAO;QACL,UAAU,EACR,CAAA,UAAU,KAAA,IAAA,IAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,MAAK;AACtB,cAAE,EAAE,KAAK,EAAE,MAAA,UAAU,CAAC,UAAU,CAAC,mCAAI,SAAS,EAAE,IAAI,EAAE,OAAO;cAC3D,CAAA,UAAU,KAAA,IAAA,IAAV,UAAU,KAAA,MAAA,GAAA,MAAA,GAAV,UAAU,CAAE,SAAS,MAAK,IAAI,IAAI,CAAA,QAAQ,KAAA,IAAA,IAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,MAAK;AACrD,kBAAE;AACE,oBAAA,WAAW,EAAE,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACpD,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,oBAAA,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC9C,oBAAA,IAAI,EAAE,UAAU;AACjB;AACH,kBAAE,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK;AACzD,sBAAE,EAAE,IAAI,EAAE,aAAa;AACvB,sBAAE,IAAI;AACd,QAAA,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC1C,QAAA,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,mBAAmB;QAC5C,kBAAkB,EAChB,CAAA,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,IAAI,MAAK;AAC3B,cAAE;AACE,gBAAA,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,oBAAoB;gBAC3C,KAAK,EAAE,YAAY,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC;gBACnD,OAAO,EAAE,CAAA,kBAAkB,KAAA,IAAA,IAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,SAAS,MAAK,IAAI;AAC/C,gBAAA,IAAI,EAAE,MAAM;AACb;AACH,cAAE,IAAI;QACV,GAAG,EACD,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,MAAK;AACb,cAAE;gBACE,KAAK,EAAE,MAAA,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;gBACzC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC7B,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,gBAAA,IAAI,EAAE,QAAQ;AACf;cACD,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,MAAK;AACnB,kBAAE;oBACE,KAAK,EAAE,MAAA,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,SAAS;oBACzC,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;AACrC,oBAAA,IAAI,EAAE,aAAa;AACpB;AACH,kBAAE,IAAI;AACZ,QAAA,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;QACzC,aAAa,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;QAC/D,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;KACzD;AACH;AAEA,SAAS,iBAAiB,CACxB,KAAa,EAAA;IAEb,QAAQ,KAAK;AACX,QAAA,KAAK,cAAc;AACjB,YAAA,OAAO,OAAO;AAChB,QAAA,KAAK,YAAY;AACf,YAAA,OAAO,KAAK;AACd,QAAA,KAAK,gBAAgB;AACnB,YAAA,OAAO,UAAU;AACnB,QAAA;AACE,YAAA,OAAO,SAAS;;AAEtB;AAEA,SAAS,UAAU,CAAC,KAAmC,EAAA;;IACrD,MAAM,GAAG,GAAG,CAAA,EAAA,GAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,IAAA,CAAA,KAAA,CAAI;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG;AACzD,UAAE,CAAA,CAAA,EAAI,GAAG,CAAC,WAAW,EAAE,CAAA;UACrB,IAAI;AACV;AAEA,SAAS,iBAAiB,CAAC,KAAc,EAAA;AACvC,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B,IAAA,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK;AACpE;AAEA,SAAS,YAAY,CAAC,KAAc,EAAE,QAAgB,EAAA;AACpD,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,QAAQ;AAC/E;AAEA,SAAS,aAAa,CAAC,IAAY,EAAA;AACjC,IAAA,IAAI,IAAI,KAAK,eAAe,EAAE;AAC5B,QAAA,OAAO,WAAW;IACpB;AACA,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO;AAC1B,UAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW;AAC5C,UAAE,IAAI,CAAC,WAAW,EAAE;AACxB;AAEA,SAAS,gBAAgB,CACvB,IAAwB,EAAA;IAExB,QAAQ,IAAI;AACV,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,OAAO;AAChB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,MAAM;AACf,QAAA,KAAK,UAAU;AACb,YAAA,OAAO,QAAQ;AACjB,QAAA;AACE,YAAA,OAAO,SAAS;;AAEtB;AAEA,SAAS,eAAe,CACtB,KAAa,EAAA;IAEb,QAAQ,KAAK;AACX,QAAA,KAAK,aAAa;AAChB,YAAA,OAAO,MAAM;AACf,QAAA,KAAK,iBAAiB;AACpB,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,mBAAmB;AACtB,YAAA,OAAO,UAAU;AACnB,QAAA,KAAK,iBAAiB;AACpB,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,qBAAqB;AACxB,YAAA,OAAO,MAAM;AACf,QAAA;AACE,YAAA,OAAO,SAAS;;AAEtB;AAEA,SAAS,mBAAmB,CAC1B,IAG6B,EAC7B,KAG6B,EAAA;AAE7B,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClE;AAEA;;;AAGG;AACG,SAAU,iBAAiB,CAC/B,KAAY,EACZ,MAA+B,EAAA;AAE/B,IAAA,MAAM,EACJ,QAAQ,EACR,QAAQ,GAAG,CAAC,EACZ,WAAW,GAAG,oBAAoB,GACnC,GAAG,MAA4C;AAEhD,IAAA,IAAI,IAA0B;IAE9B,IAAI,QAAQ,EAAE;QACZ,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,MAAM,IAAI,KAAK,CACb,+BAA+B,QAAQ,CAAA,yEAAA,CAA2E,CACnH;QACH;IACF;SAAO;AACL,QAAA,IAAI,GAAG,KAAK,CAAC,KAAK;IACpB;IAEA,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC;AACvD;AAEA,SAAS,cAAc,CACrB,GAAa,EACb,KAAa,EACb,QAAgB,EAChB,WAAmB,EAAA;;AAEnB,IAAA,MAAM,IAAI,GAAkB;AAC1B,QAAA,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,WAAW;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;KACf;AACD,IAAA,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACvD,QAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,IAAI;IAC5B;AACA,IAAA,IAAI,QAAO,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,gBAAgB,CAAA,KAAK,QAAQ,EAAE;QACtD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,gBAAgB;IAClD;AACA,IAAA,IAAI,QAAO,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,sBAAsB,CAAA,KAAK,QAAQ,EAAE;QAC5D,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,sBAAsB;IACzD;IACA,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,qBAAqB,CAAC;AACzE,IAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;IACA,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,CAAC;AAClE,IAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AACnB,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;IACxB;IACA,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,qBAAqB;IACvD,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,EAAE;AAC1D,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;IACA,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,kBAAkB,CAAC;AAClE,IAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACA,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC;IAC7C,MAAM,eAAe,GAAG,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB;AACvD,IAAA,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACvC,QAAA,YAAY,CAAC,OAAO,GAAG,eAAe;IACxC;IACA,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACxC,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY;AAChC,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO;IACrC;IACA,MAAM,WAAW,GAAG,gBAAgB,CAAC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,qBAAqB,CAAC;AACzE,IAAA,IAAI,WAAW,IAAI,IAAI,EAAE;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;AAC9C,QAAA,IAAI,WAAW,CAAC,MAAM,GAAG,KAAK,EAAE;YAC9B,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,MAAM,GAAG,KAAK;QACtD;IACF;IACA,MAAM,SAAS,GAAG,iBAAiB,CACjC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,mBAAmB,CAClC;AACD,IAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;IAC5B;IACA,MAAM,WAAW,GAAG,iBAAiB,CACnC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,qBAAqB,CACpC;AACD,IAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW;IAChC;IACA,MAAM,gBAAgB,GAAG,eAAe,CACtC,CAAA,EAAA,GAAA,GAAG,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,0BAA0B,CACzC;AACD,IAAA,IAAI,gBAAgB,IAAI,IAAI,EAAE;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;IAC1C;;IAGA,IAAI,WAAW,IAAI,GAAG,IAAI,OAAQ,GAAW,CAAC,SAAS,KAAK,QAAQ,EAAE;AACpE,QAAA,IAAI,CAAC,WAAW,GAAI,GAAW,CAAC,SAAS;IAC3C;AAEA,IAAA,IAAI,KAAK,GAAG,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/C,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC;AACtC,QAAA,MAAM,iBAAiB,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,KAC1C,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CACxD;AACD,QAAA,IAAI,KAAK,GAAG,KAAK,EAAE;AACjB,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,GAAG,KAAK;QACxC;IACF;AAEA,IAAA,OAAO,IAAI;AACb;AAEA,SAAS,iBAAiB,CAAC,KAAc,EAAA;AACvC,IAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AACvD,QAAA,OAAO,SAAS;IAClB;AACA,IAAA,OAAO,SAAS,CAAC,KAAK,CAAgC;AACxD;AAEA,SAAS,kBAAkB,CAAC,KAAc,EAAA;IACxC,QACE,KAAK,KAAK,OAAO;AACjB,QAAA,KAAK,KAAK,OAAO;AACjB,QAAA,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,SAAS;AAEvB;AAEA,SAAS,eAAe,CACtB,OAAqC,EAAA;IAErC,QAAQ,OAAO,aAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,IAAI;AACnB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;AACnC,QAAA,KAAK,UAAU;AACf,QAAA,KAAK,SAAS;AACZ,YAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;AACrC,QAAA;AACE,YAAA,OAAO,EAAE;;AAEf;AAEA,SAAS,gBAAgB,CAAC,KAAc,EAAA;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,IAAI,CAAC,KAAK;AACrE,UAAG;UACD,SAAS;AACf;AAEA,SAAS,gBAAgB,CAAC,KAAc,EAAA;AACtC,IAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,QAAA,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ;AAChD,UAAE,CAAC,GAAG,KAAK;UACT,SAAS;AACf;AAEA,SAAS,eAAe,CAAC,KAAc,EAAA;AACrC,IAAA,OAAO,iBAAiB,CAAa,KAAK,CAAC;AAC7C;AAEA,SAAS,iBAAiB,CAAI,KAAc,EAAA;AAC1C,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAI,SAAS,CAAC,KAAK,CAAO,GAAG,SAAS;AAC9D;AAEA,SAAS,SAAS,CAAI,KAAQ,EAAA;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM;AAC/C;AAEA,SAAS,QAAQ,CAAC,KAAc,EAAA;AAC9B,IAAA,OAAO,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAC5E;AAEA;;;AAGG;AACG,SAAU,kBAAkB,CAChC,KAAY,EACZ,MAA+B,EAAA;AAE/B,IAAA,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAA6C;AAEtE,IAAA,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;AACpB,QAAA,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI;IACH;AAEA,IAAA,MAAM,GAAG,GACP,IAAI,IAAI;UACJ,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI;UAC5C,uBAAuB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAO,CAAC;IACnD,IAAI,CAAC,GAAG,EAAE;AACR,QAAA,MAAM,IAAI,KAAK,CACb,IAAI,IAAI;cACJ,CAAA,4BAAA,EAA+B,IAAI,CAAA,yDAAA;AACrC,cAAE,CAAA,qCAAA,EAAwC,MAAM,CAAA,6DAAA,CAA+D,CAClH;IACH;;AAGA,IAAA,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;;IAGlC,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,EAA8B;IACxE,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAK7C;IACD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAA8B;;AAGlE,IAAA,MAAM,cAAc,GAAG,IAAI,OAAO,EAAE;AACpC,IAAA,MAAM,gBAAgB,GAAG,IAAI,UAAU,EAAE;AACzC,IAAA,MAAM,WAAW,GAAG,IAAI,OAAO,EAAE;IACjC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,cAAc,EAAE,gBAAgB,EAAE,WAAW,CAAC;;IAGxE,IAAI,0BAA0B,GAAoC,IAAI;AAEtE,IAAA,IAAI,KAAK,CAAC,MAAM,EAAE;;AAEhB,QAAA,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE;QAC1C,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC3C,QAAA,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC;AACtC,QAAA,0BAA0B,GAAG,WAAW,CAAC,OAAO,EAI/C;IACH;IAEA,OAAO;QACL,aAAa;QACb,eAAe;QACf,UAAU;AACV,QAAA,cAAc,EAAE,cAAc,CAAC,OAAO,EAA8B;AACpE,QAAA,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,EAKzC;AACD,QAAA,WAAW,EAAE,WAAW,CAAC,OAAO,EAA8B;QAC9D,0BAA0B;KAC3B;AACH;AAEA,SAAS,uBAAuB,CAC9B,MAAgB,EAChB,MAAc,EAAA;;IAEd,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,0CAAE,gBAAgB,MAAK,MAAM,EAAE;AAChD,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE;QACnC,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC;AACpD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,KAAK;QACd;IACF;AAEA,IAAA,OAAO,SAAS;AAClB;;;;"}
@@ -1,5 +1,12 @@
1
- export { PhysicsSystem } from './physics-system.js';
2
- export { DEFAULT_ANGULAR_DAMPING, DEFAULT_GRAVITY_FACTOR, DEFAULT_LINEAR_DAMPING, PhysicsBody, PhysicsState } from './physicsBody.js';
3
- export { PhysicsManipulation } from './physicsManipulation.js';
4
- export { DEFAULT_DENSITY, DEFAULT_FRICTION, DEFAULT_RESTITUTION, PhysicsShape, PhysicsShapeType } from './physicsShape.js';
1
+ import { PhysicsSystem } from './physics-system.js';
2
+ export { getCapsuleAxisEndpoints } from './physics-system.js';
3
+ import { PhysicsBody } from './physicsBody.js';
4
+ export { DEFAULT_ANGULAR_DAMPING, DEFAULT_GRAVITY_FACTOR, DEFAULT_LINEAR_DAMPING, PhysicsState } from './physicsBody.js';
5
+ import { PhysicsManipulation } from './physicsManipulation.js';
6
+ import { PhysicsShape } from './physicsShape.js';
7
+ export { DEFAULT_DENSITY, DEFAULT_FRICTION, DEFAULT_RESTITUTION, PhysicsShapeType } from './physicsShape.js';
8
+
9
+
10
+
11
+ export { PhysicsBody, PhysicsManipulation, PhysicsShape, PhysicsSystem };
5
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}