lecodes-cli 0.18.2 → 0.19.2

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 (224) hide show
  1. package/dist/index.js +1866 -301
  2. package/package.json +14 -12
  3. package/runtime/scene-harness.json +1 -1
  4. package/runtime/sdk-types.json +1 -1
  5. package/src/api.ts +302 -0
  6. package/src/browserAuth.ts +87 -0
  7. package/src/cmgenTool.ts +104 -0
  8. package/src/commands/app.ts +891 -0
  9. package/src/commands/appAndroid.ts +603 -0
  10. package/src/commands/appDesktop.ts +326 -0
  11. package/src/commands/appDesktopMac.ts +470 -0
  12. package/src/commands/appIcon.ts +187 -0
  13. package/src/commands/appShared.ts +448 -0
  14. package/src/commands/appTemplates.ts +883 -0
  15. package/src/commands/appTemplatesAndroid.ts +599 -0
  16. package/src/commands/appTemplatesGradlew.ts +9 -0
  17. package/src/commands/assets.ts +28 -0
  18. package/src/commands/clone.ts +60 -0
  19. package/src/commands/compile.ts +253 -0
  20. package/src/commands/create.ts +59 -0
  21. package/src/commands/design.ts +863 -0
  22. package/src/commands/designTemplates.ts +11 -0
  23. package/src/commands/desktop.ts +122 -0
  24. package/src/commands/dev.ts +214 -0
  25. package/src/commands/diff.ts +59 -0
  26. package/src/commands/init.ts +191 -0
  27. package/src/commands/install.ts +198 -0
  28. package/src/commands/lightmap.ts +290 -0
  29. package/src/commands/link.ts +147 -0
  30. package/src/commands/login.ts +24 -0
  31. package/src/commands/navmesh.ts +225 -0
  32. package/src/commands/pn.ts +305 -0
  33. package/src/commands/projectTemplates.ts +129 -0
  34. package/src/commands/pull.ts +109 -0
  35. package/src/commands/push.ts +173 -0
  36. package/src/commands/render.ts +414 -0
  37. package/src/commands/scene.ts +148 -0
  38. package/src/commands/shaders.ts +157 -0
  39. package/src/commands/status.ts +29 -0
  40. package/src/commands/test.ts +370 -0
  41. package/src/commands/thumbs.ts +178 -0
  42. package/src/commands/types.ts +87 -0
  43. package/src/commands/update.ts +190 -0
  44. package/src/compile/assetIcons.ts +214 -0
  45. package/src/compile/collect.ts +46 -0
  46. package/src/compile/collectLocal.ts +37 -0
  47. package/src/compile/designCompile.ts +104 -0
  48. package/src/compile/fonts.ts +156 -0
  49. package/src/compile/headlessBundle.ts +129 -0
  50. package/src/compile/nativeStack.ts +21 -0
  51. package/src/compile/projectCompile.ts +109 -0
  52. package/src/compile/sceneCompile.ts +113 -0
  53. package/src/compile/screenEntry.ts +127 -0
  54. package/src/compile/shaders.ts +245 -0
  55. package/src/config.ts +42 -0
  56. package/src/designMeta.ts +35 -0
  57. package/src/desktopRenderer.ts +532 -0
  58. package/src/desktopScript.ts +276 -0
  59. package/src/dev/clientTemplates.ts +160 -0
  60. package/src/dev/devServer.ts +292 -0
  61. package/src/dev/wsServer.ts +144 -0
  62. package/src/distRoot.ts +20 -0
  63. package/src/ignore.ts +163 -0
  64. package/src/index.ts +491 -0
  65. package/src/lecodes-3d-editor.d.ts +41 -0
  66. package/src/lecodes-assets.d.ts +7 -0
  67. package/src/lecodes-design.d.ts +191 -0
  68. package/src/lecodes-renderer.d.ts +131 -0
  69. package/src/localFiles.ts +144 -0
  70. package/src/manifest.ts +46 -0
  71. package/src/matcTool.ts +137 -0
  72. package/src/peers.ts +40 -0
  73. package/src/project.ts +61 -0
  74. package/src/projectEnv.ts +94 -0
  75. package/src/qrcode-terminal.d.ts +9 -0
  76. package/src/releases.ts +125 -0
  77. package/src/serverDiff.ts +78 -0
  78. package/src/textDiff.ts +103 -0
  79. package/src/types.ts +0 -0
  80. package/src/util.ts +146 -0
  81. package/runtime/sdk/animate/animate.ts +0 -238
  82. package/runtime/sdk/animate/bezier.ts +0 -138
  83. package/runtime/sdk/animate/easings.ts +0 -126
  84. package/runtime/sdk/canvas/Canvas.ts +0 -305
  85. package/runtime/sdk/core/Aspect.ts +0 -512
  86. package/runtime/sdk/core/InspectorUI.ts +0 -212
  87. package/runtime/sdk/core/color.ts +0 -66
  88. package/runtime/sdk/core/compWrite.ts +0 -42
  89. package/runtime/sdk/core/events.ts +0 -38
  90. package/runtime/sdk/core/fields.ts +0 -120
  91. package/runtime/sdk/core/registry.ts +0 -23
  92. package/runtime/sdk/core/signals.ts +0 -277
  93. package/runtime/sdk/core/time.ts +0 -81
  94. package/runtime/sdk/g2/Camera2D.ts +0 -40
  95. package/runtime/sdk/g2/CharacterController2D.ts +0 -276
  96. package/runtime/sdk/g2/Node2D.ts +0 -267
  97. package/runtime/sdk/g2/OneWay2D.ts +0 -66
  98. package/runtime/sdk/g2/Physics2D.ts +0 -346
  99. package/runtime/sdk/g2/Scene2D.ts +0 -209
  100. package/runtime/sdk/g2/Shape2D.ts +0 -259
  101. package/runtime/sdk/g2/Sprite.ts +0 -89
  102. package/runtime/sdk/g2/SpriteAnimation.ts +0 -171
  103. package/runtime/sdk/g2/SpriteSheet.ts +0 -166
  104. package/runtime/sdk/g2/Texture2D.ts +0 -47
  105. package/runtime/sdk/g2/Tilemap.ts +0 -41
  106. package/runtime/sdk/g2/Tileset.ts +0 -71
  107. package/runtime/sdk/g2/Trigger2D.ts +0 -77
  108. package/runtime/sdk/g2/autotile.ts +0 -433
  109. package/runtime/sdk/g2/cells.ts +0 -91
  110. package/runtime/sdk/g2/defineScene2d.ts +0 -381
  111. package/runtime/sdk/g2/groups2d.ts +0 -106
  112. package/runtime/sdk/g2/loop.ts +0 -50
  113. package/runtime/sdk/g2/scenarios2d.ts +0 -69
  114. package/runtime/sdk/g2/touch.ts +0 -83
  115. package/runtime/sdk/gl/Camera.ts +0 -160
  116. package/runtime/sdk/gl/CameraPlace.ts +0 -52
  117. package/runtime/sdk/gl/CharacterController.ts +0 -238
  118. package/runtime/sdk/gl/Gearbox.ts +0 -212
  119. package/runtime/sdk/gl/Geometry.ts +0 -279
  120. package/runtime/sdk/gl/IK.ts +0 -193
  121. package/runtime/sdk/gl/InstancedMesh.ts +0 -132
  122. package/runtime/sdk/gl/Light.ts +0 -99
  123. package/runtime/sdk/gl/Lightmap.ts +0 -179
  124. package/runtime/sdk/gl/Material.ts +0 -245
  125. package/runtime/sdk/gl/Mesh.ts +0 -83
  126. package/runtime/sdk/gl/Model.ts +0 -64
  127. package/runtime/sdk/gl/Node.ts +0 -350
  128. package/runtime/sdk/gl/Noise.ts +0 -30
  129. package/runtime/sdk/gl/Particles.ts +0 -676
  130. package/runtime/sdk/gl/Physics.ts +0 -222
  131. package/runtime/sdk/gl/Plane.ts +0 -53
  132. package/runtime/sdk/gl/Ray.ts +0 -16
  133. package/runtime/sdk/gl/Scene.ts +0 -479
  134. package/runtime/sdk/gl/Shape.ts +0 -377
  135. package/runtime/sdk/gl/Texture.ts +0 -46
  136. package/runtime/sdk/gl/Trigger.ts +0 -45
  137. package/runtime/sdk/gl/Vehicle.ts +0 -473
  138. package/runtime/sdk/gl/Wheel.ts +0 -240
  139. package/runtime/sdk/gl/animation/AnimationClip.ts +0 -204
  140. package/runtime/sdk/gl/animation/Animator.ts +0 -87
  141. package/runtime/sdk/gl/animation/Layer.ts +0 -29
  142. package/runtime/sdk/gl/animation/Loop.ts +0 -25
  143. package/runtime/sdk/gl/animation/Playback.ts +0 -43
  144. package/runtime/sdk/gl/animation/core.ts +0 -294
  145. package/runtime/sdk/gl/controls.ts +0 -95
  146. package/runtime/sdk/gl/physicsEvents.ts +0 -20
  147. package/runtime/sdk/gl/scenarios.ts +0 -291
  148. package/runtime/sdk/gl/state.ts +0 -6
  149. package/runtime/sdk/gl/touch.ts +0 -68
  150. package/runtime/sdk/inject.ts +0 -186
  151. package/runtime/sdk/math/Mathf.ts +0 -118
  152. package/runtime/sdk/math/mat4.ts +0 -278
  153. package/runtime/sdk/math/quat.ts +0 -232
  154. package/runtime/sdk/math/vec.ts +0 -255
  155. package/runtime/sdk/plugins/camera.ts +0 -81
  156. package/runtime/sdk/plugins/geolocation.ts +0 -123
  157. package/runtime/sdk/plugins/oauth.ts +0 -61
  158. package/runtime/sdk/plugins/permission.ts +0 -7
  159. package/runtime/sdk/plugins/push.ts +0 -132
  160. package/runtime/sdk/plugins/qr.ts +0 -73
  161. package/runtime/sdk/plugins/service.ts +0 -47
  162. package/runtime/sdk/runtime/app.ts +0 -101
  163. package/runtime/sdk/runtime/appEvents.ts +0 -54
  164. package/runtime/sdk/runtime/channel.ts +0 -61
  165. package/runtime/sdk/runtime/clipboard.ts +0 -20
  166. package/runtime/sdk/runtime/datetime.ts +0 -329
  167. package/runtime/sdk/runtime/device.ts +0 -293
  168. package/runtime/sdk/runtime/fetch.ts +0 -77
  169. package/runtime/sdk/runtime/files.ts +0 -23
  170. package/runtime/sdk/runtime/input.ts +0 -175
  171. package/runtime/sdk/runtime/media.ts +0 -111
  172. package/runtime/sdk/runtime/misc.ts +0 -16
  173. package/runtime/sdk/runtime/net.ts +0 -36
  174. package/runtime/sdk/runtime/rpc.ts +0 -218
  175. package/runtime/sdk/runtime/service.ts +0 -83
  176. package/runtime/sdk/runtime/share.ts +0 -9
  177. package/runtime/sdk/runtime/storage.ts +0 -13
  178. package/runtime/sdk/runtime/touch.ts +0 -76
  179. package/runtime/sdk/scene/defineScene.ts +0 -1227
  180. package/runtime/sdk/scene/editorPlugins.ts +0 -92
  181. package/runtime/sdk/scene/gizmos.ts +0 -148
  182. package/runtime/sdk/scene/grammar.ts +0 -120
  183. package/runtime/sdk/scene/material.ts +0 -188
  184. package/runtime/sdk/server/auth/appConfig.ts +0 -12
  185. package/runtime/sdk/server/auth/global.ts +0 -80
  186. package/runtime/sdk/server/auth/host.ts +0 -318
  187. package/runtime/sdk/server/auth/models.ts +0 -83
  188. package/runtime/sdk/server/auth/types.ts +0 -50
  189. package/runtime/sdk/server/channel.ts +0 -56
  190. package/runtime/sdk/server/context.ts +0 -36
  191. package/runtime/sdk/server/db/defineDb.ts +0 -237
  192. package/runtime/sdk/server/db/fields.ts +0 -132
  193. package/runtime/sdk/server/db/httpTransport.ts +0 -93
  194. package/runtime/sdk/server/db/index.ts +0 -7
  195. package/runtime/sdk/server/db/marci/query.ts +0 -412
  196. package/runtime/sdk/server/db/types.ts +0 -202
  197. package/runtime/sdk/server/errors.ts +0 -12
  198. package/runtime/sdk/server/host.ts +0 -74
  199. package/runtime/sdk/server/inject.ts +0 -13
  200. package/runtime/sdk/server/runtime.ts +0 -133
  201. package/runtime/sdk/server/validate.ts +0 -87
  202. package/runtime/sdk/ui/NativeView.ts +0 -142
  203. package/runtime/sdk/ui/UI.ts +0 -39
  204. package/runtime/sdk/ui/UIBottomSheet.ts +0 -139
  205. package/runtime/sdk/ui/UIButton.ts +0 -101
  206. package/runtime/sdk/ui/UIContainer.ts +0 -60
  207. package/runtime/sdk/ui/UIImage.ts +0 -83
  208. package/runtime/sdk/ui/UIInput.ts +0 -185
  209. package/runtime/sdk/ui/UIModal.ts +0 -139
  210. package/runtime/sdk/ui/UINode.ts +0 -826
  211. package/runtime/sdk/ui/UIPager.ts +0 -362
  212. package/runtime/sdk/ui/UIPopover.ts +0 -100
  213. package/runtime/sdk/ui/UIScreen.ts +0 -123
  214. package/runtime/sdk/ui/UIScrollable.ts +0 -87
  215. package/runtime/sdk/ui/UISpacer.ts +0 -14
  216. package/runtime/sdk/ui/UITabs.ts +0 -236
  217. package/runtime/sdk/ui/UIText.ts +0 -51
  218. package/runtime/sdk/ui/UIVideo.ts +0 -88
  219. package/runtime/sdk/ui/UIVirtualizedList.ts +0 -241
  220. package/runtime/sdk/ui/UIWidget.ts +0 -127
  221. package/runtime/sdk/ui/fonts.ts +0 -13
  222. package/runtime/sdk/ui/presentable.ts +0 -117
  223. package/runtime/sdk/ui/router.ts +0 -132
  224. package/runtime/sdk/ui/theme.ts +0 -84
package/dist/index.js CHANGED
@@ -389,15 +389,18 @@ design/comments/
389
389
  if (!existsSync2(file))
390
390
  writeFileSync3(file, DEFAULT_IGNORE_FILE);
391
391
  }, DEFAULT_GITIGNORE = `# LeCodes per-checkout state: generated IDE types + this machine's sync cursor
392
- # (.lecodes/manifest.json). Regenerate with \`lecodes types\` / re-attach with \`lecodes link\`.
392
+ # (.lecodes/manifest.json). Regenerate with \`lecodes update\` / re-attach with \`lecodes link\`.
393
393
  .lecodes/
394
394
 
395
395
  # Render / preview outputs and test failure frames
396
396
  screenshot.png
397
397
  shots/
398
398
  tests/.artifacts/
399
+ tests/.shots/
399
400
 
400
401
  node_modules/
402
+
403
+ dist/
401
404
  `, ensureGitignore = (root) => {
402
405
  const file = join3(root, ".gitignore");
403
406
  if (!existsSync2(file)) {
@@ -3174,7 +3177,7 @@ var require_source_map_support = __commonJS((exports, module) => {
3174
3177
 
3175
3178
  // ../../node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/typescript.js
3176
3179
  var require_typescript = __commonJS((exports, module) => {
3177
- var __dirname = "/Users/den/Desktop/Ingenuity/le-codes/node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib", __filename = "/Users/den/Desktop/Ingenuity/le-codes/node_modules/.bun/typescript@5.8.3/node_modules/typescript/lib/typescript.js";
3180
+ var __dirname = "C:\\Users\\Den\\Desktop\\LeCodes\\lecodes\\node_modules\\.bun\\typescript@5.8.3\\node_modules\\typescript\\lib", __filename = "C:\\Users\\Den\\Desktop\\LeCodes\\lecodes\\node_modules\\.bun\\typescript@5.8.3\\node_modules\\typescript\\lib\\typescript.js";
3178
3181
  /*! *****************************************************************************
3179
3182
  Copyright (c) Microsoft Corporation. All rights reserved.
3180
3183
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -171651,10 +171654,7 @@ var init_detectEntry = __esm(() => {
171651
171654
  });
171652
171655
 
171653
171656
  // ../sdk/src/compile/shaderTargets.ts
171654
- var externalSamplerReg, PLATFORM_BUILD, LOCAL_PLATFORM_BUILD, ALL_PLATFORM_BUILD, LOCAL_ONLY_PLATFORMS, TARGET_MATRIX_GENERATION = 1, matcPlatformsFor = (text) => {
171655
- externalSamplerReg.lastIndex = 0;
171656
- return externalSamplerReg.test(text) ? ["opengl", "metal", "webgl", "desktop"] : ["opengl", "metal", "desktop"];
171657
- }, matcArgs = (platform, outPath, inPath) => {
171657
+ var externalSamplerReg, PLATFORM_BUILD, LOCAL_PLATFORM_BUILD, ALL_PLATFORM_BUILD, LOCAL_ONLY_PLATFORMS, TARGET_MATRIX_GENERATION = 1, MATC_PLATFORMS, matcArgs = (platform, outPath, inPath) => {
171658
171658
  const build = ALL_PLATFORM_BUILD[platform];
171659
171659
  return ["-p", build.profile, "--no-essl1", "-a", build.api, "-o", outPath, inPath];
171660
171660
  };
@@ -171663,7 +171663,6 @@ var init_shaderTargets = __esm(() => {
171663
171663
  PLATFORM_BUILD = {
171664
171664
  opengl: { profile: "mobile", api: "opengl", replaceExternal: false },
171665
171665
  metal: { profile: "mobile", api: "metal", replaceExternal: false },
171666
- webgl: { profile: "mobile", api: "opengl", replaceExternal: true },
171667
171666
  desktop: { profile: "desktop", api: "opengl", replaceExternal: true }
171668
171667
  };
171669
171668
  LOCAL_PLATFORM_BUILD = {
@@ -171671,6 +171670,7 @@ var init_shaderTargets = __esm(() => {
171671
171670
  };
171672
171671
  ALL_PLATFORM_BUILD = { ...PLATFORM_BUILD, ...LOCAL_PLATFORM_BUILD };
171673
171672
  LOCAL_ONLY_PLATFORMS = ["desktop-vulkan"];
171673
+ MATC_PLATFORMS = ["opengl", "metal", "desktop"];
171674
171674
  });
171675
171675
 
171676
171676
  // ../sdk/src/compile/liteMaterial.ts
@@ -172186,8 +172186,6 @@ var compileProject = async (opts) => {
172186
172186
  const name = shaders[0].src.split(/[\\/]/).pop() ?? "";
172187
172187
  const [prefix, suffix = ".filamat"] = name.split("_opengl");
172188
172188
  files[e.path] = `export default ("id:" + _creatorUtils.fetchLocal(${JSON.stringify(prefix + "_")} + _creator.backend + ${JSON.stringify(suffix)}))`;
172189
- } else if (shaders.length > 2) {
172190
- files[e.path] = `export default \`${opts.publicUrl}${shaders[0].src.replace("_opengl", "_${_creator.subBackend ?? _creator.backend}")}\``;
172191
172189
  } else if (shaders.length > 0) {
172192
172190
  files[e.path] = `export default \`${opts.publicUrl}${shaders[0].src.replace("_opengl", "_${_creator.backend}")}\``;
172193
172191
  } else {
@@ -173134,7 +173132,6 @@ __export(exports_compile, {
173134
173132
  parseSfnt: () => parseSfnt,
173135
173133
  parseJsonish: () => parseJsonish,
173136
173134
  offsetSourceMap: () => offsetSourceMap,
173137
- matcPlatformsFor: () => matcPlatformsFor,
173138
173135
  matcArgs: () => matcArgs,
173139
173136
  loadSceneHarness: () => loadSceneHarness,
173140
173137
  isServerPath: () => isServerPath,
@@ -173165,6 +173162,7 @@ __export(exports_compile, {
173165
173162
  SCENE_HARNESS_DIR: () => SCENE_HARNESS_DIR,
173166
173163
  SCENE_ENTRY_PATH: () => SCENE_ENTRY_PATH,
173167
173164
  PLATFORM_BUILD: () => PLATFORM_BUILD,
173165
+ MATC_PLATFORMS: () => MATC_PLATFORMS,
173168
173166
  LOCAL_PLATFORM_BUILD: () => LOCAL_PLATFORM_BUILD,
173169
173167
  LOCAL_ONLY_PLATFORMS: () => LOCAL_ONLY_PLATFORMS,
173170
173168
  ICON_ID: () => ICON_ID,
@@ -173195,7 +173193,13 @@ var init_compile = __esm(() => {
173195
173193
  import { existsSync as existsSync7 } from "node:fs";
173196
173194
  import { createRequire as createRequire3 } from "node:module";
173197
173195
  import { dirname as dirname5, join as join9 } from "node:path";
173198
- var vendoredInject, resolveChiselBin2 = () => {
173196
+ var resolveSdkInject = () => {
173197
+ try {
173198
+ return createRequire3(import.meta.url).resolve("lecodes-sdk/inject");
173199
+ } catch {}
173200
+ const vendored = join9(distRoot, "runtime", "sdk", "inject.ts");
173201
+ return existsSync7(vendored) ? vendored : null;
173202
+ }, sdkInject, resolveChiselBin2 = () => {
173199
173203
  if (process.env.LECODES_CHISEL_BIN)
173200
173204
  return process.env.LECODES_CHISEL_BIN;
173201
173205
  try {
@@ -173227,9 +173231,9 @@ var vendoredInject, resolveChiselBin2 = () => {
173227
173231
  var init_projectCompile = __esm(() => {
173228
173232
  init_distRoot();
173229
173233
  init_compile();
173230
- vendoredInject = join9(distRoot, "runtime", "sdk", "inject.ts");
173231
- if (existsSync7(vendoredInject))
173232
- process.env.LECODES_SDK_INJECT = vendoredInject;
173234
+ sdkInject = resolveSdkInject();
173235
+ if (sdkInject)
173236
+ process.env.LECODES_SDK_INJECT = sdkInject;
173233
173237
  chiselBin = resolveChiselBin2();
173234
173238
  if (chiselBin)
173235
173239
  process.env.LECODES_CHISEL_BIN = chiselBin;
@@ -214122,6 +214126,7 @@ var init_esm30 = __esm(() => {
214122
214126
  // src/types.ts
214123
214127
  import { dirname as dirname13, join as join22, relative as relative3, sep } from "node:path";
214124
214128
  import { existsSync as existsSync21, mkdirSync as mkdirSync15, readdirSync as readdirSync10, readFileSync as readFileSync18, rmSync as rmSync8, statSync as statSync8, writeFileSync as writeFileSync17 } from "node:fs";
214129
+ import { createRequire as createRequire4 } from "node:module";
214125
214130
  var TSCONFIG, listBundleFiles = (dir, base = dir) => {
214126
214131
  if (!existsSync21(dir))
214127
214132
  return [];
@@ -214171,8 +214176,16 @@ var TSCONFIG, listBundleFiles = (dir, base = dir) => {
214171
214176
  bundle[path2] = readFileSync18(join22(typesDir, path2), "utf8");
214172
214177
  return bundle;
214173
214178
  }, materializeTypes = async (root, apiUrl) => writeTypeBundle(root, await getTypes(apiUrl)), readLocalTypeBundle = () => {
214179
+ const fromPackage = (() => {
214180
+ try {
214181
+ return createRequire4(import.meta.url).resolve("lecodes-sdk/types.json");
214182
+ } catch {
214183
+ return null;
214184
+ }
214185
+ })();
214174
214186
  const candidates = [
214175
214187
  join22(distRoot, "runtime", "sdk-types.json"),
214188
+ ...fromPackage ? [fromPackage] : [],
214176
214189
  join22(distRoot, "..", "sdk", "dist", "types.json")
214177
214190
  ];
214178
214191
  for (const path2 of candidates) {
@@ -214355,7 +214368,7 @@ var init_browserAuth = __esm(() => {
214355
214368
  init_util();
214356
214369
  });
214357
214370
 
214358
- // ../lecodes-design/src/core/concept.ts
214371
+ // ../../../lecodes-tools/packages/lecodes-design/src/core/concept.ts
214359
214372
  var SPEC_TEMPLATE = `# Concept
214360
214373
 
214361
214374
  The narrative half of this design. \`meta.json\` + the canvas hold the *visual/flow* half (screens,
@@ -214391,7 +214404,7 @@ Behaviour that isn't visible in a single screen — validation, permissions, not
214391
214404
  cases — and the decisions you've made and why, so they aren't re-litigated later.
214392
214405
  `;
214393
214406
 
214394
- // ../lecodes-design/src/templates.ts
214407
+ // ../../../lecodes-tools/packages/lecodes-design/src/templates.ts
214395
214408
  var SPEC_MD, META_JSON = `{
214396
214409
  "screens": {
214397
214410
  "home": { "pos": [0, 0], "desc": "Example screen — replace me", "role": "list" }
@@ -216526,25 +216539,26 @@ var require_main = __commonJS((exports, module) => {
216526
216539
  // package.json
216527
216540
  var package_default = {
216528
216541
  name: "lecodes-cli",
216529
- version: "0.18.2",
216542
+ version: "0.19.2",
216530
216543
  dependencies: {
216531
216544
  "@letary/chisel": "^0.10.0",
216532
- jimp: "^1.6.1"
216545
+ jimp: "^1.6.1",
216546
+ "lecodes-sdk": "workspace:*"
216533
216547
  },
216534
216548
  devDependencies: {
216535
- "lecodes-design": "workspace:*",
216549
+ "lecodes-design": "link:lecodes-design",
216536
216550
  "lecodes-renderer": "workspace:*",
216537
216551
  "qrcode-terminal": "^0.12.0",
216538
- "lecodes-3d-editor": "workspace:*",
216552
+ "lecodes-3d-editor": "link:lecodes-3d-editor",
216539
216553
  "lecodes-assets": "workspace:*",
216540
- sdk: "workspace:*",
216541
- "viewer-lite": "workspace:*"
216554
+ "lecodes-creator-nav": "workspace:*",
216555
+ "lecodes-viewer-lite": "workspace:*"
216542
216556
  },
216543
216557
  peerDependencies: {
216544
- "lecodes-design": "^0.8.1",
216545
- "lecodes-renderer": "^0.8.9",
216546
- "lecodes-3d-editor": "^0.5.0",
216547
- "lecodes-assets": "^0.1.0"
216558
+ "lecodes-design": "^0.9.0",
216559
+ "lecodes-renderer": "^0.19.2",
216560
+ "lecodes-3d-editor": "^0.7.0",
216561
+ "lecodes-assets": "^0.2.1"
216548
216562
  },
216549
216563
  bin: {
216550
216564
  lecodes: "dist/index.js"
@@ -216555,6 +216569,7 @@ var package_default = {
216555
216569
  },
216556
216570
  files: [
216557
216571
  "dist",
216572
+ "src",
216558
216573
  "runtime",
216559
216574
  "README.md"
216560
216575
  ],
@@ -216721,7 +216736,7 @@ init_fonts();
216721
216736
  init_compile();
216722
216737
  import { execFile } from "node:child_process";
216723
216738
  import { createHash as createHash4, randomBytes } from "node:crypto";
216724
- import { copyFileSync, existsSync as existsSync11, mkdirSync as mkdirSync6, readFileSync as readFileSync11, rmSync as rmSync2, statSync as statSync2, writeFileSync as writeFileSync7 } from "node:fs";
216739
+ import { existsSync as existsSync11, mkdirSync as mkdirSync6, readFileSync as readFileSync11, rmSync as rmSync2, statSync as statSync2, writeFileSync as writeFileSync7 } from "node:fs";
216725
216740
  import { tmpdir } from "node:os";
216726
216741
  import { basename as basename3, join as join13 } from "node:path";
216727
216742
 
@@ -216914,17 +216929,14 @@ var matcIdentity = (exe) => {
216914
216929
  return `${stat.size}:${Math.trunc(stat.mtimeMs)}`;
216915
216930
  };
216916
216931
  var shaderHash = (text, matcId) => createHash4("sha256").update(`${TARGET_MATRIX_GENERATION}\x00${matcId}\x00${text}`).digest("hex").slice(0, 16);
216917
- var artifactFamily = (text) => {
216918
- const matcPlatforms = [...matcPlatformsFor(text), ...LOCAL_ONLY_PLATFORMS];
216919
- return [...matcPlatforms, ...matcPlatforms.includes("webgl") ? [] : ["webgl"], "webgl-lite"];
216920
- };
216932
+ var artifactFamily = () => [...MATC_PLATFORMS, ...LOCAL_ONLY_PLATFORMS, "webgl-lite"];
216921
216933
  var shaderIsCompiled = (root, text, matcId) => {
216922
216934
  const hash = shaderHash(text, matcId);
216923
- return artifactFamily(text).every((p) => existsSync11(join13(shadersCacheDir(root), `${hash}_${p}.filamat`)));
216935
+ return artifactFamily().every((p) => existsSync11(join13(shadersCacheDir(root), `${hash}_${p}.filamat`)));
216924
216936
  };
216925
216937
  var shaderCompiledPlatforms = (root, text, matcId) => {
216926
216938
  const hash = shaderHash(text, matcId);
216927
- return artifactFamily(text).filter((p) => existsSync11(join13(shadersCacheDir(root), `${hash}_${p}.filamat`)));
216939
+ return artifactFamily().filter((p) => existsSync11(join13(shadersCacheDir(root), `${hash}_${p}.filamat`)));
216928
216940
  };
216929
216941
  var localShaderArtifact = (root, text, platform) => {
216930
216942
  const matcExe = resolveMatcExeCached();
@@ -216969,15 +216981,12 @@ var applyLocalShaders = async (entries, opts) => {
216969
216981
  for (const entry of shaderEntries) {
216970
216982
  const text = readFileSync11(entry.absPath, "utf8");
216971
216983
  const hash = shaderHash(text, matcId);
216972
- const family = artifactFamily(text);
216984
+ const family = artifactFamily();
216973
216985
  const artifact = (platform) => `${hash}_${platform}.filamat`;
216974
216986
  const has = (platform) => existsSync11(join13(cacheDir, artifact(platform)));
216975
216987
  const wanted = opts.platforms ? family.filter((p) => opts.platforms.includes(p)) : family;
216976
- if (wanted.includes("webgl") && !matcPlatformsFor(text).includes("webgl") && !wanted.includes("opengl")) {
216977
- wanted.push("opengl");
216978
- }
216979
216988
  const missing = wanted.filter((p) => !has(p));
216980
- const matcMissing = missing.filter((p) => p !== "webgl-lite" && !(p === "webgl" && !matcPlatformsFor(text).includes("webgl")));
216989
+ const matcMissing = missing.filter((p) => p !== "webgl-lite");
216981
216990
  if (matcMissing.length > 0) {
216982
216991
  const tempName = `lecodes-matc-${randomBytes(6).toString("hex")}.mat`;
216983
216992
  const tempFile = join13(tmpdir(), tempName);
@@ -216997,9 +217006,6 @@ ${cleanMatcOutput(stderr, tempName, basename3(entry.path))}`);
216997
217006
  rmSync2(tempFile, { force: true });
216998
217007
  }
216999
217008
  }
217000
- if (missing.includes("webgl") && !matcPlatformsFor(text).includes("webgl")) {
217001
- copyFileSync(join13(cacheDir, artifact("opengl")), join13(cacheDir, artifact("webgl")));
217002
- }
217003
217009
  if (missing.includes("webgl-lite")) {
217004
217010
  writeFileSync7(join13(cacheDir, artifact("webgl-lite")), JSON.stringify(buildLiteMaterialArtifact(text)));
217005
217011
  }
@@ -217014,7 +217020,7 @@ ${cleanMatcOutput(stderr, tempName, basename3(entry.path))}`);
217014
217020
  artifacts.push({ name: artifact(platform), absPath: join13(cacheDir, artifact(platform)) });
217015
217021
  }
217016
217022
  } else {
217017
- const order = ["opengl", "metal", "desktop", "webgl", "webgl-lite"];
217023
+ const order = ["opengl", "metal", "desktop", "webgl-lite"];
217018
217024
  entry.shaders = order.map((platform) => ({ platform, src: `${opts.srcPrefix}/${artifact(platform)}` }));
217019
217025
  }
217020
217026
  }
@@ -218626,6 +218632,12 @@ Sync links the smallest SDK artifact covering the engines the compiled bundle ac
218626
218632
  engine, sync switches automatically on the next run; set \`android.variant\` in \`../app.json\`
218627
218633
  to force one (needs lecodes-android-sdk >= 1.3.0; older releases ship only the full AAR).
218628
218634
 
218635
+ Physics, navigation meshes and multiplayer ship in \`lecodes-sdk\` (full) ONLY —
218636
+ \`lecodes-sdk-3d\` is 3D rendering without the game stack. Auto-selection reads which RENDERING
218637
+ engines the bundle uses and cannot see those, so a project using \`Physics\`,
218638
+ \`CharacterController\`, \`NavMesh\` or networking must set \`android.variant: "full"\` in
218639
+ \`../app.json\` — otherwise those aspects silently do nothing on device.
218640
+
218629
218641
  ## App-local native code
218630
218642
 
218631
218643
  Drop Kotlin files into \`app/src/main/java/\` and register them in \`MainActivity\` after the
@@ -219749,7 +219761,7 @@ import { basename as basename7, dirname as dirname11, join as join20, resolve as
219749
219761
 
219750
219762
  // src/desktopRenderer.ts
219751
219763
  import { execFileSync as execFileSync3, spawn as spawn2, spawnSync as spawnSync4 } from "node:child_process";
219752
- import { copyFileSync as copyFileSync2, existsSync as existsSync17, mkdirSync as mkdirSync11, mkdtempSync as mkdtempSync2, readdirSync as readdirSync6, readFileSync as readFileSync16, rmSync as rmSync4, statSync as statSync4, writeFileSync as writeFileSync13 } from "node:fs";
219764
+ import { copyFileSync, existsSync as existsSync17, mkdirSync as mkdirSync11, mkdtempSync as mkdtempSync2, readdirSync as readdirSync6, readFileSync as readFileSync16, rmSync as rmSync4, statSync as statSync4, writeFileSync as writeFileSync13 } from "node:fs";
219753
219765
  import { homedir as homedir6, tmpdir as tmpdir2 } from "node:os";
219754
219766
  import { join as join18, resolve as resolve5 } from "node:path";
219755
219767
  init_util();
@@ -220060,12 +220072,26 @@ var windowEnv = (opts) => {
220060
220072
  env.CREATOR_FPS = "1";
220061
220073
  return env;
220062
220074
  };
220075
+ var netArgs = (net) => {
220076
+ if (!net)
220077
+ return [];
220078
+ const args = [];
220079
+ if (net.role === "server")
220080
+ args.push("--server");
220081
+ else if (net.address)
220082
+ args.push("--connect", net.address);
220083
+ if (net.port)
220084
+ args.push("--port", String(net.port));
220085
+ if (net.maxClients)
220086
+ args.push("--max-clients", String(net.maxClients));
220087
+ return args;
220088
+ };
220063
220089
  var stageBundle = (js, resources) => {
220064
220090
  const runDir = mkdtempSync2(join18(tmpdir2(), "lecodes-render-"));
220065
220091
  writeFileSync13(join18(runDir, "app.js"), js);
220066
220092
  for (const r2 of resources) {
220067
220093
  if (r2.absPath && existsSync17(r2.absPath) && statSync4(r2.absPath).isFile()) {
220068
- copyFileSync2(r2.absPath, join18(runDir, r2.name));
220094
+ copyFileSync(r2.absPath, join18(runDir, r2.name));
220069
220095
  }
220070
220096
  }
220071
220097
  return runDir;
@@ -220092,8 +220118,9 @@ var runDesktopApp = async (js, resources, opts = {}) => {
220092
220118
  try {
220093
220119
  const env = { ...process.env, ...windowEnv(opts) };
220094
220120
  const demangle = makeStackDemangler(js);
220121
+ const argv = [join18(runDir, "app.js"), ...netArgs(opts.net)];
220095
220122
  await new Promise((done, fail) => {
220096
- const child = demangle ? spawn2(exe, [join18(runDir, "app.js")], { cwd: runDir, env, stdio: ["ignore", "pipe", "pipe"] }) : spawn2(exe, [join18(runDir, "app.js")], { cwd: runDir, env, stdio: ["ignore", "inherit", "inherit"] });
220123
+ const child = demangle ? spawn2(exe, argv, { cwd: runDir, env, stdio: ["ignore", "pipe", "pipe"] }) : spawn2(exe, argv, { cwd: runDir, env, stdio: ["ignore", "inherit", "inherit"] });
220097
220124
  if (demangle) {
220098
220125
  pipeThroughDemangler(child.stdout, process.stdout, demangle);
220099
220126
  pipeThroughDemangler(child.stderr, process.stderr, demangle);
@@ -220107,7 +220134,16 @@ var runDesktopApp = async (js, resources, opts = {}) => {
220107
220134
  });
220108
220135
  });
220109
220136
  } finally {
220110
- rmSync4(runDir, { recursive: true, force: true });
220137
+ for (let attempt = 0;; attempt++) {
220138
+ try {
220139
+ rmSync4(runDir, { recursive: true, force: true });
220140
+ break;
220141
+ } catch {
220142
+ if (attempt >= 5)
220143
+ break;
220144
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 200);
220145
+ }
220146
+ }
220111
220147
  }
220112
220148
  };
220113
220149
  var runDesktopDev = async (url, opts = {}) => {
@@ -220185,7 +220221,16 @@ ${tail}` : "";
220185
220221
  });
220186
220222
  });
220187
220223
  } finally {
220188
- rmSync4(runDir, { recursive: true, force: true });
220224
+ for (let attempt = 0;; attempt++) {
220225
+ try {
220226
+ rmSync4(runDir, { recursive: true, force: true });
220227
+ break;
220228
+ } catch {
220229
+ if (attempt >= 5)
220230
+ break;
220231
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 200);
220232
+ }
220233
+ }
220189
220234
  }
220190
220235
  };
220191
220236
 
@@ -220195,7 +220240,7 @@ init_util();
220195
220240
  // src/commands/appDesktopMac.ts
220196
220241
  init_util();
220197
220242
  import { execFileSync as execFileSync4, spawn as spawn3, spawnSync as spawnSync5 } from "node:child_process";
220198
- import { cpSync as cpSync2, existsSync as existsSync18, mkdirSync as mkdirSync12, mkdtempSync as mkdtempSync3, readdirSync as readdirSync7, rmSync as rmSync5, statSync as statSync5, writeFileSync as writeFileSync14 } from "node:fs";
220243
+ import { cpSync as cpSync2, existsSync as existsSync18, mkdirSync as mkdirSync12, mkdtempSync as mkdtempSync3, readdirSync as readdirSync7, rmSync as rmSync5, statSync as statSync5, symlinkSync, writeFileSync as writeFileSync14 } from "node:fs";
220199
220244
  import { tmpdir as tmpdir3 } from "node:os";
220200
220245
  import { basename as basename6, join as join19, resolve as resolve6 } from "node:path";
220201
220246
  var mb = (bytes) => `${(bytes / 1024 / 1024).toFixed(1)} MB`;
@@ -220317,11 +220362,12 @@ var signApp = async (app, signing, hostApp, tmp) => {
220317
220362
  throw new CliError(`The signature doesn't verify:
220318
220363
  ${(verify.stdout + verify.stderr).trim()}`);
220319
220364
  };
220320
- var notarizeApp = (app, profile, tmp) => {
220321
- const zip = join19(tmp, `${basename6(app, ".app")}.zip`);
220322
- execFileSync4("ditto", ["-c", "-k", "--keepParent", app, zip]);
220323
- note(`Notarizing with profile "${profile}" — this waits on Apple (usually 1–5 minutes)…`);
220324
- const r2 = spawnSync5("xcrun", ["notarytool", "submit", zip, "--keychain-profile", profile, "--wait"], { encoding: "utf8" });
220365
+ var notarize = (target, profile, tmp, what) => {
220366
+ const submission = target.endsWith(".app") ? join19(tmp, `${basename6(target, ".app")}.zip`) : target;
220367
+ if (submission !== target)
220368
+ execFileSync4("ditto", ["-c", "-k", "--keepParent", target, submission]);
220369
+ note(`Notarizing the ${what} with profile "${profile}" — this waits on Apple (usually 1–5 minutes)…`);
220370
+ const r2 = spawnSync5("xcrun", ["notarytool", "submit", submission, "--keychain-profile", profile, "--wait"], { encoding: "utf8" });
220325
220371
  const out = (r2.stdout + `
220326
220372
  ` + r2.stderr).trim();
220327
220373
  const id = /id: ([0-9a-f-]{36})/.exec(out)?.[1];
@@ -220330,11 +220376,44 @@ var notarizeApp = (app, profile, tmp) => {
220330
220376
  ${out}
220331
220377
  ` + (id ? ` Details: xcrun notarytool log ${id} --keychain-profile ${profile}` : ""));
220332
220378
  }
220333
- const staple = spawnSync5("xcrun", ["stapler", "staple", app], { encoding: "utf8" });
220379
+ const staple = spawnSync5("xcrun", ["stapler", "staple", target], { encoding: "utf8" });
220334
220380
  if (staple.status !== 0)
220335
220381
  throw new CliError(`Stapling failed:
220336
220382
  ${(staple.stdout + staple.stderr).trim()}`);
220337
- success("Notarized + stapled.");
220383
+ success(`Notarized + stapled (${what}).`);
220384
+ };
220385
+ var buildDmg = async (app, out, appName, signing, tmp) => {
220386
+ const dmg = join19(out, `${appName}.dmg`);
220387
+ rmSync5(dmg, { force: true });
220388
+ const stage = join19(tmp, "dmg");
220389
+ rmSync5(stage, { recursive: true, force: true });
220390
+ mkdirSync12(stage, { recursive: true });
220391
+ note("Building the disk image…");
220392
+ execFileSync4("cp", ["-R", app, join19(stage, basename6(app))]);
220393
+ symlinkSync("/Applications", join19(stage, "Applications"));
220394
+ const r2 = spawnSync5("hdiutil", [
220395
+ "create",
220396
+ "-volname",
220397
+ appName,
220398
+ "-srcfolder",
220399
+ stage,
220400
+ "-fs",
220401
+ "HFS+",
220402
+ "-format",
220403
+ "UDZO",
220404
+ "-ov",
220405
+ dmg
220406
+ ], { encoding: "utf8" });
220407
+ rmSync5(stage, { recursive: true, force: true });
220408
+ if (r2.status !== 0)
220409
+ throw new CliError(`hdiutil failed:
220410
+ ${(r2.stdout + r2.stderr).trim()}`);
220411
+ if (signing.identity !== "-") {
220412
+ await codesignRetrying(["--force", "--timestamp", "--sign", signing.identity, dmg]);
220413
+ if (signing.notaryProfile)
220414
+ notarize(dmg, signing.notaryProfile, tmp, "disk image");
220415
+ }
220416
+ success(`DMG: ${dmg} (${mb(statSync5(dmg).size)})`);
220338
220417
  };
220339
220418
  var gatekeeperVerdict = (app) => {
220340
220419
  const r2 = spawnSync5("spctl", ["-a", "-t", "exec", "-vv", app], { encoding: "utf8" });
@@ -220468,7 +220547,7 @@ var buildMacApp = async (input) => {
220468
220547
  }, developerIdInKeychain);
220469
220548
  await signApp(app, signing, hostApp, tmp);
220470
220549
  if (signing.notaryProfile) {
220471
- notarizeApp(app, signing.notaryProfile, tmp);
220550
+ notarize(app, signing.notaryProfile, tmp, "app");
220472
220551
  } else if (signing.identity !== "-") {
220473
220552
  warn("Signed with Developer ID but NOT notarized — Gatekeeper refuses a downloaded copy on every other Mac.");
220474
220553
  warn(" Set desktop.macos.notarize.profile in app.json (a `xcrun notarytool store-credentials` profile) or pass --notarize <profile>.");
@@ -220480,6 +220559,8 @@ var buildMacApp = async (input) => {
220480
220559
  }
220481
220560
  writeFileSync14(join19(out, "README.txt"), readmeText(appName, !!signing.notaryProfile, signing.identity !== "-"));
220482
220561
  success(`App: ${app} (${mb(dirSize(app))})`);
220562
+ if (flagBool(args, "dmg"))
220563
+ await buildDmg(app, out, appName, signing, tmp);
220483
220564
  if (flagBool(args, "probe"))
220484
220565
  await probeMacApp(app, out, args);
220485
220566
  if (flagBool(args, "zip")) {
@@ -220487,8 +220568,8 @@ var buildMacApp = async (input) => {
220487
220568
  rmSync5(zip, { force: true });
220488
220569
  execFileSync4("ditto", ["-c", "-k", "--keepParent", app, zip]);
220489
220570
  success(`Zip: ${zip} (${mb(statSync5(zip).size)})`);
220490
- } else {
220491
- note("Tip: --zip packs the .app for sending (ditto, structure-preserving).");
220571
+ } else if (!flagBool(args, "dmg")) {
220572
+ note("Tip: --zip packs the .app for sending; --dmg wraps it in a drag-to-Applications image.");
220492
220573
  }
220493
220574
  } finally {
220494
220575
  rmSync5(tmp, { recursive: true, force: true });
@@ -220589,6 +220670,8 @@ var buildDesktop = async (args) => {
220589
220670
  }
220590
220671
  if (mac)
220591
220672
  return buildMacApp({ root, config, name, slug, out, js, shipped, hostExe: exe, args });
220673
+ if (flagBool(args, "dmg"))
220674
+ warn("--dmg is a macOS format — ignored on this platform.");
220592
220675
  const version = process.env.LECODES_DESKTOP_EXE ? "local build" : selectedDesktopVersion();
220593
220676
  rmSync6(out, { recursive: true, force: true });
220594
220677
  mkdirSync13(out, { recursive: true });
@@ -221641,7 +221724,7 @@ channel for game state that has no UI.
221641
221724
  ## SDK documentation
221642
221725
 
221643
221726
  \`.lecodes/types/\` is the exact API surface (signatures only; generated and gitignored — run
221644
- \`lecodes types\` if it's missing, never commit \`.lecodes/\`). For semantics and examples,
221727
+ \`lecodes update\` if it's missing, never commit \`.lecodes/\`). For semantics and examples,
221645
221728
  fetch the docs — they are served as raw markdown for AI tools:
221646
221729
 
221647
221730
  - https://le.codes/llms.txt — the docs map; fetch it first to find the right page
@@ -221760,7 +221843,8 @@ var run = async (args) => {
221760
221843
  scale: resolveScale(flagStr(args, "scale"), win?.scale),
221761
221844
  renderScale: resolveRenderScale(flagStr(args, "render-scale"), appCfg?.desktop?.renderScale),
221762
221845
  maxRenderSize: appCfg?.desktop?.maxRenderSize,
221763
- fps: flagBool(args, "fps")
221846
+ fps: flagBool(args, "fps"),
221847
+ net: flagBool(args, "server") ? { role: "server", port: Number(flagStr(args, "port")) || undefined, maxClients: Number(flagStr(args, "max-clients")) || undefined } : flagStr(args, "connect") ? { role: "client", address: flagStr(args, "connect") } : undefined
221764
221848
  });
221765
221849
  };
221766
221850
  var status = async () => {
@@ -222757,9 +222841,9 @@ lecodes app open # open it in Xcode, build & run
222757
222841
  - \`CLAUDE.md\` — guidance for AI assistants (the headless feedback loop + testability conventions)
222758
222842
  - \`assets/\` — images/fonts the app references (created on demand)
222759
222843
  - \`tsconfig.json\` + \`.lecodes/types/\` — generated IDE types (rewritten by the CLI; don't edit).
222760
- They come from the SDK bundled in the CLI; \`lecodes types\` refreshes them from the platform.
222844
+ They come from the SDK bundled in the CLI; \`lecodes update\` refreshes them from the platform.
222761
222845
  - \`.lecodes/\` is gitignored — per-checkout state (those types + \`manifest.json\`, this machine's
222762
- sync cursor once linked). After a fresh git clone: \`lecodes types\`, then
222846
+ sync cursor once linked). After a fresh git clone: \`lecodes update\`, then
222763
222847
  \`lecodes link --project <uuid>\` to re-attach.
222764
222848
  - \`.lecodesignore\` — files a future \`lecodes push\` would skip
222765
222849
 
@@ -223073,8 +223157,8 @@ var link = async (args) => {
223073
223157
 
223074
223158
  // src/commands/lightmap.ts
223075
223159
  init_manifest();
223076
- import { existsSync as existsSync28, mkdirSync as mkdirSync21, mkdtempSync as mkdtempSync4, rmSync as rmSync9, statSync as statSync10, unlinkSync, writeFileSync as writeFileSync22 } from "node:fs";
223077
- import { spawnSync as spawnSync6 } from "node:child_process";
223160
+ import { existsSync as existsSync28, mkdirSync as mkdirSync21, mkdtempSync as mkdtempSync4, readFileSync as readFileSync25, renameSync as renameSync3, rmSync as rmSync9, statSync as statSync10, unlinkSync, writeFileSync as writeFileSync22 } from "node:fs";
223161
+ import { spawn as spawn6, spawnSync as spawnSync6 } from "node:child_process";
223078
223162
  import { tmpdir as tmpdir4 } from "node:os";
223079
223163
  import { join as join30, relative as relative4, resolve as resolve13 } from "node:path";
223080
223164
  init_util();
@@ -223116,14 +223200,26 @@ var requireToktx = () => {
223116
223200
  }
223117
223201
  return toktx;
223118
223202
  };
223119
- var encodeKtx2 = (toktx, png2, ktx2) => {
223203
+ var encodeKtx2 = (toktx, png2, ktx2) => new Promise((resolve14, reject) => {
223120
223204
  const args = ["--t2", "--encode", "uastc", "--uastc_quality", "2", "--zcmp", "18", "--genmipmap", "--assign_oetf", "srgb", ktx2, png2];
223121
- const p2 = spawnSync6(toktx, args, { encoding: "utf8" });
223122
- if (p2.status !== 0) {
223123
- throw new CliError(`toktx failed (${p2.status ?? p2.error?.message ?? "?"}) while encoding ${ktx2}:
223124
- ${(p2.stderr || p2.stdout || "").trim()}`);
223125
- }
223126
- };
223205
+ const p2 = spawn6(toktx, args, { stdio: ["ignore", "pipe", "pipe"] });
223206
+ let out = "";
223207
+ p2.stdout.on("data", (d) => {
223208
+ out += String(d);
223209
+ });
223210
+ p2.stderr.on("data", (d) => {
223211
+ out += String(d);
223212
+ });
223213
+ p2.on("error", (e2) => reject(new CliError(`toktx failed (${e2.message}) while encoding ${ktx2}`)));
223214
+ p2.on("close", (status2) => {
223215
+ if (status2 === 0)
223216
+ resolve14();
223217
+ else
223218
+ reject(new CliError(`toktx failed (${status2 ?? "?"}) while encoding ${ktx2}:
223219
+ ${out.trim()}`));
223220
+ });
223221
+ });
223222
+ var pageFile = (stem, page, light, ext2 = ".ktx2") => `${stem}${light ? "-light" : ""}${page > 0 ? `_${page}` : ""}${ext2}`;
223127
223223
  var bake = async (args) => {
223128
223224
  let root;
223129
223225
  try {
@@ -223133,6 +223229,9 @@ var bake = async (args) => {
223133
223229
  }
223134
223230
  const toktx = requireToktx();
223135
223231
  const outDir = resolve13(root, flagStr(args, "out") ?? "assets/lightmap");
223232
+ const stem = flagStr(args, "name") ?? "lightmap";
223233
+ if (!/^[A-Za-z0-9_-]+$/.test(stem))
223234
+ throw new CliError(`--name wants a plain file stem (letters, digits, - and _), got "${stem}".`);
223136
223235
  const entryFlag = flagStr(args, "entry");
223137
223236
  const entryFile = entryFlag ?? "main.ts";
223138
223237
  if (!existsSync28(resolve13(root, entryFile))) {
@@ -223142,11 +223241,20 @@ var bake = async (args) => {
223142
223241
  outDir: outDir.replace(/\\/g, "/"),
223143
223242
  size: num(args, "size", 4096, 256, 16384),
223144
223243
  texel: num(args, "texel", 0.02, 0.001, 2),
223244
+ pages: num(args, "pages", 4, 1, 16),
223145
223245
  sunRays: num(args, "sun-rays", 32, 1, 1024),
223146
223246
  aoRays: num(args, "ao-rays", 64, 1, 4096),
223147
223247
  aoDistance: num(args, "ao-distance", 2, 0.01, 1000),
223148
223248
  bias: num(args, "bias", 0.02, 0.0001, 1),
223149
- sunAngle: num(args, "sun-angle", 0.5, 0.01, 30)
223249
+ sunAngle: num(args, "sun-angle", 0.5, 0.01, 30),
223250
+ lightRays: num(args, "light-rays", 16, 1, 256),
223251
+ lightRadius: num(args, "light-radius", 0.1, 0.001, 5),
223252
+ bounce: num(args, "bounce", 0, 0, 1),
223253
+ bounceDistance: num(args, "bounce-distance", 8, 0.5, 100),
223254
+ bounceRays: num(args, "bounce-rays", 1, 1, 32),
223255
+ coplanarSkip: num(args, "coplanar-skip", 0.05, 0, 1),
223256
+ denoise: num(args, "denoise", 2, 0, 4),
223257
+ volumeCell: flagBool(args, "no-volume") ? 0 : num(args, "cell", 0.5, 0.05, 20)
223150
223258
  };
223151
223259
  const frames = num(args, "frames", 900, 30, 1e5);
223152
223260
  const win = readAppConfigAt(root)?.desktop?.window;
@@ -223159,7 +223267,7 @@ var bake = async (args) => {
223159
223267
  import ${JSON.stringify(importPath)}
223160
223268
  `;
223161
223269
  mkdirSync21(outDir, { recursive: true });
223162
- ensurePlaceholders(outDir);
223270
+ ensurePlaceholders(outDir, stem);
223163
223271
  const desktopRenderer = resolveDesktopRenderer(root, args);
223164
223272
  const { js, resources } = await buildBundle(args, undefined, {
223165
223273
  localAssets: true,
@@ -223169,10 +223277,10 @@ import ${JSON.stringify(importPath)}
223169
223277
  });
223170
223278
  const scratch = mkdtempSync4(join30(tmpdir4(), "lecodes-lightmap-"));
223171
223279
  const outPng = join30(scratch, "frame.png");
223172
- note(`Baking ${cfg.size}² at ${(cfg.texel * 100).toFixed(1)} cm texels (${cfg.sunRays} sun + ${cfg.aoRays} AO rays) → ${relative4(root, outDir) || "."}…`);
223280
+ note(`Baking up to ${cfg.pages} × ${cfg.size}² at ${(cfg.texel * 100).toFixed(1)} cm texels (${cfg.sunRays} sun + ${cfg.aoRays} AO + ${cfg.lightRays} light rays)${cfg.volumeCell ? ` + a ${cfg.volumeCell} m light volume` : ""} → ${relative4(root, outDir) || "."}/${stem}.*…`);
223173
223281
  let output = "";
223174
223282
  try {
223175
- const timeoutMs = Number(flagStr(args, "timeout")) || 600000;
223283
+ const timeoutMs = Number(flagStr(args, "timeout")) || 24 * 3600 * 1000;
223176
223284
  const res = await runDesktopRender(js, resources, {
223177
223285
  renderer: desktopRenderer,
223178
223286
  width,
@@ -223190,27 +223298,76 @@ import ${JSON.stringify(importPath)}
223190
223298
  throw e2;
223191
223299
  output = msg;
223192
223300
  } finally {
223193
- rmSync9(scratch, { recursive: true, force: true });
223301
+ try {
223302
+ rmSync9(scratch, { recursive: true, force: true });
223303
+ } catch {}
223194
223304
  }
223195
223305
  const lines = output.split(/\r?\n/).filter((l2) => l2.startsWith("[lightmap]"));
223196
223306
  for (const l2 of lines) {
223197
223307
  const text = l2.slice("[lightmap]".length).trim();
223198
223308
  if (text === "done")
223199
223309
  continue;
223200
- logErr(text.startsWith("error") ? c.red(`✗ ${text}`) : c.dim(` ${text}`));
223310
+ logErr(text.startsWith("error") ? c.red(`✗ ${text}`) : text.startsWith("warning") ? c.yellow(` ${text}`) : c.dim(` ${text}`));
223201
223311
  }
223202
223312
  if (/\[lightmap\] done/.test(output)) {
223203
- const png2 = join30(outDir, "lightmap.png");
223204
- const ktx2 = join30(outDir, "lightmap.ktx2");
223205
- if (!existsSync28(png2))
223206
- throw new CliError(`The host reported a bake but ${png2} is missing.`);
223313
+ const bakePath = join30(outDir, "lightmap.bake");
223314
+ if (!existsSync28(bakePath))
223315
+ throw new CliError(`The host reported a bake but ${bakePath} is missing.`);
223316
+ const data = JSON.parse(readFileSync25(bakePath, "utf8"));
223317
+ const pages = Math.max(1, data.pages ?? 1);
223318
+ const hasLight = !!data.lightTextures?.length;
223207
223319
  const t0 = Date.now();
223208
- encodeKtx2(toktx, png2, ktx2);
223209
- const pngKb = Math.round(statSync10(png2).size / 1024), ktxKb = Math.round(statSync10(ktx2).size / 1024);
223210
- unlinkSync(png2);
223211
- logErr(c.dim(` encoded lightmap.ktx2 (UASTC + mips, ${ktxKb} KB from a ${pngKb} KB raster) in ${((Date.now() - t0) / 1000).toFixed(1)} s`));
223212
- logErr(c.green(`✓ baked → ${relative4(root, outDir) || "."}/lightmap.ktx2 + lightmap.bake`));
223213
- logErr(c.dim(` apply it with Lightmap.load(scene, { data: asset('<rel>/${relative4(root, join30(outDir, "lightmap.bake")).replace(/\\/g, "/")}'), texture: asset('<rel>/${relative4(root, ktx2).replace(/\\/g, "/")}') }) — asset() paths are relative to the calling file`));
223320
+ let pngKb = 0, ktxKb = 0;
223321
+ const encodePage = async (page, light) => {
223322
+ const png2 = join30(outDir, pageFile("lightmap", page, light, ".png"));
223323
+ const ktx2 = join30(outDir, pageFile(stem, page, light));
223324
+ if (!existsSync28(png2))
223325
+ throw new CliError(`The host reported a bake but ${png2} is missing.`);
223326
+ await encodeKtx2(toktx, png2, ktx2);
223327
+ pngKb += statSync10(png2).size / 1024;
223328
+ ktxKb += statSync10(ktx2).size / 1024;
223329
+ unlinkSync(png2);
223330
+ };
223331
+ const encodes = [];
223332
+ for (let p2 = 0;p2 < pages; p2++) {
223333
+ encodes.push(encodePage(p2, false));
223334
+ if (hasLight)
223335
+ encodes.push(encodePage(p2, true));
223336
+ }
223337
+ await Promise.all(encodes);
223338
+ for (let p2 = pages;p2 < 16; p2++) {
223339
+ for (const light of [false, true]) {
223340
+ const stale = join30(outDir, pageFile(stem, p2, light));
223341
+ if (existsSync28(stale) && statSync10(stale).size !== PLACEHOLDER_KTX2.length)
223342
+ writeFileSync22(stale, PLACEHOLDER_KTX2);
223343
+ }
223344
+ }
223345
+ if (!hasLight) {
223346
+ const light = join30(outDir, pageFile(stem, 0, true));
223347
+ if (existsSync28(light) && statSync10(light).size !== PLACEHOLDER_KTX2.length)
223348
+ writeFileSync22(light, PLACEHOLDER_KTX2);
223349
+ }
223350
+ data.texture = pageFile(stem, 0, false);
223351
+ data.textures = Array.from({ length: pages }, (_, p2) => pageFile(stem, p2, false));
223352
+ if (hasLight)
223353
+ data.lightTextures = Array.from({ length: pages }, (_, p2) => pageFile(stem, p2, true));
223354
+ if (data.volume)
223355
+ data.volume.file = `${stem}.volume`;
223356
+ writeFileSync22(join30(outDir, `${stem}.bake`), JSON.stringify(data, null, 1) + `
223357
+ `);
223358
+ if (stem !== "lightmap")
223359
+ unlinkSync(bakePath);
223360
+ const volumeSrc = join30(outDir, "lightmap.volume");
223361
+ const hasVolume = cfg.volumeCell > 0 && existsSync28(volumeSrc);
223362
+ if (hasVolume && stem !== "lightmap") {
223363
+ rmSync9(join30(outDir, `${stem}.volume`), { force: true });
223364
+ renameSync3(volumeSrc, join30(outDir, `${stem}.volume`));
223365
+ }
223366
+ logErr(c.dim(` encoded ${pages} page(s)${hasLight ? " + the light atlas" : ""} (UASTC + mips, ${Math.round(ktxKb)} KB from ${Math.round(pngKb)} KB of rasters) in ${((Date.now() - t0) / 1000).toFixed(1)} s`));
223367
+ logErr(c.green(`✓ baked → ${relative4(root, outDir) || "."}/${stem}.bake + ${data.textures.join(", ")}${hasLight ? ` + ${data.lightTextures.join(", ")}` : ""}${hasVolume ? ` + ${stem}.volume` : ""}`));
223368
+ const rel = (f3) => relative4(root, join30(outDir, f3)).replace(/\\/g, "/");
223369
+ const assets = (files) => files.length === 1 ? `asset('<rel>/${rel(files[0])}')` : `[${files.map((f3) => `asset('<rel>/${rel(f3)}')`).join(", ")}]`;
223370
+ logErr(c.dim(` scene file: env.lightmap: { data: asset('<rel>/${rel(`${stem}.bake`)}'), texture: ${assets(data.textures)}${hasLight ? `, light: ${assets(data.lightTextures)}` : ""}${hasVolume ? `, volume: asset('<rel>/${rel(`${stem}.volume`)}')` : ""} } — asset() paths are relative to the scene file`));
223214
223371
  return;
223215
223372
  }
223216
223373
  if (lines.some((l2) => /no bake module/.test(l2))) {
@@ -223222,20 +223379,1054 @@ import ${JSON.stringify(importPath)}
223222
223379
  throw new CliError("Nothing was baked.");
223223
223380
  };
223224
223381
  var PLACEHOLDER_KTX2 = Buffer.from("q0tUWCAyMLsNChoKAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAaAAAACwAAACUAAAAfAAAAAAAAAAAAAAAAAAAAAAAAAAQAQAAAAAAABAAAAAAAAAAEAAAAAAAAAAsAAAAAAAAAAIAKACmAQIAAwMAABAAAAAAAAAAAAB/AAAAAAAAAAAA/////xEAAABLVFhvcmllbnRhdGlvbgByAAAAACcAAABLVFh3cml0ZXIAdG9rdHggdjQuNC4yIC8gbGlia3R4IHY0LjQuMgAAMwAAAEtUWHdyaXRlclNjUGFyYW1zAC0tZW5jb2RlIHVhc3RjIC0tdWFzdGNfcXVhbGl0eSAwAAD3////H3zvAQAAAAAAAAAA", "base64");
223225
- var ensurePlaceholders = (outDir) => {
223226
- const bake2 = join30(outDir, "lightmap.bake");
223227
- const ktx2 = join30(outDir, "lightmap.ktx2");
223228
- if (!existsSync28(bake2))
223229
- writeFileSync22(bake2, JSON.stringify({ version: 1, placeholder: true, size: 1, texel: 0, instances: [] }) + `
223382
+ var placeholderVolume = () => {
223383
+ const b = Buffer.alloc(4 + 4 + 12 + 12 + 4 + 2);
223384
+ b.write("LVOL", 0, "latin1");
223385
+ b.writeUInt32LE(1, 4);
223386
+ b.writeUInt32LE(1, 8);
223387
+ b.writeUInt32LE(1, 12);
223388
+ b.writeUInt32LE(1, 16);
223389
+ b.writeFloatLE(0, 20);
223390
+ b.writeFloatLE(0, 24);
223391
+ b.writeFloatLE(0, 28);
223392
+ b.writeFloatLE(1, 32);
223393
+ b[36] = 255;
223394
+ b[37] = 255;
223395
+ return b;
223396
+ };
223397
+ var ensurePlaceholders = (outDir, stem) => {
223398
+ const missing = (f3) => !existsSync28(f3) || statSync10(f3).size === 0;
223399
+ const bake2 = join30(outDir, `${stem}.bake`);
223400
+ const ktx2 = join30(outDir, pageFile(stem, 0, false));
223401
+ const light = join30(outDir, pageFile(stem, 0, true));
223402
+ const volume = join30(outDir, `${stem}.volume`);
223403
+ if (missing(bake2))
223404
+ writeFileSync22(bake2, JSON.stringify({ version: 2, placeholder: true, size: 1, texel: 0, pages: 1, instances: [] }) + `
223230
223405
  `);
223231
- if (!existsSync28(ktx2))
223406
+ if (missing(ktx2))
223232
223407
  writeFileSync22(ktx2, PLACEHOLDER_KTX2);
223408
+ if (missing(light))
223409
+ writeFileSync22(light, PLACEHOLDER_KTX2);
223410
+ if (missing(volume))
223411
+ writeFileSync22(volume, placeholderVolume());
223233
223412
  };
223234
223413
  var lightmap = async (args) => {
223235
223414
  const sub = args._[0];
223236
223415
  if (sub === "bake")
223237
223416
  return bake({ ...args, _: args._.slice(1) });
223238
- throw new CliError("Usage: lecodes lightmap bake [--out assets/lightmap] [--size 4096] [--texel 0.02] [--sun-rays 32] [--ao-rays 64] [--ao-distance 2] [--bias 0.02] [--sun-angle 0.5] [--frames 900] [--entry main.ts] [--logs] (needs KTX-Software's toktx)");
223417
+ throw new CliError("Usage: lecodes lightmap bake [--out assets/lightmap] [--name lightmap] [--size 4096] [--pages 4] [--texel 0.02] [--sun-rays 32] [--ao-rays 64] [--ao-distance 2] [--bias 0.02] [--sun-angle 0.5] [--light-rays 16] [--light-radius 0.1] [--bounce 0..1] [--denoise 2] [--cell 0.5 | --no-volume] [--frames 900] [--timeout <ms>] [--entry main.ts] [--logs] (needs KTX-Software's toktx)");
223418
+ };
223419
+
223420
+ // src/commands/navmesh.ts
223421
+ init_manifest();
223422
+ import { existsSync as existsSync29, mkdirSync as mkdirSync22, mkdtempSync as mkdtempSync5, readdirSync as readdirSync14, readFileSync as readFileSync26, rmSync as rmSync10, statSync as statSync11, unlinkSync as unlinkSync2, writeFileSync as writeFileSync23 } from "node:fs";
223423
+ import { tmpdir as tmpdir5 } from "node:os";
223424
+ import { basename as basename16, join as join31, relative as relative5, resolve as resolve14 } from "node:path";
223425
+ init_util();
223426
+
223427
+ // ../creator-nav/dist/creatorNav.js
223428
+ var createCreatorNav = (() => {
223429
+ return async function(moduleArg = {}) {
223430
+ var moduleRtn;
223431
+ var Module = moduleArg;
223432
+ var readyPromiseResolve, readyPromiseReject;
223433
+ var readyPromise = new Promise((resolve14, reject) => {
223434
+ readyPromiseResolve = resolve14;
223435
+ readyPromiseReject = reject;
223436
+ });
223437
+ var ENVIRONMENT_IS_WEB = typeof window == "object";
223438
+ var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
223439
+ var ENVIRONMENT_IS_NODE = typeof process == "object" && process.versions?.node && process.type != "renderer";
223440
+ if (ENVIRONMENT_IS_NODE) {
223441
+ const { createRequire: createRequire5 } = await import("module");
223442
+ var require2 = createRequire5(import.meta.url);
223443
+ }
223444
+ var arguments_ = [];
223445
+ var thisProgram = "./this.program";
223446
+ var quit_ = (status2, toThrow) => {
223447
+ throw toThrow;
223448
+ };
223449
+ var _scriptName = import.meta.url;
223450
+ var scriptDirectory = "";
223451
+ var readAsync, readBinary2;
223452
+ if (ENVIRONMENT_IS_NODE) {
223453
+ var fs3 = require2("fs");
223454
+ var nodePath = require2("path");
223455
+ if (_scriptName.startsWith("file:")) {
223456
+ scriptDirectory = nodePath.dirname(require2("url").fileURLToPath(_scriptName)) + "/";
223457
+ }
223458
+ readBinary2 = (filename) => {
223459
+ filename = isFileURI(filename) ? new URL(filename) : filename;
223460
+ var ret = fs3.readFileSync(filename);
223461
+ return ret;
223462
+ };
223463
+ readAsync = async (filename, binary = true) => {
223464
+ filename = isFileURI(filename) ? new URL(filename) : filename;
223465
+ var ret = fs3.readFileSync(filename, binary ? undefined : "utf8");
223466
+ return ret;
223467
+ };
223468
+ if (process.argv.length > 1) {
223469
+ thisProgram = process.argv[1].replace(/\\/g, "/");
223470
+ }
223471
+ arguments_ = process.argv.slice(2);
223472
+ quit_ = (status2, toThrow) => {
223473
+ process.exitCode = status2;
223474
+ throw toThrow;
223475
+ };
223476
+ } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {
223477
+ try {
223478
+ scriptDirectory = new URL(".", _scriptName).href;
223479
+ } catch {}
223480
+ {
223481
+ readAsync = async (url) => {
223482
+ var response = await fetch(url, { credentials: "same-origin" });
223483
+ if (response.ok) {
223484
+ return response.arrayBuffer();
223485
+ }
223486
+ throw new Error(response.status + " : " + response.url);
223487
+ };
223488
+ }
223489
+ }
223490
+ var out = console.log.bind(console);
223491
+ var err = console.error.bind(console);
223492
+ var wasmBinary;
223493
+ var wasmMemory;
223494
+ var ABORT = false;
223495
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;
223496
+ var runtimeInitialized = false;
223497
+ var isFileURI = (filename) => filename.startsWith("file://");
223498
+ function updateMemoryViews() {
223499
+ var b = wasmMemory.buffer;
223500
+ HEAP8 = new Int8Array(b);
223501
+ HEAP16 = new Int16Array(b);
223502
+ Module["HEAPU8"] = HEAPU8 = new Uint8Array(b);
223503
+ HEAPU16 = new Uint16Array(b);
223504
+ Module["HEAP32"] = HEAP32 = new Int32Array(b);
223505
+ Module["HEAPU32"] = HEAPU32 = new Uint32Array(b);
223506
+ Module["HEAPF32"] = HEAPF32 = new Float32Array(b);
223507
+ HEAPF64 = new Float64Array(b);
223508
+ HEAP64 = new BigInt64Array(b);
223509
+ HEAPU64 = new BigUint64Array(b);
223510
+ }
223511
+ function preRun() {
223512
+ if (Module["preRun"]) {
223513
+ if (typeof Module["preRun"] == "function")
223514
+ Module["preRun"] = [Module["preRun"]];
223515
+ while (Module["preRun"].length) {
223516
+ addOnPreRun(Module["preRun"].shift());
223517
+ }
223518
+ }
223519
+ callRuntimeCallbacks(onPreRuns);
223520
+ }
223521
+ function initRuntime() {
223522
+ runtimeInitialized = true;
223523
+ wasmExports["__wasm_call_ctors"]();
223524
+ }
223525
+ function postRun() {
223526
+ if (Module["postRun"]) {
223527
+ if (typeof Module["postRun"] == "function")
223528
+ Module["postRun"] = [Module["postRun"]];
223529
+ while (Module["postRun"].length) {
223530
+ addOnPostRun(Module["postRun"].shift());
223531
+ }
223532
+ }
223533
+ callRuntimeCallbacks(onPostRuns);
223534
+ }
223535
+ var runDependencies = 0;
223536
+ var dependenciesFulfilled = null;
223537
+ function addRunDependency(id) {
223538
+ runDependencies++;
223539
+ Module["monitorRunDependencies"]?.(runDependencies);
223540
+ }
223541
+ function removeRunDependency(id) {
223542
+ runDependencies--;
223543
+ Module["monitorRunDependencies"]?.(runDependencies);
223544
+ if (runDependencies == 0) {
223545
+ if (dependenciesFulfilled) {
223546
+ var callback = dependenciesFulfilled;
223547
+ dependenciesFulfilled = null;
223548
+ callback();
223549
+ }
223550
+ }
223551
+ }
223552
+ function abort(what) {
223553
+ Module["onAbort"]?.(what);
223554
+ what = "Aborted(" + what + ")";
223555
+ err(what);
223556
+ ABORT = true;
223557
+ what += ". Build with -sASSERTIONS for more info.";
223558
+ var e2 = new WebAssembly.RuntimeError(what);
223559
+ readyPromiseReject(e2);
223560
+ throw e2;
223561
+ }
223562
+ var wasmBinaryFile;
223563
+ function findWasmBinary() {
223564
+ return base64Decode("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aigCADYCACAHQQFqIQcgJEEBaiIkIClHDQALCyAEIDFBAnRqIAs2AgAgDSAyNgLUASANIDFBAWo2AtABIAoQQiANIAQ2AtgBIA0oAtQBIQcgDSgC0AEhCgsgDEH//wNxIRACQCAHIApKBEAgDSAKQQFqIgw2AtABIAQgCkECdGogEDYCAAwBC0GQ4gAoAgAaQf////8HIA0oAtQBIgRBAXQiDCAHQQFqIgcgByAMSBsgBEH+////A0obITECQEGQ4gAoAgAiBEUEQCAxQYCAgIACSA0BQdAcQbIaQbsBQcYKEAAACyAxQYCAgIACSA0AQZccQbIaQbsBIAQRAAALIDFBAnRBARBBIQQgDSgC2AEhByANKALQASE0AkAgBEUNACA0QQBMDQAgNEEDcSEqQQAhC0EAIQwgNEEETwRAIDRB/P///wdxISlBACEkA0AgBCAMQQJ0IgpqIAcgCmooAgA2AgAgBCAKQQRyIiZqIAcgJmooAgA2AgAgBCAKQQhyIiZqIAcgJmooAgA2AgAgBCAKQQxyIgpqIAcgCmooAgA2AgAgDEEEaiEMICRBBGoiJCApRw0ACwsgKkUNAANAIAQgDEECdCIKaiAHIApqKAIANgIAIAxBAWohDCALQQFqIgsgKkcNAAsLIAQgNEECdGogEDYCACANIDE2AtQBIA0gNEEBajYC0AEgBxBCIA0gBDYC2AEgDSgC1AEhByANKALQASEMCwJAIAcgDEoEQCANIAxBAWoiCjYC0AEgBCAMQQJ0aiAdNgIADAELQZDiACgCABpB/////wcgDSgC1AEiBEEBdCIMIAdBAWoiByAHIAxIGyAEQf7///8DShshNAJAQZDiACgCACIERQRAIDRBgICAgAJIDQFB0BxBshpBuwFBxgoQAAALIDRBgICAgAJIDQBBlxxBshpBuwEgBBEAAAsgNEECdEEBEEEhBCANKALYASEHIA0oAtABISkCQCAERQ0AIClBAEwNACApQQNxISZBACEQQQAhDCApQQRPBEAgKUH8////B3EhKkEAIQsDQCAEIAxBAnQiCmogByAKaigCADYCACAEIApBBHIiJGogByAkaigCADYCACAEIApBCHIiJGogByAkaigCADYCACAEIApBDHIiCmogByAKaigCADYCACAMQQRqIQwgC0EEaiILICpHDQALCyAmRQ0AA0Ag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BCACIAgoAhg2AgggAiAIKAIcNgIMIAkgAkEQajYCBAwBCyAJIAhBEGoQDyEEIAgoAhQhAiAJIAQ2AgQgAkUNACAIIAI2AhggCCgCHBogAhC1AQsgAyAGaiEDQQEhAiAMQQFqIgwgC0cNAAsMAgtBASECIAAgAU0NAQtBACECQdAfQQAQNQsgCEEgaiQAAkAgAkUNAEGcAhC3ASIAQgA3AgAgAEEBNgKYAiAAQRBqIgNCADcCACAAQQhqIgVCADcCACAAQRxqIQJBGCEBIABBGGohECAAQRRqIQQgAEEMaiEHIABBBGohBgNAIAAgAWpBgICA/AM2AgAgASAGakGAgID8AzYCACABIAVqQYCAgPwDNgIAIAEgB2pBgICA/AM2AgAgASADakGAgID8AzYCACABIARqQYCAgPwDNgIAIAEgEGpBgICA/AM2AgAgASACakGAgID8AzYCACABQSBqIgFBmAJHDQALIABBCGohASAKLABLIQMCQCAALAATQQBOBEAgA0EATgRAIAEgCikDQDcCACABIAooAkg2AggMAgsgCigCQCEHIAooAkQhAyMAQRBrIgUkACABEL0BIQICQCADQQpNBEAgASADEMMBIAEiBCAHIAMQwQEgBUEAOgAPIAMgBGogBUEPahDAAQwBCyABQQogA0EKayACIAIgAyAHELsBCyAFQRBqJAAMAQsgCigCQCAKQUBrIANBAEgiBRshByAKKAJEIAMgBRshAyMAQRBrIgUkACABEL4BIQIgASgCBCEEAkAgAiADSwRAIAEoAgAhAiABIAMQwgEgAiAHIAMQwQEgBUEAOgAPIAIgA2ogBUEPahDAAQwBCyABIAJBAWsgAyACa0EBaiAEIAQgAyAHELsBCyAFQRBqJAALQdQAQQAQWiIBBEAgAUEAQdQA/AsACyAAIAE2AgACQCABBEBBACEEQQAhByABIgUgCkEkaiIGKQIANwIAIAEgBigCGDYCGCABIAZBEGoiAikCADcCECABIAZBCGoiAykCADcCCCABIAYqAgA4AhwgASAGKgIEOAIgIAEgAyoCADgCJCABIAYqAgw4AiggASACKgIAOAIsIAEgBigCFCICNgIwIAFBASACQQRtQQFrIgNBAXYgA3IiA0ECdiADciIDQQR2IANyIgNBCHYgA3IiA0EQdiADckEBaiIDIANBAU0bIgM2AjQgASADQQFrNgI4IAEgAkE8bEEAEFoiAzYCREGEgICAeCECAkAgA0UNACABIAEoAjRBAnRBABBaIgM2AjwgA0UNACABKAIwQTxsIgIEQCABKAJEQQAgAvwLAAsgBSgCNEECdCICBEAgBSgCPEEAIAL8CwALIAVBADYCQCAFKAIwIgFBAEoEQCAFKAJEIQkCQCABQQNxIghFBEAgASEDQQAhAgwBCyABIQMDQCAJIANBAWsiA0E8bGoiAiAENgI4IAJBATYCACACIQQgB0EBaiIHIAhHDQALCyABQQNLBEADQCADQTxsIAlqIgRBPGsiByACNgI4IAdBATYCACAEQfgAayIIQQE2AgAgBEG0AWsiAUEBNgIAIARB8AFrIgJBATYCACACIAE2AjggASAINgI4IAggBzYCOCADQQNrIQQgA0EEayEDIARBAUsNAAsLIAUgCTYCQAsgBUEQQQAgBigCFEEBayICQQF2IAJyIgJBAnYgAnIiAkEEdiACciICQQh2IAJyIgJBEHYgAnJBAWoiAkH//wNLGyIDIAIgA3YiAkEIQQAgAkH/AUsbIgJ2IgNBBEEAIANBD0sbIgN2IgRBAkEAIARBA0sbIgR2QQF2ciACciADciAEciICNgJMIAVBEEEAIAYoAhhBAWsiA0EBdiADciIDQQJ2IANyIgNBBHYgA3IiA0EIdiADciIDQRB2IANyQQFqIgNB//8DSxsiBCADIAR2IgNBCEEAIANB/wFLGyIDdiIEQQRBACAEQQ9LGyIEdiIHQQJBACAHQQNLGyIHdkEBdnIgA3IgBHIgB3IiAzYCUCAFQR9BICACIANqayICIAJBH08bNgJIQYiAgIB4QYCAgIAEIAJBCkkbIQILIAJBAE4NAQsgCiAKKQI4NwMAQc3AACAKEDUgACgCBBByIAAoAgAQYCAALAATQQBIBEAgACgCEBogACgCCBC1AQsgABC1AUEAIQUMAQsgCigCGCIBIAooAhwiEEcEQANAIAEoAgggASgCBGtBABBaIQMgASgCCCABKAIEIgVrIgIEQCADIAUgAvwKAAALIApBADYCFCAAKAIAIQYgASgCCCABKAIEayELIApBFGohEyMAQYABayIPJAACf0GBgICAeCADKAIAQdaCuaIERw0AGkGCgICAeCADKAIEQQdHDQAaQYiAgIB4IAYoAlBBEEEAIAMoAhgiDUEBayICQQF2IAJyIgJBAnYgAnIiAkEEdiACciICQQh2IAJyIgJBEHYgAnJBAWoiAkH//wNLGyIEIAIgBHYiAkEIQQAgAkH/AUsbIgJ2IgRBBEEAIARBD0sbIgR2IgVBAkEAIAVBA0sbIgV2QQF2ciACciAEciAFckkNABogBigCPCAGKAI4IAMoAgwiCUHB8NjAfWwgAygCCCIFQcPmmu14bGpxQQJ0aiIOKAIAIgIEQCADKAIQIQcDQAJAIAIoAggiBEUNACAEKAIIIAVHDQAgBCgCDCAJRw0AIAQoAhAgB0cNAEGAgYCAeAwDCyACKAI4IgINAAsLQYSAgIB4IAYoAkAiBEUNABogBiAEKAI4NgJAIARBADYCOCAEIA4oAgA2AjggDiAENgIAIAMoAjAhDCADKAIsIQkgAygCKCEIIAMoAiQhDiADKAIgIQcgAygCHCECIAQgA0HkAGoiBTYCECAEIAUgAkEMbGoiAjYCDCAEIAIgDUEFdGoiBTYCFCAEIAUgB0EMbGoiAjYCGCAEIAIgDkEMbGoiDTYCHCAEIA0gCEEMbGoiCDYCICAEIAggCUECdGoiCTYCJCAEIAkgDEEEdCIMajYCKCAMRQRAIARBADYCJAtBACEMIARBADYCBCACQQhrQX82AgACQCAHQQJIDQAgB0EBayIIQQdxIQ1BACEJQQAhAiAHQQJrQQdPBEAgCEF4cSEOQQAhBwNAIAUgAkEMbGogAkEBciIINgIEIAUgCEEMbGogAkECciIINgIEIAUgCEEMbGogAkEDciIINgIEIAUgCEEMbGogAkEEciIINgIEIAUgCEEMbGogAkEFciIINgIEIAUgCEEMbGogAkEGciIINgIEIAUgCEEMbGogAkEHciIINgIEIAUgCEEMbGogAkEIaiICNgIEIAdBCGoiByAORw0ACwsgDUUNAANAIAUgAkEMbGogAkEBaiICNgIEIAlBAWoiCSANRw0ACwsgBEEBNgI0IAQgCzYCMCAEIAM2AiwgBCADNgIIQQAhDQJAIARFDQAgBCAGKAJEa0E8bSEJIAQoAggoAhgiDkEATA0AIAQoAgAgBigCUCICIAYoAkxqdCAJIAJ0ciERIAQoAgwhEgNAIBIgDUEFdGoiC0F/NgIAAkAgCy0AH0HAAXFBwABGDQAgCy0AHiICRQ0AIAtBEGohFEF/IQcDQAJAIBQgAiIIQQFrIgJBAXRqLgEAIhVBAEwNACAEKAIEIgVBf0YNACAEIAQoAhQgBUEMbGoiCSgCBDYCBCAJQQA6AAsgCSACOgAIIAkgESAVQQFrcjYCACAJQf8BOwAJIAkgBzYCBCALIAU2AgAgBSEHCyAIQQFLDQALCyANQQFqIg0gDkcNAAsLIwBBIGsiByQAAkAgBEUNACAEIAYoAkRrQTxtIQIgBCgCCCIJKAI0QQBMDQAgBCgCACAGKAJQIgsgBigCTGp0IAIgC3RyIRFBACELA0AgBCgCKCALQSRsaiICLwEcIQUgBCgCDCEIIAcgAioCGCIWOAIUIAkqAkQhFyAHIBY4AhwgByAXOAIYAkAgBiAEIAIgB0EUaiAHQQhqEGQiCUUNACAHKgIIIhcgAioCAJMiFiAWlCAHKgIQIhggAioCCJMiFiAWlJIgAioCGCIWIBaUXg0AIAQoAhAgCCAFQQV0aiIILwEEQQxsaiIFIBc4AgAgByoCDCEWIAUgGDgCCCAFIBY4AgQgBCgCBCINQX9GDQAgBCAEKAIUIhIgDUEMbGoiBSgCBCIONgIEIAUgCTYCACAFQYD+AzYCCCAFIAgoAgA2AgQgCCANNgIAIA5Bf0YNACAEIBIgDkEMbGoiBSgCBDYCBCAEKAIMIQggBigCUCENIAIvARwhAiAFQf//AzYCCCAFIAIgEXI2AgAgBSAIIAlBfyANdEF/c3FB//8DcUEFdGoiAigCADYCBCACIA42AgALIAtBAWoiCyAEKAIIIgkoAjRIDQALCyAHQSBqJAAgBiAEIARBfxBhAkAgBigCPCAGKAI4IAMoAgwiB0HB8NjAfWwgAygCCCIJQcPmmu14bGpxQQJ0aigCACICRQ0AA0ACQCACKAIIIgVFDQAgBSgCCCAJRw0AIAUoAgwgB0cNACAMQR9KDQAgDyAMQQJ0aiACNgIAIAxBAWohDAsgAigCOCICDQALQQAhBSAMQQBMDQADQCAEIA8gBUECdGooAgAiAkcEQCAGIAQgAkF/EGIgBiACIARBfxBiIAYgBCACQX8QYSAGIAIgBEF/EGELIAVBAWoiBSAMRw0ACwtBACEMA0AgAygCDCELIAMoAgghBwJAAkACQAJAAkACQAJAAkACQCAMQQFrDgcAAQIDBAUGBwsgC0EBaiELDAYLIAtBAWohCwwGCyALQQFqIQsLIAdBAWshBwwECyALQQFrIQsgB0EBayEHDAMLIAtBAWshCwwCCyALQQFrIQsLIAdBAWohBwtBACEJAkAgBigCPCAGKAI4IAtBwfDYwH1sIAdBw+aa7XhsanFBAnRqKAIAIgJFDQADQAJAIAIoAggiBUUNACAFKAIIIAdHDQAgBSgCDCALRw0AIAlBH0oNACAPIAlBAnRqIAI2AgAgCUEBaiEJCyACKAI4IgINAAsgCUEATA0AIAxBBHMhB0EAIQUDQCAGIAQgDyAFQQJ0aigCACICIAwQYiAGIAIgBCAHEGIgBiAEIAIgDBBhIAYgAiAEIAcQYSAFQQFqIgUgCUcNAAsLIAxBAWoiDEEIRw0ACyATBEAgEyAEKAIAIAYoAlAiAiAGKAJManQgBCAGKAJEa0E8bSACdHI2AgALQYCAgIAECyEFIA9BgAFqJAAgBUEASARAIAMQWyAKIAU2AhBB1z4gCkEQahA1IAAoAgQQciAAKAIAEGAgACwAE0EASARAIAAoAhAaIAAoAggQtQELIAAQtQFBACEFDAMLIAFBEGoiASAQRw0ACwsgABBxIgE2AgQCQCABRQ0AIAEgACgCAEH//wMQc0EASA0AIAAoAgAoAjBBAEoEQEEAIQEDQAJAIAAoAgAgARBoIgNFDQAgAygCCCIDRQ0AIAAgACgCFCADKAIYajYCFAsgAUEBaiIBIAAoAgAoAjBIDQALCyAAIQUMAQtBACEFQZUgQQAQNSAAKAIEEHIgACgCABBgIAAsABNBAEgEQCAAKAIQGiAAKAIIELUBCyAAELUBCyAKKAIYIgMEQCADIgAgCigCHCIBRwRAA0AgAUEMaygCACIABEAgAUEIayAANgIAIAFBBGsoAgAaIAAQtQELIAMgAUEQayIBRw0ACyAKKAIYIQALIAogAzYCHCAKKAIgGiAAELUBCyAKLABLQQBIBEAgCigCSBogCigCQBC1AQsgCkHQAGokACAFCzMAIAAEQCAAKAIEEHIgACgCABBgIAAsABNBAEgEQCAAKAIQGiAAKAIIELUBCyAAELUBCwsVACAAKAIIIABBCGogACwAE0EASBsLRAEDfyAAKAIAKAIwQQBKBEADQCAAKAIAIAIQaCIDBEAgASADKAIIQQBHaiEBCyACQQFqIgIgACgCACgCMEgNAAsLIAELBwAgACgCFAsmACABQT9NBEAgACABQQJ0aiACOAIYIAAgACgCmAJBAWo2ApgCCwvMFQIPfwZ9IwBBwBJrIg0kACAIBEAgCEEAOgAACwJAAkAgB0EBTARAQQAhBUGAJUEAEDUMAQsgDUG8EGoQcCILIAU7AYICIAsgBDsBgAIgCyAAQRhqQYAC/AoAAEEAIQUgDUEANgK4ECANQQA2ArQQIAAoAgQgASADQfDBACADGyIDIAsgDUG4EGogDUGoEGoQdxogACgCBCACIAMgCyANQbQQaiANQZwQahB3GiANKAK4ECIDRQRAQaUZQQAQNQwBCyANKAK0ECIERQRAQcMZQQAQNQwBCyANQQA2AgwgACgCBCEKIAMhDiANQagQaiECIA1BnBBqIQ8gDUEQaiEUIA1BDGohEiMAQTBrIgwkACAKKAIAIQkCQEGc4gAoAgAiAUUEQCAJDQFB3wtB7g9B0gdB8hgQAAALIAkNAEHfC0HuD0HSByABEQAACyAKKAJAIQkCQEGc4gAoAgAiAUUEQCAJDQFBvBdB7g9B0wdB8hgQAAALIAkNAEG8F0HuD0HTByABEQAACyAKKAJEIQkCQEGc4gAoAgAiAUUEQCAJDQFBmQxB7g9B1AdB8hgQAAALIAkNAEGZDEHuD0HUByABEQAAC0GIgICAeCEBAkAgEkUNACASQQA2AgAgCigCACAOEGtFDQAgCigCACAEEGshCSACRQ0AIAlFDQAgAigCAEH/////B3FB////+wdLDQAgAigCBEH/////B3FB////+wdLDQAgD0UNACACKAIIQf////8HcUGAgID8B08NACAPKAIAQf////8HcUH////7B0sNACAPKAIEQf////8HcUH////7B0sNACAURQ0AIAtFDQAgDygCCEH/////B3FBgICA/AdPDQAgBCAORgRAIBQgDjYCACASQQE2AgBBgICAgAQhAQwBCyAKKAJAEIQBIAooAkRBADYCCCAKKAJAIA5BABCFASIDIAIqAgA4AgAgAyACKgIEOAIEIAMgAioCCDgCCCADIAMoAhQiAUGAgIB4cTYCFCADQQA2AgwgAioCCCEYIA8qAgghGSACKgIAIRogDyoCACEbIAIqAgQhHCAPKgIEIR0gAyAONgIYIAMgAUGAgICYfnFBgICAIHI2AhQgAyAZIBiTIhggGJQgGyAakyIYIBiU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AWogASAGaioCADgCACADIAVBDHIiBWogBSAGaioCADgCACAHQQRqIgdBwABHDQALCyAEC0gBAX8CQCABQQBIDQAgASAAKAIITg0AIAFBxABsIgIgACgCDGotAABBAUcNACAAKAIAIAEQjgEgACgCDCACakEAQcQA/AsACwvFBAIGfwJ9IwBBMGsiBiQAAkAgAUEASA0AIAEgACgCCE4NACACRQ0AIAAoAgwgAUHEAGxqIgMtAABBAXFFDQAgAyACKQIANwIQIANBQGsgAigCMDYCACADIAIpAig3AjggAyACKQIgNwIwIAMgAikCGDcCKCADIAIpAhA3AiAgAyACKQIINwIYIAZBDGoiA0IANwIAIANBADYCICADQRhqIgVCADcCACADQRBqIgdCADcCACADQQhqIghCADcCACADIAIqAgAiCTgCACADIAIqAgQ4AgQgAyACKgIIOAIMIAggAioCDDgCACAHIAIqAhAiCiAJQwAAQEGUIApDAAAAAF4bOAIAIAMgAioCFCIKIAlDAADwQZQgCkMAAAAAXhs4AhQgBSACKgIYIgk4AgAgAioCKEMAAAA/XgRAIANBAToAHEEBIQQLIAIqAixDAAAAP14EQCADIARBCHIiBDoAHAsgBEEQciAEIAIqAjBDAAAAP14iBxsiBEEEciAEIAlDAAAAAF4iCBshBSAHIAhyBEAgAyAFOgAcCyACKgIc/AAiBEEATgRAIAMgBUECcjoAHCADQQMgBCAEQQNPGzoAHQsgAyAAIAIqAiD8ASACKgIk/AEQLDoAHiAAKAIAIQIgBkEMaiEAAkAgAUEASA0AIAEgAigCAE4NACACKAIEIAFB4ARsaiIBIAApAgA3AtQDIAEgACgCIDYC9AMgASAAKQIYNwLsAyABIAApAhA3AuQDIAEgACkCCDcC3AMLCyAGQTBqJAAL8QEBBX8jAEEQayIDJAACQAJAAkAgAUEASA0AIAEgACgCCE4NACAAKAIMIAFBxABsai0AAA0BC0HrDEEAEDUMAQsgACgCACABEIwBLQDyAyEFIAAoAgAiBigCpCYhByADQQA2AgwgByACIAZB0AVqIAYgBUGEAmxqQdwFakEAIAVBEEkbIANBDGogAxB3GiADKAIMIgVFBEBBwxlBABA1DAELIAAoAgAgASAFIAMQjwFFDQBBASEEIAAoAgwgAUHE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dCIDIAUgAyAFSxsgBkH/////A08bIgUEfyAFELcBBUEACyIDIAJqIgcgAToAACACBEAgAyAEIAL8CgAACyAAIAMgBWo2AgggACAHQQFqIgI2AgQgACADNgIAIARFDQAgBBC1AQsgACACNgIEIAFBCHYhBQJAIAAoAggiAyACSwRAIAIgBToAACACQQFqIQIMAQsgAiAAKAIAIgRrIgJBAWoiBkEASA0BQf////8HIAMgBGsiB0EBdCIDIAYgAyAGSxsgB0H/////A08bIgYEfyAGELcBBUEACyIDIAJqIgcgBToAACACBEAgAyAEIAL8CgAACyAAIAMgBmo2AgggACAHQQFqIgI2AgQgACADNgIAIARFDQAgBBC1AQsgACACNgIEIAFBEHYhBQJAIAAoAggiAyACSwRAIAIgBToAACACQQFqIQIMAQsgAiAAKAIAIgRrIgJBAWoiBkEASA0BQf////8HIAMgBGsiB0EBdCIDIAYgAyAGSxsgB0H/////A08bIgYEfyAGELcBBUEACyIDIAJqIgcgBToAACACBEAgAyAEIAL8CgAACyAAIAMgBmo2AgggACAHQQFqIgI2AgQgACADNgIAIARFDQAgBBC1AQsgACACNgIEIAFBGHYhBCAAKAIIIgEgAksEQCACIAQ6AAAgACACQQFqNgIEDwsgAiAAKAIAIgNrIgJBAWoiBUEASA0AIAJB/////wcgASADayIGQQF0IgEgBSABIAVLGyAGQf////8DTxsiBQR/IAUQtwEFQQALIgFqIgcgBDoAACACBEAgASADIAL8CgAACyAAIAEgBWo2AgggACAHQQFqIgI2AgQgACABNgIAIAMEQCADELUBCyAAIAI2AgQPCxCVAQALwQQBB38CQAJAIARBAEwNACAAKAIIIgUgACgCBCIGayAETgRAAkAgBiABayIFIAROBEAgAiAEaiEJIAYhBwwBCyADIAIgBWoiCWshCAJAIAMgCUYNACAIRQ0AIAYgCSAI/AoAAAsgACAGIAhqIgc2AgQgBUEATA0CCyABIARqIQoCQCAHIgMgBGsiBSAGTw0AIAQgBmoiCyADa0EHcSIIBEBBACEEA0AgAyAFLQAAOgAAIANBAWohAyAFQQFqIQUgBEEBaiIEIAhHDQALCyAHIAtrQXlPDQADQCADIAUtAAA6AAAgAyAFLQABOgABIAMgBS0AAjoAAiADIAUtAAM6AAMgAyAFLQAEOgAEIAMgBS0ABToABSADIAUtAAY6AAYgAyAFLQAHOgAHIANBCGohAyAFQQhqIgUgBkcNAAsLIAAgAzYCBAJAIAcgCkYNACAHIAprIgNFDQAgByADayABIAP8CgAACyACIAlGDQEgCSACayIDRQ0BIAEgAiAD/AoAAA8LIAYgACgCACIDayAEaiIHQQBIDQEgASADayEIIAhB/////wcgBSADayIJQQF0IgUgByAFIAdLGyAJQf////8DTxsiCgR/IAoQtwEFQQALIgVqIQcgBARAIAcgAiAE/AoAAAsgBCAHaiEEIAYgAWsiBgRAIAQgASAG/AoAAAsgACABNgIEIAgEQCAFIAMgCPwKAAALIAAgBSAKajYCCCAAIAQgBmo2AgQgACAFNgIAIAMEQCADELUBCwsPCxCVAQALBgBBkN4AC3YBAX8jAEGQBGsiBCQAIAAtAARBAUYEQCAEIAM2AgwgACABIARBEGogBEEQakGABCACIAMQsQEiA0GABE4EfyAEQQA6AI8EIABBA0HlH0EZIAAoAgAoAgwRBgBB/wMFIAMLIAAoAgAoAgwRBgALIARBkARqJAALOwECfyAABEAgACgCKBBCIAAoAiwiAQRAA0AgASgCACECIAEQQiAAIAI2AiwgAiEBIAINAAsLIAAQQgsLFwEBf0HMAEEAEEEiAEEAQcwA/AsAIAALJwAgAARAIAAoAjwQQiAAKAJAEEIgACgCRBBCIAAoAkgQQiAAEEILC1ABAn8gAARAIAAoAgRBAEoEQANAIAFBFGwiAiAAKAIAaigCABBCIAAoAgAgAmooAggQQiABQQFqIgEgACgCBEgNAAsLIAAoAgAQQiAAEEILCy4AIAAEQCAAKAIAEEIgACgCBBBCIAAoAggQQiAAKAIMEEIgACgCEBBCIAAQQgsLIAAgAARAIAAoAgAQQiAAKAIEEEIgACgCCBBCIAAQQgsLBwAgABC0AQsQACAAIAFB9N0AKAIAEQQACxMAIAAEQCAAQfjdACgCABECAAsLwgcCD38IfQJAQZDiACgCACIHRQRAIAANAUGbC0GtFkGAA0GTJBAAAAsgAA0AQZsLQa0WQYADIAcRAAALIAAtAAVBAUYEQCAAQRAgACgCACgCFBEBAAsgASoCCCEZIAEqAgAhGgJAIAJBAkgEQCAZIRsgGiEYDAELQQEhCCACQQFrIgdBAXEhCgJ/IAJBAkYEQCAaIRggGSEbQQwMAQsgB0F+cSEJIBohGCAZIRsDQCAbIAEgCEEMbGoiByoCCCIWIBYgG10bIhwgByoCFCIXIBcgHF0bIRsgGCAHKgIAIhwgGCAcXhsiGCAHKgIMIh0gGCAdXhshGCAZIBYgFiAZXhsiFiAXIBYgF10bIRkgGiAcIBogHF0bIhYgHSAWIB1dGyEaIAhBAmohCCALQQJqIgsgCUcNAAsgCEEMbAshByAKRQ0AIBsgASAHaiIHKgIIIhYgFiAbXRshGyAYIAcqAgAiFyAXIBhdGyEYIBkgFiAWIBleGyEZIBogFyAXIBpeGyEaCwJAIBggBioCHCIXkyAGKgI0IhaV/AAiB0EASA0AIAYoAgAiCCAaIBeTIBaV/AAiC0wNACAbIAYqAiQiF5MgFpX8ACIJQQBIDQAgBigCBCIKIBkgF5MgFpX8ACIOTA0AIA5BACAOQQBKGyIMIAkgCkEBayAJIApIGyIRSg0AIAQgBioCICIWkyAGKgI4IheV/AAhEiADIBaTIBeV/AAhEyALQQAgC0EAShshDyAHIAhBAWsgByAISBshECACQQFrIRQDQCAPIBBMBEAgDLNDAAAAP5IhGCAPIQ0DQCAGKAI8IA1BAnRqIAYoAgAgDGxBAnRqKAIAIgdBgICACE8EQCAHQf///wdxIgkgB0EYdmohFSANs0MAAAA/kiEZA0ACQCAGKAJIIAlqIg4tAABFDQAgBigCQCAJQQN0ai8BACIHIBNIDQAgByASSg0AIAJBAEwNACAYIAYqAjQiF5QgBioCJJIhFiAZIBeUIAYqAhySIRpBACEIIBQhB0EAIQoDQAJAIAEgB0EMbGoiCyoCCCIcIBZeIAEgCCIHQQxsaiIIKgIIIhcgFl5GDQAgGiAIKgIAIh0gFiAXkyALKgIAIB2TlCAcIBeTlZJdRQ0AIApFIQoLIAdBAWoiCCACRw0ACyAKRQ0AIA4gBToAAAsgCUEBaiIJIBVJDQALCyANIBBGIQcgDUEBaiENIAdFDQALCyAMIBFGIQcgDEEBaiEMIAdFDQALCyAALQAFQQFGBEAgAEEQIAAoAgAoAhgRAQALC5MEAQp/AkACQCABIAAoAgAiA0gNACABIANMDQEgACgCBCABTgRAIAJFDQEgACgCCCIEIANBAnRqIQMgBCABQQJ0aiEEIAIoAgAhBgNAIAMgBjYCACADQQRqIgMgBEkNAAsMAQtBkOIAKAIAGkH/////ByAAKAIEIgNBAXQiBCABIAEgBEgbIANB/v///wNKGyEHAkBBkOIAKAIAIgNFBEAgB0GAgICAAkgNAUHQHEGyGkG7AUHGChAAAAsgB0GAgICAAkgNAEGXHEGyGkG7ASADEQAACwJAIAdBAnRBARBBIgRFDQAgACgCACIFQQBMDQAgACgCCCEGIAVBA3EhCUEAIQMgBUEETwRAIAVB/P///wdxIQoDQCAEIANBAnQiBWogBSAGaigCADYCACAEIAVBBHIiCGogBiAIaigCADYCACAEIAVBCHIiCGogBiAIaigCADYCACAEIAVBDHIiBWogBSAGaigCADYCACADQQRqIQMgC0EEaiILIApHDQALCyAJRQ0AA0AgBCADQQJ0IgVqIAUgBmooAgA2AgAgA0EBaiEDIAxBAWoiDCAJRw0ACwsCQCACRQ0AIAAoAgAiAyABTg0AIAQgAUECdGohBiAEIANBAnRqIQMgAigCACEFA0AgAyAFNgIAIANBBGoiAyAGSQ0ACwsgACgCCBBCIAAgBzYCBCAAIAQ2AggLIAAgATYCAAsLTwECfwJAIAAoAgQiAiABKAIEIgNGBEAgACgCCCIAIAEoAggiAUgEQEF/DwsgACABTA0BQQEPCyACIANIBEBBfw8LIAIgA0wNAEEBDwtBAAsXACAAKAIEIgAgASgCBCIBSiAAIAFIawvoBQEUfwJAIANBAEoEQANAIA4iBUEBaiEOAkAgAiAFRg0AIAIgDkEAIAMgDkobIgZGDQAgACgCACIHIAQgBUEEdGoiCCgCACIFRgRAIAAoAgggCCgCCEYNAQsgBSABKAIAIglGBEAgASgCCCAIKAIIRg0BCyAHIAQgBkEEdGoiCigCACIGRgRAIAAoAgggCigCCEYNAQsgASgCCCENIAYgCUYEQCANIAooAghGDQELAkAgACgCCCILIA1rIhAgBSAHa2wiDCAIKAIIIgggC2siEyAHIAlrIhFsRwRAIBAgBiAHa2wiFCAKKAIIIg8gC2siFSARbEYNASAIIA9rIg8gByAFa2wiFiALIAhrIhcgBSAGayISbEYNASAPIAkgBWtsIg8gDSAIayIYIBJsRg0BIBUgCSAHayISbCAUaiAMIBIgE2xqc0EATg0BIBYgFyAGIAVrIgxsaiAPIAwgGGxqc0EATg0BQQEPCyAHIAlHBEBBASEMIAUgCUwgBSAHTnENBSAFIAdKDQEgBSAJSA0BDAULQQEhDCAIIA1MIAggC05xDQQgCCALSg0AIAggDU4NBAsCQCAQIAYgB2tsIAooAggiCiALayARbEcNACAHIAlHBEBBASEMIAYgCUwgBiAHTnENBSAGIAdKDQEgBiAJSA0BDAULQQEhDCAKIA1MIAogC05xDQQgCiALSg0AIAogDU4NBAsCQCAIIAprIhAgByAFa2wgBSAGayIRIAsgCGtsRw0AIAUgBkcEQEEBIQwgBSAHTCAGIAdOcQ0FIAUgB0gNASAGIAdKDQEMBQtBASEMIAggC0wgCiALTnENBCAIIAtIDQAgCiALTA0ECyAQIAkgBWtsIA0gCGsgEWxHDQAgBSAGRwRAQQEhDCAFIAlMIAYgCU5xDQQgBiAJTCAFIAlOcUUNAQwEC0EBIQwgCCANTCAKIA1OcQ0DIAogDUwgCCANTnENAwsgAyAORw0ACwtBACEMCyAMC7MMAR5/An9BASAAQQBMDQAaA0AgBCAEQQFqIgVBACAAIAVKGyIGQQFqIghBACAAIAhKGyAAIAEgAhBKBEAgAiAGQQJ0aiIEIAQoAgBBgICAgHhyNgIACyAFIgQgAEcNAAtBASAAQQRIDQAaIABBAmshGCAAQQRrIRkgAkEEayEaIAAhCANAIAAgByISQX9zaiEbQX8hBkF/IQ5BACEEA0AgAiAEQQFqIgVBACAFIAhIGyIHQQJ0aigCAEEASARAIAEgAiAHQQFqIgdBACAHIAhIG0ECdGooAgBBBHRqIgcoAgggASACIARBAnRqKAIAQQR0aiIJKAIIayIKIApsIAcoAgAgCSgCAGsiByAHbGoiByAGIAZBAEggBiAHSnIiBxshBiAEIA4gBxshDgsgCCAFIgRHDQALQX8hEwJAIA5Bf0cNAEEAIRRBfyEOA0AgASACIBQiCUEBaiIUQQAgCCAUShsiBUEBaiIEQQAgBCAISBsiB0ECdGooAgBBBHRqIgYoAgAiECABIAIgCUECdGooAgBBBHRqIgsoAgAiCmshFQJAAkAgASAaIAkgCCAJG0ECdGooAgBBBHRqIgwoAggiBCALKAIIIgtrIhEgASACIAVBAnRqKAIAQQR0aiINKAIAIhYgDCgCACIFa2wgDSgCCCIMIARrIAogBWtsakEATARAIAsgBigCCCIPayIXIAUgCmtsIBEgFWxqQQBKDQIgDyALayAWIBBrbCAKIBBrIhEgDCAPa2xqQQBMDQEMAgsgCiAQayERIAsgBigCCCIPayIXIBYgCmtsIBUgDCALa2xqQQBKDQAgDyALayAFIBBrbCAEIA9rIBFsakEATA0BC0EAIQUDQAJAIAUiBEEBaiIFQQAgBSAISRsiBiAHRg0AIAQgB0YNACAEIAlGDQAgBiAJRg0AIAIgBkECdGooAgAhDCABIAIgBEECdGooAgBBBHRqIgYoAgAiBCAKRgRAIAsgBigCCEYNAQsgBCAQRgRAIA8gBigCCEYNAQsgCiABIAxBBHRqIg0oAgAiDEYEQCALIA0oAghGDQELIAwgEEYEQCAPIA0oAghGDQELIAQgCmsgF2wiFiAGKAIIIgYgC2siHCARbEYNACAMIAprIBdsIh0gDSgCCCINIAtrIh4gEWxGDQAgBiANayINIAogBGtsIh8gCyAGayIgIAQgDGsiIWxGDQAgDSAQIARrbCINIA8gBmsiBiAhbEYNACAVIB5sIB1qIBUgHGwgFmpzQQBODQAgHyAgIAwgBGsiBGxqIA0gBCAGbGpzQQBIDQILIAUgCEcNAAsgASACIAdBAWoiBUEAIAUgCEgbQQJ0aigCAEEEdGoiBSgCCCALayIEIARsIAUoAgAgCmsiBSAFbGoiBSATIBNBAEggBSATSHIiBRshEyAJIA4gBRshDgsgCCAURw0ACyAOQX9HDQBBACASaw8LIAMgAiAOQQJ0aigCAEH/////AHE2AgBBACEFIAMgAiAOQQFqIglBACAIIAlKGyIHQQJ0aigCAEH/////AHE2AgQgAyACIAdBAWoiBEEAIAQgCEgbQQJ0aigCAEH/////AHE2AgggCEEBayIIIQQgByAISARAIBggByASamshCkEAIQQgGyAHIgVrQQNxIgYEQANAIAIgBUECdGogAiAFQQFqIgVBAnRqKAIANgIAIARBAWoiBCAGRw0ACwsgCkECSwRAA0AgAiAFQQJ0aiIEIAQpAgQ3AgAgBCAEQQxqIgQoAgA2AgggBCACIAVBBGoiBUECdGooAgA2AgAgBSAISA0ACwsgCSAIIAdBAEoiBRshBCAJIAcgBRshBQsgEkEBaiEHIANBDGohAyACIARBAWsiBkECdGoiCSAJKAIAIglBgICAgHhyIAlB/////wBxIAYgCCAEQQFKG0EBayAFIAggASACEEobNgIAIAIgBUECdGoiBCAEKAIAIgRBgICAgHhyIARB/////wBxIAYgBUEBaiIFQQAgBSAISBsgCCABIAIQShs2AgAgEiAZRw0ACyAAQQJrCyEFIAMgAigCAEH/////AHE2AgAgAyACKAIEQf////8AcTYCBCADIAIoAghB/////wBxNgIIIAULlgUBDH8CQCAFQQBMBEAgBSEIDAELAkADQCAAIAZBAXRqLwEAQf//A0YNASAGQQFqIgYgBUcNAAsgBSEGCyAGIAUgBSAGShshCEEAIQYDQCABIAZBAXRqLwEAQf//A0YNASAGQQFqIgYgBUcNAAsgBSEGC0F/IQcCQCAIIAYgBSAFIAZKGyIJakECayAFSg0AIANBfzYCACAEQX82AgAgCEEATA0AIAlBACAJQQBKGyELQX8hDANAIAAgDiIQQQF0ai8BACIGIABBACAOQQFqIg4gCCAORiIRG0EBdGovAQAiBSAFIAZJGyEPIAYgBSAFIAZLGyENQQAhCgJAA0AgCiIGIAtGDQEgDSABIAZBAXRqLwEAIgUgASAGQQFqIgogCW9BAXRqLwEAIgcgBSAHSRtHDQAgDyAFIAcgBSAHSxtHDQALIAMgEDYCACAEIAY2AgAgBiEMCyARRQ0AC0F/IQcgAygCACIGQX9GDQAgDEF/Rg0AIAIgACAGIAhqQQFrIAhvQQF0ai8BAEEGbGoiBS8BBCIKIAIgACAGQQF0ai8BAEEGbGoiDS8BBCIPayACIAEgDEECaiAJb0EBdGovAQBBBmxqIgsvAQAgBS8BACIFa2wgCy8BBCAKayANLwEAIgogBWtsakEATg0AIAIgASAJIAxqQQFrIAlvQQF0ai8BAEEGbGoiBS8BBCINIAIgASAMQQF0ai8BAEEGbGoiAS8BBGsgAiAAIAZBAmogCG9BAXRqLwEAQQZsaiILLwEAIAUvAQAiBWtsIAsvAQQgDWsgAS8BACAFa2xqQQBODQAgDyACIAAgBkEBaiAIb0EBdGovAQBBBmxqIgYvAQRrIgUgBWwgCiAGLwEAayIGIAZsaiEHCyAHC78IARR/IAMgBCABQQJ0aigCAEEEdGoiBigCACIMIAMgBCAAQQJ0aigCAEEEdGoiDigCACIHayESAkACQCADIAQgACACIABBAEobQQJ0akEEaygCAEEEdGoiCCgCCCIFIA4oAggiCWsiDyADIAQgAEEBaiIOQQAgAiAOShtBAnRqKAIAQQR0aiILKAIAIgogCCgCACIOa2wgCygCCCIIIAVrIAcgDmtsakEATARAIAkgBigCCCILayAOIAdrbCAPIBJsakEATg0CIAsgCWsgCiAMa2wgCCALayAHIAxrbGpBAE4NAgwBCyAJIAYoAggiC2sgCiAHa2wgEiAIIAlrbGpBAEoNACALIAlrIA4gDGtsIAUgC2sgByAMa2xqQQBKDQBBAA8LQQEhDSACQQBMDQAgCSALayETIAcgDGshD0EAIQ4DQAJAIA4iBUEBaiIOQQAgAiAOShsiBiABRg0AIAEgBUYNACAAIAVGDQAgACAGRg0AIAQgBkECdGooAgAhBiADIAQgBUECdGooAgBBBHRqIggoAgAiBSAHRgRAIAkgCCgCCEYNAQsgBSAMRgRAIAsgCCgCCEYNAQsgByADIAZBBHRqIgooAgAiBkYEQCAJIAooAghGDQELIAYgDEYEQCALIAooAghGDQELAkACQAJAIBMgBSAHa2wiDSAIKAIIIgggCWsiECAPbEcEQAJAIBMgBiAHa2wiFCAKKAIIIhEgCWsiFiAPbEYNACAIIBFrIhEgByAFa2wiFyAJIAhrIhggBSAGayIVbEYNACARIAwgBWtsIhEgFSALIAhrIhVsRg0AIBIgFmwgFGogECASbCANanNBAE4NAEEAIQ0gFyAYIAYgBWsiEGxqIBEgECAVbGpzQQBIDQcLIBQgCigCCCIKIAlrIA9sRw0DIAcgDEYNAQwCCyAHIAxHBEBBACENIAUgDEwgBSAHTnENBiAFIAdMIAUgDE5xDQYgEyAGIAdrbCAKKAIIIgogCWsgD2xGDQIMAwtBACENIAggC0wgCCAJTnENBSAIIAlMIAggC05xDQUgEyAGIAdrbCAKKAIIIgogCWsgD2xHDQILQQAhDSAJIApMIAogC0xxDQQgCSAKSA0BIAogC04NBAwBC0EAIQ0gBiAMTCAGIAdOcQ0DIAYgB0oNACAGIAxODQMLAkAgCCAKayIQIAcgBWtsIAUgBmsiFCAJIAhrbEcNACAFIAZHBEBBACENIAUgB0wgBiAHTnENBCAFIAdIDQEgBiAHSg0BDAQLQQAhDSAIIAlMIAkgCkxxDQMgCCAJSA0AIAkgCk4NAwsgECAMIAVrbCALIAhrIBRsRw0AIAUgBkcEQEEAIQ0gBSAMTCAGIAxOcQ0DIAYgDEwgBSAMTnFFDQEMAwtBACENIAggC0wgCiALTnENAiAKIAtMIAggC05xDQILIAIgDkcNAAtBASENCyANC7UCAQR/IAAgACgCAEEDakEAEEQgACgCACIEQQJKIARBA2siByAAKAIAIgRIcSEFAkBBkOIAKAIAIgZFBEAgBQ0BQZUbQbIaQZYBQbwkEAAACyAFDQBBlRtBshpBlgEgBhEAACAAKAIAIQQLIAAoAgggB0ECdGogATYCACAEQQFKIARBAmsiASAAKAIAIgRIcSEFAkBBkOIAKAIAIgZFBEAgBQ0BQZUbQbIaQZYBQbwkEAAACyAFDQBBlRtBshpBlgEgBhEAACAAKAIAIQQLIAAoAgggAUECdGogAjYCACAEIAAoAgBMIARBAEpxIQUCQEGQ4gAoAgAiBkUEQCAFDQFBlRtBshpBlgFBvCQQAAALIAUNAEGVG0GyGkGWASAGEQAACyAAKAIIIARBAnRqQQRrIAM2AgALpQIBB38CQEGQ4gAoAgAiA0UEQCABQYCAgIACSA0BQdAcQbIaQbsBQcYKEAAACyABQYCAgIACSA0AQZccQbIaQbsBIAMRAAALAkAgAUECdEEBEEEiA0UNACAAKAIAIgJBAEwNACAAKAIIIQAgAkEDcSEFQQAhASACQQRPBEAgAkH8////B3EhBgNAIAMgAUECdCICaiAAIAJqKAIANgIAIAMgAkEEciIEaiAAIARqKAIANgIAIAMgAkEIciIEaiAAIARqKAIANgIAIAMgAkEMciICaiAAIAJqKAIANgIAIAFBBGohASAHQQRqIgcgBkcNAAsLIAVFDQADQCADIAFBAnQiAmogACACaigCADYCACABQQFqIQEgCEEBaiIIIAVHDQALCyADC7QDAQ5/AkAgBigCACIQIAAgA5RDCtcjPJKO/AAgBigCBGsiByAGKAIMIg1BAWsiCiAHIApIG0EAIAdBAE4bIhFBAXRqIAIgA5RDCtcjPJKO/AAgBigCCGsiByAGKAIQIhJBAWsiBiAGIAdKG0EAIAdBAE4bIhMgDWxBAXRqLwEAIglB//8DRw0AQf//AyEJIAVBAXRBAXIiBiAGbEEBayIURQ0AIAGMIQBBECELQ///f38hA0EBIQZBACEHQQAhCkEIIQ5BASEFA0ACQCAGIBFqIghBAEgNACAHIBNqIgxBAEgNACAIIA1ODQAgDCASTg0AIBAgCEEBdGogDCANbEEBdGovAQAiCEH//wNGDQAgCLMgBJQgAJKLIgIgAyACIANdIgwbIQMgCCAJIAwbIQkLIA4gCkEBaiIKRgRAIAlB//8DcUH//wNHDQIgCyAOaiEOIAtBCGohCwsCQAJAIAYgB0YNACAGQQAgB2tGIAZBAEhxDQAgBkEATA0BIAZBASAHa0cNAQtBACAPayEIIAUhDyAIIQULIAcgD2ohByAFIAZqIQYgCiAURw0ACwsgCUH//wNxC84NAgp/DH0jAEEgayIOJAACQAJ/IAMgB0EEdGoiDSgCCCIQQX9GBEAgDSIIQQRqDAELIA0oAgxBf0cNASANQQRqIQggDQsoAgAhDCAIKAIAIQgCQAJAAkACQCACQQBMDQAgASAMQQxsaiEJIAEgCEEMbGohCyAEKAIAIRFDAACAvyEZQQAhByACIQoDQAJAIAcgCEYNACAHIAxGDQAgCSoCACALKgIAIhWTIhIgASAHQQxsaiIPKgIIIhggCyoCCCIbkyITlCAJKgIIIBuTIhQgDyoCACIcIBWTIheUkyIWQ6zFJzdeRQ0AAn0CQCAZQwAAAABdBEAgFkO9N4Y1XkUNASAVIBcgF5QgEyATlJIiGEMAAAAAIBSTlCAUIBOTQwAAAACUIBIgEpQgFCAUlJIiFCATlJKSIBYgFpIiE5UiFpIhGkMAAAAAIBaTIhUgFZRDAAAAACAYIBKUIBcgEpNDAAAAAJQgFEMAAAAAIBeTlJKSIBOVIhWTIhIgEpSSkSEZIBsgFZIMAgsgHCAakyIcIByUIBggHZMiGCAYlJKRIhggGUPFIIA/lF4NAiAZQ3e+fz+UIBheBEAgFkO9N4Y1XkUNASAVIBcgF5QgEyATlJIiGEMAAAAAIBSTlCAUIBOTQwAAAACUIBIgEpQgFCAUlJIiFCATlJKSIBYgFpIiE5UiFpIhGkMAAAAAIBaTIhUgFZRDAAAAACAYIBKUIBcgEpNDAAAAAJQgFEMAAAAAIBeTlJKSIBOVIhWTIhIgEpSSkSEZIBsgFZIMAgsgASADIBEgCCAHEFANAiABIAMgESAMIAcQUA0CIBZDvTeGNV5FDQAgFSAXIBeUIBMgE5SSIhhDAAAAACAUk5QgFCATk0MAAAAAlCASIBKUIBQgFJSSIhQgE5SSkiAWIBaSIhOVIhaSIRpDAAAAACAWkyIVIBWUQwAAAAAgGCASlCAXIBKTQwAAAACUIBRDAAAAACAXk5SSkiATlSIVkyISIBKUkpEhGSAbIBWSDAELQwAAAAAhGSAVIRogGwshHSAHIQoLIAdBAWoiByACRw0ACyACIApMDQAgDSgCBCECIA0oAgAhByAGKAIAIQkCQAJAIBBBf0cNACAHIAhHDQAgAiAMRw0AIA0gCTYCCAwBCyAHIAxHDQAgAiAIRw0AIA0oAgxBf0cNACANIAk2AgwLAkACQCAEKAIAIgtBAEoEQEEAIQcDQAJAIAMgB0EEdGoiAigCACIJIApHDQAgAigCBCAIRw0AQQEhCyAIIQcMBgsCQCAIIAlHDQAgAigCBCAKRw0AIAkgCkYhCyAKIQcMBgsgB0EBaiIHIAtHDQALIAUgC0wNAiAGKAIAIQ9BACEHA0AgCiADIAdBBHRqIgIoAgAiCUYEQCACKAIEIAhGDQcLIAggCUYEQCACKAIEIApGDQcLIAdBAWoiByALRw0ACwwBCyAFIAtMDQEgBigCACEPCyADIAtBBHRqIgdBfzYCDCAHIA82AgggByAINgIEIAcgCjYCACAEIAQoAgBBAWoiCTYCAAwECyAOIAU2AhQgDiALNgIQIABBA0GvLyAOQRBqEDkMAgsgDSgCBCECIA0oAgAhBwJAIBBBf0cNACAHIAhHDQAgAiAMRw0AIA1BfjYCCAwECyAHIAxHDQMgAiAIRw0DIA0oAgxBf0cNAyANQX42AgwMAwsgBigCACEPAkAgC0UNACAHIAhHDQAgCCEHIAIoAghBf0cNACACIA82AggMAQsgCCAJRw0AIAcgCkcNACACKAIMQX9HDQAgAiAPNgIMCyAEKAIAIQkLAkACQAJAAkAgCUEASgRAQQAhBwNAAkAgAyAHQQR0aiIIKAIAIgIgDEcNACAIKAIEIApHDQBBASEJIAohBwwFCwJAIAIgCkcNACAIKAIEIAxHDQAgAiAMRiEJIAwhBwwFCyAHQQFqIgcgCUcNAAsgBSAJTA0CIAYoAgAhC0EAIQcDQCAMIAMgB0EEdGoiCCgCACICRgRAIAgoAgQgCkYNBgsgAiAKRgRAIAgoAgQgDEYNBgsgB0EBaiIHIAlHDQALDAELIAUgCUwNASAGKAIAIQsLIAMgCUEEdGoiB0F/NgIMIAcgCzYCCCAHIAo2AgQgByAMNgIAIAQgBCgCAEEBajYCAAwCCyAOIAU2AgQgDiAJNgIAIABBA0GvLyAOEDkMAQsgBigCACELAkAgCUUNACAHIApHDQAgCiEHIAgoAghBf0cNACAIIAs2AggMAQsgAiAKRw0AIAcgDEcNACAIKAIMQX9HDQAgCCALNgIMCyAGIAYoAgBBAWo2AgALIA5BIGokAAuOAwIMfQJ/QZjiAC0AAEUEQEGY4gBBAToAAEGU4gBBvu+YrAM2AgALIANBAEoEfyADQQFrIRFBlOIAKgIAIQsgACoCCCEMIAAqAgAhDQNAQwAAAAAhBAJAIAIgEEEMbGoiACoCACACIBFBDGxqIhEqAgAiCZMiBSANIAmTlCAAKgIIIBEqAggiCpMiByAMIAqTlJIiBiAFIAWUIAcgB5SSIgiVIAYgCEMAAAAAXhsiBkMAAAAAXQ0AIAYiBEMAAIA/XkUNAEMAAIA/IQQLAkAgBCAFlCAJkiANkyIGIAaUIAQgB5QgCpIgDJMiBCAElJIgC11FDQBDAAAAACEEAkAgBSABKgIAIgYgCZOUIAcgASoCCCIOIAqTlJIiDyAIlSAPIAhDAAAAAF4bIghDAAAAAF0NACAIIgRDAACAP15FDQBDAACAPyEECyAEIAWUIAmSIAaTIgUgBZQgBCAHlCAKkiAOkyIFIAWUkiALXUUNAEEBDwsgECERIBBBAWoiACEQIAAgA0cNAAtBAAUgEAsLgAICBX8IfSACQQBKBEAgACAEQQxsaiEIIAAgA0EMbGohCQNAAkAgASAHQQR0aiIFKAIAIgYgA0YNACAEIAZGDQAgBSgCBCIFIANGDQAgBCAFRg0AIAAgBUEMbGoiBSoCACAAIAZBDGxqIgYqAgAiCpMiCyAIKgIIIg8gBioCCCIMk5QgBSoCCCAMkyINIAgqAgAiECAKk5STIhEgCyAJKgIIIg4gDJOUIA0gCSoCACILIAqTlJMiDZRDAAAAAF1FDQAgECALkyAMIA6TlCAPIA6TIAogC5OUkyIKIA0gCpIgEZOUQwAAAABdRQ0AQQEPCyAHQQFqIgcgAkcNAAsLQQAL4AYCB38DfSMAQTBrIg0kAAJAAkACQEGQ4gAoAgAiCUUEQCABQQ1IDQFB7SRBphJB5wFB+woQAAALIAFBDUgNAEHtJEGmEkHnASAJEQAADAELIAFBAEoNAEEAIQkMAQsgAUEDcSEMIAAgB0ECdGohCUEAIQcgAUEBa0EDTwRAIAFBfHEhDgNAIA0gB0ECdGogBiAJIAdBDGxqKgIAkzgCACANIAdBAXIiCEECdGogBiAJIAhBDGxqKgIAkzgCACANIAdBAnIiCEECdGogBiAJIAhBDGxqKgIAkzgCACANIAdBA3IiCEECdGogBiAJIAhBDGxqKgIAkzgCACAHQQRqIQcgC0EEaiILIA5HDQALCyAMBEADQCANIAdBAnRqIAYgCSAHQQxsaioCAJM4AgAgB0EBaiEHIApBAWoiCiAMRw0ACwsgDSABQQFrIghBAnRqKgIAIQZBACELQQAhB0EAIQkDQAJAIAYiD0MAAAAAYCANIAdBAnRqKgIAIgZDAAAAAGAiCkcEQCACIAtBDGxqIgwgACAHQQxsaiIKKgIAIAAgCEEMbGoiCCoCACIQkyAPIA8gBpOVIg+UIBCSIhA4AgAgDEEEaiIOIAoqAgQgCCoCBCIRkyAPlCARkjgCACAMQQhqIgwgCioCCCAIKgIIIhGTIA+UIBGSOAIAIAQgCUEMbGoiCCAQOAIAIAggDioCADgCBCAIIAwqAgA4AgggCUEBaiEIIAtBAWohDCAGQwAAAABeBEAgAiAMQQxsaiIJIAoqAgA4AgAgCSAKKgIEOAIEIAkgCioCCDgCCCALQQJqIQsgCCEJDAILIAZDAAAAAF1FBEAgCCEJIAwhCwwCCyAEIAhBDGxqIgsgCioCADgCACALIAoqAgQ4AgQgCyAKKgIIOAIIIAlBAmohCSAMIQsMAQsCQCAKRQRAIAdBDGwhCAwBCyACIAtBDGxqIgogACAHQQxsIghqIgwqAgA4AgAgCiAMKgIEOAIEIAogDCoCCDgCCCALQQFqIQsgBkMAAAAAXA0BCyAEIAlBDGxqIgogACAIaiIIKgIAOAIAIAogCCoCBDgCBCAKIAgqAgg4AgggCUEBaiEJCyAHIQggB0EBaiIHIAFHDQALCyADIAs2AgAgBSAJNgIAIA1BMGokAAuUAgEEfyAAQRxqIQQCQCAAKAIcIgJBAEoEQANAIAQoAgAhBQJAQZDiACgCACICRQRAIAMgBUgNAUGVG0GyGkGWAUG8JBAAAAsgAyAFSA0AQZUbQbIaQZYBIAIRAAALIAAoAiQgA0ECdGooAgAgAUYNAiADQQFqIgMgBCgCACICSA0ACwsgACgCICIDIAJKBEAgACACQQFqNgIcIAAoAiQgAkECdGogATYCAA8LQZDiACgCABogBEH/////ByAAKAIgIgJBAXQiBSADQQFqIgMgAyAFSBsgAkH+////A0obIgMQTCICIAAoAhwiBEECdGogATYCACAAIAM2AiAgACAEQQFqNgIcIAAoAiQQQiAAIAI2AiQLC5MBAQJ/IAAoAgAhAgJAQZDiACgCACIBRQRAIAJBAEoNAUHFJkGyGkGPAUGuGBAAAAsgAkEASg0AQcUmQbIaQY8BIAERAAALIAAoAgAhAQJAQZDiACgCACICRQRAIAENAUGjG0GyGkGbAUGyGBAAAAsgAQ0AQaMbQbIaQZsBIAIRAAAgACgCACEBCyAAIAFBAWs2AgALoQIBBX8gAC0ABiABLQAGRwRAQQAPC0EBIQUCQCAAKAIQQQBMDQADQCAAKAIQIQMCQEGQ4gAoAgAiBEUEQCACIANIDQFBlRtBshpBlQFBvCQQAAALIAIgA0gNAEGVG0GyGkGVASAEEQAAIAAoAhAhAwsgBiAAKAIYIAJBAnRqKAIAIAEvAQRGaiEGIAJBAWoiAiADSA0ACyAGQQFNDQBBAA8LAkAgACgCHEEATA0AQQAhAgNAIAAoAhwhBAJAQZDiACgCACIDRQRAIAIgBEgNAUGVG0GyGkGVAUG8JBAAAAsgAiAESA0AQZUbQbIaQZUBIAMRAAALIAAoAiQgAkECdGooAgAgAS8BBEciBUUNASACQQFqIgIgACgCHEgNAAsLIAULkgQBCH8CQCAAKAIQIgFBAkgNACAAQRBqIQQDQCAGIAQoAgBIIAZBAE5xIQIgBkEBaiIIIAFvIQMCQEGQ4gAoAgAiBUUEQCACDQFBlRtBshpBlgFBvCQQAAALIAINAEGVG0GyGkGWASAFEQAACyAAKAIYIAZBAnRqKAIAIQcgAyAAKAIQIgFIIANBAE5xIQICQEGQ4gAoAgAiBUUEQCACDQFBlRtBshpBlgFBvCQQAAALIAINAEGVG0GyGkGWASAFEQAAIAQoAgAhAQsCQCAAKAIYIANBAnRqKAIAIAdHBEAgCCEGDAELIAYiAyABQQFrSARAA0AgAyIBQX5KIAFBAWoiAyAEKAIASHEhAgJAQZDiACgCACIFRQRAIAINAUGVG0GyGkGWAUG8JBAAAAsgAg0AQZUbQbIaQZYBIAURAAALIAAoAhggA0ECdGooAgAhCCABIAAoAhAiAkggAUEATnEhBwJAQZDiACgCACIFRQRAIAcNAUGVG0GyGkGWAUG8JBAAAAsgBw0AQZUbQbIaQZYBIAURAAAgBCgCACECCyAAKAIYIAFBAnRqIAg2AgAgAyACQQFrSA0ACwsgBCgCACEDAkBBkOIAKAIAIgFFBEAgAw0BQaMbQbIaQZsBQbIYEAAACyADDQBBoxtBshpBmwEgAREAAAsgBBBTIAQoAgAhAQsgASAGTA0BIAFBAUoNAAsLC9kTARF/IAIoAgAhFQJAAkACQCAGRQRAIAUoAgBBAEoNAUEAEEIPCyACKAIEIQ0gBUEANgIAIA1BAEwNAiAVQQBMIRIDQCASRQRAQQAhCyARIBVsQQJ0IRADQCACKAI8IAtBAnRqIBBqKAIAIgdB////B0sEQCAHQf///wdxIgYgB0EYdmohDANAAkAgBkEBdCIHIAIoAkRqLwEAIAFJDQAgAyAHai8BAA0AIAIoAkggBmotAABFDQAgBSgCACIHIAUoAgQiCUgEQCAFIAdBAWo2AgAgBSgCCCAHQQxsaiIHIAY2AgggByARNgIEIAcgCzYCAAwBC0GQ4gAoAgAaQf////8HIAUoAgQiB0EBdCIPIAlBAWoiCSAJIA9IGyAHQf7///8DShshFgJAQZDiACgCACIHRQRAIBZBq9Wq1QBIDQFB0BxBshpBuwFBxgoQAAALIBZBq9Wq1QBIDQBBlxxBshpBuwEgBxEAAAsgFkEMbEEBEEEhCSAFKAIIIQ8gBSgCACEKAkAgCUUNACAKQQBMDQAgCkEDcSETQQAhFEEAIQcgCkEETwRAIApB/P///wdxIRdBACEKA0AgCSAHQQxsIg5qIgggDiAPaiIOKQIANwIAIAggDigCCDYCCCAJIAdBAXJBDGwiDmoiCCAOIA9qIg4oAgg2AgggCCAOKQIANwIAIAkgB0ECckEMbCIOaiIIIA4gD2oiDigCCDYCCCAIIA4pAgA3AgAgCSAHQQNyQQxsIg5qIgggDiAPaiIOKAIINgIIIAggDikCADcCACAHQQRqIQcgCkEEaiIKIBdHDQALCyATBEADQCAJIAdBDGwiCmoiDiAKIA9qIgopAgA3AgAgDiAKKAIINgIIIAdBAWohByAUQQFqIhQgE0cNAAsLIAUoAgghDyAFKAIAIQoLIAkgCkEMbGoiByAGNgIIIAcgETYCBCAHIAs2AgAgBSAWNgIEIAUgCkEBajYCACAPEEIgBSAJNgIICyAGQQFqIgYgDEkNAAsLIAtBAWoiCyAVRw0ACwsgEUEBaiIRIA1HDQALIAUoAgAhBwwBC0EAIQYDQCAFKAIAIQwCQEGQ4gAoAgAiB0UEQCAGIAxIDQFBlRtBshpBlgFBvCQQAAALIAYgDEgNAEGVG0GyGkGWASAHEQAACyADIAZBDGwiByAFKAIIaigCCEEBdGovAQAEQCAFKAIAIQsCQEGQ4gAoAgAiDEUEQCAGIAtIDQFBlRtBshpBlgFBvCQQAAALIAYgC0gNAEGVG0GyGkGWASAMEQAACyAFKAIIIAdqQX82AggLIAZBAWoiBiAFKAIAIgdIDQALCyAHQQBMBEBBABBCDwtBACEWQQAhB0EAIRMDQEEAIQ5BACEGQQAhEANAIAchESAFKAIAIQwCQEGQ4gAoAgAiB0UEQCAGIAxIDQFBlRtBshpBlgFBvCQQAAALIAYgDEgNAEGVG0GyGkGWASAHEQAACyAGQQxsIgcgBSgCCGooAgAhCSAFKAIAIQsCQEGQ4gAoAgAiDEUEQCAGIAtIDQFBlRtBshpBlgFBvCQQAAALIAYgC0gNAEGVG0GyGkGWASAMEQAACyAFKAIIIAdqKAIEIQ0gBSgCACELAkBBkOIAKAIAIgxFBEAgBiALSA0BQZUbQbIaQZYBQbwkEAAACyAGIAtIDQBBlRtBshpBlgEgDBEAAAsCQAJAAkAgBSgCCCAHaigCCCIMQQBIDQAgAigCPCAJQQJ0aiESIAIoAkgiDyAMai0AACEUIAMgDEEBdGovAQAhCUH//wMhCgJAIAIoAkAgDEEDdGooAgQiC0E/cSIIQT9GDQAgDyASIA0gFWxBAnRqQQRrKAIAQf///wdxIAhqIghqLQAAIBRB/wFxRw0AIAMgCEEBdCIIai4BACIXQQBMDQBB//8DIAQgCGovAQAiCEECaiIKIApB//8DTxshCiAXIAkgCEH9/wNJGyEJCwJAIAtBBnZBP3EiCEE/Rg0AIA8gEiANQQFqIBVsQQJ0aigCAEH///8HcSAIaiIIai0AACAUQf8BcUcNACADIAhBAXQiCGouAQAiF0EATA0AIAQgCGovAQBBAmoiCCAKQf//A3EiCiAIIApJIggbIQogFyAJIAgbIQkLAkAgC0EMdkE/cSIIQT9GDQAgDyASIA0gFWxBAnRqKAIEQf///wdxIAhqIghqLQAAIBRB/wFxRw0AIAMgCEEBdCIIai4BACIXQQBMDQAgBCAIai8BAEECaiIIIApB//8DcSIKIAggCkkiCBshCiAXIAkgCBshCQsCQAJAIAtBEnZBP3EiC0E/Rg0AIA8gEiANQQFrIBVsQQJ0aigCAEH///8HcSALaiILai0AACAUQf8BcUcNACADIAtBAXQiDWouAQAiC0EATA0AIAQgDWovAQBBAmoiDSAKQf//A3EiEiANIBJJIg0bIQogDQ0BCyAJIQsgCUH//wNxRQ0BCyAFKAIAIQ0CQEGQ4gAoAgAiCUUEQCAGIA1IDQFBlRtBshpBlgFBvCQQAAALIAYgDUgNAEGVG0GyGkGWASAJEQAACyAFKAIIIAdqQX82AgggECATSARAIBEgEEEDdGogDK0gCq1CMIYgC61C//8Dg0IghoSENwIAIBBBAWohEAwCC0H/////ByATQQF0IgcgE0EBaiIJIAcgCUobIBNB/v///wNKGyETQZDiACgCABoCQEGQ4gAoAgAiB0UEQCATQYCAgIABSA0BQdAcQbIaQbsBQcYKEAAACyATQYCAgIABSA0AQZccQbIaQbsBIAcRAAALAkAgE0EDdEEBEEEiB0UNACAQQQBMDQBBACESQQAhCSAQQQRPBEAgEEH8////B3EhCEEAIQ8DQCAHIAlBA3QiDWogDSARaikCADcCACAHIA1BCHIiFGogESAUaikCADcCACAHIA1BEHIiFGogESAUaikCADcCACAHIA1BGHIiDWogDSARaikCADcCACAJQQRqIQkgD0EEaiIPIAhHDQALCyAQQQNxIg9FDQADQCAHIAlBA3QiDWogDSARaikCADcCACAJQQFqIQkgEkEBaiISIA9HDQALCyAHIBBBA3RqIAytIAqtQjCGIAutQv//A4NCIIaEhDcCACAREEIgEEEBaiEQDAILIA5BAWohDgsgESEHCyAGQQFqIgYgBSgCACIMSA0AC0EAIQYgEEEASgRAA0BBkOIAKAIAGkGQ4gAoAgAaIAMgByAGQQN0aiIMKAIAQQF0IgtqIAwvAQQ7AQBBkOIAKAIAGiAEIAtqIAwvAQY7AQAgBkEBaiIGIBBHDQALIAUoAgAhDAsgDCAORg0BIAEEQCAWQQFqIhYgAE4NAgsgDEEASg0ACwsgBxBCC/gCAQd/AkBBkOIAKAIAIgRFBEAgAUGr1arVAEgNAUHQHEGyGkG7AUHGChAAAAsgAUGr1arVAEgNAEGXHEGyGkG7ASAEEQAACwJAIAFBDGxBARBBIgRFDQAgACgCACIDQQBMDQAgACgCCCEAIANBA3EhBkEAIQEgA0EETwRAIANB/P///wdxIQdBACEDA0AgBCABQQxsIgJqIgUgACACaiICKQIANwIAIAUgAigCCDYCCCAEIAFBAXJBDGwiAmoiBSAAIAJqIgIoAgg2AgggBSACKQIANwIAIAQgAUECckEMbCICaiIFIAAgAmoiAigCCDYCCCAFIAIpAgA3AgAgBCABQQNyQQxsIgJqIgUgACACaiICKAIINgIIIAUgAikCADcCACABQQRqIQEgA0EEaiIDIAdHDQALCyAGRQ0AA0AgBCABQQxsIgNqIgIgACADaiIDKQIANwIAIAIgAygCCDYCCCABQQFqIQEgCEEBaiIIIAZHDQALCyAEC8oEAQx/IAIgAWsiAkEASgRAQQEgAkEobiICIAJBAU0bIQ0DQCAAIAxBKGwiAmoiBCABIAJqIggpAgA3AgAgBCAIKQIINwIIIARBADYCGCAEQgA3AhAgCCgCGCEFIARBEGogCCgCECIDEFkgBCADNgIQAkAgA0EATA0AIAQoAhghBiADQQNxIQlBACEKQQAhAiADQQRPBEAgA0H8////B3EhDkEAIQsDQCAGIAJBAnQiA2ogAyAFaigCADYCACAGIANBBHIiB2ogBSAHaigCADYCACAGIANBCHIiB2ogBSAHaigCADYCACAGIANBDHIiA2ogAyAFaigCADYCACACQQRqIQIgC0EEaiILIA5HDQALCyAJRQ0AA0AgBiACQQJ0IgNqIAMgBWooAgA2AgAgAkEBaiECIApBAWoiCiAJRw0ACwsgBEEANgIkIARCADcCHCAIKAIkIQUgBEEcaiAIKAIcIgMQWSAEIAM2AhwCQCADQQBMDQAgBCgCJCEGIANBA3EhCUEAIQpBACECIANBBE8EQCADQfz///8HcSEEQQAhCwNAIAYgAkECdCIDaiADIAVqKAIANgIAIAYgA0EEciIHaiAFIAdqKAIANgIAIAYgA0EIciIHaiAFIAdqKAIANgIAIAYgA0EMciIDaiADIAVqKAIANgIAIAJBBGohAiALQQRqIgsgBEcNAAsLIAlFDQADQCAGIAJBAnQiA2ogAyAFaigCADYCACACQQFqIQIgCkEBaiIKIAlHDQALCyAMQQFqIgwgDUcNAAsLC8ICAQl/IAAoAgQgAUgEQAJAQZDiACgCACIDRQRAIAFBgICAgAJIDQFB0BxBshpBuwFBxgoQAAALIAFBgICAgAJIDQBBlxxBshpBuwEgAxEAAAsgAUECdEEBEEEiBEUEQA8LIAAoAgghBQJAIAAoAgAiAkEATA0AIAJBA3EhB0EAIQMgAkEETwRAIAJB/P///wdxIQgDQCAEIANBAnQiAmogAiAFaigCADYCACAEIAJBBHIiBmogBSAGaigCADYCACAEIAJBCHIiBmogBSAGaigCADYCACAEIAJBDHIiAmogAiAFaigCADYCACADQQRqIQMgCUEEaiIJIAhHDQALCyAHRQ0AA0AgBCADQQJ0IgJqIAIgBWooAgA2AgAgA0EBaiEDIApBAWoiCiAHRw0ACwsgBRBCIAAgATYCBCAAIAQ2AggLCxAAIAAgAUH83QAoAgARBAALEwAgAARAIABBgN4AKAIAEQIACwuwAQEFfSADIAIqAgAgASoCACIEkyIFIAAqAgAgBJOUIAIqAgggASoCCCIEkyIHIAAqAgggBJOUkiIEIAUgBZQgByAHlJIiCJUgBCAIQwAAAABeGyIEOAIAAkAgBEMAAAAAXUUEQEMAAIA/IQYgBEMAAIA/XkUNAQsgAyAGOAIAIAYhBAsgBCAFlCABKgIAkiAAKgIAkyIFIAWUIAQgB5QgASoCCJIgACoCCJMiBCAElJILiwECBH8EfSACQQBMBEBBAA8LIAJBAWshBCAAKgIIIQcDQAJAIAEgBEEMbGoiBioCCCIJIAdeIAEgAyIEQQxsaiIDKgIIIgggB15GDQAgACoCACADKgIAIgogByAIkyAGKgIAIAqTlCAJIAiTlZJdRQ0AIAVBAXMhBQsgBEEBaiIDIAJHDQALIAVBAXELwgICB30FfyACQQBMBEBBAA8LIAJBAWshDANAIAEgDEEMbGoiDyoCACEFIAEgDUEMbGoiECoCACEGIAAqAgAhCwJAIA8qAggiCCAAKgIIIgleIBAqAggiByAJXkYNACALIAYgCSAHkyAFIAaTlCAIIAeTlZJdRQ0AIA5BAXMhDgtDAAAAACEKIAQgDEECdCIMaiIQIAYgBZMiBiALIAWTlCAHIAiTIgcgCSAIk5SSIgUgBiAGlCAHIAeUkiIIlSAFIAhDAAAAAF4bIgU4AgACQCAFQwAAAABdRQRAQwAAgD8hCiAFQwAAgD9eRQ0BCyAQIAo4AgAgCiEFCyADIAxqIAUgBpQgDyoCAJIgACoCAJMiBiAGlCAFIAeUIA8qAgiSIAAqAgiTIgUgBZSSOAIAIA0iDEEBaiINIAJHDQALIA5BAXEL/gICAn8DfQJ9IAFBA04EQEECIQYDQCACIAZBAnRqIAAgBkEMbGoiByoCACAAKgIAIgiTIAdBBGsqAgAgACoCCCIKk5QgB0EMayoCACAIkyAHKgIIIAqTlJMiCDgCACAJQ28SgzogCCAIQ28SgzpdG5IhCSAGQQFqIgYgAUcNAAsgAUEBayEHIAMgCZQhCkMAAAAAIQhBAiEGA0AgCCACIAZBAnRqKgIAIgOSIQkCQCAIIApfRQ0AIAkgCl5FDQAgCiAIkyADlQwDCyAJIQggBkEBaiIGIAFHDQALIAchBkMAAIA/DAELIAFBAWshBkMAAIA/CyEIIAUgBJEiCSAIlCIKIAAgBkEMbGoiBioCAJRDAACAPyAJkyIDIAAqAgCUIAlDAACAPyAIk5QiCCAGQQxrKgIAlJKSOAIAIAUgCiAGKgIElCADIAAqAgSUIAggBkEIayoCAJSSkjgCBCAFIAogBioCCJQgAyAAKgIIlCAIIAZBBGsqAgCUkpI4AggLcAEFfyAABEAgACgCMCICQQBKBEAgACgCRCEDA0AgAyABQTxsIgRqIgUtADRBAXEEQCAFKAIsEFsgACgCRCIDIARqQgA3AiwgACgCMCECCyABQQFqIgEgAkgNAAsLIAAoAjwQWyAAKAJEEFsgABBbCwumBAINfwN9IwBBIGsiBiQAAkAgAUUNACACKAIIIggoAjRBAEwNAEF/IANBB3FBBHMgA0F/RhsiC0H/AXEhDANAAkAgAigCKCAKQSRsaiIELQAfIAxHDQAgAigCDCAELwEcQQV0aiIHKAIAQX9GDQAgBiAEKgIYIhE4AhQgCCoCRCESIAYgETgCHCAGIBI4AhgCQCAAIAEgBEEMaiAGQRRqIAZBCGoQZCIIRQ0AIAYqAggiEiAEKgIMkyIRIBGUIAYqAhAiEyAEKgIUkyIRIBGUkiAEKgIYIhEgEZReDQAgAigCECAHLwEGQQxsaiIFIBI4AgAgBioCDCERIAUgEzgCCCAFIBE4AgQgAigCBCIJQX9HBEAgAiACKAIUIAlBDGxqIgUoAgQ2AgQgBSALOgAJIAVBAToACCAFIAg2AgAgBUEAOwEKIAUgBygCADYCBCAHIAk2AgALIAQtAB5BAXFFDQAgASgCBCIFQX9GDQAgASABKAIUIAVBDGxqIgcoAgQ2AgQgASgCDCEJIAQvARwhDSAAKAJEIQ4gAigCACEPIAAoAkwhECAAKAJQIQQgByADOgAJIAdB/wE6AAggB0EAOwEKIAcgDSAPIAQgEGp0IAIgDmtBPG0gBHRycjYCACAHIAkgCEF/IAR0QX9zcUH//wNxQQV0aiIEKAIANgIEIAQgBTYCAAsgAigCCCEICyAKQQFqIgogCCgCNEgNAAsLIAZBIGokAAvmCwIPfRt/IwBBMGsiGiQAAkAgAUUNACABKAIIIhUoAhhBAEwNAANAIAEoAgwgIEEFdGoiHC0AHiIhBEAgHEEEaiEiIBxBEGohKkEAIRsDQAJAICogG0EBdCIVai4BACIfQQBODQAgA0F/RyAfQf8BcSIWIANHcQ0AIAAhFyABKAIQIhMgFSAiai8BAEEMbGoiIyEUIBMgIiAbQQFqIhVBACAVICFHG0EBdGovAQBBDGxqIiQhEyAWQQdxQQRzIR0gGkEgaiErQwAAAAAhBEMAAAAAIQVDAAAAACEHQwAAAAAhCEMAAAAAIQlBACEZQQAhHkMAAAAAIQpDAAAAACELQwAAAAAhDAJAIAJFDQACQAJAAkAgHUF7cSIlDgMAAgECCyAUKgIIIgQgEyoCCCIFIAQgBV0iFRshByAFIAQgFRshCCATIBQgFRsqAgQhBSAUIBMgFRsqAgQhBCAUKgIAIQoMAQsgFCoCACIEIBMqAgAiBSAEIAVdIhUbIQcgBSAEIBUbIQggEyAUIBUbKgIEIQUgFCATIBUbKgIEIQQgFCoCCCEKCyACIBcoAkRrQTxtIRQgAigCCCImKAIYIidBAEwNACACKAIAIBcoAlAiEyAXKAJManQgFCATdHIhLCAEIAUgBJMgCCAHk5UiDSAHlJMhDiAIQwrXI7ySIQ8gB0MK1yM8kiEQIB1B//8BcUGAgAJyIRUgAigCDCEtA0ACQCAtIB5BBXRqIhQtAB4iF0UNACAUQQRqISggFEEQaiEdQQAhFANAAkAgHSAUQQF0IhNqLwEAIBVHBEAgFEEBaiEUDAELIAIoAhAiFiATIChqLwEAQQxsaiETQwAAAAAhBAJAAkACQCAlDgMAAgECCyATKgIAIQQMAQsgEyoCCCEECyAUQQFqIRQgCiAEkyIEjCAEIARDAAAAAF0bQwrXIzxeDQAgFiAoIBRBACAUIBdHG0EBdGovAQBBDGxqIRYCQAJ/AkACQCAlDgMAAwEDCyAWKgIIIgQgEyoCCCIFIAQgBV4iGBshCSAFIAQgGBshBSAWIBMgGBshKSATIBYgGBsMAQsgFioCACIEIBMqAgAiBSAEIAVeIhgbIQkgBSAEIBgbIQUgFiATIBgbISkgEyAWIBgbCyETICkqAgQhDCATKgIEIQsLIBAgBUMK1yM8kiIEIAQgEF0bIgQgDyAJQwrXI7ySIgYgBiAPXhsiBl4NAAJAIAwgC5MgCSAFk5UiESAElCALIBEgBZSTIhKSIA0gBJQgDpKTIgQgESAGlCASkiANIAaUIA6SkyIGlEMAAAAAXQ0AIAQgBJQgJioCRCIEIASSIgQgBJQiBF8NACAGIAaUIARfRQ0BCyAZQQRODQIgGiAZQQN0aiIUIAcgBSAFIAddGzgCACAUIAggCSAIIAldGzgCBCArIBlBAnRqIB4gLHI2AgAgGUEBaiEZICYoAhghJwwCCyAUIBdHDQALCyAeQQFqIh4gJ0gNAAsLIBkiFEEATA0AIB9B+wFxIRggASgCBCEXQQAhFgNAIBchE0F/IRcCQCATQX9GDQAgASABKAIUIBNBDGxqIhUoAgQiFzYCBCAaQSBqIBZBAnRqKAIAIRkgFSAfOgAJIBUgGzoACCAVIBk2AgAgFSAcKAIANgIEIBwgEzYCACAVQwAAAABDAACAPwJ9AkACQCAYDgMAAwEDCyAaIBZBA3RqKgIAICMqAggiBJMgJCoCCCAEkyIFlQwBCyAaIBZBA3RqKgIAICMqAgAiBJMgJCoCACAEkyIFlQsiBiAaIBZBA3RqKgIEIASTIAWVIgQgBCAGXSITGyIFIAVDAACAP14bQwAAf0OUEKQBIAVDAAAAAF0b/AE6AAsgFUMAAAAAQwAAgD8gBCAGIBMbIgYgBkMAAIA/XhtDAAB/Q5QQpAEgBkMAAAAAXRv8AToACgsgFkEBaiIWIBRHDQALCyAbQQFqIhsgIUcNAAsgASgCCCEVCyAgQQFqIiAgFSgCGEgNAAsLIBpBMGokAAsvAQF/IAFFBEBBAA8LIAEoAgAgACgCUCICIAAoAkxqdCABIAAoAkRrQTxtIAJ0cgvtCgIJfRB/IwBBsARrIg8kACAPIAIqAgAiCiADKgIAIgaTOAKkBCAPIAIqAgQiDCADKgIEIgeTOAKoBCADKgIIIQUgAioCCCEIIA8gDCAHkjgCnAQgDyAKIAaSOAKYBCAPIAggBZI4AqAEIA8gCCAFkzgCrAQCfyAAIRAgD0GkBGohFCAPQZgEaiEVIA9BEGohHAJAIAEiESgCJCIOBEAgESAQKAJEa0E8bSETIBEoAggiAygCMCIXQQBMDQEgESgCACAQKAJMIBAoAlAiEGp0IBMgEHRyIRkgAyoCYCINIAMqAlAiCSADKgJcIgcgFCoCCCILIAcgC10bIAkgC14bIAmTlPwBQf7/A3EhFiANIAMqAkwiCyADKgJYIgggFCoCBCIFIAUgCF4bIAUgC10bIAuTlPwBQf7/A3EhGCANIAMqAkgiBSADKgJUIgogFCoCACIGIAYgCl4bIAUgBl4bIAWTlPwBQf7/A3EhFCANIAkgByAVKgIIIgYgBiAHXhsgBiAJXRsgCZOUQwAAgD+S/AFBAXIhGiANIAsgCCAVKgIEIgkgCCAJXRsgCSALXRsgC5OUQwAAgD+S/AFBAXIhGyANIAUgCiAVKgIAIgkgCSAKXhsgBSAJXhsgBZOUQwAAgD+S/AFBAXIhFSAOIBdBBHRqIREDQEEAIQMgDi8BBiAUTwRAIBUgDi8BAE8hAwtBACEQIA4vAQggGE8EQCAbIA4vAQJPIANxIRALAn8CQAJAIA4vAQogFkkEQCAOKAIMQQBOIRNBACEDDAELIA4oAgwiF0EATiETIBogDi8BBE8gEHEhAyAXQQBIDQAgA0UNACASQYABTg0AIBwgEkECdGogFyAZcjYCACASQQFqIRIMAQsgEw0AIAMNACAOIA4oAgxBBHRrDAELIA5BEGoLIg4gEUkNAAsMAQsgESAQKAJEa0E8bSEOQQAgESgCCCIbKAIYIhhBAEwNARogESgCACAQKAJQIgMgECgCTGp0IA4gA3RyIRkgESgCDCEaA0ACQCAaIBZBBXRqIgMtAB9BwAFxQcAARg0AQQEhDiARKAIQIhAgAy8BBEEMbGoiEyoCCCEFIBMqAgQhByATKgIAIQgCQCADLQAeIhNBAU0EQCAFIQogByEGIAghDAwBCyADQQRqIRcgCCEMIAchBiAFIQoDQCAFIBAgFyAOQQF0ai8BAEEMbGoiAyoCCCINIAUgDV4bIQUgByADKgIEIgkgByAJXhshByAIIAMqAgAiCyAIIAteGyEIIAogDSAKIA1dGyEKIAYgCSAGIAldGyEGIAwgCyALIAxeGyEMIA5BAWoiDiATRw0ACwtBACEDAn9BACAUKgIAIAheDQAaQQAgFSoCACAMXQ0AGkEBCyEOAkAgFCoCBCAHXg0AIBUqAgQgBl0NACAOIQMLIBQqAgggBV4NACADQQFzIBUqAgggCl1yDQAgEkGAAU4NACAcIBJBAnRqIBYgGXI2AgAgEkEBaiESIBsoAhghGAsgFkEBaiIWIBhIDQALCyASCyIQQQBKBEBD//9/fyEGQQAhAwNAIA9BEGogA0ECdGooAgAhDiAPQQA6AAMgACAOIAIgD0EEaiAPQQNqEGUgAioCBCAPKgIIIgyTIQUgDyoCDCEIIA8qAgQhCgJ9IA8tAANBAUYEQCAFjCAFIAVDAAAAAF0bIAEoAggqAkSTIgUgBZRDAAAAACAFQwAAAABeGwwBCyACKgIIIAiTIgcgB5QgAioCACAKkyIHIAeUIAUgBZSSkgsiBSAGXQRAIAQgCDgCCCAEIAw4AgQgBCAKOAIAIA4hHSAFIQYLIANBAWoiAyAQRw0ACwsgD0GwBGokACAdC9UGAhF/A30jAEEQayIHJAAgACgCREF/IAAoAkx0QX9zIAEgACgCUCIFdnFBPGxqIgooAgwhACADIAIqAgA4AgAgAyACKgIEOAIEIAMgAioCCDgCCAJAIAAgAUF/IAV0QX9zcUEFdGoiCyEVIAogFSACIANBBGoQZgRAIARFDQEgBEEBOgAADAELIAQEQCAEQQA6AAALIAstAB9BwAFxQcAARgRAIAIgCigCECIBIAsvAQRBDGxqIgAgASALLwEGQQxsaiIBIAdBCGoQXBogAyABKgIAIAAqAgAiF5MgByoCCCIWlCAXkjgCACADIBYgASoCBCAAKgIEIheTlCAXkjgCBCADIBYgASoCCCAAKgIIIheTlCAXkjgCCAwBCyALQQRqIRAgCkEQaiERIApBHGohEiAKKAIYIAsgCigCDGtBBXVBDGxqIg0tAAkhBUP//39/IRZBACEEA0AgCigCICANKAIEIARqQQJ0aiIALQADIgFBFXEEQAJ/IAAtAAAiBiALLQAeIgVJBEAgECAGQQF0ai8BACEGIBEMAQsgDSgCACAGIAVrQf8BcWohBiASCyEJAn8gBSAALQABIg5NBEAgDSgCACAOIAVrQf8BcWohDiASDAELIBAgDkEBdGovAQAhDiARCyETIAZBDGwhBiAJKAIAIQkCfyAFIAAtAAIiD00EQCANKAIAIA8gBWtB/wFxaiEPIBIMAQsgECAPQQF0ai8BACEPIBELIRQgBiAJaiEFIBQoAgAgD0EMbGohBiATKAIAIA5BDGxqIQkgAUEQcQRAIBYgAiAGIAUgB0EMahBcIhheBEAgByoCDCEXIAYhDCAYIRYgBSEICyAALQADIQELAkAgAUEBcQR/IBYgAiAFIAkgB0EMahBcIhheBEAgByoCDCEXIAUhDCAYIRYgCSEICyAALQADBSABC0EEcUUNACACIAkgBiAHQQxqEFwiGCAWXUUNACAHKgIMIRcgBiEIIAkhDCAYIRYLIA0tAAkhBQsgBEEBaiIEIAVB/wFxSQ0ACyADIAgqAgAgDCoCACIWkyAXlCAWkjgCACADIAgqAgQgDCoCBCIWkyAXlCAWkjgCBCADIAgqAgggDCoCCCIWkyAXlCAWkjgCCAsgB0EQaiQAC+cKAhF/CH0jAEHQAGsiCiQAAkAgAS0AH0HAAXFBwABGDQACQCABLQAeIgdFDQAgB0EBcSEMIAFBBGohCCAAKAIQIQsgB0EBRwRAIAdB/gFxIQkDQCAKIARBDGxqIgUgCyAIIARBAXRqLwEAQQxsaiIGKgIAOAIAIAUgBioCBDgCBCAFIAYqAgg4AgggCiAEQQFyIgZBDGxqIgUgCyAIIAZBAXRqLwEAQQxsaiIGKgIAOAIAIAUgBioCBDgCBCAFIAYqAgg4AgggBEECaiEEIA1BAmoiDSAJRw0ACwsgDEUNACAKIARBDGxqIgUgCyAIIARBAXRqLwEAQQxsaiIEKgIAOAIAIAUgBCoCBDgCBCAFIAQqAgg4AggLIAAoAgwhBCAAKAIYIQUgAiAKIAcQXSEUIANFDQAgFEUNACAFIAEgBGtBBXVBDGxqIgUtAAkEQCABQQRqIQwgAEEQaiEOIABBHGohD0EAIQgDQCACIQcCfyAAKAIgIAUoAgQgCGpBAnRqIgYtAAAiCyABLQAeIgRJBEAgDCALQQF0ai8BACELIA4MAQsgBSgCACALIARrQf8BcWohCyAPCygCACALQQxsaiEQAn8gBCAGLQABIglNBEAgBSgCACAJIARrQf8BcWohCSAPDAELIAwgCUEBdGovAQAhCSAOCygCACAJQQxsaiETIApBzABqIQlBACERAkACfyAEIAYtAAIiBk0EQCAFKAIAIAYgBGtB/wFxaiEEIA8MAQsgDCAGQQF0ai8BACEEIA4LKAIAIARBDGxqIhIqAgAgECoCACIXkyIcIBMqAgggECoCCCIWkyIalCASKgIIIBaTIhUgEyoCACAXkyIYlJMiGYtDvTeGNV0NACAaIAcqAgAgF5MiGpQgGCAHKgIIIBaTIhaUkyIXjCAXIBlDAAAAAF0iBxsiF0MAAAAAYEUNACAcIBaUIBUgGpSTIhaMIBYgBxsiFkMAAAAAYEUNACAZjCAZIAcbIhogFyAWkmBFDQAgCSAQKgIEIhkgEioCBCAZkyAXlCATKgIEIBmTIBaUkiAalZI4AgBBASERCyARBEAgAyAKKgJMOAIADAMLIAhBAWoiCCAFLQAJSQ0ACwsgAUEEaiEQIABBEGohESAAQRxqIRIgACgCGCABIAAoAgxrQQV1QQxsaiEGQQAhD0P//39/IRVBACELQQAhDgNAAn8gACgCICAGKAIEIAtqQQJ0aiIELQAAIgggAS0AHiIFSQRAIBAgCEEBdGovAQAhDSARDAELIAYoAgAgCCAFa0H/AXFqIQ0gEgshCQJ/IAUgBC0AASIHTQRAIBIhDCAGKAIAIAcgBWtB/wFxagwBCyARIQwgECAHQQF0ai8BAAtBDGwhEyAMKAIAIQwgCSgCACANQQxsaiEJAn8gBSAELQACIg1NBEAgBigCACANIAVrQf8BcWohBSASDAELIBAgDUEBdGovAQAhBSARCygCACAFQQxsaiEHAkAgCCANSwRAIAQtAAMiBUEQcUUNAQsgFSACIAcgCSAKQcwAahBcIhheBEAgCioCTCEbIAkhDiAHIQ8gGCEVCyAELQADIQULIAwgE2ohCAJAIAVBAXFFBEAgBC0AACAELQABSQ0BCyAVIAIgCSAIIApBzABqEFwiGF4EQCAKKgJMIRsgCCEOIAkhDyAYIRULIAQtAAMhBQsCQCAFQQRxRQRAIAQtAAEgBC0AAkkNAQsgAiAIIAcgCkHMAGoQXCIYIBVdRQ0AIAoqAkwhGyAHIQ4gCCEPIBghFQsgC0EBaiILIAYtAAlJDQALIAMgDioCBCAPKgIEIhWTIBuUIBWSOAIACyAKQdAAaiQAIBQLSQEBfyACQX8gACgCTHRBf3MgASAAKAJQIgJ2cUE8bCIEIAAoAkRqNgIAIAMgACgCRCAEaigCDCABQX8gAnRBf3NxQQV0ajYCAAsNACAAKAJEIAFBPGxqCzQAIAIgASoCACAAKgIckyAAKgIolY78ADYCACADIAEqAgggACoCJJMgACoCLJWO/AA2AgALrgEBBX8gAUUEQEGAgICAeA8LQYiAgIB4IQUCQEF/IAAoAkwiBHRBf3MgASAAKAJQIgZ2cSIHIAAoAjBPDQAgACgCRCAHQTxsaiIIKAIAQX8gACgCSHRBf3MgASAEIAZqdnFHDQAgCCgCCCIERQ0AIAFBfyAGdEF/c3EiASAEKAIYTw0AIAIgCDYCACADIAAoAkQgB0E8bGooAgwgAUEFdGo2AgBBgICAgAQhBQsgBQt0AQR/AkAgAUUNAEF/IAAoAkwiBXRBf3MgASAAKAJQIgR2cSICIAAoAjBPDQAgACgCRCACQTxsaiICKAIAQX8gACgCSHRBf3MgASAEIAVqdnFHDQAgAigCCCIARQ0AIAAoAhggAUF/IAR0QX9zcUshAwsgAwuUBAENfyADIAMoAgAiEEEBajYCACAEIBBBBHRqIQUgAiABayIRQQFGBEAgBSAAIAFBBHRqIgYvAQA7AQAgBSAGLwECOwECIAUgBi8BBDsBBCAFIAYvAQY7AQYgBSAGLwEIOwEIIAUgBi8BCjsBCiAFIAYoAgw2AgwPCyAFIAAgAUEEdGoiCS8BACIKOwEAIAUgCS8BAiILOwECIAUgCS8BBCIMOwEEIAUgCS8BBiINOwEGIAUgCS8BCCIOOwEIIAUgCS8BCiIPOwEKIAIgAUEBaiIISgRAA0AgACAIQQR0aiIGLwEAIgcgCkH//wNxSQRAIAUgBzsBACAHIQoLIAYvAQIiByALQf//A3FJBEAgBSAHOwECIAchCwsgBi8BBCIHIAxB//8DcUkEQCAFIAc7AQQgByEMCyAGLwEGIgcgDUH//wNxSwRAIAUgBzsBBiAHIQ0LIAYvAQgiByAOQf//A3FLBEAgBSAHOwEIIAchDgsgBi8BCiIGIA9B//8DcUsEQCAFIAY7AQogBiEPCyAIQQFqIgggAkcNAAsLIAkgEUEQQRBBESAOIAtrQf//A3EiCCANIAprQf//A3EiB0siBhtBESAPIAxrQf//A3EgCCAHIAYbTSIIGyIHQRIgBhsgByAIGxCiASAAIAEgEUECbSABaiIGIAMgBBBsIAAgBiACIAMgBBBsIAUgECADKAIAazYCDAsXACAALwECIgAgAS8BAiIBSyAAIAFJawsXACAALwEEIgAgAS8BBCIBSyAAIAFJawsXACAALwEAIgAgAS8BACIBSyAAIAFJawtkAQJ/IABB//8DNgKAAgNAIAAgAUECdGoiAkKAgID8g4CAwD83AgAgAkKAgID8g4CAwD83AgggAkKAgID8g4CAwD83AhAgAkKAgID8g4CAwD83AhggAUEIaiIBQcAARw0ACyAACxwBAX9ByABBABBaIgAEQCAAQQBByAD8CwALIAALTwEBfyAABEAgACgCPCIBBEAgARCDAQsgACgCQCIBBEAgARCDAQsgACgCRCIBBEAgARCGAQsgACgCPBBbIAAoAkAQWyAAKAJEEFsgABBbCwutAwAgAkH//wNMBH8gACABNgIAAkACQCAAKAJAIgEEQCABKAIMIAJODQEgARCDASAAKAJAEFsgAEEANgJACyAAQRhBABBaIAIgAkEEbUEBayIBQQF2IAFyIgFBAnYgAXIiAUEEdiABciIBQQh2IAFyIgFBEHYgAXJBAWoQggE2AkAMAQsgARCEAQsCQCAAKAI8IgFFBEAgAEEYQQAQWkHAAEEgEIIBNgI8DAELIAEQhAELAkACQCAAKAJEIgEEQCABKAIEIAJODQEgARCGASAAKAJEEFsgAEEANgJECyAAQQxBABBaIgBBADYCCCAAIAI2AgQgAEEANgIAIAAoAgQhAgJAQZziACgCACIBRQRAIAJBAEoNAUGsJkGfFEGhAUHgHRAAAAsgAkEASg0AQawmQZ8UQaEBIAERAAAgACgCBCECCyAAIAJBAnRBBGpBABBaNgIAIAAoAgAhAQJAQZziACgCACICRQRAIAENAUHnFkGfFEGkAUHgHRAAAAsgAQ0AQecWQZ8UQaQBIAIRAAALIAA2AkQMAQsgAUEANgIIC0GAgICABAVBiICAgHgLC8EBAQJ/IAAoAgAhBQJAQZziACgCACIGRQRAIAUNAUHfC0HuD0GBBEHoChAAAAsgBQ0AQd8LQe4PQYEEIAYRAAAgACgCACEFC0GIgICAeCEGIAUgARBrIQUCQCACRQ0AIAVFDQAgAigCAEH/////B3FB////+wdLDQAgAigCBEH/////B3FB////+wdLDQAgA0UNACACKAIIQf////8HcUGAgID8B08NACAAKAIAIAEgAiADIAQQZUGAgICABCEGCyAGC80FAgR/An1BiICAgHghCwJAIAEoAgAiCkF/Rg0AIAIoAhQhCSAKIQgDQCADIAkgCEEMbGoiCCgCAEcEQCAIKAIEIghBf0cNAQwCCwsgAS0AH0HAAXFBwABGBEADQCADIAkgCkEMbGoiCCgCAEYEQCAGIAIoAhAgASAILQAIQQF0ai8BBEEMbGoiCCoCADgCACAGIAgqAgQ4AgQgBiAIKgIIOAIIIAcgCCoCADgCACAHIAgqAgQ4AgQgByAIKgIIOAIIQYCAgIAEDwsgCCgCBCIKQX9HDQAMAgsACyAELQAfQcABcUHAAEYEQCAEKAIAIghBf0YNASAFKAIUIQMDQCAAIAMgCEEMbGoiCCgCAEYEQCAGIAUoAhAgBCAILQAIQQF0ai8BBEEMbGoiCCoCADgCACAGIAgqAgQ4AgQgBiAIKgIIOAIIIAcgCCoCADgCACAHIAgqAgQ4AgQgByAIKgIIOAIIQYCAgIAEDwsgCCgCBCIIQX9HDQALDAELIAFBBGoiAyAILQAIIglBAWogAS0AHnBBAXRqLwEAIQogBiACKAIQIgEgAyAJQQF0ai8BAEEMbGoiAyoCADgCACAGIAMqAgQ4AgQgBiADKgIIOAIIIAcgASAKQQxsaiIJKgIAOAIAIAcgCSoCBDgCBCAHIAkqAgg4AghBgICAgAQhCyAILQAJQf8BRg0AIAgtAAshCiAILQAKIghFIApB/wFxQf8BRnENACAGIAkqAgAgAyoCACIMkyAIs0OBgIA7lCINlCAMkjgCACAGIAkqAgQgAyoCBCIMkyANlCAMkjgCBCAGIAkqAgggAyoCCCIMkyANlCAMkjgCCCAHIAkqAgAgAyoCACIMkyAKQf8BcbNDgYCAO5QiDZQgDJI4AgAgByAJKgIEIAMqAgQiDJMgDZQgDJI4AgQgByAJKgIIIAMqAggiDJMgDZQgDJI4AggLIAsL7QcCDH8FfSMAQZABayIFJAAgACgCACEEAkBBnOIAKAIAIgZFBEAgBA0BQd8LQe4PQZoEQasKEAAACyAEDQBB3wtB7g9BmgQgBhEAACAAKAIAIQQLIAVBADYCjAEgBUEANgKIAUGIgICAeCEAIAQgASAFQYwBaiAFQYgBahBqIQQCQCACRQ0AIARBAEgNACACKAIAQf////8HcUH////7B0sNACACKAIEQf////8HcUH////7B0sNACADRQ0AIAIoAghB/////wdxQYCAgPwHTw0AIAMCfQJ/AkACQAJAAkAgBSgCiAEiBC0AHiIHBEAgB0EBcSEKIARBBGohASAFKAKMASgCECEIIAdBAWsiCUUEQEEAIQQMAgsgB0H+AXEhC0EAIQQDQCAFQUBrIARBDGxqIgAgCCABIARBAXRqLwEAQQxsaiIGKgIAOAIAIAAgBioCBDgCBCAAIAYqAgg4AgggBUFAayAEQQFyIgZBDGxqIgAgCCABIAZBAXRqLwEAQQxsaiIGKgIAOAIAIAAgBioCBDgCBCAAIAYqAgg4AgggBEECaiEEIAxBAmoiDCALRw0ACwwBCyACIAVBQGtBACAFQSBqIAUQXhoMAQsgCgRAIAVBQGsgBEEMbGoiACAIIAEgBEEBdGovAQBBDGxqIgQqAgA4AgAgACAEKgIEOAIEIAAgBCoCCDgCCAsgAiAFQUBrIAcgBUEgaiAFEF4NAEEAIQJBASAHQQFGDQMaIAlBA3EhDUEAIQAgBSoCICEQIAdBAmtB/wFxQQNPDQFBASEEDAILIAMgAioCADgCACADIAIqAgQ4AgQgAioCCAwDCyAJQXxxIQ5BASEEQQAhBgNAIAVBIGogBEEDaiIBQQJ0aioCACIRIAVBIGogBEECaiIIQQJ0aioCACISIAVBIGogBEEBaiIMQQJ0aioCACITIAVBIGogBEECdGoqAgAiFCAQIBAgFF4iCxsiECAQIBNeIgobIhAgECASXiIJGyIQIBAgEV4iDxshECABIAggDCAEIAIgCxsgChsgCRsgDxshAiAEQQRqIQQgBkEEaiIGIA5HDQALCyANBEADQCAFQSBqIARBAnRqKgIAIhEgECAQIBFeIgYbIRAgBCACIAYbIQIgBEEBaiEEIABBAWoiACANRw0ACwsgBwshBCADIAVBQGsgAkEBaiAEcEEMbGoiBCoCACAFQUBrIAJBDGxqIgAqAgAiEZMgBSACQQJ0aioCACIQlCARkjgCACADIBAgBCoCBCAAKgIEIhGTlCARkjgCBCAQIAQqAgggACoCCCIRk5QgEZILOAIIQYCAgIAEIQALIAVBkAFqJAAgAAvrEAIVfw19IwBBMGsiCCQAIAAoAgAhBwJAQZziACgCACIJRQRAIAcNAUHfC0HuD0HCBUHYChAAAAsgBw0AQd8LQe4PQcIFIAkRAAALAkAgBEUEQEGIgICAeCEADAELIAhCADcCJCAIQQA6ACwgCEIANwIcIAhB////+wc2AhggCCABNgIUIAggADYCECAIQdjDADYCDCABIQcgAiEJIAMhFCAIQQxqIREjAEGwAWsiBiQAIAAiASgCACEOAkBBnOIAKAIAIg1FBEAgDg0BQd8LQe4PQZ4HQYIOEAAACyAODQBB3wtB7g9BngcgDREAAAtBiICAgHghDQJAIAdFDQAgByoCACIbvEH/////B3FB////+wdLDQAgByoCBCIcvEH/////B3FB////+wdLDQAgCUUNACAHKgIIIh28Qf////8HcUGAgID8B08NACAJKgIAIh68Qf////8HcUH////7B0sNACAJKgIEIh+8Qf////8HcUH////7B0sNACARRQ0AIBRFDQAgCSoCCCIgvEH/////B3FBgICA/AdPDQAgBiAdICCTOAKsASAGIBwgH5M4AqgBIAYgGyAekzgCpAEgBiAdICCSOAKgASAGIBwgH5I4ApwBIAYgGyAekjgCmAEgASgCACAGQaQBaiAGQZQBaiAGQZABahBpIAEoAgAgBkGYAWogBkGMAWogBkGIAWoQaSAGKAKQASIJIAYoAogBIgJMBEAgBigCjAEhDQNAIA0gBigClAEiDk4EQANAQQAhB0EAIQAgASgCACICKAI8IAIoAjggCUHB8NjAfWwgDkHD5prteGxqcUECdGooAgAiAgRAA0ACQCACKAIIIgNFDQAgAygCCCAORw0AIAMoAgwgCUcNACAAQSBODQAgBiAAQQJ0aiACNgIAIABBAWohAAsgAigCOCICDQALCyAAIg1BAEoEQANAIAYgB0ECdGooAgAhCiAGQaQBaiEPIAZBmAFqIRBBACELQQAhEyMAQYACayIMJAAgASIDKAIAIQICQEGc4gAoAgAiAEUEQCACDQFB3wtB7g9B3wVBhx4QAAALIAINAEHfC0HuD0HfBSAAEQAACwJAAkAgCigCJCIABEAgDyoCCCEfIAooAggiAioCXCEcIAIqAlAhISACKgJgISIgDyoCBCEgIAIqAlghHSACKgJMISMgDyoCACEkIAIqAlQhHiACKgJIIRsgECoCCCElIBAqAgQhJiAQKgIAIScgAigCMCECIAMoAgAgChBjIRkgAkEATA0CICIgISAcIB8gHCAfXRsgHyAhXRsgIZOU/AFB/v8DcSETICIgIyAdICAgHSAgXRsgICAjXRsgI5OU/AFB/v8DcSESICIgGyAeICQgHiAkXRsgGyAkXhsgG5OU/AFB/v8DcSEPICIgISAcICUgHCAlXRsgISAlXhsgIZOUQwAAgD+S/AFBAXIhECAiICMgHSAmIB0gJl0bICMgJl4bICOTlEMAAIA/kvwBQQFyIRggIiAbIB4gJyAeICddGyAbICdeGyAbk5RDAACAP5L8AUEBciEaIAAgAkEEdGohFgNAQQAhAiAALwEGIA9PBEAgGiAALwEATyECC0EAIQMgAC8BCCASTwRAIBggAC8BAk8gAnEhAwsgFgJ/AkACQCAALwEKIBNJBEAgACgCDEEATiEXQQAhAgwBCyAAKAIMIhVBAE4hFyAQIAAvAQRPIANxIQIgFUEASA0AIAJFDQAgCigCDCIDIBVBBXRqLwEcIgIgFC8BgAJxRQ0BIAIgFC8BggJxDQEgC0ECdCICIAxBgAFqaiAVIBlyNgIAIAIgDGogAyAAKAIMQQV0ajYCACALQR9GBEAgESAKIAwgDEGAAWpBICARKAIAKAIIEQcAQQAhCwwCCyALQQFqIQsMAQsgFw0AIAINACAAIAAoAgxBBHRrDAELIABBEGoLIgBLDQALDAELIAMoAgAgChBjIRggCigCCCIWKAIYQQBMDQEDQAJAIAooAgwgE0EFdGoiEi0AH0HAAXFBwABGDQAgEi8BHCIAIBQvAYACcUUNACAAIBQvAYICcQ0AQQEhACAKKAIQIgMgEi8BBEEMbGoiAioCCCEbIAIqAgQhHCACKgIAIR0CQCASLQAeIhdBAU0EQCAbIR4gHCEfIB0hIAwBCyASQQRqIRUgHSEgIBwhHyAbIR4DQCAbIAMgFSAAQQF0ai8BAEEMbGoiAioCCCIhIBsgIV4bIRsgHCACKgIEIiIgHCAiXhshHCAdIAIqAgAiIyAdICNeGyEdIB4gISAeICFdGyEeIB8gIiAfICJdGyEfICAgIyAgICNdGyEgIABBAWoiACAXRw0ACwtBASECAn9BASAPKgIAIB1eDQAaQQEgECoCACAgXQ0AGkEACyEAAkAgDyoCBCAcXg0AIBAqAgQgH10NACAAIQILIA8qAgggG14NACACIBAqAgggHl1yDQAgDCALQQJ0IgBqIBI2AgAgDEGAAWogAGogEyAYcjYCACALQR9GBEAgESAKIAwgDEGAAWpBICARKAIAKAIIEQcAIAooAgghFkEAIQsMAQsgC0EBaiELCyATQQFqIhMgFigCGEgNAAsLIAtBAEwNACARIAogDCAMQYABaiALIBEoAgAoAggRBwALIAxBgAJqJAAgB0EBaiIHIA1HDQALCyAOIAYoAowBIg1IIQcgDkEBaiEOIAcNAAsgBigCiAEhAgsgAiAJSiEHIAlBAWohCSAHDQALC0GAgICABCENCyAGQbABaiQAIA0iAEEASA0AIAQgCCgCHCIBNgIAQYCAgIAEIQAgBUUNACABRQ0AIAUgCCoCIDgCACAFIAgqAiQ4AgQgBSAIKgIoOAIICyAIQTBqJAAgAAu/BgICfwZ9IAAoAgAhBwJAQZziACgCACIGRQRAIAcNAUHfC0HuD0HECUH7GBAAAAsgBw0AQd8LQe4PQcQJIAYRAAALIAAoAkAhBwJAQZziACgCACIGRQRAIAcNAUG8F0HuD0HFCUH7GBAAAAsgBw0AQbwXQe4PQcUJIAYRAAALIAAoAkQhBwJAQZziACgCACIGRQRAIAcNAUGZDEHuD0HGCUH7GBAAAAsgBw0AQZkMQe4PQcYJIAYRAAALIABBEGoiBkIANwIAIABCADcCCCAAQYCAgIB4NgIEIABBADYCOCAAQgA3AjAgAEIANwIoIABCADcCICAAQgA3AhggACACNgIUIAYgATYCACADBEAgACADKgIAOAIYIAAgAyoCBDgCHCAAIAMqAgg4AiALIAQEQCAAIAQqAgA4AiQgACAEKgIEOAIoIAAgBCoCCDgCLAsgAEH////7BzYCOCAAQQA2AjQgACAFNgIwQYiAgIB4IQYCQCAAKAIAIAEQa0UNACAAKAIAIAIQayEHIANFDQAgB0UNACADKAIAQf////8HcUH////7B0sNACADKAIEQf////8HcUH////7B0sNACAERQ0AIAMoAghB/////wdxQYCAgPwHTw0AIAQoAgBB/////wdxQf////sHSw0AIAQoAgRB/////wdxQf////sHSw0AIAVFDQAgBCgCCEH/////B3FBgICA/AdPDQAgASACRgRAIABBgICAgAQ2AgRBgICAgAQPCyAAKAJAEIQBIAAoAkRBADYCCCAAKAJAIAFBABCFASICIAMqAgA4AgAgAiADKgIEOAIEIAIgAyoCCDgCCCACIAIoAhQiBkGAgIB4cTYCFCACQQA2AgwgAyoCCCEIIAQqAgghCSADKgIAIQogBCoCACELIAMqAgQhDCAEKgIEIQ0gAiABNgIYIAIgBkGAgICYfnFBgICAIHI2AhQgAiAJIAiTIgggCJQgCyAKkyIIIAiUIA0gDJMiCCAIlJKSkUN3vn8/lDgCECAAKAJEIgMgAygCCCIEQQFqNgIIIAMgBCACEIcBIAAgAjYCCEGAgICAAiEGIABBgICAgAI2AgQgACACKgIQOAIMCyAGC9AMAg9/A30jAEHgAGsiBCQAAkAgACgCBCIFQYCAgIACcUUNAAJAIAAoAgAgACgCEBBrBEAgACgCACAAKAIUEGsNAQtBgICAgHghBSAAQYCAgIB4NgIEDAELIARBADYCQAJAAkAgAAJ/AkACQCABQQBMDQADQCAAKAJEIgUoAggiA0UNASAFKAIAIgwoAgAhBiAFIANBAWsiAzYCCCAFIAwgA0ECdGooAgAQiAEgBiAGKAIUQf///59/cUGAgIDAAHI2AhQgCUEBaiEJIAYoAhgiECAAKAIURgRAIAAgBjYCCCAAKAIEQf///wdxQYCAgIAEcgwECyAEQQA2AiAgBEEANgIcIAAoAgAgECAEQSBqIARBHGoQakEASA0CQQAhDSAEQQA2AhggBEEANgIUAkAgBigCFEH///8HcSIFRQRAQQAhCkEA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ACgCFCACajYCFAsLC3MBBX8gACgCACIDLAAAQTBrIgJBCUsEQEEADwsDQEF/IQQgAUHMmbPmAE0EQEF/IAIgAUEKbCIBaiACIAFB/////wdzSxshBAsgACADQQFqIgI2AgAgAywAASEFIAQhASACIQMgBUEwayICQQpJDQALIAELtAQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAECBQMEBgcICQoLDA0ODxAREgsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACELABCwuIAQIDfwF+AkAgAEKAgICAEFQEQCAAIQUMAQsDQCABQQFrIgEgACAAQgqAIgVCCn59p0EwcjoAACAAQv////+fAVYhAiAFIQAgAg0ACwsgBUIAUgRAIAWnIQIDQCABQQFrIgEgAiACQQpuIgNBCmxrQTByOgAAIAJBCUshBCADIQIgBA0ACwsgAQvSAwIDfwF+IwBBgAJrIgckAAJAIAIgA0wNACAEQYDABHENAAJAIAIgA2siA0GAAiADQYACSSICGyIFRQ0AIAcgAToA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WgRAIANCAXwhAwwBCyACQoCAgICAgICACFINACADQgGDIAN8IQMLQgAgAyADQv////////8HViIAGyECIACtIAR8DAELAkAgAiADhFANACAEQv//AVINACADQgSGIAJCPIiEQoCAgICAgIAEhCECQv8PDAELIABB/ocBSwRAQgAhAkL/DwwBC0GA+ABBgfgAIARQIggbIgsgAGsiCUHwAEoEQEIAIQJCAAwBCyABQRBqIQogAiEEIAMgA0KAgICAgIDAAIQgCBsiAyEFAkBBgAEgCWsiCEHAAHEEQCACIAhBQGqthiEFQgAhBAwBCyAIRQ0AIAUgCK0iB4YgBEHAACAIa62IhCEFIAQgB4YhBAsgCiAENwMAIAogBTcDCAJAIAlBwABxBEAgAyAJQUBqrYghAkIAIQMMAQsgCUUNACADQcAAIAlrrYYgAiAJrSIEiIQhAiADIASIIQMLIAEgAjcDACABIAM3AwggASkDCEIEhiABKQMAIgNCPIiEIQICQCAAIAtHIAEpAxAgASkDGIRCAFJxrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILIAJCgICAgICAgAiFIAIgAkL/////////B1YiABshAiAArQshAyABQSBqJAAgBkKAgICAgICAgIB/gyADQjSGhCAChL85AwALwgMBA38jAEGgAWsiBCQAIAQgACAEQZ4BaiABGyIANgKUASAEIAFBAWsiBkEAIAEgBk8bNgKYASAEQQBBkAH8CwAgBEF/NgJMIARBGTYCJCAEQX82AlAgBCAEQZ8BajYCLCAEIARBlAFqNgJUIABBADoAAEEAIQYjAEHQAWsiBSQAIAUgAzYCzAEgBUGgAWpBAEEo/AsAIAUgBSgCzAE2AsgBAkBBACACIAVByAFqIAVB0ABqIAVBoAFqEKkBQQBIBEBBfyECDAELIAQoAkxBAEghASAEIAQoAgAiAEFfcTYCAAJ/AkACQCAEKAIwRQRAIARB0AA2AjAgBEEANgIcIARCADcDECAEKAIsIQYgBCAFNgIsDAELIAQoAhANAQtBfyAEEKcBDQEaCyAEIAIgBUHIAWogBUHQAGogBUGgAWoQqQELIQMgAEEgcSECIAYEQCAEQQBBACAEKAIkEQUAGiAEQQA2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aWdodCI6JWcsImNsaW1iIjolZywic2xvcGUiOiVnfSwiY2VsbCI6JWcsImNlbGxIZWlnaHQiOiVnLCJ0aWxlU2l6ZSI6JWQsImdyaWQiOlslZCwlZF0sInRpbGVzIjpbJWQsJWRdLCJib3VuZHMiOltbJWcsJWcsJWddLFslZywlZywlZ11dLCJzdGF0cyI6eyJ0aWxlcyI6JWQsInBvbHlzIjolZCwidmVydHMiOiVkLCJ0cmlhbmdsZXMiOiVkLCJ2b2x1bWVzIjolZCwibGlua3MiOiVkfSwibWV0YSI6JXN9AG9wdGltaXplUGF0aFZpc2liaWxpdHkAbmF2cXVlcnkAY2xvc2VzdFBvaW50T25Qb2x5Qm91bmRhcnkAYWxsb2NhdGVfYW5kX2NvcHkAZmluZE5lYXJlc3RQb2x5AGNsb3Nlc3RQb2ludE9uUG9seQBkaXZpZGVQb2x5AG9wdGltaXplUGF0aFRvcG9sb2d5AGN0eAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHJjQnVpbGRSZWdpb25zOiBSZWdpb24gSUQgb3ZlcmZsb3cAbV9uYXYATE5BViB2ZXJzaW9uICV1LCBleHBlY3RlZCAldQBjb250ZXh0AG1fbmV4dABtX2ZpcnN0AG1fb3Blbkxpc3QAdXBkYXRlTW92ZVJlcXVlc3QAcmF5Y2FzdABmaXhQYXRoU3RhcnQAbm8gcmFuZG9tIHBvaW50AGZpbmRSYW5kb21Qb2ludABubyBzdWNoIGFnZW50AGluaXQAZ2V0UG9seUhlaWdodAByZXNldABhIHZvbHVtZSBuZWVkcyBhdCBsZWFzdCAzIHBvaW50cwBnZXRQb3J0YWxQb2ludHMAZ2V0UG9seVdhbGxTZWdtZW50cwByY0J1aWxkQ29udG91cnMAZmluZENvcm5lcnMAcmNCdWlsZFJlZ2lvbnMAcXVlcnlQb2x5Z29ucwByY0ZpbHRlcldhbGthYmxlTG93SGVpZ2h0U3BhbnMAcmNGaWx0ZXJMZWRnZVNwYW5zAG5vIHRyaWFuZ2xlcwByY1Jhc3Rlcml6ZVRyaWFuZ2xlcwByY0ZpbHRlckxvd0hhbmdpbmdXYWxrYWJsZU9ic3RhY2xlcwBtX25vZGVzAHNldENvcnJpZG9yAFdhbGsgdG93YXJkcyBwb2x5Z29uIGNlbnRlciBmYWlsZWQgdG8gcmVhY2ggY2VudGVyAHNlZWRBcnJheVdpdGhQb2x5Q2VudGVyAGZpbHRlcgB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL0RldG91ci9Tb3VyY2UvRGV0b3VyTmF2TWVzaFF1ZXJ5LmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL1JlY2FzdC9Tb3VyY2UvUmVjYXN0LmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL1JlY2FzdC9Tb3VyY2UvUmVjYXN0Q29udG91ci5jcHAAdGhpcmRfcGFydHkvcmVjYXN0bmF2aWdhdGlvbi9EZXRvdXJDcm93ZC9Tb3VyY2UvRGV0b3VyUGF0aENvcnJpZG9yLmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL1JlY2FzdC9Tb3VyY2UvUmVjYXN0RmlsdGVyLmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL1JlY2FzdC9Tb3VyY2UvUmVjYXN0UmFzdGVyaXphdGlvbi5jcHAAdGhpcmRfcGFydHkvcmVjYXN0bmF2aWdhdGlvbi9SZWNhc3QvU291cmNlL1JlY2FzdFJlZ2lvbi5jcHAAdGhpcmRfcGFydHkvcmVjYXN0bmF2aWdhdGlvbi9SZWNhc3QvU291cmNlL1JlY2FzdE1lc2hEZXRhaWwuY3BwAHRoaXJkX3BhcnR5L3JlY2FzdG5hdmlnYXRpb24vUmVjYXN0L1NvdXJjZS9SZWNhc3RNZXNoLmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL0RldG91ci9Tb3VyY2UvRGV0b3VyTm9kZS5jcHAAdGhpcmRfcGFydHkvcmVjYXN0bmF2aWdhdGlvbi9EZXRvdXJDcm93ZC9Tb3VyY2UvRGV0b3VyT2JzdGFjbGVBdm9pZGFuY2UuY3BwAHRoaXJkX3BhcnR5L3JlY2FzdG5hdmlnYXRpb24vRGV0b3VyQ3Jvd2QvU291cmNlL0RldG91ckNyb3dkLmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL0RldG91ckNyb3dkL1NvdXJjZS9EZXRvdXJQcm94aW1pdHlHcmlkLmNwcAB0aGlyZF9wYXJ0eS9yZWNhc3RuYXZpZ2F0aW9uL1JlY2FzdC9Tb3VyY2UvUmVjYXN0QXJlYS5jcHAAbV9oZWFwAG1vdmVQb3NpdGlvbgBtb3ZlT3Zlck9mZm1lc2hDb25uZWN0aW9uAG1fdnBlbgBtX3RwZW4AbV9zcGVuAG1fdmNwZW4AbV9wZW4AbmFuAG1fbm9kZVBvb2wAbV90aW55Tm9kZVBvb2wAZHROb2RlUG9vbABudWxsAGNyb3dkIGlzIGZ1bGwAcmNCdWlsZFBvbHlNZXNoRGV0YWlsAG1fdmVsAGZpbmFsaXplU2xpY2VkRmluZFBhdGhQYXJ0aWFsAHBvcF9iYWNrAG1fbnBhdGgAIW1fcGF0aABubyBwYXRoAG5wYXRoIDwgbV9tYXhQYXRoAGZpbmRTdHJhaWdodFBhdGgAZmluZFBhdGgAaW5pdFNsaWNlZEZpbmRQYXRoAGZpbmFsaXplU2xpY2VkRmluZFBhdGgAc3RhcnQgaXMgbm90IG5lYXIgdGhlIG5hdm1lc2gAdGFyZ2V0IGlzIG5vdCBuZWFyIHRoZSBuYXZtZXNoAGNlbnRlciBpcyBub3QgbmVhciB0aGUgbmF2bWVzaABwb3NpdGlvbiBpcyBub3QgbmVhciB0aGUgbmF2bWVzaAByY0J1aWxkUG9seU1lc2gAdGhpcmRfcGFydHkvcmVjYXN0bmF2aWdhdGlvbi9SZWNhc3QvSW5jbHVkZS9SZWNhc3RBbGxvYy5oAGJhc2ljX3N0cmluZwBpbmYAY2VsbFNpemUgPiAwLjBmAG1fc3NpemUAaSA+PSAwICYmIGkgPCBtX3NpemUAJWQgdGlsZXMg4oCUIHJhaXNlIHRoZSB0aWxlIHNpemUgb3IgdGhlIGNlbGwgc2l6ZQB0aWxlICVkLCVkOiB0b28gbWFueSB2ZXJ0aWNlcyAoJWQpIOKAlCBsb3dlciB0aGUgdGlsZSBzaXplAFJDX1NJWkVfTUFYIC8gc3RhdGljX2Nhc3Q8cmNTaXplVHlwZT4oc2l6ZW9mKFQpKSA+PSBzaXplADIxNDc0ODM2NDdMIC8gc3RhdGljX2Nhc3Q8cmNTaXplVHlwZT4oc2l6ZW9mKFQpKSA+PSBzaXplAGR0TmV4dFBvdzIobV9oYXNoU2l6ZSkgPT0gKHVuc2lnbmVkIGludCltX2hhc2hTaXplAGNlbGwgc2l6ZSAvIGhlaWdodCBtdXN0IGJlIHBvc2l0aXZlAGR0Tm9kZVF1ZXVlAGFkZFNhbXBsZQBub3QgYW4gTE5BViBmaWxlAHF1ZXJ5UG9seWdvbnNJblRpbGUAZmluZFJhbmRvbVBvaW50QXJvdW5kQ2lyY2xlAG1fcXVlcnkubGFzdEJlc3ROb2RlACFjdXJOb2RlAGdldFBhdGhUb05vZGUAbW92ZUFsb25nU3VyZmFjZQBmaW5kTG9jYWxOZWlnaGJvdXJob29kAHJjQnVpbGRDb21wYWN0SGVpZ2h0ZmllbGQAcmNCdWlsZERpc3RhbmNlRmllbGQATE5BViBwYXJhbXMgdHJ1bmNhdGVkAExOQVYgdGlsZXMgdHJ1bmNhdGVkAExvZyBtZXNzYWdlIHdhcyB0cnVuY2F0ZWQATE5BViBoZWFkZXIgdHJ1bmNhdGVkAGR0TmF2TWVzaFF1ZXJ5IGluaXQgZmFpbGVkAGR0Q3Jvd2QgaW5pdCBmYWlsZWQAdGlsZSAlZCwlZDogcmNCdWlsZENvbnRvdXJzIGZhaWxlZAB0aWxlICVkLCVkOiByY1Jhc3Rlcml6ZVRyaWFuZ2xlcyBmYWlsZWQAdGlsZSAlZCwlZDogcmNCdWlsZFBvbHlNZXNoRGV0YWlsIGZhaWxlZABmaW5kU3RyYWlnaHRQYXRoIGZhaWxlZAB0aWxlICVkLCVkOiByY0J1aWxkUG9seU1lc2ggZmFpbGVkAHRpbGUgJWQsJWQ6IHJlZ2lvbiBidWlsZCBmYWlsZWQAdGlsZSAlZCwlZDogcmNCdWlsZENvbXBhY3RIZWlnaHRmaWVsZCBmYWlsZWQAdGlsZSAlZCwlZDogcmNDcmVhdGVIZWlnaHRmaWVsZCBmYWlsZWQAdGlsZSAlZCwlZDogZHRDcmVhdGVOYXZNZXNoRGF0YSBmYWlsZWQAdGlsZSAlZCwlZDogcmNFcm9kZVdhbGthYmxlQXJlYSBmYWlsZWQAbGluayBhcmVhICVkIGlzIG5vdCAwLi4lZAB2b2x1bWUgYXJlYSAlZCBpcyBub3QgMC4uJWQAdHJpYW5nbGUgJWQ6IGFyZWEgJWQgaXMgbm90IDAuLiVkIG9yICVkAHJjTWFya0NvbnZleFBvbHlBcmVhAHJjRXJvZGVXYWxrYWJsZUFyZWEAb3BlcmF0b3JbXQBOQU4AY29udGV4dCAhPSBOVUxMAGNvbnRleHQgIT0gMEwASU5GAGluVmVydHNDb3VudCA8PSAxMgBtYXhDb3JuZXJzIG11c3QgYmUgYXQgbGVhc3QgMgBzdGFydFNwYW5JbmRleCAhPSAtMQBtYXhBZ2VudHMgbXVzdCBiZSBhdCBsZWFzdCAxAG1fbWF4Tm9kZXMgPiAwICYmIG1fbWF4Tm9kZXMgPD0gRFRfTlVMTF9JRFggJiYgbV9tYXhOb2RlcyA8PSAoMSA8PCBEVF9OT0RFX1BBUkVOVF9CSVRTKSAtIDEAbV9jYXBhY2l0eSA+IDAAbnBhdGggPiAwAG1fc2l6ZSA+IDAAcG9vbFNpemUgPiAwAHJjUmFzdGVyaXplVHJpYW5nbGVzOiBPdXQgb2YgbWVtb3J5LgByZW1vdmVWZXJ0ZXg6IHRyaWFuZ3VsYXRlKCkgcmV0dXJuZWQgYmFkIHJlc3VsdHMuAHJjQnVpbGRSZWdpb25zOiAlZCBvdmVybGFwcGluZyByZWdpb25zLgBtZXJnZUhvbGVzOiBGYWlsZWQgdG8gbWVyZ2UgY29udG91cnMgJXAgYW5kICVwLgBtZXJnZUhvbGVzOiBGYWlsZWQgdG8gZmluZCBtZXJnZSBwb2ludHMgZm9yICVwIGFuZCAlcC4AcmNCdWlsZENvbnRvdXJzOiBCYWQgb3V0bGluZSBmb3IgcmVnaW9uICVkLCBjb250b3VyIHNpbXBsaWZpY2F0aW9uIGlzIGxpa2VseSB0b28gYWdncmVzc2l2ZS4AcmNCdWlsZFBvbHlNZXNoOiBUaGUgcmVzdWx0aW5nIG1lc2ggaGFzIHRvbyBtYW55IHBvbHlnb25zICVkIChtYXggJWQpLiBEYXRhIGNhbiBiZSBjb3JydXB0ZWQuAHJjQnVpbGRQb2x5TWVzaDogVGhlIHJlc3VsdGluZyBtZXNoIGhhcyB0b28gbWFueSB2ZXJ0aWNlcyAlZCAobWF4ICVkKS4gRGF0YSBjYW4gYmUgY29ycnVwdGVkLgByY0J1aWxkUG9seU1lc2g6IEFkamFjZW5jeSBmYWlsZWQuAHJjQnVpbGRQb2x5TWVzaDogRmFpbGVkIHRvIHJlbW92ZSBlZGdlIHZlcnRleCAlZC4AcmNCdWlsZFBvbHlNZXNoRGV0YWlsOiBTaHJpbmtpbmcgdHJpYW5nbGUgY291bnQgZnJvbSAlZCB0byBtYXggJWQuAG1lcmdlUmVnaW9uSG9sZXM6IEZhaWxlZCB0byBhbGxvY2F0ZWQgZGlhZ3MgJWQuAHJjQnVpbGRQb2x5TWVzaDogVG9vIG1hbnkgdmVydGljZXMgJWQuAHJjQnVpbGRQb2x5TWVzaDogQmFkIHRyaWFuZ3VsYXRpb24gQ29udG91ciAlZC4AcmNCdWlsZENvbnRvdXJzOiBFeHBhbmRpbmcgbWF4IGNvbnRvdXJzIGZyb20gJWQgdG8gJWQuAHJjQnVpbGRDb250b3VyczogTXVsdGlwbGUgb3V0bGluZXMgZm9yIHJlZ2lvbiAlZC4AZGVsYXVuYXlIdWxsOiBSZW1vdmluZyBkYW5nbGluZyBmYWNlICVkIFslZCwlZCwlZF0uAGJ1aWxkUG9seURldGFpbDogQ291bGQgbm90IHRyaWFuZ3VsYXRlIHBvbHlnb24gKCVkIHZlcnRzKS4AcmVtb3ZlVmVydGV4OiBUb28gbWFueSBwb2x5Z29ucyAlZCAobWF4OiVkKS4AcmNCdWlsZFBvbHlNZXNoOiBUb28gbWFueSBwb2x5Z29ucyAlZCAobWF4OiVkKS4AYWRkRWRnZTogVG9vIG1hbnkgZWRnZXMgKCVkLyVkKS4AcmNCdWlsZFBvbHlNZXNoRGV0YWlsOiBPdXQgb2YgbWVtb3J5ICdwb2x5JyAoJWQpLgByY0J1aWxkUG9seU1lc2hEZXRhaWw6IE91dCBvZiBtZW1vcnkgJ25ld3YnICglZCkuAHJjQnVpbGRQb2x5TWVzaERldGFpbDogT3V0IG9mIG1lbW9yeSAnbmV3dCcgKCVkKS4AZXJvZGVXYWxrYWJsZUFyZWE6IE91dCBvZiBtZW1vcnkgJ2Rpc3QnICglZCkuAHJjQnVpbGREaXN0YW5jZUZpZWxkOiBPdXQgb2YgbWVtb3J5ICdkc3QnICglZCkuAHJjQnVpbGRQb2x5TWVzaDogT3V0IG9mIG1lbW9yeSAnbmV4dFZlcnQnICglZCkuAHJjQnVpbGRQb2x5TWVzaDogT3V0IG9mIG1lbW9yeSAnZmlyc3RWZXJ0JyAoJWQpLgByY0J1aWxkUG9seU1lc2g6IE91dCBvZiBtZW1vcnkgJ21lc2gucG9seXMnICglZCkuAHJlbW92ZVZlcnRleDogT3V0IG9mIG1lbW9yeSAncG9seXMnICglZCkuAHJjQnVpbGRQb2x5TWVzaDogT3V0IG9mIG1lbW9yeSAncG9seXMnICglZCkuAHJlbW92ZVZlcnRleDogT3V0IG9mIG1lbW9yeSAndHZlcnRzJyAoJWQpLgByY0J1aWxkQ29udG91cnM6IE91dCBvZiBtZW1vcnkgJ3J2ZXJ0cycgKCVkKS4AcmNCdWlsZFBvbHlNZXNoRGV0YWlsOiBPdXQgb2YgbWVtb3J5ICdkbWVzaC52ZXJ0cycgKCVkKS4AcmNCdWlsZFBvbHlNZXNoOiBPdXQgb2YgbWVtb3J5ICdtZXNoLnZlcnRzJyAoJWQpLgByY0J1aWxkQ29udG91cnM6IE91dCBvZiBtZW1vcnkgJ3ZlcnRzJyAoJWQpLgByY0J1aWxkQ29udG91cnM6IE91dCBvZiBtZW1vcnkgJ3JlZ2lvbnMnICglZCkuAG1lcmdlQW5kRmlsdGVyUmVnaW9uczogT3V0IG9mIG1lbW9yeSAncmVnaW9ucycgKCVkKS4AcmNCdWlsZFBvbHlNZXNoRGV0YWlsOiBPdXQgb2YgbWVtb3J5ICdkbWVzaC50cmlzJyAoJWQpLgByZW1vdmVWZXJ0ZXg6IE91dCBvZiBtZW1vcnkgJ3RyaXMnICglZCkuAHJjQnVpbGRQb2x5TWVzaDogT3V0IG9mIG1lbW9yeSAndHJpcycgKCVkKS4AcmVtb3ZlVmVydGV4OiBPdXQgb2YgbWVtb3J5ICdwcmVncycgKCVkKS4AcmNCdWlsZFBvbHlNZXNoOiBPdXQgb2YgbWVtb3J5ICdtZXNoLnJlZ3MnICglZCkuAHJjQnVpbGRQb2x5TWVzaDogT3V0IG9mIG1lbW9yeSAndmZsYWdzJyAoJWQpLgByY0J1aWxkUG9seU1lc2g6IE91dCBvZiBtZW1vcnkgJ21lc2guZmxhZ3MnICglZCkuAHJjQnVpbGRDb250b3VyczogT3V0IG9mIG1lbW9yeSAnZmxhZ3MnICglZCkuAHJjQnVpbGRDb250b3VyczogT3V0IG9mIG1lbW9yeSAnaG9sZXMnICglZCkuAHJjQnVpbGRQb2x5TWVzaERldGFpbDogT3V0IG9mIG1lbW9yeSAnZG1lc2gubWVzaGVzJyAoJWQpLgByZW1vdmVWZXJ0ZXg6IE91dCBvZiBtZW1vcnkgJ2VkZ2VzJyAoJWQpLgBjYW5SZW1vdmVWZXJ0ZXg6IE91dCBvZiBtZW1vcnkgJ2VkZ2VzJyAoJWQpLgByY0J1aWxkUG9seU1lc2g6IE91dCBvZiBtZW1vcnkgJ2luZGljZXMnICglZCkuAHJjQnVpbGRQb2x5TWVzaERldGFpbDogT3V0IG9mIG1lbW9yeSAnYm91bmRzJyAoJWQpLgByZW1vdmVWZXJ0ZXg6IE91dCBvZiBtZW1vcnkgJ3BhcmVhcycgKCVkKS4AcmNCdWlsZFBvbHlNZXNoOiBPdXQgb2YgbWVtb3J5ICdtZXNoLmFyZWFzJyAoJWQpLgByY0J1aWxkUmVnaW9uczogT3V0IG9mIG1lbW9yeSAndG1wJyAoJWQpLgByZW1vdmVWZXJ0ZXg6IE91dCBvZiBtZW1vcnkgJ2hyZWcnICglZCkuAHJlbW92ZVZlcnRleDogT3V0IG9mIG1lbW9yeSAndGhvbGUnICglZCkuAHJlbW92ZVZlcnRleDogT3V0IG9mIG1lbW9yeSAnaG9sZScgKCVkKS4AcmNCdWlsZENvbnRvdXJzOiBPdXQgb2YgbWVtb3J5ICdob2xlJyAoJWQpLgByY0J1aWxkRGlzdGFuY2VGaWVsZDogT3V0IG9mIG1lbW9yeSAnc3JjJyAoJWQpLgByY0J1aWxkUG9seU1lc2hEZXRhaWw6IE91dCBvZiBtZW1vcnkgJ2hwLmRhdGEnICglZCkuAHJlbW92ZVZlcnRleDogT3V0IG9mIG1lbW9yeSAnaGFyZWEnICglZCkuAGFkZFRpbGUgZmFpbGVkIChzdGF0dXMgMHgleCkAaW5kZXggJWQgb3V0IG9mIHJhbmdlICglZCB2ZXJ0aWNlcykAKG51bGwpAHJjQnVpbGRDb21wYWN0SGVpZ2h0ZmllbGQ6IE91dCBvZiBtZW1vcnkgJ2NoZi5zcGFucycgKCVkKQByY0J1aWxkQ29tcGFjdEhlaWdodGZpZWxkOiBPdXQgb2YgbWVtb3J5ICdjaGYuY2VsbHMnICglZCkAcmNCdWlsZENvbXBhY3RIZWlnaHRmaWVsZDogT3V0IG9mIG1lbW9yeSAnY2hmLmFyZWFz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");
223565
+ }
223566
+ function getBinarySync(file) {
223567
+ if (ArrayBuffer.isView(file)) {
223568
+ return file;
223569
+ }
223570
+ if (file == wasmBinaryFile && wasmBinary) {
223571
+ return new Uint8Array(wasmBinary);
223572
+ }
223573
+ if (readBinary2) {
223574
+ return readBinary2(file);
223575
+ }
223576
+ throw "both async and sync fetching of the wasm failed";
223577
+ }
223578
+ async function getWasmBinary(binaryFile) {
223579
+ return getBinarySync(binaryFile);
223580
+ }
223581
+ async function instantiateArrayBuffer(binaryFile, imports) {
223582
+ try {
223583
+ var binary = await getWasmBinary(binaryFile);
223584
+ var instance = await WebAssembly.instantiate(binary, imports);
223585
+ return instance;
223586
+ } catch (reason) {
223587
+ err(`failed to asynchronously prepare wasm: ${reason}`);
223588
+ abort(reason);
223589
+ }
223590
+ }
223591
+ async function instantiateAsync(binary, binaryFile, imports) {
223592
+ return instantiateArrayBuffer(binaryFile, imports);
223593
+ }
223594
+ function getWasmImports() {
223595
+ return { env: wasmImports, wasi_snapshot_preview1: wasmImports };
223596
+ }
223597
+ async function createWasm() {
223598
+ function receiveInstance(instance, module) {
223599
+ wasmExports = instance.exports;
223600
+ wasmMemory = wasmExports["memory"];
223601
+ updateMemoryViews();
223602
+ wasmTable = wasmExports["__indirect_function_table"];
223603
+ removeRunDependency("wasm-instantiate");
223604
+ return wasmExports;
223605
+ }
223606
+ addRunDependency("wasm-instantiate");
223607
+ function receiveInstantiationResult(result2) {
223608
+ return receiveInstance(result2["instance"]);
223609
+ }
223610
+ var info2 = getWasmImports();
223611
+ if (Module["instantiateWasm"]) {
223612
+ return new Promise((resolve14, reject) => {
223613
+ Module["instantiateWasm"](info2, (mod, inst) => {
223614
+ resolve14(receiveInstance(mod, inst));
223615
+ });
223616
+ });
223617
+ }
223618
+ wasmBinaryFile ??= findWasmBinary();
223619
+ try {
223620
+ var result = await instantiateAsync(wasmBinary, wasmBinaryFile, info2);
223621
+ var exports = receiveInstantiationResult(result);
223622
+ return exports;
223623
+ } catch (e2) {
223624
+ readyPromiseReject(e2);
223625
+ return Promise.reject(e2);
223626
+ }
223627
+ }
223628
+
223629
+ class ExitStatus {
223630
+ name = "ExitStatus";
223631
+ constructor(status2) {
223632
+ this.message = `Program terminated with exit(${status2})`;
223633
+ this.status = status2;
223634
+ }
223635
+ }
223636
+ var callRuntimeCallbacks = (callbacks) => {
223637
+ while (callbacks.length > 0) {
223638
+ callbacks.shift()(Module);
223639
+ }
223640
+ };
223641
+ var onPostRuns = [];
223642
+ var addOnPostRun = (cb) => onPostRuns.push(cb);
223643
+ var onPreRuns = [];
223644
+ var addOnPreRun = (cb) => onPreRuns.push(cb);
223645
+ var base64Decode = (b64) => {
223646
+ if (ENVIRONMENT_IS_NODE) {
223647
+ var buf = Buffer.from(b64, "base64");
223648
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.length);
223649
+ }
223650
+ var b1, b2, i3 = 0, j = 0, bLength = b64.length;
223651
+ var output = new Uint8Array((bLength * 3 >> 2) - (b64[bLength - 2] == "=") - (b64[bLength - 1] == "="));
223652
+ for (;i3 < bLength; i3 += 4, j += 3) {
223653
+ b1 = base64ReverseLookup[b64.charCodeAt(i3 + 1)];
223654
+ b2 = base64ReverseLookup[b64.charCodeAt(i3 + 2)];
223655
+ output[j] = base64ReverseLookup[b64.charCodeAt(i3)] << 2 | b1 >> 4;
223656
+ output[j + 1] = b1 << 4 | b2 >> 2;
223657
+ output[j + 2] = b2 << 6 | base64ReverseLookup[b64.charCodeAt(i3 + 3)];
223658
+ }
223659
+ return output;
223660
+ };
223661
+ var noExitRuntime = true;
223662
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder : undefined;
223663
+ var UTF8ArrayToString = (heapOrArray, idx = 0, maxBytesToRead = NaN) => {
223664
+ var endIdx = idx + maxBytesToRead;
223665
+ var endPtr = idx;
223666
+ while (heapOrArray[endPtr] && !(endPtr >= endIdx))
223667
+ ++endPtr;
223668
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
223669
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
223670
+ }
223671
+ var str = "";
223672
+ while (idx < endPtr) {
223673
+ var u0 = heapOrArray[idx++];
223674
+ if (!(u0 & 128)) {
223675
+ str += String.fromCharCode(u0);
223676
+ continue;
223677
+ }
223678
+ var u1 = heapOrArray[idx++] & 63;
223679
+ if ((u0 & 224) == 192) {
223680
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
223681
+ continue;
223682
+ }
223683
+ var u2 = heapOrArray[idx++] & 63;
223684
+ if ((u0 & 240) == 224) {
223685
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
223686
+ } else {
223687
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
223688
+ }
223689
+ if (u0 < 65536) {
223690
+ str += String.fromCharCode(u0);
223691
+ } else {
223692
+ var ch = u0 - 65536;
223693
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
223694
+ }
223695
+ }
223696
+ return str;
223697
+ };
223698
+ var UTF8ToString = (ptr, maxBytesToRead) => ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
223699
+ var ___assert_fail = (condition, filename, line, func) => abort(`Assertion failed: ${UTF8ToString(condition)}, at: ` + [filename ? UTF8ToString(filename) : "unknown filename", line, func ? UTF8ToString(func) : "unknown function"]);
223700
+ var __abort_js = () => abort("");
223701
+ var getHeapMax = () => 2147483648;
223702
+ var alignMemory = (size, alignment) => Math.ceil(size / alignment) * alignment;
223703
+ var growMemory = (size) => {
223704
+ var b = wasmMemory.buffer;
223705
+ var pages = (size - b.byteLength + 65535) / 65536 | 0;
223706
+ try {
223707
+ wasmMemory.grow(pages);
223708
+ updateMemoryViews();
223709
+ return 1;
223710
+ } catch (e2) {}
223711
+ };
223712
+ var _emscripten_resize_heap = (requestedSize) => {
223713
+ var oldSize = HEAPU8.length;
223714
+ requestedSize >>>= 0;
223715
+ var maxHeapSize = getHeapMax();
223716
+ if (requestedSize > maxHeapSize) {
223717
+ return false;
223718
+ }
223719
+ for (var cutDown = 1;cutDown <= 4; cutDown *= 2) {
223720
+ var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown);
223721
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
223722
+ var newSize = Math.min(maxHeapSize, alignMemory(Math.max(requestedSize, overGrownHeapSize), 65536));
223723
+ var replacement = growMemory(newSize);
223724
+ if (replacement) {
223725
+ return true;
223726
+ }
223727
+ }
223728
+ return false;
223729
+ };
223730
+ var stringToUTF8Array = (str, heap, outIdx, maxBytesToWrite) => {
223731
+ if (!(maxBytesToWrite > 0))
223732
+ return 0;
223733
+ var startIdx = outIdx;
223734
+ var endIdx = outIdx + maxBytesToWrite - 1;
223735
+ for (var i3 = 0;i3 < str.length; ++i3) {
223736
+ var u2 = str.charCodeAt(i3);
223737
+ if (u2 >= 55296 && u2 <= 57343) {
223738
+ var u1 = str.charCodeAt(++i3);
223739
+ u2 = 65536 + ((u2 & 1023) << 10) | u1 & 1023;
223740
+ }
223741
+ if (u2 <= 127) {
223742
+ if (outIdx >= endIdx)
223743
+ break;
223744
+ heap[outIdx++] = u2;
223745
+ } else if (u2 <= 2047) {
223746
+ if (outIdx + 1 >= endIdx)
223747
+ break;
223748
+ heap[outIdx++] = 192 | u2 >> 6;
223749
+ heap[outIdx++] = 128 | u2 & 63;
223750
+ } else if (u2 <= 65535) {
223751
+ if (outIdx + 2 >= endIdx)
223752
+ break;
223753
+ heap[outIdx++] = 224 | u2 >> 12;
223754
+ heap[outIdx++] = 128 | u2 >> 6 & 63;
223755
+ heap[outIdx++] = 128 | u2 & 63;
223756
+ } else {
223757
+ if (outIdx + 3 >= endIdx)
223758
+ break;
223759
+ heap[outIdx++] = 240 | u2 >> 18;
223760
+ heap[outIdx++] = 128 | u2 >> 12 & 63;
223761
+ heap[outIdx++] = 128 | u2 >> 6 & 63;
223762
+ heap[outIdx++] = 128 | u2 & 63;
223763
+ }
223764
+ }
223765
+ heap[outIdx] = 0;
223766
+ return outIdx - startIdx;
223767
+ };
223768
+ var stringToUTF8 = (str, outPtr, maxBytesToWrite) => stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
223769
+ var lengthBytesUTF8 = (str) => {
223770
+ var len = 0;
223771
+ for (var i3 = 0;i3 < str.length; ++i3) {
223772
+ var c4 = str.charCodeAt(i3);
223773
+ if (c4 <= 127) {
223774
+ len++;
223775
+ } else if (c4 <= 2047) {
223776
+ len += 2;
223777
+ } else if (c4 >= 55296 && c4 <= 57343) {
223778
+ len += 4;
223779
+ ++i3;
223780
+ } else {
223781
+ len += 3;
223782
+ }
223783
+ }
223784
+ return len;
223785
+ };
223786
+ var uleb128Encode = (n2, target) => {
223787
+ if (n2 < 128) {
223788
+ target.push(n2);
223789
+ } else {
223790
+ target.push(n2 % 128 | 128, n2 >> 7);
223791
+ }
223792
+ };
223793
+ var sigToWasmTypes = (sig) => {
223794
+ var typeNames = { i: "i32", j: "i64", f: "f32", d: "f64", e: "externref", p: "i32" };
223795
+ var type = { parameters: [], results: sig[0] == "v" ? [] : [typeNames[sig[0]]] };
223796
+ for (var i3 = 1;i3 < sig.length; ++i3) {
223797
+ type.parameters.push(typeNames[sig[i3]]);
223798
+ }
223799
+ return type;
223800
+ };
223801
+ var generateFuncType = (sig, target) => {
223802
+ var sigRet = sig.slice(0, 1);
223803
+ var sigParam = sig.slice(1);
223804
+ var typeCodes = { i: 127, p: 127, j: 126, f: 125, d: 124, e: 111 };
223805
+ target.push(96);
223806
+ uleb128Encode(sigParam.length, target);
223807
+ for (var paramType of sigParam) {
223808
+ target.push(typeCodes[paramType]);
223809
+ }
223810
+ if (sigRet == "v") {
223811
+ target.push(0);
223812
+ } else {
223813
+ target.push(1, typeCodes[sigRet]);
223814
+ }
223815
+ };
223816
+ var convertJsFunctionToWasm = (func, sig) => {
223817
+ if (typeof WebAssembly.Function == "function") {
223818
+ return new WebAssembly.Function(sigToWasmTypes(sig), func);
223819
+ }
223820
+ var typeSectionBody = [1];
223821
+ generateFuncType(sig, typeSectionBody);
223822
+ var bytes = [0, 97, 115, 109, 1, 0, 0, 0, 1];
223823
+ uleb128Encode(typeSectionBody.length, bytes);
223824
+ bytes.push(...typeSectionBody);
223825
+ bytes.push(2, 7, 1, 1, 101, 1, 102, 0, 0, 7, 5, 1, 1, 102, 0, 0);
223826
+ var module = new WebAssembly.Module(new Uint8Array(bytes));
223827
+ var instance = new WebAssembly.Instance(module, { e: { f: func } });
223828
+ var wrappedFunc = instance.exports["f"];
223829
+ return wrappedFunc;
223830
+ };
223831
+ var wasmTableMirror = [];
223832
+ var wasmTable;
223833
+ var getWasmTableEntry = (funcPtr) => {
223834
+ var func = wasmTableMirror[funcPtr];
223835
+ if (!func) {
223836
+ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
223837
+ }
223838
+ return func;
223839
+ };
223840
+ var updateTableMap = (offset, count) => {
223841
+ if (functionsInTableMap) {
223842
+ for (var i3 = offset;i3 < offset + count; i3++) {
223843
+ var item = getWasmTableEntry(i3);
223844
+ if (item) {
223845
+ functionsInTableMap.set(item, i3);
223846
+ }
223847
+ }
223848
+ }
223849
+ };
223850
+ var functionsInTableMap;
223851
+ var getFunctionAddress = (func) => {
223852
+ if (!functionsInTableMap) {
223853
+ functionsInTableMap = new WeakMap;
223854
+ updateTableMap(0, wasmTable.length);
223855
+ }
223856
+ return functionsInTableMap.get(func) || 0;
223857
+ };
223858
+ var freeTableIndexes = [];
223859
+ var getEmptyTableSlot = () => {
223860
+ if (freeTableIndexes.length) {
223861
+ return freeTableIndexes.pop();
223862
+ }
223863
+ try {
223864
+ wasmTable.grow(1);
223865
+ } catch (err2) {
223866
+ if (!(err2 instanceof RangeError)) {
223867
+ throw err2;
223868
+ }
223869
+ throw "Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.";
223870
+ }
223871
+ return wasmTable.length - 1;
223872
+ };
223873
+ var setWasmTableEntry = (idx, func) => {
223874
+ wasmTable.set(idx, func);
223875
+ wasmTableMirror[idx] = wasmTable.get(idx);
223876
+ };
223877
+ var addFunction = (func, sig) => {
223878
+ var rtn = getFunctionAddress(func);
223879
+ if (rtn) {
223880
+ return rtn;
223881
+ }
223882
+ var ret = getEmptyTableSlot();
223883
+ try {
223884
+ setWasmTableEntry(ret, func);
223885
+ } catch (err2) {
223886
+ if (!(err2 instanceof TypeError)) {
223887
+ throw err2;
223888
+ }
223889
+ var wrapped = convertJsFunctionToWasm(func, sig);
223890
+ setWasmTableEntry(ret, wrapped);
223891
+ }
223892
+ functionsInTableMap.set(func, ret);
223893
+ return ret;
223894
+ };
223895
+ var removeFunction = (index) => {
223896
+ functionsInTableMap.delete(getWasmTableEntry(index));
223897
+ setWasmTableEntry(index, null);
223898
+ freeTableIndexes.push(index);
223899
+ };
223900
+ for (var base64ReverseLookup = new Uint8Array(123), i2 = 25;i2 >= 0; --i2) {
223901
+ base64ReverseLookup[48 + i2] = 52 + i2;
223902
+ base64ReverseLookup[65 + i2] = i2;
223903
+ base64ReverseLookup[97 + i2] = 26 + i2;
223904
+ }
223905
+ base64ReverseLookup[43] = 62;
223906
+ base64ReverseLookup[47] = 63;
223907
+ {
223908
+ if (Module["noExitRuntime"])
223909
+ noExitRuntime = Module["noExitRuntime"];
223910
+ if (Module["print"])
223911
+ out = Module["print"];
223912
+ if (Module["printErr"])
223913
+ err = Module["printErr"];
223914
+ if (Module["wasmBinary"])
223915
+ wasmBinary = Module["wasmBinary"];
223916
+ if (Module["arguments"])
223917
+ arguments_ = Module["arguments"];
223918
+ if (Module["thisProgram"])
223919
+ thisProgram = Module["thisProgram"];
223920
+ }
223921
+ Module["addFunction"] = addFunction;
223922
+ Module["removeFunction"] = removeFunction;
223923
+ Module["UTF8ToString"] = UTF8ToString;
223924
+ Module["stringToUTF8"] = stringToUTF8;
223925
+ Module["lengthBytesUTF8"] = lengthBytesUTF8;
223926
+ var wasmImports = { __assert_fail: ___assert_fail, _abort_js: __abort_js, emscripten_resize_heap: _emscripten_resize_heap };
223927
+ var wasmExports = await createWasm();
223928
+ var ___wasm_call_ctors = wasmExports["__wasm_call_ctors"];
223929
+ var _cnavBuildDefaults = Module["_cnavBuildDefaults"] = wasmExports["cnavBuildDefaults"];
223930
+ var _cnavBuildCreate = Module["_cnavBuildCreate"] = wasmExports["cnavBuildCreate"];
223931
+ var _cnavBuildDestroy = Module["_cnavBuildDestroy"] = wasmExports["cnavBuildDestroy"];
223932
+ var _cnavBuildAddTriangles = Module["_cnavBuildAddTriangles"] = wasmExports["cnavBuildAddTriangles"];
223933
+ var _cnavBuildAddVolume = Module["_cnavBuildAddVolume"] = wasmExports["cnavBuildAddVolume"];
223934
+ var _cnavBuildAddLink = Module["_cnavBuildAddLink"] = wasmExports["cnavBuildAddLink"];
223935
+ var _cnavBuildRun = Module["_cnavBuildRun"] = wasmExports["cnavBuildRun"];
223936
+ var _cnavBuildData = Module["_cnavBuildData"] = wasmExports["cnavBuildData"];
223937
+ var _cnavBuildTileCount = Module["_cnavBuildTileCount"] = wasmExports["cnavBuildTileCount"];
223938
+ var _cnavBuildPolyCount = Module["_cnavBuildPolyCount"] = wasmExports["cnavBuildPolyCount"];
223939
+ var _cnavBuildBounds = Module["_cnavBuildBounds"] = wasmExports["cnavBuildBounds"];
223940
+ var _cnavMeshLoad = Module["_cnavMeshLoad"] = wasmExports["cnavMeshLoad"];
223941
+ var _cnavMeshDestroy = Module["_cnavMeshDestroy"] = wasmExports["cnavMeshDestroy"];
223942
+ var _cnavMeshHeader = Module["_cnavMeshHeader"] = wasmExports["cnavMeshHeader"];
223943
+ var _cnavMeshTileCount = Module["_cnavMeshTileCount"] = wasmExports["cnavMeshTileCount"];
223944
+ var _cnavMeshPolyCount = Module["_cnavMeshPolyCount"] = wasmExports["cnavMeshPolyCount"];
223945
+ var _cnavMeshSetAreaCost = Module["_cnavMeshSetAreaCost"] = wasmExports["cnavMeshSetAreaCost"];
223946
+ var _cnavFindPath = Module["_cnavFindPath"] = wasmExports["cnavFindPath"];
223947
+ var _cnavNearest = Module["_cnavNearest"] = wasmExports["cnavNearest"];
223948
+ var _cnavRaycast = Module["_cnavRaycast"] = wasmExports["cnavRaycast"];
223949
+ var _cnavRandomPoint = Module["_cnavRandomPoint"] = wasmExports["cnavRandomPoint"];
223950
+ var _cnavDebugTriangles = Module["_cnavDebugTriangles"] = wasmExports["cnavDebugTriangles"];
223951
+ var _cnavAgentDefaults = Module["_cnavAgentDefaults"] = wasmExports["cnavAgentDefaults"];
223952
+ var _cnavCrowdCreate = Module["_cnavCrowdCreate"] = wasmExports["cnavCrowdCreate"];
223953
+ var _cnavCrowdDestroy = Module["_cnavCrowdDestroy"] = wasmExports["cnavCrowdDestroy"];
223954
+ var _cnavCrowdMaxAgents = Module["_cnavCrowdMaxAgents"] = wasmExports["cnavCrowdMaxAgents"];
223955
+ var _cnavCrowdAdd = Module["_cnavCrowdAdd"] = wasmExports["cnavCrowdAdd"];
223956
+ var _cnavCrowdRemove = Module["_cnavCrowdRemove"] = wasmExports["cnavCrowdRemove"];
223957
+ var _cnavCrowdSetParams = Module["_cnavCrowdSetParams"] = wasmExports["cnavCrowdSetParams"];
223958
+ var _cnavCrowdSetTarget = Module["_cnavCrowdSetTarget"] = wasmExports["cnavCrowdSetTarget"];
223959
+ var _cnavCrowdSetVelocity = Module["_cnavCrowdSetVelocity"] = wasmExports["cnavCrowdSetVelocity"];
223960
+ var _cnavCrowdResetTarget = Module["_cnavCrowdResetTarget"] = wasmExports["cnavCrowdResetTarget"];
223961
+ var _cnavCrowdWarp = Module["_cnavCrowdWarp"] = wasmExports["cnavCrowdWarp"];
223962
+ var _cnavCrowdUpdate = Module["_cnavCrowdUpdate"] = wasmExports["cnavCrowdUpdate"];
223963
+ var _cnavCrowdRead = Module["_cnavCrowdRead"] = wasmExports["cnavCrowdRead"];
223964
+ var _cnavLastError = Module["_cnavLastError"] = wasmExports["cnavLastError"];
223965
+ var _malloc = Module["_malloc"] = wasmExports["malloc"];
223966
+ var _free = Module["_free"] = wasmExports["free"];
223967
+ var __emscripten_stack_restore = wasmExports["_emscripten_stack_restore"];
223968
+ var __emscripten_stack_alloc = wasmExports["_emscripten_stack_alloc"];
223969
+ var _emscripten_stack_get_current = wasmExports["emscripten_stack_get_current"];
223970
+ function run2() {
223971
+ if (runDependencies > 0) {
223972
+ dependenciesFulfilled = run2;
223973
+ return;
223974
+ }
223975
+ preRun();
223976
+ if (runDependencies > 0) {
223977
+ dependenciesFulfilled = run2;
223978
+ return;
223979
+ }
223980
+ function doRun() {
223981
+ Module["calledRun"] = true;
223982
+ if (ABORT)
223983
+ return;
223984
+ initRuntime();
223985
+ readyPromiseResolve(Module);
223986
+ Module["onRuntimeInitialized"]?.();
223987
+ postRun();
223988
+ }
223989
+ if (Module["setStatus"]) {
223990
+ Module["setStatus"]("Running...");
223991
+ setTimeout(() => {
223992
+ setTimeout(() => Module["setStatus"](""), 1);
223993
+ doRun();
223994
+ }, 1);
223995
+ } else {
223996
+ doRun();
223997
+ }
223998
+ }
223999
+ function preInit() {
224000
+ if (Module["preInit"]) {
224001
+ if (typeof Module["preInit"] == "function")
224002
+ Module["preInit"] = [Module["preInit"]];
224003
+ while (Module["preInit"].length > 0) {
224004
+ Module["preInit"].shift()();
224005
+ }
224006
+ }
224007
+ }
224008
+ preInit();
224009
+ run2();
224010
+ moduleRtn = readyPromise;
224011
+ return moduleRtn;
224012
+ };
224013
+ })();
224014
+ var creatorNav_default = createCreatorNav;
224015
+
224016
+ // ../creator-nav/js/index.ts
224017
+ var BUILD = {
224018
+ CELL_SIZE: 0,
224019
+ CELL_HEIGHT: 1,
224020
+ AGENT_RADIUS: 2,
224021
+ AGENT_HEIGHT: 3,
224022
+ AGENT_MAX_CLIMB: 4,
224023
+ AGENT_MAX_SLOPE: 5,
224024
+ TILE_SIZE: 6,
224025
+ REGION_MIN_SIZE: 7,
224026
+ REGION_MERGE_SIZE: 8,
224027
+ EDGE_MAX_LEN: 9,
224028
+ EDGE_MAX_ERROR: 10,
224029
+ VERTS_PER_POLY: 11,
224030
+ DETAIL_SAMPLE_DIST: 12,
224031
+ DETAIL_MAX_ERROR: 13,
224032
+ FILTER_LOW_HANGING: 14,
224033
+ FILTER_LEDGES: 15,
224034
+ FILTER_LOW_HEIGHT: 16,
224035
+ COUNT: 17
224036
+ };
224037
+ var BUILD_KEYS = {
224038
+ cellSize: BUILD.CELL_SIZE,
224039
+ cellHeight: BUILD.CELL_HEIGHT,
224040
+ agentRadius: BUILD.AGENT_RADIUS,
224041
+ agentHeight: BUILD.AGENT_HEIGHT,
224042
+ agentMaxClimb: BUILD.AGENT_MAX_CLIMB,
224043
+ agentMaxSlope: BUILD.AGENT_MAX_SLOPE,
224044
+ tileSize: BUILD.TILE_SIZE,
224045
+ regionMinSize: BUILD.REGION_MIN_SIZE,
224046
+ regionMergeSize: BUILD.REGION_MERGE_SIZE,
224047
+ edgeMaxLen: BUILD.EDGE_MAX_LEN,
224048
+ edgeMaxError: BUILD.EDGE_MAX_ERROR,
224049
+ vertsPerPoly: BUILD.VERTS_PER_POLY,
224050
+ detailSampleDist: BUILD.DETAIL_SAMPLE_DIST,
224051
+ detailMaxError: BUILD.DETAIL_MAX_ERROR
224052
+ };
224053
+ var modulePromise = null;
224054
+ var loadCreatorNav = () => modulePromise ??= creatorNav_default();
224055
+ var withF32 = (mod, values, fn) => {
224056
+ const ptr = mod._malloc(Math.max(4, values.length * 4));
224057
+ mod.HEAPF32.set(values, ptr >> 2);
224058
+ try {
224059
+ return fn(ptr);
224060
+ } finally {
224061
+ mod._free(ptr);
224062
+ }
224063
+ };
224064
+ var withString = (mod, s2, fn) => {
224065
+ if (s2 === null)
224066
+ return fn(0);
224067
+ const n2 = mod.lengthBytesUTF8(s2) + 1;
224068
+ const ptr = mod._malloc(n2);
224069
+ mod.stringToUTF8(s2, ptr, n2);
224070
+ try {
224071
+ return fn(ptr);
224072
+ } finally {
224073
+ mod._free(ptr);
224074
+ }
224075
+ };
224076
+ var readNgeo = (bytes) => {
224077
+ const dv2 = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
224078
+ if (bytes.byteLength < 16 || dv2.getUint32(0, true) !== 1329940302)
224079
+ throw new Error("not an NGEO geometry dump");
224080
+ const version = dv2.getUint32(4, true);
224081
+ if (version !== 1)
224082
+ throw new Error(`NGEO version ${version}, expected 1`);
224083
+ const triangleCount = dv2.getUint32(8, true);
224084
+ const bodyCount = dv2.getUint32(12, true);
224085
+ const triangles = new Float32Array(triangleCount * 9);
224086
+ const areas = new Uint8Array(triangleCount);
224087
+ let at = 16;
224088
+ for (let i2 = 0;i2 < triangleCount; i2++) {
224089
+ for (let k = 0;k < 9; k++) {
224090
+ triangles[i2 * 9 + k] = dv2.getFloat32(at, true);
224091
+ at += 4;
224092
+ }
224093
+ areas[i2] = dv2.getUint32(at, true) & 255;
224094
+ at += 4;
224095
+ }
224096
+ return { triangles, areas, triangleCount, bodyCount };
224097
+ };
224098
+
224099
+ class NavBuilder {
224100
+ mod;
224101
+ handle;
224102
+ constructor(mod, params = {}) {
224103
+ this.mod = mod;
224104
+ const p2 = new Float32Array(BUILD.COUNT);
224105
+ withF32(mod, p2, (ptr) => {
224106
+ mod._cnavBuildDefaults(ptr);
224107
+ p2.set(mod.HEAPF32.subarray(ptr >> 2, (ptr >> 2) + BUILD.COUNT));
224108
+ });
224109
+ for (const [key, value] of Object.entries(params)) {
224110
+ if (value === undefined)
224111
+ continue;
224112
+ const idx = BUILD_KEYS[key];
224113
+ if (idx === undefined)
224114
+ throw new Error(`NavBuilder: unknown build parameter "${key}"`);
224115
+ p2[idx] = value;
224116
+ }
224117
+ this.handle = withF32(mod, p2, (ptr) => mod._cnavBuildCreate(ptr));
224118
+ }
224119
+ addTriangles(xyz, indices, area = 0, areas) {
224120
+ const mod = this.mod;
224121
+ const vp = mod._malloc(xyz.byteLength);
224122
+ mod.HEAPF32.set(xyz, vp >> 2);
224123
+ const ip = mod._malloc(indices.byteLength);
224124
+ mod.HEAP32.set(indices, ip >> 2);
224125
+ let ap = 0;
224126
+ if (areas) {
224127
+ ap = mod._malloc(areas.byteLength);
224128
+ mod.HEAPU8.set(areas, ap);
224129
+ }
224130
+ const ok = mod._cnavBuildAddTriangles(this.handle, vp, xyz.length / 3, ip, indices.length / 3, area, ap);
224131
+ mod._free(vp);
224132
+ mod._free(ip);
224133
+ if (ap)
224134
+ mod._free(ap);
224135
+ if (!ok)
224136
+ throw new Error(`NavBuilder.addTriangles: ${this.lastError()}`);
224137
+ }
224138
+ addSoup(triangles, areas) {
224139
+ const n2 = triangles.length / 3;
224140
+ const indices = new Int32Array(n2);
224141
+ for (let i2 = 0;i2 < n2; i2++)
224142
+ indices[i2] = i2;
224143
+ this.addTriangles(triangles, indices, 0, areas);
224144
+ }
224145
+ addVolume(hullXZ, minY, maxY, area) {
224146
+ const ok = withF32(this.mod, hullXZ, (ptr) => this.mod._cnavBuildAddVolume(this.handle, ptr, hullXZ.length / 2, minY, maxY, area));
224147
+ if (!ok)
224148
+ throw new Error(`NavBuilder.addVolume: ${this.lastError()}`);
224149
+ }
224150
+ addLink(a2, b, radius, bidirectional = true, area = 0, userId = 0) {
224151
+ const ok = withF32(this.mod, [a2[0], a2[1], a2[2], b[0], b[1], b[2]], (ptr) => this.mod._cnavBuildAddLink(this.handle, ptr, ptr + 12, radius, bidirectional ? 1 : 0, area, userId));
224152
+ if (!ok)
224153
+ throw new Error(`NavBuilder.addLink: ${this.lastError()}`);
224154
+ }
224155
+ run(meta = null, onProgress) {
224156
+ const mod = this.mod;
224157
+ const t0 = performance.now();
224158
+ let cb = 0;
224159
+ if (onProgress) {
224160
+ cb = mod.addFunction((tile, count, msg) => {
224161
+ onProgress(tile, count, msg ? mod.UTF8ToString(msg) : null);
224162
+ }, "viiii");
224163
+ }
224164
+ const ok = withString(mod, meta ? JSON.stringify(meta) : null, (mp) => mod._cnavBuildRun(this.handle, mp, cb, 0));
224165
+ if (cb)
224166
+ mod.removeFunction(cb);
224167
+ if (!ok)
224168
+ throw new Error(`navmesh build failed: ${this.lastError()}`);
224169
+ const sizePtr = mod._malloc(4);
224170
+ const dataPtr = mod._cnavBuildData(this.handle, sizePtr);
224171
+ const size = mod.HEAPU32[sizePtr >> 2];
224172
+ mod._free(sizePtr);
224173
+ const data = new Uint8Array(mod.HEAPU8.subarray(dataPtr, dataPtr + size));
224174
+ const bp = mod._malloc(24);
224175
+ mod._cnavBuildBounds(this.handle, bp, bp + 12);
224176
+ const b = mod.HEAPF32.subarray(bp >> 2, (bp >> 2) + 6);
224177
+ const bounds = { min: [b[0], b[1], b[2]], max: [b[3], b[4], b[5]] };
224178
+ mod._free(bp);
224179
+ return { data, tiles: mod._cnavBuildTileCount(this.handle), polys: mod._cnavBuildPolyCount(this.handle), bounds, time: (performance.now() - t0) / 1000 };
224180
+ }
224181
+ lastError() {
224182
+ return this.mod.UTF8ToString(this.mod._cnavLastError());
224183
+ }
224184
+ destroy() {
224185
+ if (this.handle) {
224186
+ this.mod._cnavBuildDestroy(this.handle);
224187
+ this.handle = 0;
224188
+ }
224189
+ }
224190
+ }
224191
+ var navMeshTriangles = (mod, data) => {
224192
+ const ptr = mod._malloc(data.byteLength);
224193
+ mod.HEAPU8.set(data, ptr);
224194
+ const mesh = mod._cnavMeshLoad(ptr, data.byteLength);
224195
+ mod._free(ptr);
224196
+ if (!mesh)
224197
+ throw new Error(`navmesh load failed: ${mod.UTF8ToString(mod._cnavLastError())}`);
224198
+ const n2 = mod._cnavDebugTriangles(mesh, 0, 0);
224199
+ const out = new Float32Array(n2 * 3);
224200
+ if (n2 > 0) {
224201
+ const op = mod._malloc(n2 * 12);
224202
+ mod._cnavDebugTriangles(mesh, op, n2);
224203
+ out.set(mod.HEAPF32.subarray(op >> 2, (op >> 2) + n2 * 3));
224204
+ mod._free(op);
224205
+ }
224206
+ mod._cnavMeshDestroy(mesh);
224207
+ return out;
224208
+ };
224209
+
224210
+ // src/commands/navmesh.ts
224211
+ var num2 = (args, key, fallback, min, max) => {
224212
+ const raw = flagStr(args, key);
224213
+ if (raw === undefined)
224214
+ return fallback;
224215
+ const n2 = Number(raw);
224216
+ if (!Number.isFinite(n2) || n2 < min || n2 > max)
224217
+ throw new CliError(`--${key} wants a number in ${min}..${max}, got "${raw}".`);
224218
+ return n2;
224219
+ };
224220
+ var guessName = (root) => {
224221
+ const dirs = [join31(root, "src"), root];
224222
+ for (const dir of dirs) {
224223
+ if (!existsSync29(dir))
224224
+ continue;
224225
+ let entries;
224226
+ try {
224227
+ entries = readdirSync14(dir);
224228
+ } catch {
224229
+ continue;
224230
+ }
224231
+ for (const f3 of entries) {
224232
+ if (!f3.endsWith(".scene.ts"))
224233
+ continue;
224234
+ try {
224235
+ if (/\bnavmesh\s*:/.test(readFileSync26(join31(dir, f3), "utf8")))
224236
+ return f3.slice(0, -".scene.ts".length);
224237
+ } catch {}
224238
+ }
224239
+ }
224240
+ return null;
224241
+ };
224242
+ var placeholderLnav = () => {
224243
+ const json = Buffer.from(JSON.stringify({ version: 1, placeholder: true, stats: { tiles: 0, polys: 0 } }), "utf8");
224244
+ const jsonPadded = Buffer.alloc(Math.ceil(json.length / 4) * 4);
224245
+ json.copy(jsonPadded);
224246
+ const head = Buffer.alloc(12);
224247
+ head.writeUInt32LE(1447120460, 0);
224248
+ head.writeUInt32LE(1, 4);
224249
+ head.writeUInt32LE(json.length, 8);
224250
+ const params = Buffer.alloc(28);
224251
+ params.writeFloatLE(1, 12);
224252
+ params.writeFloatLE(1, 16);
224253
+ params.writeInt32LE(1, 20);
224254
+ params.writeInt32LE(1, 24);
224255
+ const tiles = Buffer.alloc(4);
224256
+ return Buffer.concat([head, jsonPadded, params, tiles]);
224257
+ };
224258
+ var writeObj = (path2, tris) => {
224259
+ const lines = ["# navmesh polygons — lecodes navmesh bake --obj"];
224260
+ for (let i2 = 0;i2 < tris.length; i2 += 3)
224261
+ lines.push(`v ${tris[i2].toFixed(4)} ${tris[i2 + 1].toFixed(4)} ${tris[i2 + 2].toFixed(4)}`);
224262
+ for (let i2 = 0;i2 < tris.length / 3; i2 += 3)
224263
+ lines.push(`f ${i2 + 1} ${i2 + 2} ${i2 + 3}`);
224264
+ writeFileSync23(path2, lines.join(`
224265
+ `) + `
224266
+ `);
224267
+ };
224268
+ var bake2 = async (args) => {
224269
+ let root;
224270
+ try {
224271
+ root = findProjectRoot(process.cwd());
224272
+ } catch {
224273
+ root = process.cwd();
224274
+ }
224275
+ const outDir = resolve14(root, flagStr(args, "out") ?? "assets/nav");
224276
+ const entryFlag = flagStr(args, "entry");
224277
+ const entryFile = entryFlag ?? "main.ts";
224278
+ if (!existsSync29(resolve14(root, entryFile))) {
224279
+ throw new CliError(`No ${entryFile} in ${root} — pass --entry <file> (the file that builds the level: a scene file with env.navmesh, or code calling NavMesh.load).`);
224280
+ }
224281
+ const name = flagStr(args, "name") ?? guessName(root) ?? "scene";
224282
+ const frames = num2(args, "frames", 900, 30, 1e5);
224283
+ const win = readAppConfigAt(root)?.desktop?.window;
224284
+ const width = Number(flagStr(args, "width")) || win?.width || 1280;
224285
+ const height = Number(flagStr(args, "height")) || win?.height || 720;
224286
+ const logs = flagBool(args, "logs");
224287
+ const keepGeometry = flagBool(args, "keep-geometry");
224288
+ const obj = flagBool(args, "obj");
224289
+ mkdirSync22(outDir, { recursive: true });
224290
+ const navmeshPath = join31(outDir, `${name}.navmesh`);
224291
+ if (!existsSync29(navmeshPath))
224292
+ writeFileSync23(navmeshPath, placeholderLnav());
224293
+ const importPath = "./" + entryFile.replace(/\\/g, "/").replace(/\.tsx?$/, "");
224294
+ const entryPath = "/.navmesh-entry.ts";
224295
+ const cfg = { outDir: outDir.replace(/\\/g, "/"), name };
224296
+ const entryText = `globalThis.__lecodesNavmesh = ${JSON.stringify(cfg)}
224297
+ import ${JSON.stringify(importPath)}
224298
+ `;
224299
+ const desktopRenderer = resolveDesktopRenderer(root, args);
224300
+ const { js, resources } = await buildBundle(args, undefined, {
224301
+ localAssets: true,
224302
+ desktopRenderer,
224303
+ extraEntries: [{ path: entryPath, type: "text", text: entryText }],
224304
+ entryOverride: entryPath
224305
+ });
224306
+ const scratch = mkdtempSync5(join31(tmpdir5(), "lecodes-navmesh-"));
224307
+ const outPng = join31(scratch, "frame.png");
224308
+ note(`Dumping the level's static collision geometry through the desktop host → ${relative5(root, outDir) || "."}/${name}.navgeo…`);
224309
+ let output = "";
224310
+ try {
224311
+ const timeoutMs = Number(flagStr(args, "timeout")) || 600000;
224312
+ const res = await runDesktopRender(js, resources, {
224313
+ renderer: desktopRenderer,
224314
+ width,
224315
+ height,
224316
+ frames,
224317
+ outPng,
224318
+ logs,
224319
+ timeoutMs,
224320
+ stopOnLine: (chunk) => chunk.includes("[navmesh] done") || chunk.includes("[navmesh] error")
224321
+ });
224322
+ output = res.output;
224323
+ } catch (e2) {
224324
+ const msg = e2 instanceof Error ? e2.message : String(e2);
224325
+ if (!/\[navmesh\] done/.test(msg))
224326
+ throw e2;
224327
+ output = msg;
224328
+ } finally {
224329
+ rmSync10(scratch, { recursive: true, force: true });
224330
+ }
224331
+ const lines = output.split(/\r?\n/).filter((l2) => l2.includes("[navmesh]")).map((l2) => l2.slice(l2.indexOf("[navmesh]")));
224332
+ let config = null;
224333
+ let triangles = 0;
224334
+ for (const l2 of lines) {
224335
+ const text = l2.slice("[navmesh]".length).trim();
224336
+ if (text === "done")
224337
+ continue;
224338
+ if (text.startsWith("config ")) {
224339
+ try {
224340
+ config = JSON.parse(text.slice(7));
224341
+ } catch {}
224342
+ continue;
224343
+ }
224344
+ const geo2 = /^geometry (\d+) triangles/.exec(text);
224345
+ if (geo2)
224346
+ triangles = Number(geo2[1]);
224347
+ logErr(text.startsWith("error") ? c.red(`✗ ${text}`) : c.dim(` ${text}`));
224348
+ }
224349
+ if (!/\[navmesh\] done/.test(output)) {
224350
+ if (lines.some((l2) => /cannot dump collision geometry/.test(l2))) {
224351
+ throw new CliError("This desktop host has no collision-geometry dump. Build packages/desktop and point LECODES_DESKTOP_EXE at build/lecodes-desktop.exe, or update: lecodes desktop update.");
224352
+ }
224353
+ if (lines.some((l2) => /error/.test(l2)))
224354
+ throw new CliError("The bake failed — see the lines above.");
224355
+ warnErr("The host ran to its frame cap without dumping geometry. Make sure the level declares `env.navmesh` (a scene file) or calls NavMesh.load(...) after its static bodies exist, and skips menus when NavMesh.baking is true. More load headroom: --frames <n>. Host output: --logs.");
224356
+ throw new CliError("Nothing was baked.");
224357
+ }
224358
+ if (!config)
224359
+ throw new CliError("The host reported a dump but no `[navmesh] config` line — SDK/host mismatch?");
224360
+ const geoPath = join31(outDir, `${name}.navgeo`);
224361
+ if (!existsSync29(geoPath))
224362
+ throw new CliError(`The host reported a dump but ${geoPath} is missing.`);
224363
+ const geo = readNgeo(new Uint8Array(readFileSync26(geoPath)));
224364
+ const params = {
224365
+ agentRadius: num2(args, "radius", config.agent.radius, 0.05, 10),
224366
+ agentHeight: num2(args, "height", config.agent.height, 0.1, 20),
224367
+ agentMaxClimb: num2(args, "climb", config.agent.climb, 0, 10),
224368
+ agentMaxSlope: num2(args, "slope", config.agent.slope, 0, 89),
224369
+ cellSize: num2(args, "cell", 0.25, 0.01, 5),
224370
+ cellHeight: num2(args, "cell-height", 0.1, 0.01, 5),
224371
+ tileSize: num2(args, "tile", 48, 0, 1024),
224372
+ regionMinSize: num2(args, "region-min", 8, 0, 1000),
224373
+ regionMergeSize: num2(args, "region-merge", 20, 0, 1000),
224374
+ edgeMaxLen: num2(args, "edge-max", 12, 0, 1000),
224375
+ edgeMaxError: num2(args, "edge-error", 1.3, 0.1, 10),
224376
+ detailSampleDist: num2(args, "detail", 6, 0, 100),
224377
+ detailMaxError: num2(args, "detail-error", 1, 0, 100)
224378
+ };
224379
+ note(`Building the navmesh: ${geo.triangleCount} triangles from ${geo.bodyCount} static bodies, agent r ${params.agentRadius} / h ${params.agentHeight} / climb ${params.agentMaxClimb} / slope ${params.agentMaxSlope}°, cell ${params.cellSize} m…`);
224380
+ const mod = await loadCreatorNav();
224381
+ const builder = new NavBuilder(mod, params);
224382
+ let result;
224383
+ try {
224384
+ builder.addSoup(geo.triangles, geo.areas);
224385
+ const meta = {
224386
+ scene: name,
224387
+ areas: config.areas,
224388
+ costs: config.costs,
224389
+ bakedAt: new Date().toISOString(),
224390
+ params,
224391
+ triangles: geo.triangleCount,
224392
+ bodies: geo.bodyCount
224393
+ };
224394
+ let lastTile = -1;
224395
+ result = builder.run(meta, (tile, count, message) => {
224396
+ if (message)
224397
+ logErr(c.dim(` recast: ${message}`));
224398
+ else if (count > 8 && tile !== lastTile && (tile + 1) % Math.max(1, Math.floor(count / 8)) === 0) {
224399
+ lastTile = tile;
224400
+ logErr(c.dim(` tile ${tile + 1}/${count}`));
224401
+ }
224402
+ });
224403
+ } finally {
224404
+ builder.destroy();
224405
+ }
224406
+ if (result.polys === 0) {
224407
+ throw new CliError("The build produced no polygons — nothing walkable for this agent. Check the cell size against the level's scale, the slope, and that the floor is a STATIC body (Shape + Physics { motion: 'static' }).");
224408
+ }
224409
+ writeFileSync23(navmeshPath, result.data);
224410
+ if (obj) {
224411
+ const objPath = join31(outDir, `${name}.navmesh.obj`);
224412
+ writeObj(objPath, navMeshTriangles(mod, result.data));
224413
+ logErr(c.dim(` wrote ${relative5(root, objPath)} (the polygon mesh, for inspection)`));
224414
+ }
224415
+ if (!keepGeometry)
224416
+ unlinkSync2(geoPath);
224417
+ const kb = Math.round(statSync11(navmeshPath).size / 1024);
224418
+ const b = result.bounds;
224419
+ logErr(c.dim(` ${result.tiles} tiles, ${result.polys} polygons, ${(b.max[0] - b.min[0]).toFixed(0)} × ${(b.max[2] - b.min[2]).toFixed(0)} m, ${result.time.toFixed(1)} s`));
224420
+ logErr(c.green(`✓ baked → ${relative5(root, navmeshPath).replace(/\\/g, "/")} (${kb} KB)`));
224421
+ if (!config.data) {
224422
+ logErr(c.dim(` load it with env.navmesh: { data: asset('<rel>/${basename16(navmeshPath)}') } in the scene file, or NavMesh.load(scene, { data: asset(...) })`));
224423
+ }
224424
+ };
224425
+ var navmesh = async (args) => {
224426
+ const sub = args._[0];
224427
+ if (sub === "bake")
224428
+ return bake2({ ...args, _: args._.slice(1) });
224429
+ throw new CliError("Usage: lecodes navmesh bake [--out assets/nav] [--name <scene>] [--entry main.ts] [--radius 0.4] [--height 1.8] [--climb 0.4] [--slope 50] [--cell 0.25] [--cell-height 0.1] [--tile 48] [--obj] [--keep-geometry] [--frames 900] [--logs]");
223239
224430
  };
223240
224431
 
223241
224432
  // src/commands/login.ts
@@ -223255,7 +224446,7 @@ var login = async (args) => {
223255
224446
 
223256
224447
  // src/commands/shaders.ts
223257
224448
  init_manifest();
223258
- import { readFileSync as readFileSync25 } from "node:fs";
224449
+ import { readFileSync as readFileSync27 } from "node:fs";
223259
224450
  init_util();
223260
224451
  init_compile();
223261
224452
  var collectShaders = () => {
@@ -223287,7 +224478,7 @@ var status2 = async () => {
223287
224478
  if (matcId === null)
223288
224479
  state = c.dim("unknown (matc not downloaded)");
223289
224480
  else {
223290
- const text = readFileSync25(shader.absPath, "utf8");
224481
+ const text = readFileSync27(shader.absPath, "utf8");
223291
224482
  if (shaderIsCompiled(root, text, matcId))
223292
224483
  state = "compiled";
223293
224484
  else {
@@ -223296,7 +224487,7 @@ var status2 = async () => {
223296
224487
  }
223297
224488
  }
223298
224489
  log(` ${shader.path.padEnd(width)} ${state}`);
223299
- const schema = parseShaderSchema(readFileSync25(shader.absPath, "utf8"));
224490
+ const schema = parseShaderSchema(readFileSync27(shader.absPath, "utf8"));
223300
224491
  for (const p2 of schema.params) {
223301
224492
  const range = p2.min !== undefined ? ` [${p2.min}..${p2.max}]` : "";
223302
224493
  const def = p2.default !== null && p2.default !== undefined ? ` = ${JSON.stringify(p2.default)}` : "";
@@ -223339,7 +224530,7 @@ var compile3 = async (args) => {
223339
224530
  }
223340
224531
  const matcExe = await resolveMatcExe();
223341
224532
  const matcId = matcIdentity(matcExe);
223342
- const wasCompiled = new Map(shaders.map((s2) => [s2.path, shaderIsCompiled(root, readFileSync25(s2.absPath, "utf8"), matcId)]));
224533
+ const wasCompiled = new Map(shaders.map((s2) => [s2.path, shaderIsCompiled(root, readFileSync27(s2.absPath, "utf8"), matcId)]));
223343
224534
  const errors2 = [];
223344
224535
  for (const shader of shaders) {
223345
224536
  try {
@@ -223373,8 +224564,8 @@ var shaders = async (args) => {
223373
224564
  };
223374
224565
 
223375
224566
  // src/commands/render.ts
223376
- import { mkdirSync as mkdirSync22, readFileSync as readFileSync27, writeFileSync as writeFileSync23 } from "node:fs";
223377
- import { dirname as dirname15, resolve as resolve16 } from "node:path";
224567
+ import { mkdirSync as mkdirSync23, readFileSync as readFileSync29, writeFileSync as writeFileSync24 } from "node:fs";
224568
+ import { dirname as dirname15, resolve as resolve17 } from "node:path";
223378
224569
 
223379
224570
  // src/compile/headlessBundle.ts
223380
224571
  init_api();
@@ -223458,23 +224649,23 @@ var compileHeadlessBundle = async (args, opts = {}) => {
223458
224649
  // src/compile/screenEntry.ts
223459
224650
  init_designMeta();
223460
224651
  init_util();
223461
- import { existsSync as existsSync29, readFileSync as readFileSync26, statSync as statSync11 } from "node:fs";
223462
- import { isAbsolute, join as join31, relative as relative5, resolve as resolve14 } from "node:path";
224652
+ import { existsSync as existsSync30, readFileSync as readFileSync28, statSync as statSync12 } from "node:fs";
224653
+ import { isAbsolute, join as join32, relative as relative6, resolve as resolve15 } from "node:path";
223463
224654
  var SCREEN_EXTS = [".ts", ".tsx", ".js", ".jsx", ".mjs"];
223464
224655
  var SCREEN_ENTRY_PATH = "/.screen-entry.ts";
223465
224656
  var DEFAULT_DESIGN_DIR = "design";
223466
224657
  var screenArg = (args) => args._[0];
223467
224658
  var hasSeparator = (file) => file.includes("/") || file.includes("\\");
223468
224659
  var findScreenFile = (root, file, dirFlag) => {
223469
- const candidates = [resolve14(process.cwd(), file)];
224660
+ const candidates = [resolve15(process.cwd(), file)];
223470
224661
  if (!hasSeparator(file)) {
223471
- candidates.push(join31(root, (dirFlag ?? DEFAULT_DESIGN_DIR).replace(/[/\\]+$/, ""), "screens", file));
224662
+ candidates.push(join32(root, (dirFlag ?? DEFAULT_DESIGN_DIR).replace(/[/\\]+$/, ""), "screens", file));
223472
224663
  }
223473
224664
  for (const base of candidates) {
223474
- if (existsSync29(base) && statSync11(base).isFile())
224665
+ if (existsSync30(base) && statSync12(base).isFile())
223475
224666
  return base;
223476
224667
  for (const ext2 of SCREEN_EXTS)
223477
- if (existsSync29(base + ext2))
224668
+ if (existsSync30(base + ext2))
223478
224669
  return base + ext2;
223479
224670
  }
223480
224671
  throw new CliError(`No screen file at "${file}".` + (hasSeparator(file) ? "" : ` Pass a path, or a screen id that exists in ${dirFlag ?? DEFAULT_DESIGN_DIR}/screens/.`));
@@ -223483,17 +224674,17 @@ var designDirOf = (root, key) => {
223483
224674
  const m = /^\/(.*)screens\/([^/]+)\.[^./]+$/.exec(key);
223484
224675
  if (!m)
223485
224676
  return null;
223486
- const dir = join31(root, m[1]);
223487
- return existsSync29(join31(dir, "meta.json")) ? { dir, id: m[2] } : null;
224677
+ const dir = join32(root, m[1]);
224678
+ return existsSync30(join32(dir, "meta.json")) ? { dir, id: m[2] } : null;
223488
224679
  };
223489
224680
  var resolveScreenTarget = (root, file, opts = {}) => {
223490
224681
  const abs = findScreenFile(root, file, opts.dir);
223491
- const rel = relative5(root, abs);
224682
+ const rel = relative6(root, abs);
223492
224683
  if (rel.startsWith("..") || isAbsolute(rel)) {
223493
224684
  throw new CliError(`"${file}" is outside the project (${root}) — a screen renders as part of its project, so its ` + `imports and asset() files resolve from the same tree.`);
223494
224685
  }
223495
224686
  const key = toKey(rel);
223496
- if (!/^\s*export\s+default\b/m.test(readFileSync26(abs, "utf8"))) {
224687
+ if (!/^\s*export\s+default\b/m.test(readFileSync28(abs, "utf8"))) {
223497
224688
  throw new CliError(`${key.slice(1)} has no default export. A screen file ends with ` + `\`export default UIScreen([...])\` — or \`export default (state) => UIScreen([...])\` for screen states.`);
223498
224689
  }
223499
224690
  const invoke = opts.state !== undefined ? `screen(${JSON.stringify(opts.state)})` : "screen()";
@@ -223532,7 +224723,7 @@ init_manifest();
223532
224723
 
223533
224724
  // src/desktopScript.ts
223534
224725
  init_util();
223535
- import { resolve as resolve15 } from "node:path";
224726
+ import { resolve as resolve16 } from "node:path";
223536
224727
  var isPoint = (v) => typeof v === "object" && v !== null && typeof v.x === "number" && typeof v.y === "number";
223537
224728
  var FRAME_MS = 16;
223538
224729
  var ACTIONS = ["tap", "type", "fill", "scroll", "wait", "frames", "drag", "hold", "key", "keyDown", "keyUp", "look", "mouseTo", "wheel", "stick", "gamepad", "camera", "view"];
@@ -223560,7 +224751,7 @@ var translateScenario = (rawSteps, opts) => {
223560
224751
  }
223561
224752
  throw new CliError(`${at}: "${key}" must be { "x", "y" }.`);
223562
224753
  };
223563
- const num2 = (at, key, v, def) => {
224754
+ const num3 = (at, key, v, def) => {
223564
224755
  if (v === undefined && def !== undefined)
223565
224756
  return def;
223566
224757
  if (typeof v !== "number")
@@ -223587,7 +224778,7 @@ var translateScenario = (rawSteps, opts) => {
223587
224778
  }
223588
224779
  if (action === "view") {
223589
224780
  const v = s2.view;
223590
- const fov = s2.fov !== undefined ? num2(at, "fov", s2.fov) : undefined;
224781
+ const fov = s2.fov !== undefined ? num3(at, "fov", s2.fov) : undefined;
223591
224782
  if (v === "off") {
223592
224783
  plan.lines.push(emit("view off"));
223593
224784
  inspecting = false;
@@ -223607,7 +224798,7 @@ var translateScenario = (rawSteps, opts) => {
223607
224798
  parts.push("camera off");
223608
224799
  } else if (typeof cam === "object" && cam !== null && isVec3(cam.at) && isVec3(cam.lookAt)) {
223609
224800
  const { at: eye, lookAt, fov } = cam;
223610
- const fovN = fov !== undefined ? num2(at, "camera.fov", fov) : undefined;
224801
+ const fovN = fov !== undefined ? num3(at, "camera.fov", fov) : undefined;
223611
224802
  plan.lines.push(emit(`camera ${eye.join(" ")} ${lookAt.join(" ")}${fovN !== undefined ? ` ${fovN}` : ""}`));
223612
224803
  inspecting = true;
223613
224804
  parts.push(`camera at (${eye.join(",")}) → (${lookAt.join(",")})`);
@@ -223624,20 +224815,20 @@ var translateScenario = (rawSteps, opts) => {
223624
224815
  parts.push(`tap ${pt(p2)}`);
223625
224816
  } else if (action === "drag") {
223626
224817
  const a2 = coord(at, "drag", s2.drag), b = coord(at, "to", s2.to);
223627
- const ms = num2(at, "ms", s2.ms, 300);
224818
+ const ms = num3(at, "ms", s2.ms, 300);
223628
224819
  plan.lines.push(emit(`drag ${a2.x} ${a2.y} ${b.x} ${b.y} ${Math.round(ms)}`));
223629
224820
  budgetMs += ms + 4 * FRAME_MS;
223630
224821
  parts.push(`drag ${pt(a2)} → ${pt(b)} over ${ms}ms`);
223631
224822
  } else if (action === "hold") {
223632
224823
  const p2 = coord(at, "hold", s2.hold);
223633
- const ms = num2(at, "ms", s2.ms);
224824
+ const ms = num3(at, "ms", s2.ms);
223634
224825
  plan.lines.push(emit(`hold ${p2.x} ${p2.y} ${Math.round(ms)}`));
223635
224826
  budgetMs += ms + 4 * FRAME_MS;
223636
224827
  parts.push(`hold ${pt(p2)} ${ms}ms`);
223637
224828
  } else if (action === "key") {
223638
224829
  if (typeof s2.key !== "string")
223639
224830
  throw new CliError(`${at}: "key" must be a KeyboardEvent.code string.`);
223640
- const ms = num2(at, "ms", s2.ms);
224831
+ const ms = num3(at, "ms", s2.ms);
223641
224832
  plan.lines.push(emit(`key ${s2.key} ${Math.round(ms)}`));
223642
224833
  budgetMs += ms + 2 * FRAME_MS;
223643
224834
  parts.push(`key ${s2.key} ${ms}ms`);
@@ -223652,7 +224843,7 @@ var translateScenario = (rawSteps, opts) => {
223652
224843
  const v = s2.look;
223653
224844
  if (!Array.isArray(v) || v.length !== 2 || !v.every((n2) => typeof n2 === "number"))
223654
224845
  throw new CliError(`${at}: "look" must be [dx, dy] (logical px of mouse motion).`);
223655
- const ms = num2(at, "ms", s2.ms, FRAME_MS);
224846
+ const ms = num3(at, "ms", s2.ms, FRAME_MS);
223656
224847
  plan.lines.push(emit(`look ${v[0]} ${v[1]} ${Math.round(ms)}`));
223657
224848
  budgetMs += ms + 2 * FRAME_MS;
223658
224849
  parts.push(`look ${v[0]},${v[1]} over ${ms}ms`);
@@ -223698,12 +224889,12 @@ var translateScenario = (rawSteps, opts) => {
223698
224889
  budgetMs += 2 * FRAME_MS;
223699
224890
  parts.push(`gamepad ${s2.gamepad} #${pad}`);
223700
224891
  } else if (action === "wait") {
223701
- const ms = num2(at, "wait", s2.wait);
224892
+ const ms = num3(at, "wait", s2.wait);
223702
224893
  plan.lines.push(emit(`wait ${Math.round(ms)}`));
223703
224894
  budgetMs += ms + FRAME_MS;
223704
224895
  parts.push(`wait ${ms}ms`);
223705
224896
  } else if (action === "frames") {
223706
- const n2 = num2(at, "frames", s2.frames);
224897
+ const n2 = num3(at, "frames", s2.frames);
223707
224898
  plan.lines.push(emit(`frames ${Math.round(n2)}`));
223708
224899
  budgetMs += n2 * FRAME_MS + FRAME_MS;
223709
224900
  parts.push(`advance ${n2} frames`);
@@ -223733,7 +224924,7 @@ var translateScenario = (rawSteps, opts) => {
223733
224924
  if (s2.screenshot !== undefined) {
223734
224925
  if (typeof s2.screenshot !== "string")
223735
224926
  throw new CliError(`${at}: "screenshot" must be a path.`);
223736
- plan.screenshot = resolve15(opts.outDir, s2.screenshot);
224927
+ plan.screenshot = resolve16(opts.outDir, s2.screenshot);
223737
224928
  plan.lines.push(emit(`frames 2`));
223738
224929
  plan.lines.push(emit(`shot ${plan.screenshot}`));
223739
224930
  budgetMs += 3 * FRAME_MS;
@@ -223800,7 +224991,7 @@ var evaluateDesktopRun = (plan, output) => {
223800
224991
  if (!error && st.expectLog !== undefined) {
223801
224992
  const seen = consoleLines.slice(0, cutoff);
223802
224993
  if (!seen.some((l2) => l2.includes(st.expectLog))) {
223803
- const tail = seen.filter((l2) => l2.startsWith("[DEBUG]") || l2.startsWith("[INFO]") || l2.startsWith("[WARN]") || l2.startsWith("[ERROR]")).slice(-3);
224994
+ const tail = seen.filter((l2) => l2.startsWith("[DEBUG]") || l2.startsWith("[INFO]") || l2.startsWith("[WARN]") || l2.startsWith("[ERROR]")).slice(-8);
223804
224995
  error = `expected a console line containing "${st.expectLog}" — ${tail.length === 0 ? "the app logged nothing" : `last lines: ${tail.map((l2) => `"${l2}"`).join(", ")}`}`;
223805
224996
  }
223806
224997
  }
@@ -223842,9 +225033,9 @@ var requireRenderer = async () => {
223842
225033
  };
223843
225034
  var fileScenarioIO = (dir) => ({
223844
225035
  write: (relPath, data) => {
223845
- const abs = resolve16(dir, relPath);
223846
- mkdirSync22(dirname15(abs), { recursive: true });
223847
- writeFileSync23(abs, data);
225036
+ const abs = resolve17(dir, relPath);
225037
+ mkdirSync23(dirname15(abs), { recursive: true });
225038
+ writeFileSync24(abs, data);
223848
225039
  }
223849
225040
  });
223850
225041
  var resolveFixtures = (value, baseDir) => {
@@ -223852,9 +225043,9 @@ var resolveFixtures = (value, baseDir) => {
223852
225043
  return;
223853
225044
  let map = value;
223854
225045
  if (typeof value === "string") {
223855
- const abs = resolve16(baseDir, value);
225046
+ const abs = resolve17(baseDir, value);
223856
225047
  try {
223857
- map = JSON.parse(readFileSync27(abs, "utf8"));
225048
+ map = JSON.parse(readFileSync29(abs, "utf8"));
223858
225049
  } catch (e2) {
223859
225050
  throw new CliError(`Can't read fixtures "${value}": ${e2 instanceof Error ? e2.message : String(e2)}`);
223860
225051
  }
@@ -223867,7 +225058,7 @@ var resolveFixtures = (value, baseDir) => {
223867
225058
  var readScenarioFile = (path2) => {
223868
225059
  let raw;
223869
225060
  try {
223870
- raw = JSON.parse(readFileSync27(resolve16(path2), "utf8"));
225061
+ raw = JSON.parse(readFileSync29(resolve17(path2), "utf8"));
223871
225062
  } catch (e2) {
223872
225063
  throw new CliError(`Can't read scenario "${path2}": ${e2 instanceof Error ? e2.message : String(e2)}`);
223873
225064
  }
@@ -223924,13 +225115,13 @@ var renderDesktop = async (args) => {
223924
225115
  extraEntries: screen2 ? [screen2.entry] : undefined,
223925
225116
  entryOverride: screen2?.entryPath
223926
225117
  });
223927
- mkdirSync22(dirname15(resolve16(pngFlag)), { recursive: true });
225118
+ mkdirSync23(dirname15(resolve17(pngFlag)), { recursive: true });
223928
225119
  if (scenario) {
223929
225120
  const outDir = flagStr(args, "out-dir") ?? ".";
223930
225121
  const plan = translateScenario(scenario.steps, { outDir, headroomFrames: frames });
223931
225122
  for (const st of plan.steps)
223932
225123
  if (st.screenshot)
223933
- mkdirSync22(dirname15(st.screenshot), { recursive: true });
225124
+ mkdirSync23(dirname15(st.screenshot), { recursive: true });
223934
225125
  const timeoutMs2 = Number(flagStr(args, "timeout")) || 60000 + plan.steps.length * 5000;
223935
225126
  note(`Running ${plan.steps.length} step${plan.steps.length === 1 ? "" : "s"} (native)…`);
223936
225127
  const { output } = await runDesktopRender(js, resources, {
@@ -224034,7 +225225,7 @@ var render = async (args) => {
224034
225225
  const settleStr = flagStr(args, "settle") ?? (scenario?.settle !== undefined ? String(scenario.settle) : undefined);
224035
225226
  const timeStr = flagStr(args, "time");
224036
225227
  const onConsole = flagBool(args, "logs") ? (level, text2) => logErr(`${c.dim(`[${level}]`)} ${text2}`) : undefined;
224037
- const envelopeFixtures = resolveFixtures(scenario?.fixtures, scriptFlag !== undefined ? dirname15(resolve16(scriptFlag)) : ".");
225228
+ const envelopeFixtures = resolveFixtures(scenario?.fixtures, scriptFlag !== undefined ? dirname15(resolve17(scriptFlag)) : ".");
224038
225229
  const flagFixtures = resolveFixtures(flagStr(args, "fixtures"), ".");
224039
225230
  const fixtures = envelopeFixtures || flagFixtures ? { ...envelopeFixtures, ...flagFixtures } : undefined;
224040
225231
  if (fixtures) {
@@ -224073,7 +225264,7 @@ var render = async (args) => {
224073
225264
  ${c.red(st.error ?? "failed")}`);
224074
225265
  }
224075
225266
  if (!result2.ok && result2.failureArtifacts.length > 0) {
224076
- logErr(c.dim(` failing frame: ${result2.failureArtifacts.map((p2) => resolve16(outDir, p2)).join(", ")}`));
225267
+ logErr(c.dim(` failing frame: ${result2.failureArtifacts.map((p2) => resolve17(outDir, p2)).join(", ")}`));
224077
225268
  }
224078
225269
  logErr(result2.ok ? c.green(`✓ ${result2.steps.length}/${steps.length} steps passed`) : c.red(`✗ failed at step ${result2.steps.length} of ${steps.length}`));
224079
225270
  return done((cb) => cb(), result2.ok ? 0 : 1);
@@ -224081,6 +225272,26 @@ var render = async (args) => {
224081
225272
  session.dispose();
224082
225273
  }
224083
225274
  }
225275
+ const mapFlag = flagStr(args, "map") ?? (flagBool(args, "map") ? "map.png" : undefined);
225276
+ if (mapFlag !== undefined) {
225277
+ note(`Rendering map…`);
225278
+ const title = root.split(/[\\/]/).pop();
225279
+ const { png: png2, data, warnings: mapWarnings } = await renderer.renderToMap(js, {
225280
+ ...timing,
225281
+ maxPx: Number(flagStr(args, "max-px")) || undefined,
225282
+ title,
225283
+ labelAll: flagBool(args, "label-all")
225284
+ });
225285
+ for (const w of [...warnings, ...mapWarnings])
225286
+ warnErr(w);
225287
+ const pngPath = mapFlag.endsWith(".png") ? mapFlag : mapFlag + ".png";
225288
+ mkdirSync23(dirname15(resolve17(pngPath)), { recursive: true });
225289
+ writeFileSync24(resolve17(pngPath), png2);
225290
+ const jsonPath = pngPath.slice(0, -4) + ".json";
225291
+ writeFileSync24(resolve17(jsonPath), JSON.stringify(data, null, 2));
225292
+ note(`Wrote ${pngPath} + ${jsonPath}`);
225293
+ return done((cb) => cb());
225294
+ }
224084
225295
  const pngFlag = flagStr(args, "png") ?? (flagBool(args, "png") ? "screenshot.png" : undefined);
224085
225296
  if (pngFlag !== undefined) {
224086
225297
  note(screen2 ? `Rendering ${screen2.label} (PNG)…` : "Rendering PNG…");
@@ -224097,8 +225308,8 @@ var render = async (args) => {
224097
225308
  if (isNullSink(pngFlag)) {
224098
225309
  note(`Discarded PNG (${pngFlag})`);
224099
225310
  } else {
224100
- mkdirSync22(dirname15(resolve16(pngFlag)), { recursive: true });
224101
- writeFileSync23(resolve16(pngFlag), png2);
225311
+ mkdirSync23(dirname15(resolve17(pngFlag)), { recursive: true });
225312
+ writeFileSync24(resolve17(pngFlag), png2);
224102
225313
  note(`Wrote ${pngFlag} (${png2.length} bytes, ${outW}x${outH}${clip !== undefined ? ", clipped" : ""})`);
224103
225314
  }
224104
225315
  return done((cb) => cb());
@@ -224113,7 +225324,7 @@ var render = async (args) => {
224113
225324
  return done((cb) => cb());
224114
225325
  }
224115
225326
  if (out) {
224116
- writeFileSync23(resolve16(out), result.text);
225327
+ writeFileSync24(resolve17(out), result.text);
224117
225328
  note(`Wrote ${out} (${result.text.length} bytes)`);
224118
225329
  return done((cb) => cb());
224119
225330
  }
@@ -224128,8 +225339,8 @@ init_api();
224128
225339
  init_config();
224129
225340
  init_manifest();
224130
225341
  init_util();
224131
- import { appendFileSync as appendFileSync2, existsSync as existsSync30, readFileSync as readFileSync28, writeFileSync as writeFileSync24 } from "node:fs";
224132
- import { join as join32 } from "node:path";
225342
+ import { appendFileSync as appendFileSync2, existsSync as existsSync31, readFileSync as readFileSync30, writeFileSync as writeFileSync25 } from "node:fs";
225343
+ import { join as join33 } from "node:path";
224133
225344
  var ENV_VAR = "LECODES_PUSH_KEY";
224134
225345
  var context = () => {
224135
225346
  const root = findProjectRoot(process.cwd());
@@ -224273,11 +225484,11 @@ var pnKeysList = async (ctx) => {
224273
225484
  };
224274
225485
  var writeEnv = (root, key) => {
224275
225486
  const touched = [];
224276
- const envPath = join32(root, ".env");
225487
+ const envPath = join33(root, ".env");
224277
225488
  const line = `${ENV_VAR}=${key}`;
224278
- const existing = existsSync30(envPath) ? readFileSync28(envPath, "utf8") : "";
225489
+ const existing = existsSync31(envPath) ? readFileSync30(envPath, "utf8") : "";
224279
225490
  if (new RegExp(`^${ENV_VAR}=`, "m").test(existing)) {
224280
- writeFileSync24(envPath, existing.replace(new RegExp(`^${ENV_VAR}=.*$`, "m"), line));
225491
+ writeFileSync25(envPath, existing.replace(new RegExp(`^${ENV_VAR}=.*$`, "m"), line));
224281
225492
  } else {
224282
225493
  const separator = !existing || existing.endsWith(`
224283
225494
  `) ? "" : `
@@ -224286,8 +225497,8 @@ var writeEnv = (root, key) => {
224286
225497
  `);
224287
225498
  }
224288
225499
  touched.push(".env");
224289
- const ignorePath = join32(root, ".gitignore");
224290
- const ignore = existsSync30(ignorePath) ? readFileSync28(ignorePath, "utf8") : "";
225500
+ const ignorePath = join33(root, ".gitignore");
225501
+ const ignore = existsSync31(ignorePath) ? readFileSync30(ignorePath, "utf8") : "";
224291
225502
  if (!ignore.split(`
224292
225503
  `).some((l2) => l2.trim() === ".env")) {
224293
225504
  const separator = !ignore || ignore.endsWith(`
@@ -224386,8 +225597,8 @@ var pn = async (args) => {
224386
225597
  init_api();
224387
225598
  init_config();
224388
225599
  init_manifest();
224389
- import { existsSync as existsSync31, mkdirSync as mkdirSync23, rmSync as rmSync10, writeFileSync as writeFileSync25 } from "node:fs";
224390
- import { dirname as dirname16, join as join33 } from "node:path";
225600
+ import { existsSync as existsSync32, mkdirSync as mkdirSync24, rmSync as rmSync11, writeFileSync as writeFileSync26 } from "node:fs";
225601
+ import { dirname as dirname16, join as join34 } from "node:path";
224391
225602
  init_types4();
224392
225603
  init_localFiles();
224393
225604
  init_util();
@@ -224410,9 +225621,9 @@ var pull = async (args) => {
224410
225621
  const remotePaths = new Set([...buildPaths(project.assets).entries()].filter(([id]) => project.assets.find((a2) => a2.id === id)?.type !== "folder").map(([, path2]) => path2));
224411
225622
  for (const path2 of Object.keys(manifest.files)) {
224412
225623
  if (!remotePaths.has(path2)) {
224413
- const abs = join33(root, ...path2.replace(/^\//, "").split("/"));
224414
- if (existsSync31(abs))
224415
- rmSync10(abs);
225624
+ const abs = join34(root, ...path2.replace(/^\//, "").split("/"));
225625
+ if (existsSync32(abs))
225626
+ rmSync11(abs);
224416
225627
  }
224417
225628
  }
224418
225629
  const files = await materializeAssets(root, project, apiUrl, token, progress);
@@ -224449,18 +225660,18 @@ var pullPaths = async (root, manifest, project, paths, apiUrl, token) => {
224449
225660
  const files = { ...manifest.files };
224450
225661
  for (const asset of targets) {
224451
225662
  const key = pathById.get(asset.id);
224452
- const abs = join33(root, ...key.replace(/^\//, "").split("/"));
224453
- mkdirSync23(dirname16(abs), { recursive: true });
225663
+ const abs = join34(root, ...key.replace(/^\//, "").split("/"));
225664
+ mkdirSync24(dirname16(abs), { recursive: true });
224454
225665
  let sha;
224455
225666
  if (asset.type === "file") {
224456
225667
  if (!asset.file?.src)
224457
225668
  continue;
224458
225669
  const bytes = await downloadBlob(apiUrl, asset.file.src);
224459
- writeFileSync25(abs, bytes);
225670
+ writeFileSync26(abs, bytes);
224460
225671
  sha = sha256(bytes);
224461
225672
  } else {
224462
225673
  const text = asset.text ?? "";
224463
- writeFileSync25(abs, text);
225674
+ writeFileSync26(abs, text);
224464
225675
  sha = sha256(text);
224465
225676
  }
224466
225677
  files[key] = { id: asset.id, type: kindOf3(asset.type), sha };
@@ -224473,8 +225684,8 @@ var pullPaths = async (root, manifest, project, paths, apiUrl, token) => {
224473
225684
 
224474
225685
  // src/commands/scene.ts
224475
225686
  init_manifest();
224476
- import { existsSync as existsSync33, readFileSync as readFileSync30, readdirSync as readdirSync14, statSync as statSync12, writeFileSync as writeFileSync27 } from "node:fs";
224477
- import { basename as basename16, dirname as dirname17, join as join35, resolve as resolve17 } from "node:path";
225687
+ import { existsSync as existsSync34, readFileSync as readFileSync32, readdirSync as readdirSync15, statSync as statSync13, writeFileSync as writeFileSync28 } from "node:fs";
225688
+ import { basename as basename17, dirname as dirname17, join as join36, resolve as resolve18 } from "node:path";
224478
225689
 
224479
225690
  // src/compile/sceneCompile.ts
224480
225691
  init_localFiles();
@@ -224483,18 +225694,18 @@ init_distRoot();
224483
225694
  init_util();
224484
225695
  init_projectCompile();
224485
225696
  import { createHash as createHash8 } from "node:crypto";
224486
- import { existsSync as existsSync32, mkdirSync as mkdirSync24, readFileSync as readFileSync29, writeFileSync as writeFileSync26 } from "node:fs";
224487
- import { join as join34 } from "node:path";
225697
+ import { existsSync as existsSync33, mkdirSync as mkdirSync25, readFileSync as readFileSync31, writeFileSync as writeFileSync27 } from "node:fs";
225698
+ import { join as join35 } from "node:path";
224488
225699
  var TEXT_EXT = /\.(ts|js|json|svg|txt|md)$/i;
224489
225700
  var rel = (key) => key.replace(/^\//, "");
224490
225701
  var resolveHarness = (loadSceneHarness2) => {
224491
- const inRepo = join34(distRoot, "..", "projects", "src", "scene-editor");
225702
+ const inRepo = join35(distRoot, "..", "projects", "src", "scene-editor");
224492
225703
  try {
224493
- return loadSceneHarness2(existsSync32(inRepo) ? inRepo : undefined);
225704
+ return loadSceneHarness2(existsSync33(inRepo) ? inRepo : undefined);
224494
225705
  } catch {
224495
- const vendored = join34(distRoot, "runtime", "scene-harness.json");
224496
- if (existsSync32(vendored))
224497
- return JSON.parse(readFileSync29(vendored, "utf8"));
225706
+ const vendored = join35(distRoot, "runtime", "scene-harness.json");
225707
+ if (existsSync33(vendored))
225708
+ return JSON.parse(readFileSync31(vendored, "utf8"));
224498
225709
  throw new CliError("scene-editor harness sources not found — reinstall the CLI or set LECODES_SCENE_HARNESS_DIR.");
224499
225710
  }
224500
225711
  };
@@ -224506,16 +225717,16 @@ var compileSceneEditor = async (opts) => {
224506
225717
  for (const file of scan2.files) {
224507
225718
  const path2 = "./" + rel(file.path);
224508
225719
  if (TEXT_EXT.test(path2)) {
224509
- entries.push({ path: path2, type: "text", text: readFileSync29(file.absPath, "utf8") });
225720
+ entries.push({ path: path2, type: "text", text: readFileSync31(file.absPath, "utf8") });
224510
225721
  } else if (/\.mat$/i.test(path2)) {
224511
- entries.push({ path: path2, type: "shader", text: readFileSync29(file.absPath, "utf8"), absPath: file.absPath });
225722
+ entries.push({ path: path2, type: "shader", text: readFileSync31(file.absPath, "utf8"), absPath: file.absPath });
224512
225723
  } else {
224513
225724
  entries.push({ path: path2, type: "resource", fileSrc: "/project/" + rel(file.path) });
224514
225725
  }
224515
225726
  }
224516
225727
  const shaderEntries = entries.filter((e2) => e2.type === "shader");
224517
225728
  if (shaderEntries.length > 0) {
224518
- const { warnings } = await applyLocalShaders(shaderEntries, { root, srcPrefix: "/project/.lecodes/shaders", platforms: ["webgl", "webgl-lite"] });
225729
+ const { warnings } = await applyLocalShaders(shaderEntries, { root, srcPrefix: "/project/.lecodes/shaders", platforms: ["opengl", "webgl-lite"] });
224519
225730
  for (const w of warnings)
224520
225731
  warnErr(w);
224521
225732
  const { buildLiteMaterialArtifact: buildLiteMaterialArtifact2 } = await Promise.resolve().then(() => (init_compile(), exports_compile));
@@ -224524,12 +225735,12 @@ var compileSceneEditor = async (opts) => {
224524
225735
  continue;
224525
225736
  const hash = createHash8("sha256").update(e2.text ?? "").digest("hex").slice(0, 16);
224526
225737
  const dir = shadersCacheDir(root);
224527
- mkdirSync24(dir, { recursive: true });
225738
+ mkdirSync25(dir, { recursive: true });
224528
225739
  const liteName = `${hash}_webgl-lite.filamat`;
224529
- if (!existsSync32(join34(dir, liteName)))
224530
- writeFileSync26(join34(dir, liteName), JSON.stringify(buildLiteMaterialArtifact2(e2.text ?? "")));
225740
+ if (!existsSync33(join35(dir, liteName)))
225741
+ writeFileSync27(join35(dir, liteName), JSON.stringify(buildLiteMaterialArtifact2(e2.text ?? "")));
224531
225742
  const src = `/project/.lecodes/shaders/${hash}_opengl.filamat`;
224532
- e2.shaders = ["opengl", "webgl", "webgl-lite"].map((platform) => ({ platform, src }));
225743
+ e2.shaders = ["opengl", "webgl-lite"].map((platform) => ({ platform, src }));
224533
225744
  }
224534
225745
  }
224535
225746
  const scene = scenePath.startsWith("./") ? scenePath : "./" + rel(scenePath);
@@ -224561,7 +225772,7 @@ var DEFAULT_PORT3 = 4488;
224561
225772
  var findAppRoot = (start) => {
224562
225773
  let dir = start;
224563
225774
  while (true) {
224564
- if (existsSync33(join35(dir, "app.json")))
225775
+ if (existsSync34(join36(dir, "app.json")))
224565
225776
  return dir;
224566
225777
  const parent = dirname17(dir);
224567
225778
  if (parent === dir)
@@ -224569,6 +225780,13 @@ var findAppRoot = (start) => {
224569
225780
  dir = parent;
224570
225781
  }
224571
225782
  };
225783
+ var projectRootOf = (dir) => {
225784
+ try {
225785
+ return findProjectRoot(dir);
225786
+ } catch {
225787
+ return findAppRoot(dir) ?? dir;
225788
+ }
225789
+ };
224572
225790
  var getContext2 = (args) => {
224573
225791
  let root;
224574
225792
  let manifest;
@@ -224580,10 +225798,10 @@ var getContext2 = (args) => {
224580
225798
  manifest = null;
224581
225799
  const pathArg = args._[0];
224582
225800
  if (pathArg) {
224583
- const abs = resolve17(process.cwd(), pathArg);
224584
- if (existsSync33(abs) && statSync12(abs).isDirectory())
225801
+ const abs = resolve18(process.cwd(), pathArg);
225802
+ if (existsSync34(abs) && statSync13(abs).isDirectory())
224585
225803
  root = abs;
224586
- else if (abs.endsWith(".scene.ts") && existsSync33(abs))
225804
+ else if (abs.endsWith(".scene.ts") && existsSync34(abs))
224587
225805
  root = findAppRoot(dirname17(abs)) ?? dirname17(abs);
224588
225806
  else
224589
225807
  throw new CliError(`No such folder or .scene.ts: ${pathArg}`);
@@ -224591,15 +225809,15 @@ var getContext2 = (args) => {
224591
225809
  root = findAppRoot(root) ?? root;
224592
225810
  }
224593
225811
  }
224594
- return { root, manifest, name: manifest?.name ?? basename16(root) };
225812
+ return { root, manifest, name: manifest?.name ?? basename17(root) };
224595
225813
  };
224596
225814
  var writeMcpConfig2 = (root, port) => {
224597
- const path2 = join35(root, ".mcp.json");
225815
+ const path2 = join36(root, ".mcp.json");
224598
225816
  const entry = { type: "http", url: `http://localhost:${port}/mcp` };
224599
225817
  let config = {};
224600
- if (existsSync33(path2)) {
225818
+ if (existsSync34(path2)) {
224601
225819
  try {
224602
- config = JSON.parse(readFileSync30(path2, "utf8"));
225820
+ config = JSON.parse(readFileSync32(path2, "utf8"));
224603
225821
  } catch {
224604
225822
  warnErr(".mcp.json exists but isn't valid JSON — left it untouched. Add the lecodes-scene server by hand.");
224605
225823
  return;
@@ -224612,17 +225830,17 @@ var writeMcpConfig2 = (root, port) => {
224612
225830
  return;
224613
225831
  }
224614
225832
  config.mcpServers["lecodes-scene"] = entry;
224615
- writeFileSync27(path2, JSON.stringify(config, null, 2) + `
225833
+ writeFileSync28(path2, JSON.stringify(config, null, 2) + `
224616
225834
  `);
224617
225835
  note(`${existing ? "updated" : "created"} .mcp.json (lecodes-scene MCP → ${entry.url})`);
224618
225836
  };
224619
225837
  var countScenes = (dir) => {
224620
225838
  let n2 = 0;
224621
- for (const name of readdirSync14(dir)) {
225839
+ for (const name of readdirSync15(dir)) {
224622
225840
  if (name === "node_modules" || name.startsWith("."))
224623
225841
  continue;
224624
- const full = join35(dir, name);
224625
- if (statSync12(full).isDirectory())
225842
+ const full = join36(dir, name);
225843
+ if (statSync13(full).isDirectory())
224626
225844
  n2 += countScenes(full);
224627
225845
  else if (name.endsWith(".scene.ts"))
224628
225846
  n2++;
@@ -224663,13 +225881,170 @@ var scene = async (args) => {
224663
225881
  openBrowser(server2.url);
224664
225882
  };
224665
225883
 
225884
+ // src/commands/thumbs.ts
225885
+ import { createRequire as createRequire5 } from "node:module";
225886
+ import { execFileSync as execFileSync7 } from "node:child_process";
225887
+ import { existsSync as existsSync35, mkdtempSync as mkdtempSync6, readdirSync as readdirSync16, rmSync as rmSync12, statSync as statSync14 } from "node:fs";
225888
+ import { tmpdir as tmpdir6 } from "node:os";
225889
+ import { extname, join as join37, relative as relative7, resolve as resolve19 } from "node:path";
225890
+ init_util();
225891
+ var DEFAULT_SIZE = 256;
225892
+ var IMAGE_EXT = /\.(png|jpe?g|webp|bmp|gif|tiff?|ktx2)$/i;
225893
+ var RENDERED_EXT = /\.(glb|gltf|material\.ts|scene\.ts)$/i;
225894
+ var findKtx = () => {
225895
+ const exe = process.platform === "win32" ? "ktx.exe" : "ktx";
225896
+ const candidates = [
225897
+ process.env.LECODES_KTX,
225898
+ process.env.KTX_CLI,
225899
+ process.env.KTX_TOKTX?.replace(/toktx(\.exe)?$/i, exe),
225900
+ process.platform === "win32" ? join37(process.env.LOCALAPPDATA ?? "", "Programs", "KTX-Software", "bin", exe) : null,
225901
+ process.platform === "win32" ? join37(process.env.ProgramFiles ?? "", "KTX-Software", "bin", exe) : null,
225902
+ "/usr/local/bin/ktx",
225903
+ "/opt/homebrew/bin/ktx"
225904
+ ].filter((p2) => !!p2);
225905
+ for (const path2 of candidates) {
225906
+ if (existsSync35(path2))
225907
+ return path2;
225908
+ }
225909
+ try {
225910
+ execFileSync7(exe, ["--version"], { stdio: "ignore" });
225911
+ return exe;
225912
+ } catch {
225913
+ return null;
225914
+ }
225915
+ };
225916
+ var sharpResizer = () => {
225917
+ try {
225918
+ const req = createRequire5(import.meta.url);
225919
+ const sharp = createRequire5(req.resolve("lecodes-assets/cli"))("sharp");
225920
+ return async (file, size) => sharp(file).resize({ width: size, height: size, fit: "inside", withoutEnlargement: true }).png().toBuffer();
225921
+ } catch {
225922
+ return null;
225923
+ }
225924
+ };
225925
+ var jimpResizer = () => async (file, size) => {
225926
+ const { Jimp: Jimp2 } = await Promise.resolve().then(() => (init_esm30(), exports_esm2));
225927
+ const img = await Jimp2.read(file);
225928
+ if (Math.max(img.width, img.height) > size)
225929
+ img.scaleToFit({ w: size, h: size });
225930
+ return await img.getBuffer("image/png");
225931
+ };
225932
+ var ktxToPng = (ktx, file, out) => {
225933
+ const run2 = (args) => execFileSync7(ktx, args, { stdio: ["ignore", "ignore", "pipe"], encoding: "utf8" });
225934
+ try {
225935
+ run2(["extract", "--transcode", "rgba8", "--level", "0", file, out]);
225936
+ } catch (e2) {
225937
+ run2(["extract", "--level", "0", file, out]);
225938
+ if (!existsSync35(out))
225939
+ throw e2;
225940
+ }
225941
+ };
225942
+ var collect = (dir) => {
225943
+ const out = [];
225944
+ for (const name of readdirSync16(dir)) {
225945
+ if (name === "node_modules" || name.startsWith("."))
225946
+ continue;
225947
+ const full = join37(dir, name);
225948
+ if (statSync14(full).isDirectory())
225949
+ out.push(...collect(full));
225950
+ else if (IMAGE_EXT.test(name))
225951
+ out.push(full);
225952
+ }
225953
+ return out;
225954
+ };
225955
+ var thumbs = async (args) => {
225956
+ const root = projectRootOf(process.cwd());
225957
+ let sceneServer;
225958
+ try {
225959
+ sceneServer = await import("lecodes-3d-editor/server");
225960
+ } catch {
225961
+ throw new CliError("The scene editor isn't installed (it owns the preview cache). Run: npm install -g lecodes-3d-editor");
225962
+ }
225963
+ const size = Number(flagStr(args, "size")) || DEFAULT_SIZE;
225964
+ const force = flagBool(args, "force");
225965
+ let files = [];
225966
+ const rendered = [];
225967
+ if (args._.length > 0) {
225968
+ for (const arg of args._) {
225969
+ const abs = resolve19(process.cwd(), arg);
225970
+ if (!existsSync35(abs))
225971
+ throw new CliError(`No such file or folder: ${arg}`);
225972
+ if (statSync14(abs).isDirectory())
225973
+ files.push(...collect(abs));
225974
+ else if (IMAGE_EXT.test(abs))
225975
+ files.push(abs);
225976
+ else if (RENDERED_EXT.test(abs))
225977
+ rendered.push(arg);
225978
+ else
225979
+ throw new CliError(`Not a previewable asset: ${arg}`);
225980
+ }
225981
+ } else {
225982
+ files = collect(root);
225983
+ }
225984
+ files = [...new Set(files)];
225985
+ if (files.length === 0 && rendered.length === 0) {
225986
+ log("No images to thumbnail.");
225987
+ return;
225988
+ }
225989
+ const ktx = files.some((f3) => f3.toLowerCase().endsWith(".ktx2")) ? findKtx() : null;
225990
+ const sharp = sharpResizer();
225991
+ const resize = sharp ?? jimpResizer();
225992
+ const tmp = mkdtempSync6(join37(tmpdir6(), "lecodes-thumbs-"));
225993
+ let made = 0, fresh = 0;
225994
+ const skipped = [];
225995
+ try {
225996
+ for (const [i2, file] of files.entries()) {
225997
+ const asset = "./" + toKey(relative7(root, file));
225998
+ progress(i2, files.length, asset);
225999
+ const hash = sceneServer.hashAsset(root, asset);
226000
+ if (!hash)
226001
+ continue;
226002
+ if (!force && sceneServer.previewIsCurrent(root, asset, hash)) {
226003
+ fresh++;
226004
+ continue;
226005
+ }
226006
+ const ext2 = extname(file).toLowerCase();
226007
+ if (ext2 === ".webp" && !sharp) {
226008
+ skipped.push(`${asset} (webp needs sharp — npm install -g lecodes-assets)`);
226009
+ continue;
226010
+ }
226011
+ try {
226012
+ let source = file;
226013
+ if (ext2 === ".ktx2") {
226014
+ if (!ktx) {
226015
+ skipped.push(`${asset} (KTX2 needs KTX-Software's \`ktx\` — set LECODES_KTX or put it on PATH)`);
226016
+ continue;
226017
+ }
226018
+ source = join37(tmp, `${i2}.png`);
226019
+ ktxToPng(ktx, file, source);
226020
+ }
226021
+ sceneServer.writePreviewFile(root, asset, await resize(source, size));
226022
+ made++;
226023
+ } catch (e2) {
226024
+ skipped.push(`${asset} (${(e2?.message ?? String(e2)).split(`
226025
+ `)[0]})`);
226026
+ }
226027
+ }
226028
+ } finally {
226029
+ endProgress();
226030
+ rmSync12(tmp, { recursive: true, force: true });
226031
+ }
226032
+ log(`${c.bold(String(made))} generated · ${fresh} already current${skipped.length > 0 ? ` · ${skipped.length} skipped` : ""}`);
226033
+ for (const s2 of skipped)
226034
+ warnErr(s2);
226035
+ if (rendered.length > 0) {
226036
+ warnErr(`Models, materials and prefabs are RENDERED, not decoded — the scene editor does those: ${rendered.join(", ")}`);
226037
+ }
226038
+ note(`Cache: ${join37(root, ".lecodes", "preview")} (re-runs skip everything unchanged)`);
226039
+ };
226040
+
224666
226041
  // src/commands/assets.ts
224667
226042
  init_util();
224668
226043
 
224669
226044
  // src/cmgenTool.ts
224670
- import { existsSync as existsSync34, readdirSync as readdirSync15 } from "node:fs";
226045
+ import { existsSync as existsSync36, readdirSync as readdirSync17 } from "node:fs";
224671
226046
  import { homedir as homedir8 } from "node:os";
224672
- import { join as join36, resolve as resolve18 } from "node:path";
226047
+ import { join as join38, resolve as resolve20 } from "node:path";
224673
226048
  init_util();
224674
226049
  var exeName2 = () => process.platform === "win32" ? "cmgen.exe" : "cmgen";
224675
226050
  var platformKey3 = () => {
@@ -224679,10 +226054,10 @@ var platformKey3 = () => {
224679
226054
  return "linux-x64";
224680
226055
  throw new CliError(process.platform === "darwin" ? "cmgen isn't published for macOS yet — build filament's host tools locally and set LECODES_CMGEN." : `cmgen isn't published for ${process.platform}.`);
224681
226056
  };
224682
- var cacheRoot3 = () => join36(homedir8(), ".lecodes", "cmgen");
226057
+ var cacheRoot3 = () => join38(homedir8(), ".lecodes", "cmgen");
224683
226058
  var findCmgenIn = (dir) => {
224684
- for (const entry of readdirSync15(dir, { withFileTypes: true })) {
224685
- const p2 = join36(dir, entry.name);
226059
+ for (const entry of readdirSync17(dir, { withFileTypes: true })) {
226060
+ const p2 = join38(dir, entry.name);
224686
226061
  if (entry.isFile() && entry.name === exeName2())
224687
226062
  return p2;
224688
226063
  if (entry.isDirectory()) {
@@ -224695,7 +226070,7 @@ var findCmgenIn = (dir) => {
224695
226070
  };
224696
226071
  var installedCmgenVersions = () => {
224697
226072
  try {
224698
- return readdirSync15(cacheRoot3(), { withFileTypes: true }).filter((e2) => e2.isDirectory() && e2.name.startsWith("cmgen-")).map((e2) => e2.name.slice("cmgen-".length)).filter((v) => findCmgenIn(join36(cacheRoot3(), `cmgen-${v}`)) !== null).sort(semverNewer);
226073
+ return readdirSync17(cacheRoot3(), { withFileTypes: true }).filter((e2) => e2.isDirectory() && e2.name.startsWith("cmgen-")).map((e2) => e2.name.slice("cmgen-".length)).filter((v) => findCmgenIn(join38(cacheRoot3(), `cmgen-${v}`)) !== null).sort(semverNewer);
224699
226074
  } catch {
224700
226075
  return [];
224701
226076
  }
@@ -224717,19 +226092,19 @@ var downloadCmgen = async (version, versions, dest) => {
224717
226092
  var resolveCmgenExeCached = () => {
224718
226093
  const override = process.env.LECODES_CMGEN;
224719
226094
  if (override) {
224720
- if (!existsSync34(override))
226095
+ if (!existsSync36(override))
224721
226096
  throw new CliError(`LECODES_CMGEN points at "${override}" which doesn't exist.`);
224722
- return resolve18(override);
226097
+ return resolve20(override);
224723
226098
  }
224724
226099
  const cached = installedCmgenVersions()[0];
224725
- return cached ? findCmgenIn(join36(cacheRoot3(), `cmgen-${cached}`)) : null;
226100
+ return cached ? findCmgenIn(join38(cacheRoot3(), `cmgen-${cached}`)) : null;
224726
226101
  };
224727
226102
  var resolveCmgenExe = async () => {
224728
226103
  const cached = resolveCmgenExeCached();
224729
226104
  if (cached)
224730
226105
  return cached;
224731
226106
  const { latest, versions } = await fetchCmgenManifest();
224732
- const dir = join36(cacheRoot3(), `cmgen-${latest}`);
226107
+ const dir = join38(cacheRoot3(), `cmgen-${latest}`);
224733
226108
  await downloadCmgen(latest, versions, dir);
224734
226109
  const exe = findCmgenIn(dir);
224735
226110
  if (!exe)
@@ -224787,8 +226162,8 @@ var status3 = async (_args) => {
224787
226162
  };
224788
226163
 
224789
226164
  // src/commands/test.ts
224790
- import { existsSync as existsSync35, mkdirSync as mkdirSync25, readFileSync as readFileSync31, readdirSync as readdirSync16 } from "node:fs";
224791
- import { dirname as dirname18, resolve as resolve19 } from "node:path";
226165
+ import { existsSync as existsSync37, mkdirSync as mkdirSync26, readFileSync as readFileSync33, readdirSync as readdirSync18 } from "node:fs";
226166
+ import { dirname as dirname18, resolve as resolve21 } from "node:path";
224792
226167
  init_manifest();
224793
226168
  init_util();
224794
226169
  var deriveDesignFlows = (meta, entryScreen) => {
@@ -224851,7 +226226,7 @@ var slug3 = (s2) => s2.replace(/[^a-zA-Z0-9-_]+/g, "-").replace(/^-+|-+$/g, "").
224851
226226
  var readFlowFile = (abs, displayName) => {
224852
226227
  let raw;
224853
226228
  try {
224854
- raw = JSON.parse(readFileSync31(abs, "utf8"));
226229
+ raw = JSON.parse(readFileSync33(abs, "utf8"));
224855
226230
  } catch (e2) {
224856
226231
  throw new CliError(`Can't read "${displayName}": ${e2 instanceof Error ? e2.message : String(e2)}`);
224857
226232
  }
@@ -224906,40 +226281,40 @@ var test = async (args) => {
224906
226281
  if (!Number.isFinite(nativeFixedDt) || nativeFixedDt < 0 || nativeFixedDt > 1000)
224907
226282
  throw new CliError(`--fixed-dt wants a number of ms (0 = wall clock, max 1000), got "${fixedDtFlag}".`);
224908
226283
  const projectViewport = desktopDefaultViewport(root);
224909
- const testsDir = resolve19(root, flagStr(args, "dir") ?? "tests");
224910
- const designMetaPath = resolve19(root, flagStr(args, "design-dir") ?? "design", "meta.json");
226284
+ const testsDir = resolve21(root, flagStr(args, "dir") ?? "tests");
226285
+ const designMetaPath = resolve21(root, flagStr(args, "design-dir") ?? "design", "meta.json");
224911
226286
  const asJson = flagBool(args, "json");
224912
226287
  const out = asJson ? logErr : log;
224913
226288
  const cases = [];
224914
226289
  if (args._.length > 0) {
224915
226290
  for (const given of args._) {
224916
- const candidates = [resolve19(given), resolve19(testsDir, given), resolve19(testsDir, `${given}.flow.json`)];
224917
- const abs = candidates.find((p2) => existsSync35(p2));
226291
+ const candidates = [resolve21(given), resolve21(testsDir, given), resolve21(testsDir, `${given}.flow.json`)];
226292
+ const abs = candidates.find((p2) => existsSync37(p2));
224918
226293
  if (!abs)
224919
226294
  throw new CliError(`No such test: "${given}" (looked in ${testsDir}).`);
224920
226295
  cases.push(readFlowFile(abs, given));
224921
226296
  }
224922
- } else if (existsSync35(testsDir)) {
224923
- for (const f3 of readdirSync16(testsDir).filter((f4) => f4.endsWith(".flow.json")).sort()) {
224924
- cases.push(readFlowFile(resolve19(testsDir, f3), f3));
226297
+ } else if (existsSync37(testsDir)) {
226298
+ for (const f3 of readdirSync18(testsDir).filter((f4) => f4.endsWith(".flow.json")).sort()) {
226299
+ cases.push(readFlowFile(resolve21(testsDir, f3), f3));
224925
226300
  }
224926
226301
  }
224927
226302
  const fixturesFlag = flagStr(args, "fixtures");
224928
- const defaultPack = resolve19(testsDir, "fixtures.json");
224929
- const flowFixtures = fixturesFlag !== undefined ? resolveFixtures(fixturesFlag, ".") : existsSync35(defaultPack) ? resolveFixtures("fixtures.json", testsDir) : undefined;
226303
+ const defaultPack = resolve21(testsDir, "fixtures.json");
226304
+ const flowFixtures = fixturesFlag !== undefined ? resolveFixtures(fixturesFlag, ".") : existsSync37(defaultPack) ? resolveFixtures("fixtures.json", testsDir) : undefined;
224930
226305
  const flowsOnly = flagBool(args, "flows");
224931
226306
  const wantFlows = !flagBool(args, "no-flows") && args._.length === 0;
224932
226307
  if (flowsOnly)
224933
226308
  cases.length = 0;
224934
226309
  let skipped = [];
224935
226310
  let entryScreen = null;
224936
- if (desktop2 && wantFlows && existsSync35(designMetaPath)) {
226311
+ if (desktop2 && wantFlows && existsSync37(designMetaPath)) {
224937
226312
  note("Design-derived flows skipped with --desktop (they tap by name; run `lecodes test` headless for them).");
224938
226313
  }
224939
- if (!desktop2 && (wantFlows || flowsOnly) && existsSync35(designMetaPath)) {
226314
+ if (!desktop2 && (wantFlows || flowsOnly) && existsSync37(designMetaPath)) {
224940
226315
  let meta;
224941
226316
  try {
224942
- meta = JSON.parse(readFileSync31(designMetaPath, "utf8"));
226317
+ meta = JSON.parse(readFileSync33(designMetaPath, "utf8"));
224943
226318
  } catch (e2) {
224944
226319
  throw new CliError(`Can't read ${designMetaPath}: ${e2 instanceof Error ? e2.message : String(e2)}`);
224945
226320
  }
@@ -224971,16 +226346,16 @@ var test = async (args) => {
224971
226346
  }, timeoutMs);
224972
226347
  killer.unref?.();
224973
226348
  const onConsole = flagBool(args, "logs") ? (level, text) => logErr(`${c.dim(`[${level}]`)} ${text}`) : undefined;
224974
- const artifactsRoot = resolve19(root, flagStr(args, "artifacts") ?? resolve19(testsDir, ".artifacts"));
226349
+ const artifactsRoot = resolve21(root, flagStr(args, "artifacts") ?? resolve21(testsDir, ".artifacts"));
224975
226350
  const results = [];
224976
226351
  const runNativeCase = async (kase) => {
224977
- const caseDir = resolve19(artifactsRoot, slug3(kase.name));
226352
+ const caseDir = resolve21(artifactsRoot, slug3(kase.name));
224978
226353
  const plan = translateScenario(kase.steps, { outDir: caseDir, headroomFrames: nativeFrames });
224979
226354
  for (const st of plan.steps)
224980
226355
  if (st.screenshot)
224981
- mkdirSync25(dirname18(st.screenshot), { recursive: true });
224982
- mkdirSync25(caseDir, { recursive: true });
224983
- const finalPng = resolve19(caseDir, "final.png");
226356
+ mkdirSync26(dirname18(st.screenshot), { recursive: true });
226357
+ mkdirSync26(caseDir, { recursive: true });
226358
+ const finalPng = resolve21(caseDir, "final.png");
224984
226359
  const { output } = await runDesktopRender(native.js, native.resources, {
224985
226360
  renderer: desktopRenderer,
224986
226361
  width: Number(flagStr(args, "width")) || kase.width || projectViewport?.width || 390,
@@ -225032,14 +226407,14 @@ var test = async (args) => {
225032
226407
  onConsole
225033
226408
  });
225034
226409
  try {
225035
- const io = fileScenarioIO(resolve19(artifactsRoot, slug3(kase.name)));
226410
+ const io = fileScenarioIO(resolve21(artifactsRoot, slug3(kase.name)));
225036
226411
  const outcome = await renderer.runScenario(session, steps, io);
225037
226412
  result = {
225038
226413
  name: kase.name,
225039
226414
  kind: kase.kind,
225040
226415
  ok: outcome.ok,
225041
226416
  steps: outcome.steps.map((s2) => ({ desc: s2.desc, ok: s2.ok, error: s2.error })),
225042
- artifacts: outcome.failureArtifacts.map((p2) => resolve19(artifactsRoot, slug3(kase.name), p2))
226417
+ artifacts: outcome.failureArtifacts.map((p2) => resolve21(artifactsRoot, slug3(kase.name), p2))
225043
226418
  };
225044
226419
  } finally {
225045
226420
  session.dispose();
@@ -225101,17 +226476,54 @@ var test = async (args) => {
225101
226476
  process.exit(failed > 0 ? 1 : 0);
225102
226477
  };
225103
226478
 
226479
+ // src/commands/update.ts
226480
+ import { spawnSync as spawnSync7 } from "node:child_process";
226481
+ import { existsSync as existsSync39, readdirSync as readdirSync19 } from "node:fs";
226482
+ import { homedir as homedir9 } from "node:os";
226483
+ import { dirname as dirname20, join as join40, resolve as resolve23 } from "node:path";
226484
+ init_util();
226485
+
226486
+ // src/peers.ts
226487
+ import { existsSync as existsSync38, readFileSync as readFileSync34 } from "node:fs";
226488
+ import { createRequire as createRequire6 } from "node:module";
226489
+ import { dirname as dirname19, join as join39 } from "node:path";
226490
+ var OPTIONAL_PEERS = [
226491
+ ["lecodes-renderer", "lecodes-renderer/headless"],
226492
+ ["lecodes-design", "lecodes-design/server"],
226493
+ ["lecodes-3d-editor", "lecodes-3d-editor/server"],
226494
+ ["lecodes-assets", "lecodes-assets/cli"]
226495
+ ];
226496
+ var peerVersion = (name, probe) => {
226497
+ try {
226498
+ const require2 = createRequire6(import.meta.url);
226499
+ let dir = dirname19(require2.resolve(probe));
226500
+ for (let depth = 0;depth < 16; depth++) {
226501
+ const manifest = join39(dir, "package.json");
226502
+ if (existsSync38(manifest)) {
226503
+ const parsed = JSON.parse(readFileSync34(manifest, "utf8"));
226504
+ if (parsed.name === name)
226505
+ return parsed.version ?? "unknown";
226506
+ }
226507
+ const parent = dirname19(dir);
226508
+ if (parent === dir)
226509
+ break;
226510
+ dir = parent;
226511
+ }
226512
+ } catch {}
226513
+ return null;
226514
+ };
226515
+
225104
226516
  // src/commands/types.ts
225105
226517
  init_api();
225106
226518
  init_config();
225107
226519
  init_manifest();
225108
226520
  init_types4();
225109
226521
  init_util();
225110
- import { resolve as resolve20 } from "node:path";
226522
+ import { resolve as resolve22 } from "node:path";
225111
226523
  var label = (bundle) => `${Object.keys(bundle).length} file(s)`;
225112
226524
  var types4 = async (args) => {
225113
226525
  const dirArg = args._[0];
225114
- const root = dirArg ? resolve20(dirArg) : (() => {
226526
+ const root = dirArg ? resolve22(dirArg) : (() => {
225115
226527
  try {
225116
226528
  return findProjectRoot(process.cwd());
225117
226529
  } catch {
@@ -225146,9 +226558,9 @@ var types4 = async (args) => {
225146
226558
  const same = bundleHash(onDisk) === bundleHash(bundle);
225147
226559
  if (checkOnly) {
225148
226560
  if (Object.keys(onDisk).length === 0)
225149
- throw new CliError(`No types in ${LECODES_DIR}/types/ — run \`lecodes types\`.`);
226561
+ throw new CliError(`No types in ${LECODES_DIR}/types/ — run \`lecodes update\`.`);
225150
226562
  if (!same)
225151
- throw new CliError(`Types are out of date (${label(onDisk)} on disk) — run \`lecodes types\`.`);
226563
+ throw new CliError(`Types are out of date (${label(onDisk)} on disk) — run \`lecodes update\`.`);
225152
226564
  success(`Types are up to date (${label(onDisk)}).`);
225153
226565
  return;
225154
226566
  }
@@ -225169,24 +226581,161 @@ var types4 = async (args) => {
225169
226581
  note("Reload the TypeScript server in your editor to pick them up.");
225170
226582
  };
225171
226583
 
226584
+ // src/commands/update.ts
226585
+ var findProjectDir = (start) => {
226586
+ const home = resolve23(homedir9());
226587
+ let dir = resolve23(start);
226588
+ while (true) {
226589
+ if (dir !== home && (existsSync39(join40(dir, "app.json")) || existsSync39(join40(dir, ".lecodes", "manifest.json")) || existsSync39(join40(dir, ".lecodes", "types"))))
226590
+ return dir;
226591
+ const parent = dirname20(dir);
226592
+ if (parent === dir)
226593
+ return null;
226594
+ dir = parent;
226595
+ }
226596
+ };
226597
+ var NPM = "https://registry.npmjs.org";
226598
+ var npmLatest = async (name) => {
226599
+ try {
226600
+ const res = await fetch(`${NPM}/${name}/latest`, { signal: AbortSignal.timeout(4000) });
226601
+ if (!res.ok)
226602
+ return null;
226603
+ const json = await res.json();
226604
+ return json.version ?? null;
226605
+ } catch {
226606
+ return null;
226607
+ }
226608
+ };
226609
+ var semverNewer2 = (a2, b) => {
226610
+ const pa = a2.split(/[.-]/).map(Number), pb = b.split(/[.-]/).map(Number);
226611
+ for (let i2 = 0;i2 < 3; i2++) {
226612
+ const d = (pa[i2] ?? 0) - (pb[i2] ?? 0);
226613
+ if (d)
226614
+ return d;
226615
+ }
226616
+ return 0;
226617
+ };
226618
+ var FROM_SOURCE = /[\\/]src[\\/]commands[\\/]/.test(import.meta.url);
226619
+ var STANDALONE = existsSync39(join40(dirname20(process.execPath), "runtime")) && existsSync39(join40(dirname20(process.execPath), process.platform === "win32" ? "chisel.exe" : "chisel"));
226620
+ var update = async (args) => {
226621
+ const steps = [];
226622
+ const heading = (name, what) => log(`
226623
+ ${c.bold(name)} ${c.dim(what)}`);
226624
+ const run2 = async (name, what, fn) => {
226625
+ heading(name, what);
226626
+ try {
226627
+ const r2 = await fn();
226628
+ const [outcome, detail] = Array.isArray(r2) ? r2 : [r2, undefined];
226629
+ steps.push({ name, outcome, detail });
226630
+ if (outcome === "skipped" && detail)
226631
+ note(`skipped — ${detail}`);
226632
+ } catch (e2) {
226633
+ const msg = e2 instanceof CliError ? e2.message : e2 instanceof Error ? e2.message : String(e2);
226634
+ log(c.red("✗ ") + msg);
226635
+ steps.push({ name, outcome: "failed", detail: msg });
226636
+ }
226637
+ };
226638
+ const root = findProjectDir(process.cwd());
226639
+ await run2("desktop", "LeCodes Desktop host (desktop run / render --desktop)", async () => {
226640
+ if (process.env.LECODES_DESKTOP_EXE)
226641
+ return ["skipped", `LECODES_DESKTOP_EXE=${process.env.LECODES_DESKTOP_EXE} (a local build; \`lecodes desktop update\` refreshes the cache anyway)`];
226642
+ await updateDesktop();
226643
+ return "ok";
226644
+ });
226645
+ await run2("matc", "Filament material compiler for local shader compiles", async () => {
226646
+ if (process.env.LECODES_MATC)
226647
+ return ["skipped", `LECODES_MATC=${process.env.LECODES_MATC} (a local matc)`];
226648
+ await updateMatc();
226649
+ return "ok";
226650
+ });
226651
+ await run2("shaders", "recompile the project's .mat shaders with the current matc", async () => {
226652
+ if (!root)
226653
+ return ["skipped", "not inside a project"];
226654
+ await shaders({ _: ["compile"], flags: {} });
226655
+ return "ok";
226656
+ });
226657
+ await run2("types", flagBool(args, "local") ? "IDE types from the SDK bundled in this CLI" : "IDE types from the server", async () => {
226658
+ if (!root)
226659
+ return ["skipped", "not inside a project"];
226660
+ await types4({ _: [], flags: flagBool(args, "local") ? { local: true } : {} });
226661
+ return "ok";
226662
+ });
226663
+ await run2("shells", "ios/ + android/ pins → newest SDK release + plugin tags, then re-sync", async () => {
226664
+ if (!root)
226665
+ return ["skipped", "not inside a project"];
226666
+ if (flagBool(args, "no-shells"))
226667
+ return ["skipped", "--no-shells"];
226668
+ const present = ["ios", "android"].filter((d) => existsSync39(join40(root, d)) && readdirSync19(join40(root, d)).length > 0);
226669
+ if (present.length === 0)
226670
+ return ["skipped", "no ios/ or android/ shell in this project (`lecodes app init ios|android`)"];
226671
+ await app({ _: ["update"], flags: {} });
226672
+ return "ok";
226673
+ });
226674
+ await run2("cli", "lecodes-cli + its optional peers (global npm installs)", async () => {
226675
+ if (flagBool(args, "no-cli"))
226676
+ return ["skipped", "--no-cli"];
226677
+ if (FROM_SOURCE)
226678
+ return ["skipped", "running from the repo checkout — the CLI and its peers are the repo's own"];
226679
+ const rows = [];
226680
+ for (const [name, probe] of OPTIONAL_PEERS) {
226681
+ const installed = peerVersion(name, probe);
226682
+ rows.push({ name, installed, latest: installed ? await npmLatest(name) : null });
226683
+ }
226684
+ rows.push({ name: "lecodes-cli", installed: package_default.version, latest: await npmLatest("lecodes-cli") });
226685
+ if (rows.every((r3) => r3.latest === null))
226686
+ return ["skipped", "npm unreachable"];
226687
+ const behind = rows.filter((r3) => r3.installed && r3.latest && semverNewer2(r3.latest, r3.installed) > 0);
226688
+ for (const r3 of rows) {
226689
+ const state = !r3.installed ? c.dim("not installed (optional — npm install -g " + r3.name + ")") : !r3.latest ? c.dim("(npm: unknown)") : behind.includes(r3) ? c.yellow("→ " + r3.latest) : c.dim("(up to date)");
226690
+ log(" " + r3.name.padEnd(18) + " " + (r3.installed ?? "").padEnd(8) + " " + state);
226691
+ }
226692
+ if (behind.length === 0)
226693
+ return "ok";
226694
+ const specs = behind.map((r3) => r3.name + "@latest");
226695
+ if (flagBool(args, "check"))
226696
+ return ["updated", behind.length + " behind — run: npm install -g " + specs.join(" ")];
226697
+ if (STANDALONE && behind.some((r3) => r3.name === "lecodes-cli")) {
226698
+ note("this is the standalone build — the CLI updates by re-installing the release archive, not through npm; peers still go through npm");
226699
+ }
226700
+ const toInstall = STANDALONE ? specs.filter((s2) => !s2.startsWith("lecodes-cli@")) : specs;
226701
+ if (toInstall.length === 0)
226702
+ return ["skipped", "only the standalone CLI itself is behind — download the release"];
226703
+ log(" " + c.dim("$") + " npm install -g " + toInstall.join(" "));
226704
+ const r2 = spawnSync7("npm", ["install", "-g", ...toInstall], { stdio: "inherit", shell: true });
226705
+ if (r2.status !== 0)
226706
+ throw new CliError("npm install -g exited with " + (r2.status ?? "a signal"));
226707
+ const names3 = toInstall.map((s2) => s2.replace("@latest", "")).join(", ");
226708
+ const cliToo = toInstall.some((s2) => s2.startsWith("lecodes-cli@"));
226709
+ return ["updated", names3 + " → latest" + (cliToo ? " (the new CLI runs from your next command)" : "")];
226710
+ });
226711
+ log(`
226712
+ ${c.bold("Summary")}`);
226713
+ const width = Math.max(...steps.map((s2) => s2.name.length));
226714
+ for (const s2 of steps) {
226715
+ const mark = s2.outcome === "failed" ? c.red("✗") : s2.outcome === "skipped" ? c.dim("–") : c.green("✓");
226716
+ log(` ${mark} ${s2.name.padEnd(width)} ${s2.outcome === "failed" ? c.red(s2.detail ?? "failed") : s2.outcome === "skipped" ? c.dim(s2.detail ?? "skipped") : s2.detail ?? s2.outcome}`);
226717
+ }
226718
+ if (steps.some((s2) => s2.outcome === "failed"))
226719
+ process.exitCode = 1;
226720
+ };
226721
+
225172
226722
  // src/index.ts
225173
- import { existsSync as existsSync38, readFileSync as readFileSync34, realpathSync as realpathSync2 } from "node:fs";
225174
- import { createRequire as createRequire4 } from "node:module";
225175
- import { delimiter as delimiter2, dirname as dirname21, join as join39 } from "node:path";
226723
+ import { existsSync as existsSync42, realpathSync as realpathSync2 } from "node:fs";
226724
+ import { delimiter as delimiter2, dirname as dirname23, join as join43 } from "node:path";
225176
226725
 
225177
226726
  // src/commands/install.ts
225178
226727
  init_util();
225179
- import { execFileSync as execFileSync7 } from "node:child_process";
225180
- import { appendFileSync as appendFileSync3, chmodSync as chmodSync2, cpSync as cpSync5, existsSync as existsSync36, mkdirSync as mkdirSync26, readFileSync as readFileSync32, realpathSync, rmSync as rmSync11, symlinkSync } from "node:fs";
225181
- import { homedir as homedir9 } from "node:os";
225182
- import { basename as basename17, delimiter, dirname as dirname19, join as join37, resolve as resolve21, sep as sep2 } from "node:path";
226728
+ import { execFileSync as execFileSync8 } from "node:child_process";
226729
+ import { appendFileSync as appendFileSync3, chmodSync as chmodSync2, cpSync as cpSync5, existsSync as existsSync40, mkdirSync as mkdirSync27, readFileSync as readFileSync35, realpathSync, rmSync as rmSync13, symlinkSync as symlinkSync2 } from "node:fs";
226730
+ import { homedir as homedir10 } from "node:os";
226731
+ import { basename as basename18, delimiter, dirname as dirname21, join as join41, resolve as resolve24, sep as sep2 } from "node:path";
225183
226732
  var isWin = process.platform === "win32";
225184
- var HOME = homedir9();
226733
+ var HOME = homedir10();
225185
226734
  var safeRealpath = (p2) => {
225186
226735
  try {
225187
226736
  return realpathSync(p2);
225188
226737
  } catch {
225189
- return resolve21(p2);
226738
+ return resolve24(p2);
225190
226739
  }
225191
226740
  };
225192
226741
  var onPath = (dir) => {
@@ -225202,25 +226751,25 @@ var onPath = (dir) => {
225202
226751
  });
225203
226752
  };
225204
226753
  var install = async (args) => {
225205
- const bundle = dirname19(process.execPath);
225206
- const exeName3 = basename17(process.execPath);
226754
+ const bundle = dirname21(process.execPath);
226755
+ const exeName3 = basename18(process.execPath);
225207
226756
  const chiselName = isWin ? "chisel.exe" : "chisel";
225208
- if (!existsSync36(join37(bundle, "runtime")) || !existsSync36(join37(bundle, chiselName))) {
226757
+ if (!existsSync40(join41(bundle, "runtime")) || !existsSync40(join41(bundle, chiselName))) {
225209
226758
  throw new CliError("`lecodes install` only works from the packaged release build (the archive containing lecodes + " + "chisel + runtime/). You appear to be running from source or an npm install — install globally " + "with your package manager there instead.");
225210
226759
  }
225211
- const companions = [exeName3, chiselName, "runtime", "README.txt"].filter((f3) => existsSync36(join37(bundle, f3)));
226760
+ const companions = [exeName3, chiselName, "runtime", "README.txt"].filter((f3) => existsSync40(join41(bundle, f3)));
225212
226761
  if (isWin)
225213
226762
  return installWindows(args, bundle, companions);
225214
226763
  return installUnix(args, bundle, companions);
225215
226764
  };
225216
226765
  var copyBundle = (bundle, target, companions) => {
225217
- mkdirSync26(target, { recursive: true });
226766
+ mkdirSync27(target, { recursive: true });
225218
226767
  if (safeRealpath(target) === safeRealpath(bundle))
225219
226768
  return;
225220
226769
  for (const f3 of companions) {
225221
- const dest = join37(target, f3);
225222
- rmSync11(dest, { recursive: true, force: true });
225223
- cpSync5(join37(bundle, f3), dest, { recursive: true });
226770
+ const dest = join41(target, f3);
226771
+ rmSync13(dest, { recursive: true, force: true });
226772
+ cpSync5(join41(bundle, f3), dest, { recursive: true });
225224
226773
  }
225225
226774
  };
225226
226775
  var permError = (e2, dir, system) => {
@@ -225232,41 +226781,41 @@ var permError = (e2, dir, system) => {
225232
226781
  };
225233
226782
  var installUnix = (args, bundle, companions) => {
225234
226783
  const system = flagBool(args, "system");
225235
- const libDir = resolve21(flagStr(args, "dir") ?? (system ? "/usr/local/lib/lecodes-cli" : join37(HOME, ".local", "lib", "lecodes-cli")));
225236
- const binDir = resolve21(flagStr(args, "bin") ?? (system ? "/usr/local/bin" : join37(HOME, ".local", "bin")));
225237
- const link2 = join37(binDir, "lecodes");
226784
+ const libDir = resolve24(flagStr(args, "dir") ?? (system ? "/usr/local/lib/lecodes-cli" : join41(HOME, ".local", "lib", "lecodes-cli")));
226785
+ const binDir = resolve24(flagStr(args, "bin") ?? (system ? "/usr/local/bin" : join41(HOME, ".local", "bin")));
226786
+ const link2 = join41(binDir, "lecodes");
225238
226787
  try {
225239
226788
  copyBundle(bundle, libDir, companions);
225240
- chmodSync2(join37(libDir, "lecodes"), 493);
225241
- chmodSync2(join37(libDir, "chisel"), 493);
226789
+ chmodSync2(join41(libDir, "lecodes"), 493);
226790
+ chmodSync2(join41(libDir, "chisel"), 493);
225242
226791
  } catch (e2) {
225243
226792
  throw permError(e2, libDir, system);
225244
226793
  }
225245
226794
  try {
225246
- mkdirSync26(binDir, { recursive: true });
225247
- rmSync11(link2, { force: true });
225248
- symlinkSync(join37(libDir, "lecodes"), link2);
226795
+ mkdirSync27(binDir, { recursive: true });
226796
+ rmSync13(link2, { force: true });
226797
+ symlinkSync2(join41(libDir, "lecodes"), link2);
225249
226798
  } catch (e2) {
225250
226799
  throw permError(e2, binDir, system);
225251
226800
  }
225252
226801
  success(`Installed to ${c.bold(libDir)}`);
225253
- log(` ${c.dim(link2 + " → " + join37(libDir, "lecodes"))}`);
226802
+ log(` ${c.dim(link2 + " → " + join41(libDir, "lecodes"))}`);
225254
226803
  finishPathUnix(args, binDir);
225255
226804
  };
225256
226805
  var shellRc = () => {
225257
- const shell = basename17(process.env.SHELL ?? "");
226806
+ const shell = basename18(process.env.SHELL ?? "");
225258
226807
  if (shell === "zsh")
225259
- return { file: join37(HOME, ".zshrc"), name: "~/.zshrc" };
226808
+ return { file: join41(HOME, ".zshrc"), name: "~/.zshrc" };
225260
226809
  if (shell === "bash")
225261
- return { file: join37(HOME, ".bashrc"), name: "~/.bashrc" };
225262
- return { file: join37(HOME, ".profile"), name: "~/.profile" };
226810
+ return { file: join41(HOME, ".bashrc"), name: "~/.bashrc" };
226811
+ return { file: join41(HOME, ".profile"), name: "~/.profile" };
225263
226812
  };
225264
226813
  var PATH_MARKER = "# Added by `lecodes install`";
225265
226814
  var appendPathToShellRc = (binDir) => {
225266
226815
  const { file, name } = shellRc();
225267
226816
  const line = `export PATH="${binDir}:$PATH"`;
225268
226817
  try {
225269
- const existing = existsSync36(file) ? readFileSync32(file, "utf8") : "";
226818
+ const existing = existsSync40(file) ? readFileSync35(file, "utf8") : "";
225270
226819
  if (existing.includes(line))
225271
226820
  return name;
225272
226821
  appendFileSync3(file, `${existing && !existing.endsWith(`
@@ -225304,7 +226853,7 @@ var finishPathUnix = (args, binDir) => {
225304
226853
  log(` • or install system-wide (no PATH edit): ${c.bold("sudo lecodes install --system")}`);
225305
226854
  };
225306
226855
  var installWindows = (args, bundle, companions) => {
225307
- const target = resolve21(flagStr(args, "dir") ?? join37(process.env.LOCALAPPDATA ?? join37(HOME, "AppData", "Local"), "Programs", "lecodes-cli"));
226856
+ const target = resolve24(flagStr(args, "dir") ?? join41(process.env.LOCALAPPDATA ?? join41(HOME, "AppData", "Local"), "Programs", "lecodes-cli"));
225308
226857
  try {
225309
226858
  copyBundle(bundle, target, companions);
225310
226859
  } catch (e2) {
@@ -225332,7 +226881,7 @@ var installWindows = (args, bundle, companions) => {
225332
226881
  var addToUserPathWindows = (dir) => {
225333
226882
  const script = "$d = $env:LECODES_INSTALL_DIR;" + "$p = [Environment]::GetEnvironmentVariable('Path','User'); if (-not $p) { $p = '' };" + "$parts = @($p.Split(';') | Where-Object { $_ -ne '' });" + "if ($parts -notcontains $d) { [Environment]::SetEnvironmentVariable('Path', (@($parts + $d) -join ';'), 'User') }";
225334
226883
  try {
225335
- execFileSync7("powershell", ["-NoProfile", "-NonInteractive", "-Command", script], { stdio: "ignore", env: { ...process.env, LECODES_INSTALL_DIR: dir } });
226884
+ execFileSync8("powershell", ["-NoProfile", "-NonInteractive", "-Command", script], { stdio: "ignore", env: { ...process.env, LECODES_INSTALL_DIR: dir } });
225336
226885
  return true;
225337
226886
  } catch {
225338
226887
  return false;
@@ -225343,9 +226892,9 @@ var addToUserPathWindows = (dir) => {
225343
226892
  init_util();
225344
226893
 
225345
226894
  // src/projectEnv.ts
225346
- import { existsSync as existsSync37, readFileSync as readFileSync33 } from "node:fs";
225347
- import { homedir as homedir10 } from "node:os";
225348
- import { dirname as dirname20, join as join38, resolve as resolve22 } from "node:path";
226895
+ import { existsSync as existsSync41, readFileSync as readFileSync36 } from "node:fs";
226896
+ import { homedir as homedir11 } from "node:os";
226897
+ import { dirname as dirname22, join as join42, resolve as resolve25 } from "node:path";
225349
226898
  var KEY_RE = /^(LECODES|CREATOR)_[A-Z0-9_]+$/;
225350
226899
  var parseDotEnv = (text) => {
225351
226900
  const out = {};
@@ -225380,19 +226929,19 @@ var applyDotEnv = (parsed, dir, env) => {
225380
226929
  continue;
225381
226930
  let value = raw;
225382
226931
  if (value.startsWith("./") || value.startsWith("../"))
225383
- value = resolve22(dir, value);
226932
+ value = resolve25(dir, value);
225384
226933
  else if (value === "~" || value.startsWith("~/"))
225385
- value = join38(homedir10(), value.slice(1));
226934
+ value = join42(homedir11(), value.slice(1));
225386
226935
  out[key] = value;
225387
226936
  }
225388
226937
  return out;
225389
226938
  };
225390
226939
  var findEnvRoot = (start) => {
225391
- let dir = resolve22(start);
226940
+ let dir = resolve25(start);
225392
226941
  while (true) {
225393
- if (existsSync37(join38(dir, "app.json")) || existsSync37(join38(dir, ".lecodes")))
226942
+ if (existsSync41(join42(dir, "app.json")) || existsSync41(join42(dir, ".lecodes")))
225394
226943
  return dir;
225395
- const parent = dirname20(dir);
226944
+ const parent = dirname22(dir);
225396
226945
  if (parent === dir)
225397
226946
  return null;
225398
226947
  dir = parent;
@@ -225403,10 +226952,10 @@ var loadProjectEnv = (cwd = process.cwd()) => {
225403
226952
  const root = findEnvRoot(cwd);
225404
226953
  if (!root)
225405
226954
  return [];
225406
- const file = join38(root, ".env");
225407
- if (!existsSync37(file))
226955
+ const file = join42(root, ".env");
226956
+ if (!existsSync41(file))
225408
226957
  return [];
225409
- const added = applyDotEnv(parseDotEnv(readFileSync33(file, "utf8")), root, process.env);
226958
+ const added = applyDotEnv(parseDotEnv(readFileSync36(file, "utf8")), root, process.env);
225410
226959
  for (const [k, v] of Object.entries(added))
225411
226960
  process.env[k] = v;
225412
226961
  return Object.keys(added);
@@ -225416,12 +226965,12 @@ var loadProjectEnv = (cwd = process.cwd()) => {
225416
226965
  };
225417
226966
 
225418
226967
  // src/index.ts
225419
- var STANDALONE = (() => {
225420
- const dir = dirname21(process.execPath);
226968
+ var STANDALONE2 = (() => {
226969
+ const dir = dirname23(process.execPath);
225421
226970
  const chisel = process.platform === "win32" ? "chisel.exe" : "chisel";
225422
- return existsSync38(join39(dir, "runtime")) && existsSync38(join39(dir, chisel));
226971
+ return existsSync42(join43(dir, "runtime")) && existsSync42(join43(dir, chisel));
225423
226972
  })();
225424
- var INSTALLED = STANDALONE && (() => {
226973
+ var INSTALLED = STANDALONE2 && (() => {
225425
226974
  const exe = process.platform === "win32" ? "lecodes.exe" : "lecodes";
225426
226975
  const self2 = (() => {
225427
226976
  try {
@@ -225434,14 +226983,14 @@ var INSTALLED = STANDALONE && (() => {
225434
226983
  if (!d)
225435
226984
  return false;
225436
226985
  try {
225437
- const cand = join39(d, exe);
225438
- return existsSync38(cand) && realpathSync2(cand) === self2;
226986
+ const cand = join43(d, exe);
226987
+ return existsSync42(cand) && realpathSync2(cand) === self2;
225439
226988
  } catch {
225440
226989
  return false;
225441
226990
  }
225442
226991
  });
225443
226992
  })();
225444
- var INSTALL_HELP = STANDALONE && !INSTALLED ? `
226993
+ var INSTALL_HELP = STANDALONE2 && !INSTALLED ? `
225445
226994
  install Install this standalone build so 'lecodes' is on your PATH
225446
226995
  (copies the bundle to a library folder + a symlink/PATH entry).
225447
226996
  --modify-path also add it to PATH (edits your shell rc / user PATH)
@@ -225528,6 +227077,11 @@ ${c.bold("Commands:")}
225528
227077
  -o, --out <file> write JSON to a file instead of stdout
225529
227078
  --png [file] rasterize a PNG (default screenshot.png;
225530
227079
  needs @napi-rs/canvas)
227080
+ --map [file] draw the 3D scene's annotated top-down map
227081
+ (grid + XZ footprints + named markers) as
227082
+ <file>.png + <file>.json world-space data
227083
+ (default map.png; --label-all, --max-px N;
227084
+ also a { "map": "f.png" } script step)
225531
227085
  --script <file> drive the app through a step list (tap/type/
225532
227086
  scroll/wait/expect/screenshot/json steps;
225533
227087
  games: frames/drag/hold/key/keyDown/keyUp,
@@ -225591,13 +227145,22 @@ ${c.bold("Commands:")}
225591
227145
  render --desktop
225592
227146
  (+ the render timing flags: --width/--height, --settle,
225593
227147
  --device, --safe-area, --wait-network, --logs, --entry)
225594
- types [dir] Refresh the IDE types (.lecodes/types/ + tsconfig.json) — by
225595
- default from the server, so a project scaffolded offline picks
225596
- up the SDK the platform actually runs
225597
- --local use the SDK bundled in this CLI instead
225598
- --check report drift only, don't write (non-zero exit)
225599
- --api <url> server to fetch from (default: the logged-in
225600
- one, else https://le.codes)
227148
+ update Move everything a project depends on to its newest published
227149
+ state, in dependency order: the desktop host ('desktop
227150
+ update'), matc ('shaders update'), the project's shader
227151
+ compiles, the IDE types (.lecodes/types/ + tsconfig.json,
227152
+ from the server — the former 'lecodes types'), the
227153
+ ios/android shell pins ('app update'), then the GLOBAL npm
227154
+ installs: every installed optional peer (lecodes-renderer,
227155
+ lecodes-design, lecodes-3d-editor, lecodes-assets) and this
227156
+ CLI that is behind npm's latest gets 'npm install -g'.
227157
+ Pinned tools are skipped, not overridden: LECODES_DESKTOP_EXE
227158
+ / LECODES_MATC mean a local build. Keeps going when a step
227159
+ fails; the summary says which.
227160
+ --local types from the SDK bundled in this CLI
227161
+ --no-shells leave ios/android pins alone (no re-sync)
227162
+ --check npm step: report what's behind, install nothing
227163
+ --no-cli skip the npm step (offline)
225601
227164
  design [serve] LeCodes Design — a live canvas of screens for AI-driven prototyping
225602
227165
  (needs the optional 'lecodes-design' package; works inside a
225603
227166
  cloned project or standalone in any folder)
@@ -225631,7 +227194,10 @@ ${c.bold("Commands:")}
225631
227194
  host's frame counter in the corner — composited fps,
225632
227195
  plus the 3D fps when they diverge; asset() resources
225633
227196
  load from the working tree — --remote-assets or
225634
- --public-url <url> uses the server's copies instead)
227197
+ --public-url <url> uses the server's copies instead);
227198
+ --server [--port N] [--max-clients N] launches the
227199
+ host as a multiplayer server, --connect ip:port as a
227200
+ client — both only set Net.launch (the app decides)
225635
227201
  build stage a portable app folder (default dist/<name>/):
225636
227202
  the cached host renamed to <Name>.exe + app.js +
225637
227203
  assets/ (the project's files) + runtime/ (the engine's)
@@ -225651,6 +227217,8 @@ ${c.bold("Commands:")}
225651
227217
  --probe headless-render the staged folder to PNG
225652
227218
  (macOS: a brief windowed run + snapshot)
225653
227219
  --zip also pack the result for sending
227220
+ --dmg macOS: also build a drag-to-Applications
227221
+ disk image (signed + notarized too)
225654
227222
  --sign <identity|adhoc> macOS codesign identity
225655
227223
  --notarize <profile> / --no-notarize macOS
225656
227224
  --zip <out>.zip, UTF-8/forward-slash entries
@@ -225666,6 +227234,16 @@ ${c.bold("Commands:")}
225666
227234
  --sun-rays/--ao-rays <n> quality (32 / 64)
225667
227235
  --ao-distance <m> AO reach (2) --sun-angle <deg> (0.5)
225668
227236
  --frames <n> load headroom (900) --logs host output
227237
+ navmesh bake Build the level's navigation mesh (assets/nav/<scene>.navmesh)
227238
+ for NavAgent / NavMesh: the desktop host dumps every STATIC
227239
+ body's collision triangles at the scene's env.navmesh (or
227240
+ NavMesh.load) point, Recast builds the mesh here.
227241
+ --out <dir> where it lands (assets/nav)
227242
+ --name <n> file name (the scene file with env.navmesh)
227243
+ --radius/--height/--climb/--slope agent size (scene's)
227244
+ --cell <m> (0.25) --cell-height <m> (0.1) --tile <cells> (48)
227245
+ --obj also write <n>.navmesh.obj to inspect
227246
+ --frames <n> load headroom (900) --logs host output
225669
227247
  shaders [compile|update] The project's custom shaders (.mat) and their local compile:
225670
227248
  no args lists the shaders + their compile state; compile
225671
227249
  compiles them all into .lecodes/shaders (the same pass
@@ -225678,6 +227256,13 @@ ${c.bold("Commands:")}
225678
227256
  --port <n> editor-server port (default 4488)
225679
227257
  --no-open don't open the browser
225680
227258
  --no-mcp don't register the MCP server in .mcp.json
227259
+ thumbs [path…] Asset thumbnails for the scene editor, WITHOUT a browser: decodes
227260
+ the project's images (KTX2 too, via KTX-Software's ktx tool) into the
227261
+ editor's preview cache. Incremental — the cached name carries the
227262
+ asset's content hash, so unchanged files are skipped. Models,
227263
+ materials and prefabs are rendered by the editor, not here
227264
+ --force redo even the up-to-date ones
227265
+ --size <px> longest edge (default 256)
225681
227266
  assets convert <model.fbx|.glb> [--clips a.fbx b.fbx …] [-o out.glb] [--drop-model-clips]
225682
227267
  [--fix] [--ktx2|--ktx2-hq]
225683
227268
  FBX → LeCodes-ready GLB: meters/Y-up, textures embedded, clips from
@@ -225704,6 +227289,11 @@ ${c.bold("Commands:")}
225704
227289
  for 'skybox: { texture }') and ibl.ktx (prefiltered + SH, lights the
225705
227290
  scene) — they are NOT interchangeable. Reports where the sun is in
225706
227291
  the environment so the scene's light can be aimed to match
227292
+ assets terrain-pack <layer> … [-o dir] [--normals n0 n1 …] [--names a b …] [--size N] [--png]
227293
+ A terrain's splat layers (≤ 4) → <name>.ktx2 per layer + the packed
227294
+ normal maps normals01/normals23.ktx2 (what Terrain.create's
227295
+ layers/normals read). A layer = an albedo file or a FOLDER holding
227296
+ *Albedo* + *Normal* (Unity packs). Prints the Terrain.create fragment
225707
227297
  assets doctor <in.glb|dir> [--fix] [--ktx2] [--dump]
225708
227298
  Analyze / fix a GLB against engine limits (bone cap 256, texture
225709
227299
  formats/size, KTX2 via toktx)
@@ -225771,35 +227361,10 @@ Config lives in ~/.lecodes/config.json (override with LECODES_API / LECODES_TOKE
225771
227361
  A .env next to app.json is read at startup for LECODES_* / CREATOR_* keys (the shell's own
225772
227362
  environment wins; ./ paths resolve against the project; the file is never pushed) — e.g.
225773
227363
  LECODES_DESKTOP_EXE, LECODES_MATC, LECODES_NOTARY_PROFILE, LECODES_MACOS_SIGN_ID, LECODES_TOKEN.`;
225774
- var commands = { init: init2, login, create, clone: clone3, link, status: status3, diff: diff2, pull, push, compile: compile2, preview: previewLegacy, render, test, types: types4, design, scene, dev, app, pn, desktop, shaders, assets, lightmap };
225775
- if (STANDALONE)
227364
+ var commands = { init: init2, login, create, clone: clone3, link, status: status3, diff: diff2, pull, push, compile: compile2, preview: previewLegacy, render, test, design, scene, thumbs, dev, app, pn, desktop, shaders, assets, lightmap, navmesh, update };
227365
+ if (STANDALONE2)
225776
227366
  commands.install = install;
225777
227367
  var readVersion = () => package_default.version ?? "unknown";
225778
- var OPTIONAL_PEERS = [
225779
- ["lecodes-renderer", "lecodes-renderer/headless"],
225780
- ["lecodes-design", "lecodes-design/server"],
225781
- ["lecodes-3d-editor", "lecodes-3d-editor/server"],
225782
- ["lecodes-assets", "lecodes-assets/cli"]
225783
- ];
225784
- var peerVersion = (name, probe) => {
225785
- try {
225786
- const require2 = createRequire4(import.meta.url);
225787
- let dir = dirname21(require2.resolve(probe));
225788
- for (let depth = 0;depth < 16; depth++) {
225789
- const manifest = join39(dir, "package.json");
225790
- if (existsSync38(manifest)) {
225791
- const parsed = JSON.parse(readFileSync34(manifest, "utf8"));
225792
- if (parsed.name === name)
225793
- return parsed.version ?? "unknown";
225794
- }
225795
- const parent = dirname21(dir);
225796
- if (parent === dir)
225797
- break;
225798
- dir = parent;
225799
- }
225800
- } catch {}
225801
- return null;
225802
- };
225803
227368
  var printVersion = () => {
225804
227369
  const rows = [["lecodes-cli", readVersion()]];
225805
227370
  for (const [name, probe] of OPTIONAL_PEERS) {