@zephyr3d/scene 0.9.27 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/README.md +60 -27
  2. package/dist/animation/animation_bank.js +634 -0
  3. package/dist/animation/animation_bank.js.map +1 -0
  4. package/dist/animation/animation_bank_gpu.js +256 -0
  5. package/dist/animation/animation_bank_gpu.js.map +1 -0
  6. package/dist/animation/animationset.js +54 -0
  7. package/dist/animation/animationset.js.map +1 -1
  8. package/dist/animation/cloth/gpu_cloth_component.js +406 -0
  9. package/dist/animation/cloth/gpu_cloth_component.js.map +1 -0
  10. package/dist/animation/cloth/gpu_cloth_system.js +332 -202
  11. package/dist/animation/cloth/gpu_cloth_system.js.map +1 -1
  12. package/dist/animation/gpu_animation_driver.js +289 -0
  13. package/dist/animation/gpu_animation_driver.js.map +1 -0
  14. package/dist/animation/joint_dynamics/collision.js +112 -1
  15. package/dist/animation/joint_dynamics/collision.js.map +1 -1
  16. package/dist/animation/joint_dynamics/controller.js +6 -0
  17. package/dist/animation/joint_dynamics/controller.js.map +1 -1
  18. package/dist/animation/joint_dynamics/joint_dynamics_system.js +11 -0
  19. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
  20. package/dist/animation/joint_dynamics/solver.js +50 -12
  21. package/dist/animation/joint_dynamics/solver.js.map +1 -1
  22. package/dist/animation/joint_dynamics/types.js.map +1 -1
  23. package/dist/animation/skeleton.js +279 -55
  24. package/dist/animation/skeleton.js.map +1 -1
  25. package/dist/animation/skin_palette_atlas.js +252 -0
  26. package/dist/animation/skin_palette_atlas.js.map +1 -0
  27. package/dist/animation/spring/multi_chain_spring_system.js +298 -38
  28. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -1
  29. package/dist/animation/spring/spring_chain.js +2 -0
  30. package/dist/animation/spring/spring_chain.js.map +1 -1
  31. package/dist/animation/spring/spring_collider.js +159 -21
  32. package/dist/animation/spring/spring_collider.js.map +1 -1
  33. package/dist/animation/spring/spring_particle.js +1 -0
  34. package/dist/animation/spring/spring_particle.js.map +1 -1
  35. package/dist/animation/spring/spring_solver.js +173 -0
  36. package/dist/animation/spring/spring_solver.js.map +1 -0
  37. package/dist/animation/spring/spring_system.js +249 -24
  38. package/dist/animation/spring/spring_system.js.map +1 -1
  39. package/dist/animation/spring_modifier.js +32 -1
  40. package/dist/animation/spring_modifier.js.map +1 -1
  41. package/dist/app/app.js +26 -0
  42. package/dist/app/app.js.map +1 -1
  43. package/dist/app/engine.js +86 -15
  44. package/dist/app/engine.js.map +1 -1
  45. package/dist/app/gamepad.js +191 -0
  46. package/dist/app/gamepad.js.map +1 -0
  47. package/dist/app/inputactions.js +271 -0
  48. package/dist/app/inputactions.js.map +1 -0
  49. package/dist/app/inputmgr.js +331 -22
  50. package/dist/app/inputmgr.js.map +1 -1
  51. package/dist/app/loading.js +138 -0
  52. package/dist/app/loading.js.map +1 -0
  53. package/dist/app/pipelinecache.js +209 -0
  54. package/dist/app/pipelinecache.js.map +1 -0
  55. package/dist/app/runtimescript.js +25 -0
  56. package/dist/app/runtimescript.js.map +1 -1
  57. package/dist/app/scriptingsystem.js +54 -0
  58. package/dist/app/scriptingsystem.js.map +1 -1
  59. package/dist/app/scriptregistry.js +7 -2
  60. package/dist/app/scriptregistry.js.map +1 -1
  61. package/dist/asset/asset_manifest.js +59 -0
  62. package/dist/asset/asset_manifest.js.map +1 -0
  63. package/dist/asset/asset_preload.js +258 -0
  64. package/dist/asset/asset_preload.js.map +1 -0
  65. package/dist/asset/assetmanager.js +117 -65
  66. package/dist/asset/assetmanager.js.map +1 -1
  67. package/dist/asset/loaders/ktx2/basis/LICENSE +201 -0
  68. package/dist/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
  69. package/dist/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
  70. package/dist/asset/loaders/ktx2/basis_location.js +17 -0
  71. package/dist/asset/loaders/ktx2/basis_location.js.map +1 -0
  72. package/dist/asset/loaders/ktx2/ktx2_loader.js +88 -0
  73. package/dist/asset/loaders/ktx2/ktx2_loader.js.map +1 -0
  74. package/dist/asset/loaders/ktx2/ktx2_targets.js +118 -0
  75. package/dist/asset/loaders/ktx2/ktx2_targets.js.map +1 -0
  76. package/dist/asset/loaders/ktx2/transcoder_pool.js +259 -0
  77. package/dist/asset/loaders/ktx2/transcoder_pool.js.map +1 -0
  78. package/dist/asset/mesh_lod_builder.js +104 -0
  79. package/dist/asset/mesh_lod_builder.js.map +1 -0
  80. package/dist/asset/mesh_settings.js +111 -0
  81. package/dist/asset/mesh_settings.js.map +1 -0
  82. package/dist/asset/meshopt_decoder.js +18 -0
  83. package/dist/asset/meshopt_decoder.js.map +1 -0
  84. package/dist/asset/meshopt_simplifier.js +26 -0
  85. package/dist/asset/meshopt_simplifier.js.map +1 -0
  86. package/dist/asset/model.js +171 -1
  87. package/dist/asset/model.js.map +1 -1
  88. package/dist/asset/texture_settings.js +231 -0
  89. package/dist/asset/texture_settings.js.map +1 -0
  90. package/dist/asset/zmsh_binary.js +131 -0
  91. package/dist/asset/zmsh_binary.js.map +1 -0
  92. package/dist/asset/zsdf_binary.js +111 -0
  93. package/dist/asset/zsdf_binary.js.map +1 -0
  94. package/dist/blitter/bilateralblur.js +1 -2
  95. package/dist/blitter/bilateralblur.js.map +1 -1
  96. package/dist/blitter/gaussianblur.js +1 -6
  97. package/dist/blitter/gaussianblur.js.map +1 -1
  98. package/dist/camera/base.js +31 -10
  99. package/dist/camera/base.js.map +1 -1
  100. package/dist/camera/camera.js +104 -178
  101. package/dist/camera/camera.js.map +1 -1
  102. package/dist/camera/follow.js +342 -0
  103. package/dist/camera/follow.js.map +1 -0
  104. package/dist/camera/fps.js +9 -7
  105. package/dist/camera/fps.js.map +1 -1
  106. package/dist/camera/orbit.js +46 -19
  107. package/dist/camera/orbit.js.map +1 -1
  108. package/dist/index.d.ts +25436 -15990
  109. package/dist/index.js +65 -11
  110. package/dist/index.js.map +1 -1
  111. package/dist/material/blinn.js +3 -0
  112. package/dist/material/blinn.js.map +1 -1
  113. package/dist/material/eye.js +1 -1
  114. package/dist/material/eye.js.map +1 -1
  115. package/dist/material/hair.js +2 -3
  116. package/dist/material/hair.js.map +1 -1
  117. package/dist/material/lambert.js +4 -1
  118. package/dist/material/lambert.js.map +1 -1
  119. package/dist/material/material.js +66 -4
  120. package/dist/material/material.js.map +1 -1
  121. package/dist/material/meshmaterial.js +118 -45
  122. package/dist/material/meshmaterial.js.map +1 -1
  123. package/dist/material/mixins/lightmodel/blinnphong.js +1 -1
  124. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  125. package/dist/material/mixins/lightmodel/lambert.js +1 -1
  126. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  127. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +34 -61
  128. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  129. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +16 -2
  130. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  131. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +2 -1
  132. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  133. package/dist/material/mixins/lit.js +191 -83
  134. package/dist/material/mixins/lit.js.map +1 -1
  135. package/dist/material/mixins/pbr/common.js +31 -206
  136. package/dist/material/mixins/pbr/common.js.map +1 -1
  137. package/dist/material/mtoon.js +1 -1
  138. package/dist/material/mtoon.js.map +1 -1
  139. package/dist/material/pbrmr.js +3 -0
  140. package/dist/material/pbrmr.js.map +1 -1
  141. package/dist/material/pbrsg.js +3 -0
  142. package/dist/material/pbrsg.js.map +1 -1
  143. package/dist/material/sdf_debug.js +78 -0
  144. package/dist/material/sdf_debug.js.map +1 -0
  145. package/dist/material/shader/helper.js +333 -191
  146. package/dist/material/shader/helper.js.map +1 -1
  147. package/dist/material/shader/terrain_blend.js +204 -43
  148. package/dist/material/shader/terrain_blend.js.map +1 -1
  149. package/dist/material/skin.js +331 -297
  150. package/dist/material/skin.js.map +1 -1
  151. package/dist/material/skinprofile.js +1058 -0
  152. package/dist/material/skinprofile.js.map +1 -0
  153. package/dist/material/sss.js +353 -0
  154. package/dist/material/sss.js.map +1 -0
  155. package/dist/material/sss_kernel.js +265 -0
  156. package/dist/material/sss_kernel.js.map +1 -0
  157. package/dist/material/sssprofile.js +879 -0
  158. package/dist/material/sssprofile.js.map +1 -0
  159. package/dist/material/subsurfaceprofile.js +4 -8
  160. package/dist/material/subsurfaceprofile.js.map +1 -1
  161. package/dist/material/terrain-cm.js +464 -188
  162. package/dist/material/terrain-cm.js.map +1 -1
  163. package/dist/material/unlit.js +3 -0
  164. package/dist/material/unlit.js.map +1 -1
  165. package/dist/material/water.js +1261 -1438
  166. package/dist/material/water.js.map +1 -1
  167. package/dist/node_modules/meshoptimizer/LICENSE +21 -0
  168. package/dist/node_modules/meshoptimizer/meshopt_decoder.js +197 -0
  169. package/dist/node_modules/meshoptimizer/meshopt_decoder.js.map +1 -0
  170. package/dist/node_modules/meshoptimizer/meshopt_simplifier.js +677 -0
  171. package/dist/node_modules/meshoptimizer/meshopt_simplifier.js.map +1 -0
  172. package/dist/physics/character.js +226 -0
  173. package/dist/physics/character.js.map +1 -0
  174. package/dist/physics/collider.js +209 -0
  175. package/dist/physics/collider.js.map +1 -0
  176. package/dist/physics/events.js +79 -0
  177. package/dist/physics/events.js.map +1 -0
  178. package/dist/physics/joint.js +272 -0
  179. package/dist/physics/joint.js.map +1 -0
  180. package/dist/physics/node_physics.js +234 -0
  181. package/dist/physics/node_physics.js.map +1 -0
  182. package/dist/physics/part.js +91 -0
  183. package/dist/physics/part.js.map +1 -0
  184. package/dist/physics/rigid_body.js +379 -0
  185. package/dist/physics/rigid_body.js.map +1 -0
  186. package/dist/physics/vehicle.js +335 -0
  187. package/dist/physics/vehicle.js.map +1 -0
  188. package/dist/physics/world.js +25 -0
  189. package/dist/physics/world.js.map +1 -0
  190. package/dist/posteffect/bloom.js +49 -14
  191. package/dist/posteffect/bloom.js.map +1 -1
  192. package/dist/posteffect/motionblur.js +106 -106
  193. package/dist/posteffect/motionblur.js.map +1 -1
  194. package/dist/posteffect/postsss.js +572 -0
  195. package/dist/posteffect/postsss.js.map +1 -0
  196. package/dist/posteffect/sao.js +2 -6
  197. package/dist/posteffect/sao.js.map +1 -1
  198. package/dist/posteffect/skinsss.js +605 -355
  199. package/dist/posteffect/skinsss.js.map +1 -1
  200. package/dist/posteffect/ssgi.js +91 -162
  201. package/dist/posteffect/ssgi.js.map +1 -1
  202. package/dist/posteffect/ssr.js +3 -11
  203. package/dist/posteffect/ssr.js.map +1 -1
  204. package/dist/posteffect/sss.js +4 -13
  205. package/dist/posteffect/sss.js.map +1 -1
  206. package/dist/posteffect/taa.js +1 -0
  207. package/dist/posteffect/taa.js.map +1 -1
  208. package/dist/render/abuffer_oit.js +3 -2
  209. package/dist/render/abuffer_oit.js.map +1 -1
  210. package/dist/render/clipmap.js +179 -64
  211. package/dist/render/clipmap.js.map +1 -1
  212. package/dist/render/cluster_light.js +958 -224
  213. package/dist/render/cluster_light.js.map +1 -1
  214. package/dist/render/cull_visitor.js +25 -5
  215. package/dist/render/cull_visitor.js.map +1 -1
  216. package/dist/render/debug_views.js +37 -0
  217. package/dist/render/debug_views.js.map +1 -0
  218. package/dist/render/depthpass.js +5 -1
  219. package/dist/render/depthpass.js.map +1 -1
  220. package/dist/render/drawable_mixin.js +53 -6
  221. package/dist/render/drawable_mixin.js.map +1 -1
  222. package/dist/render/dualdepthpeeling_oit.js +5 -5
  223. package/dist/render/dualdepthpeeling_oit.js.map +1 -1
  224. package/dist/render/envlight.js +196 -113
  225. package/dist/render/envlight.js.map +1 -1
  226. package/dist/render/fbm_wavegenerator.js +5 -10
  227. package/dist/render/fbm_wavegenerator.js.map +1 -1
  228. package/dist/render/fft_wavegenerator.js +247 -157
  229. package/dist/render/fft_wavegenerator.js.map +1 -1
  230. package/dist/render/gerstner_wavegenerator.js +16 -38
  231. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  232. package/dist/render/gi/probe_volume.js +1334 -0
  233. package/dist/render/gi/probe_volume.js.map +1 -0
  234. package/dist/render/gi/scene_gi.js +282 -0
  235. package/dist/render/gi/scene_gi.js.map +1 -0
  236. package/dist/render/gi/voxel_atlas.js +198 -0
  237. package/dist/render/gi/voxel_atlas.js.map +1 -0
  238. package/dist/render/gi/voxel_lighting.js +652 -0
  239. package/dist/render/gi/voxel_lighting.js.map +1 -0
  240. package/dist/render/gi/voxel_scene.js +642 -0
  241. package/dist/render/gi/voxel_scene.js.map +1 -0
  242. package/dist/render/gi/voxelize_pass.js +223 -0
  243. package/dist/render/gi/voxelize_pass.js.map +1 -0
  244. package/dist/render/globalbindgroup_allocator.js +3 -2
  245. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  246. package/dist/render/gpu_picking.js +9 -36
  247. package/dist/render/gpu_picking.js.map +1 -1
  248. package/dist/render/instance_culling.js +499 -0
  249. package/dist/render/instance_culling.js.map +1 -0
  250. package/dist/render/lightpass.js +19 -8
  251. package/dist/render/lightpass.js.map +1 -1
  252. package/dist/render/lod.js +46 -0
  253. package/dist/render/lod.js.map +1 -0
  254. package/dist/render/primitive.js +301 -9
  255. package/dist/render/primitive.js.map +1 -1
  256. package/dist/render/primitive_readback.js +209 -0
  257. package/dist/render/primitive_readback.js.map +1 -0
  258. package/dist/render/render_queue.js +162 -11
  259. package/dist/render/render_queue.js.map +1 -1
  260. package/dist/render/renderer.js +10 -7
  261. package/dist/render/renderer.js.map +1 -1
  262. package/dist/render/rendergraph/blackboard.js +14 -1
  263. package/dist/render/rendergraph/blackboard.js.map +1 -1
  264. package/dist/render/rendergraph/executor.js +136 -0
  265. package/dist/render/rendergraph/executor.js.map +1 -1
  266. package/dist/render/rendergraph/forward_plus_builder.js +272 -55
  267. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  268. package/dist/render/rendergraph/frame_graph_context.js +41 -0
  269. package/dist/render/rendergraph/frame_graph_context.js.map +1 -0
  270. package/dist/render/rendergraph/scene_render_context.js +31 -2
  271. package/dist/render/rendergraph/scene_render_context.js.map +1 -1
  272. package/dist/render/rendergraph/types.js.map +1 -1
  273. package/dist/render/renderpass.js +28 -5
  274. package/dist/render/renderpass.js.map +1 -1
  275. package/dist/render/sdf/box_allocator.js +98 -0
  276. package/dist/render/sdf/box_allocator.js.map +1 -0
  277. package/dist/render/sdf/global_sdf.js +865 -0
  278. package/dist/render/sdf/global_sdf.js.map +1 -0
  279. package/dist/render/sdf/scene_sdf.js +562 -0
  280. package/dist/render/sdf/scene_sdf.js.map +1 -0
  281. package/dist/render/sdf/sdf_atlas.js +227 -0
  282. package/dist/render/sdf/sdf_atlas.js.map +1 -0
  283. package/dist/render/sdf/sdf_programs.js +42 -0
  284. package/dist/render/sdf/sdf_programs.js.map +1 -0
  285. package/dist/render/sdf/sdf_view.js +199 -0
  286. package/dist/render/sdf/sdf_view.js.map +1 -0
  287. package/dist/render/sdf/waterline.js +610 -0
  288. package/dist/render/sdf/waterline.js.map +1 -0
  289. package/dist/render/shadow_mask_pass.js +142 -25
  290. package/dist/render/shadow_mask_pass.js.map +1 -1
  291. package/dist/render/shore_wave_generator.js +1193 -0
  292. package/dist/render/shore_wave_generator.js.map +1 -0
  293. package/dist/render/sky.js +516 -86
  294. package/dist/render/sky.js.map +1 -1
  295. package/dist/render/transmission_thickness_pass.js +477 -0
  296. package/dist/render/transmission_thickness_pass.js.map +1 -0
  297. package/dist/render/underwater.js +58 -158
  298. package/dist/render/underwater.js.map +1 -1
  299. package/dist/render/virtualtexture/virtual_texture.js +1214 -0
  300. package/dist/render/virtualtexture/virtual_texture.js.map +1 -0
  301. package/dist/render/volumetric_cloud/cloud_common.js +472 -0
  302. package/dist/render/volumetric_cloud/cloud_common.js.map +1 -0
  303. package/dist/render/volumetric_cloud/cloud_noise.js +189 -0
  304. package/dist/render/volumetric_cloud/cloud_noise.js.map +1 -0
  305. package/dist/render/volumetric_cloud/debug_view.js +131 -0
  306. package/dist/render/volumetric_cloud/debug_view.js.map +1 -0
  307. package/dist/render/volumetric_cloud/resources.js +380 -0
  308. package/dist/render/volumetric_cloud/resources.js.map +1 -0
  309. package/dist/render/volumetric_cloud/sky_cache.js +380 -0
  310. package/dist/render/volumetric_cloud/sky_cache.js.map +1 -0
  311. package/dist/render/volumetric_cloud/volumetric_cloud.js +318 -0
  312. package/dist/render/volumetric_cloud/volumetric_cloud.js.map +1 -0
  313. package/dist/render/water_caustics.js +134 -319
  314. package/dist/render/water_caustics.js.map +1 -1
  315. package/dist/render/water_foam.js +627 -0
  316. package/dist/render/water_foam.js.map +1 -0
  317. package/dist/render/water_interaction.js +1795 -0
  318. package/dist/render/water_interaction.js.map +1 -0
  319. package/dist/render/weightedblended_oit.js +3 -3
  320. package/dist/render/weightedblended_oit.js.map +1 -1
  321. package/dist/scene/basesprite.js +9 -4
  322. package/dist/scene/basesprite.js.map +1 -1
  323. package/dist/scene/batchgroup.js +108 -12
  324. package/dist/scene/batchgroup.js.map +1 -1
  325. package/dist/scene/environment.js +28 -7
  326. package/dist/scene/environment.js.map +1 -1
  327. package/dist/scene/foliage.js +1020 -0
  328. package/dist/scene/foliage.js.map +1 -0
  329. package/dist/scene/foliage_buckets.js +147 -0
  330. package/dist/scene/foliage_buckets.js.map +1 -0
  331. package/dist/scene/foliage_mask.js +358 -0
  332. package/dist/scene/foliage_mask.js.map +1 -0
  333. package/dist/scene/hair.js +15 -4
  334. package/dist/scene/hair.js.map +1 -1
  335. package/dist/scene/light.js +179 -13
  336. package/dist/scene/light.js.map +1 -1
  337. package/dist/scene/mesh.js +327 -45
  338. package/dist/scene/mesh.js.map +1 -1
  339. package/dist/scene/meshdrawable.js +6 -0
  340. package/dist/scene/meshdrawable.js.map +1 -1
  341. package/dist/scene/msdftext.js +9 -3
  342. package/dist/scene/msdftext.js.map +1 -1
  343. package/dist/scene/msdftextsprite.js +9 -3
  344. package/dist/scene/msdftextsprite.js.map +1 -1
  345. package/dist/scene/particlesys.js +8 -2
  346. package/dist/scene/particlesys.js.map +1 -1
  347. package/dist/scene/physics_settings.js +157 -0
  348. package/dist/scene/physics_settings.js.map +1 -0
  349. package/dist/scene/scene.js +190 -44
  350. package/dist/scene/scene.js.map +1 -1
  351. package/dist/scene/scene_node.js +147 -6
  352. package/dist/scene/scene_node.js.map +1 -1
  353. package/dist/scene/terrain-cm/bladegrassmaterial.js +735 -0
  354. package/dist/scene/terrain-cm/bladegrassmaterial.js.map +1 -0
  355. package/dist/scene/terrain-cm/grass.js +881 -42
  356. package/dist/scene/terrain-cm/grass.js.map +1 -1
  357. package/dist/scene/terrain-cm/grass_gpu.js +929 -0
  358. package/dist/scene/terrain-cm/grass_gpu.js.map +1 -0
  359. package/dist/scene/terrain-cm/grassmaterial.js +180 -9
  360. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  361. package/dist/scene/terrain-cm/terrain-cm.js +465 -36
  362. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  363. package/dist/scene/terrain-cm/terrain_gi_albedo.js +257 -0
  364. package/dist/scene/terrain-cm/terrain_gi_albedo.js.map +1 -0
  365. package/dist/scene/terrain-cm/terrain_rvt.js +395 -0
  366. package/dist/scene/terrain-cm/terrain_rvt.js.map +1 -0
  367. package/dist/scene/update_queue.js +54 -0
  368. package/dist/scene/update_queue.js.map +1 -0
  369. package/dist/scene/water.js +633 -268
  370. package/dist/scene/water.js.map +1 -1
  371. package/dist/scene/water_surface_sampler.js +324 -0
  372. package/dist/scene/water_surface_sampler.js.map +1 -0
  373. package/dist/scene/wind.js +317 -0
  374. package/dist/scene/wind.js.map +1 -0
  375. package/dist/shaders/atmosphere.js +388 -166
  376. package/dist/shaders/atmosphere.js.map +1 -1
  377. package/dist/shaders/fog.js +100 -32
  378. package/dist/shaders/fog.js.map +1 -1
  379. package/dist/shaders/gi.js +365 -0
  380. package/dist/shaders/gi.js.map +1 -0
  381. package/dist/shaders/ltc_rect.js +202 -0
  382. package/dist/shaders/ltc_rect.js.map +1 -0
  383. package/dist/shaders/misc.js +1 -10
  384. package/dist/shaders/misc.js.map +1 -1
  385. package/dist/shaders/noise.js +5 -1
  386. package/dist/shaders/noise.js.map +1 -1
  387. package/dist/shaders/probes.js +309 -0
  388. package/dist/shaders/probes.js.map +1 -0
  389. package/dist/shaders/sdf.js +537 -0
  390. package/dist/shaders/sdf.js.map +1 -0
  391. package/dist/shaders/shadow.js +104 -70
  392. package/dist/shaders/shadow.js.map +1 -1
  393. package/dist/shaders/skin_brdf.js +243 -0
  394. package/dist/shaders/skin_brdf.js.map +1 -0
  395. package/dist/shaders/ssgi.js +63 -0
  396. package/dist/shaders/ssgi.js.map +1 -0
  397. package/dist/shaders/ssgi_reprojection.js +118 -0
  398. package/dist/shaders/ssgi_reprojection.js.map +1 -0
  399. package/dist/shaders/ssr.js +6 -159
  400. package/dist/shaders/ssr.js.map +1 -1
  401. package/dist/shaders/temporal.js +38 -27
  402. package/dist/shaders/temporal.js.map +1 -1
  403. package/dist/shaders/water.js +32 -82
  404. package/dist/shaders/water.js.map +1 -1
  405. package/dist/shaders/water_medium.js +7 -21
  406. package/dist/shaders/water_medium.js.map +1 -1
  407. package/dist/shadow/dom.js +110 -19
  408. package/dist/shadow/dom.js.map +1 -1
  409. package/dist/shadow/esm.js +3 -3
  410. package/dist/shadow/esm.js.map +1 -1
  411. package/dist/shadow/pcf_opt.js +15 -48
  412. package/dist/shadow/pcf_opt.js.map +1 -1
  413. package/dist/shadow/pcf_pd.js +15 -53
  414. package/dist/shadow/pcf_pd.js.map +1 -1
  415. package/dist/shadow/pcss.js +34 -9
  416. package/dist/shadow/pcss.js.map +1 -1
  417. package/dist/shadow/shadow_impl.js +3 -8
  418. package/dist/shadow/shadow_impl.js.map +1 -1
  419. package/dist/shadow/shadow_region.js +40 -2
  420. package/dist/shadow/shadow_region.js.map +1 -1
  421. package/dist/shadow/shadowmapper.js +93 -53
  422. package/dist/shadow/shadowmapper.js.map +1 -1
  423. package/dist/shadow/ssm.js +18 -72
  424. package/dist/shadow/ssm.js.map +1 -1
  425. package/dist/shadow/vsm.js +3 -3
  426. package/dist/shadow/vsm.js.map +1 -1
  427. package/dist/shapes/shape.js +44 -1
  428. package/dist/shapes/shape.js.map +1 -1
  429. package/dist/utility/buoyancy.js +287 -0
  430. package/dist/utility/buoyancy.js.map +1 -0
  431. package/dist/utility/physical.js +10 -1
  432. package/dist/utility/physical.js.map +1 -1
  433. package/dist/utility/pmrem.js +17 -43
  434. package/dist/utility/pmrem.js.map +1 -1
  435. package/dist/utility/sdf/bake.js +435 -0
  436. package/dist/utility/sdf/bake.js.map +1 -0
  437. package/dist/utility/sdf/bvh.js +576 -0
  438. package/dist/utility/sdf/bvh.js.map +1 -0
  439. package/dist/utility/serialization/manager.js +34 -6
  440. package/dist/utility/serialization/manager.js.map +1 -1
  441. package/dist/utility/serialization/scene/animation.js +46 -5
  442. package/dist/utility/serialization/scene/animation.js.map +1 -1
  443. package/dist/utility/serialization/scene/batch.js +11 -4
  444. package/dist/utility/serialization/scene/batch.js.map +1 -1
  445. package/dist/utility/serialization/scene/camera.js +87 -254
  446. package/dist/utility/serialization/scene/camera.js.map +1 -1
  447. package/dist/utility/serialization/scene/cloth.js +25 -0
  448. package/dist/utility/serialization/scene/cloth.js.map +1 -0
  449. package/dist/utility/serialization/scene/common.js +14 -6
  450. package/dist/utility/serialization/scene/common.js.map +1 -1
  451. package/dist/utility/serialization/scene/foliage.js +821 -0
  452. package/dist/utility/serialization/scene/foliage.js.map +1 -0
  453. package/dist/utility/serialization/scene/hair.js +11 -4
  454. package/dist/utility/serialization/scene/hair.js.map +1 -1
  455. package/dist/utility/serialization/scene/light.js +115 -7
  456. package/dist/utility/serialization/scene/light.js.map +1 -1
  457. package/dist/utility/serialization/scene/material.js +388 -220
  458. package/dist/utility/serialization/scene/material.js.map +1 -1
  459. package/dist/utility/serialization/scene/mesh.js +69 -4
  460. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  461. package/dist/utility/serialization/scene/node.js +140 -5
  462. package/dist/utility/serialization/scene/node.js.map +1 -1
  463. package/dist/utility/serialization/scene/node_physics.js +1318 -0
  464. package/dist/utility/serialization/scene/node_physics.js.map +1 -0
  465. package/dist/utility/serialization/scene/particle.js +11 -4
  466. package/dist/utility/serialization/scene/particle.js.map +1 -1
  467. package/dist/utility/serialization/scene/physics.js +120 -0
  468. package/dist/utility/serialization/scene/physics.js.map +1 -0
  469. package/dist/utility/serialization/scene/primitive.js +124 -10
  470. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  471. package/dist/utility/serialization/scene/scene.js +1687 -51
  472. package/dist/utility/serialization/scene/scene.js.map +1 -1
  473. package/dist/utility/serialization/scene/sprite.js +11 -4
  474. package/dist/utility/serialization/scene/sprite.js.map +1 -1
  475. package/dist/utility/serialization/scene/terrain.js +163 -33
  476. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  477. package/dist/utility/serialization/scene/text.js +11 -4
  478. package/dist/utility/serialization/scene/text.js.map +1 -1
  479. package/dist/utility/serialization/scene/water.js +1543 -264
  480. package/dist/utility/serialization/scene/water.js.map +1 -1
  481. package/dist/utility/serialization/types.js.map +1 -1
  482. package/dist/utility/shprojector.js +10 -22
  483. package/dist/utility/shprojector.js.map +1 -1
  484. package/dist/utility/textures/foam.js +170 -0
  485. package/dist/utility/textures/foam.js.map +1 -0
  486. package/dist/utility/textures/ggxlut.js +17 -43
  487. package/dist/utility/textures/ggxlut.js.map +1 -1
  488. package/dist/utility/textures/ltcdata.js +4 -4
  489. package/dist/utility/textures/ltcdata.js.map +1 -1
  490. package/dist/utility/textures/ltclut.js +16 -6
  491. package/dist/utility/textures/ltclut.js.map +1 -1
  492. package/dist/utility/unsupported.js +24 -0
  493. package/dist/utility/unsupported.js.map +1 -0
  494. package/dist/values.js +13 -1
  495. package/dist/values.js.map +1 -1
  496. package/package.json +25 -12
  497. package/src/asset/loaders/ktx2/basis/LICENSE +201 -0
  498. package/src/asset/loaders/ktx2/basis/basis_transcoder.js +2 -0
  499. package/src/asset/loaders/ktx2/basis/basis_transcoder.wasm +0 -0
  500. package/src/asset/meshoptimizer/LICENSE +21 -0
  501. package/dist/animation/joint_dynamics/convex_collider.js +0 -320
  502. package/dist/animation/joint_dynamics/convex_collider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scene.js","sources":["../../../../src/utility/serialization/scene/scene.ts"],"sourcesContent":["import type { Texture2D } from '@zephyr3d/device';\r\nimport type { EnvLightType, FogType, SkyType } from '../../../render';\r\nimport { Scene } from '../../../scene/scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { Nullable } from '@zephyr3d/base';\r\nimport { Vector3, Vector4 } from '@zephyr3d/base';\r\nimport type { ResourceManager } from '../manager';\r\nimport { JSONArray, JSONData } from '../json';\r\nimport type { Camera } from '../../../camera';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { ScriptAttachment, normalizeScriptAttachmentConfig } from '../../../scene/script_attachment';\r\nimport type { LightingMode } from '../../physical';\r\n\r\n/** @internal */\r\nexport function getSceneClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Scene,\r\n name: 'Scene',\r\n createFunc() {\r\n return { obj: new Scene() };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'LightingMode',\r\n description: 'Lighting unit model. Legacy preserves the historical unitless pipeline.',\r\n type: 'string',\r\n phase: 0,\r\n default: 'legacy',\r\n options: {\r\n group: 'Rendering',\r\n enum: {\r\n labels: ['Legacy', 'Physical (experimental)'],\r\n values: ['legacy', 'physical']\r\n }\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.lightingMode;\r\n },\r\n set(this: Scene, value) {\r\n this.lightingMode = value.str[0] as LightingMode;\r\n }\r\n },\r\n {\r\n name: 'MetersPerUnit',\r\n description: 'Physical meters represented by one scene unit',\r\n type: 'float',\r\n phase: 0,\r\n default: 1,\r\n options: {\r\n group: 'Rendering',\r\n minValue: 0.000001\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.metersPerUnit;\r\n },\r\n set(this: Scene, value) {\r\n this.metersPerUnit = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.lightingMode === 'physical';\r\n }\r\n },\r\n {\r\n name: 'Name',\r\n description: 'Scene name',\r\n type: 'string',\r\n default: '',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: Scene, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'EnvLightType',\r\n description: 'Environment light type of scene',\r\n phase: 0,\r\n type: 'string',\r\n options: {\r\n enum: {\r\n labels: ['None', 'Constant', 'Hemispheric', 'IBL'],\r\n values: ['none', 'constant', 'hemisphere', 'ibl']\r\n }\r\n },\r\n default: 'ibl',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.light.type;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.type = value.str[0] as EnvLightType;\r\n }\r\n },\r\n {\r\n name: 'AmbientColor',\r\n description: 'RGB value for ambient color if environment light type sets to `Constant`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.2, 0.2, 0.2],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientColor.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'constant';\r\n }\r\n },\r\n {\r\n name: 'AmbientUp',\r\n description: 'RGB value for upper ambient color if environment light type sets to `Hemispheric`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.3, 0.5, 0.8],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientUp;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientUp.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'hemisphere';\r\n }\r\n },\r\n {\r\n name: 'AmbientDown',\r\n description: 'RGB value for lower ambient color if environment light type sets to `Hemispheric`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.2, 0.2, 0.2],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientDown;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientDown.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'hemisphere';\r\n }\r\n },\r\n {\r\n name: 'EnvLightStrength',\r\n description: 'Environment light strength',\r\n type: 'float',\r\n phase: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.strength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'EnvLightIntensity',\r\n description:\r\n 'Illuminance an authored (skybox / image) sky represents, in lux. Not used by the ' +\r\n 'scattering sky, whose brightness comes from the sun illuminance; dim that with ' +\r\n 'EnvLightStrength instead.',\r\n type: 'float',\r\n phase: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n label: 'Intensity (lux)',\r\n group: 'Environment/Physical'\r\n },\r\n default: 30000,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.intensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.intensity = value.num[0];\r\n },\r\n isHidden(this: Scene) {\r\n // A scattering sky derives its luminance from the sun, so this value never reaches the\r\n // bake. Hiding it avoids presenting a control that cannot affect the image.\r\n return this.lightingMode !== 'physical' || this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'EnvLightSpecularStrength',\r\n description: 'Environment light specular strength',\r\n type: 'float',\r\n phase: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.specularStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.specularStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SHWindowWeights',\r\n description: 'Window weights for SH lighting',\r\n type: 'vec3',\r\n options: { minValue: 0, maxValue: 1 },\r\n default: [1, 1, 1],\r\n get(this: Scene, value) {\r\n const weights = this.env.sky.shWindowWeights;\r\n value.num[0] = weights.x;\r\n value.num[1] = weights.y;\r\n value.num[2] = weights.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.shWindowWeights = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'RadianceConvSamples',\r\n description: 'Sample count for radiance convolution',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 2048 },\r\n default: 64,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.radianceConvSamples;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.radianceConvSamples = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'IrradianceConvSamples',\r\n description: 'Sample count for irradiance convolution',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 2048 },\r\n default: 256,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.irradianceConvSamples;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.irradianceConvSamples = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SkyType',\r\n description: 'Type of sky rendering used by the scene',\r\n type: 'string',\r\n phase: 0,\r\n options: {\r\n enum: {\r\n labels: ['None', 'Image', 'SkyBox', 'Scatter'],\r\n values: ['none', 'image', 'skybox', 'scatter']\r\n }\r\n },\r\n default: 'scatter',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.skyType;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyType = value.str[0] as SkyType;\r\n }\r\n },\r\n {\r\n name: 'SkyColor',\r\n description: 'RGB value for sky color if skyType sets to `Image`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'image';\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.sky.skyColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyColor = new Vector4(value.num[0], value.num[1], value.num[2], 1);\r\n this.env.sky.invalidate();\r\n }\r\n },\r\n {\r\n name: 'SkyImage',\r\n description: 'Sky image file path if skyType sets to `Image`',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'image';\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = manager.getAssetId(this.env.sky.skyImage) ?? '';\r\n },\r\n async set(this: Scene, value) {\r\n if (!value) {\r\n this.env.sky.skyImage = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n const isValidTextureType = !!tex?.isTexture2D();\r\n if (isValidTextureType) {\r\n this.env.sky.skyImage = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'FogType',\r\n description: 'Type of fog rendering used by the scene',\r\n type: 'string',\r\n phase: 0,\r\n options: {\r\n enum: {\r\n labels: ['None', 'ExponentialHeightFog'],\r\n values: ['none', 'height_fog']\r\n }\r\n },\r\n default: 'none',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.fogType;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.fogType = value.str[0] as FogType;\r\n }\r\n },\r\n {\r\n type: 'float',\r\n name: 'HeightFogDensity',\r\n description: 'Base density of exponential height fog',\r\n default: 0.04,\r\n options: { group: 'HeightFog', label: 'Density', minValue: 0, maxValue: 1 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogFalloff',\r\n description: 'How quickly fog density changes with height',\r\n type: 'float',\r\n default: 0.2,\r\n options: { group: 'HeightFog', label: 'Falloff', minValue: 0, maxValue: 1 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogFalloff;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogFalloff = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogStartHeight',\r\n description: 'World height where height fog starts',\r\n type: 'float',\r\n default: 0,\r\n options: { group: 'HeightFog', label: 'StartHeight', minValue: 0, maxValue: 1000 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogStartHeight;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogStartHeight = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogColor',\r\n description: 'Base color of the height fog',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n group: 'HeightFog',\r\n label: 'FogColor',\r\n animatable: true\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.sky.heightFogColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'HeightFogStartDistance',\r\n description: 'Distance from the camera where height fog begins',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n group: 'HeightFog',\r\n label: 'StartDistance'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogStartDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogStartDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogEndDistance',\r\n description: 'Distance from the camera where height fog reaches full effect',\r\n type: 'float',\r\n default: 10000,\r\n options: {\r\n group: 'HeightFog',\r\n label: 'EndDistance'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogEndDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogEndDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogMaxOpacity',\r\n description: 'Maximum opacity of the height fog',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'MaxOpacity', minValue: 0, maxValue: 1 },\r\n default: 1,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogMaxOpacity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogMaxOpacity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogAtmosphereStrength',\r\n description: 'How much atmospheric scattering contributes to the fog',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'AtmosphereStrength', minValue: 0, maxValue: 10 },\r\n default: 1,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogAtmosphereContribution;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogAtmosphereContribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogDirExponent',\r\n description: 'Directional inscattering exponent for height fog',\r\n type: 'float',\r\n default: 4,\r\n options: { group: 'HeightFog', label: 'DirectionalExponent' },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDirExponent;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDirExponent = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogDirColor',\r\n description: 'Directional inscattering color for height fog',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n group: 'HeightFog',\r\n label: 'DirectionalInscattering'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDirColor.x;\r\n value.num[1] = this.env.sky.heightFogDirColor.y;\r\n value.num[2] = this.env.sky.heightFogDirColor.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDirColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'AerialPerspectiveDistance',\r\n description: 'Distance scale for aerial perspective in the scattering sky model',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 1, maxValue: 50000 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.aerialPerspectiveDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.aerialPerspectiveDistance = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'CameraHeightScale',\r\n description: 'Scale factor applied to camera height in atmospheric scattering',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 1, maxValue: 1000 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cameraHeightScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cameraHeightScale = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AtmosphereExposure',\r\n description: 'Exposure multiplier for atmospheric scattering and sky rendering',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 8 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.atmosphereExposure;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.atmosphereExposure = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'Cloudy',\r\n description: 'Cloud coverage amount for the procedural sky',\r\n type: 'float',\r\n default: 0.6,\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudy;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudy = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'CloudIntensity',\r\n description: 'Brightness of procedural clouds',\r\n type: 'float',\r\n default: 40,\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 200 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudIntensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed used by the procedural sky',\r\n type: 'vec2',\r\n default: [0, 0],\r\n phase: 1,\r\n options: { animatable: true, minValue: -100, maxValue: 100 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.wind.x;\r\n value.num[1] = this.env.sky.wind.y;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.wind.setXY(value.num[0], value.num[1]);\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'SkyBoxRotation',\r\n description: 'Euler rotation of the skybox',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n phase: 1,\r\n options: {\r\n label: 'Rotation',\r\n edit: 'quaternion',\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.skyboxRotation.x;\r\n value.num[1] = this.env.sky.skyboxRotation.y;\r\n value.num[2] = this.env.sky.skyboxRotation.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyboxRotation = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'SkyBoxTextureSize',\r\n description: 'Skybox cubemap resolution',\r\n type: 'int',\r\n default: 1024,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.skyboxTextureSize;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyboxTextureSize = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'PanoramaTexture',\r\n description: 'Panorama texture file path if skyType sets to `skybox`',\r\n type: 'object',\r\n phase: 1,\r\n options: {\r\n mimeTypes: ['image/vnd.radiance']\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.panoramaTextureAsset;\r\n },\r\n async set(this: Scene, value) {\r\n this.env.sky.panoramaTextureAsset = value.str[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'NodeHierarchy',\r\n description: 'Node tree of this scene',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.rootNode;\r\n },\r\n set(this: Scene, value) {\r\n const sceneNode = value.object[0] as SceneNode;\r\n if (sceneNode) {\r\n sceneNode.remove();\r\n for (const child of sceneNode.children) {\r\n child.parent = this.rootNode;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'MainCamera',\r\n description: 'Main camera node of this scene',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.mainCamera?.persistentId ?? '';\r\n },\r\n set(this: Scene, value) {\r\n this.mainCamera = value.str[0] ? this.findNodeById<Camera>(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'Script',\r\n description: 'The first script path which is attached to this scene',\r\n type: 'object',\r\n options: {\r\n mimeTypes: ['text/x-typescript']\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.script;\r\n },\r\n set(this: Scene, value) {\r\n this.script = value?.str?.[0] ?? '';\r\n }\r\n },\r\n {\r\n name: 'Scripts',\r\n description: 'All scripts paths which are attached to this scene',\r\n type: 'object_array',\r\n options: {\r\n objectTypes: [ScriptAttachment]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n getDefaultValue(this: Scene) {\r\n return this.scripts;\r\n },\r\n isNullable() {\r\n return false;\r\n },\r\n get(this: Scene, value) {\r\n value.object = this.scripts;\r\n },\r\n set(this: Scene, value) {\r\n this.scripts = (value.object as ScriptAttachment[]) ?? [];\r\n },\r\n create() {\r\n return new ScriptAttachment();\r\n },\r\n add(this: Scene, value, index) {\r\n const attachments = this.scripts;\r\n attachments.splice(\r\n index ?? attachments.length,\r\n 0,\r\n (value.object?.[0] as ScriptAttachment) ?? new ScriptAttachment()\r\n );\r\n this.scripts = attachments;\r\n },\r\n delete(this: Scene, index) {\r\n const attachments = this.scripts;\r\n if (index >= 0 && index < attachments.length) {\r\n attachments.splice(index, 1);\r\n this.scripts = attachments;\r\n }\r\n }\r\n },\r\n {\r\n name: 'ScriptConfig',\r\n description: 'Configuration object passed to the first scene script',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONData, JSONArray] },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n isPersistent(this: Scene) {\r\n return !!this.script;\r\n },\r\n get(this: Scene, value) {\r\n const config = normalizeScriptAttachmentConfig(this.scriptConfig);\r\n value.object[0] =\r\n config == null\r\n ? null\r\n : Array.isArray(config)\r\n ? new JSONArray(null, config)\r\n : new JSONData(null, config);\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as\r\n | JSONData\r\n | JSONArray\r\n | Record<string, unknown>\r\n | unknown[]\r\n | null\r\n | undefined;\r\n this.scriptConfig =\r\n data instanceof JSONData || data instanceof JSONArray\r\n ? normalizeScriptAttachmentConfig(data.data)\r\n : normalizeScriptAttachmentConfig(data);\r\n }\r\n },\r\n {\r\n name: 'ScriptConfigs',\r\n description: 'Per-script configuration array for all scene scripts',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONArray] },\r\n getDefaultValue(this: Scene) {\r\n return this.scriptConfigs;\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n isPersistent(this: Scene) {\r\n return this.scripts.length > 0;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.scriptConfigs.length > 0 ? new JSONArray(null, this.scriptConfigs) : null;\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as JSONArray | unknown[] | null | undefined;\r\n this.scriptConfigs = data instanceof JSONArray ? data.data : Array.isArray(data) ? data : [];\r\n }\r\n },\r\n {\r\n name: 'Metadata',\r\n description: 'Meta data for this scene',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONData, JSONArray] },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.metaData\r\n ? Array.isArray(this.metaData)\r\n ? new JSONArray(null, this.metaData)\r\n : new JSONData(null, this.metaData)\r\n : null;\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as\r\n | JSONData\r\n | JSONArray\r\n | Record<string, unknown>\r\n | unknown[]\r\n | null\r\n | undefined;\r\n this.metaData =\r\n data instanceof JSONData || data instanceof JSONArray ? data.data : (data ?? null);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getSceneClass","manager","ctor","Scene","name","createFunc","obj","getProps","defineProps","description","type","phase","default","options","group","enum","labels","values","get","value","str","lightingMode","set","minValue","num","metersPerUnit","isValid","isHidden","env","light","animatable","color","ambientColor","x","y","z","setXYZW","ambientUp","ambientDown","maxValue","strength","label","intensity","sky","skyType","specularStrength","weights","shWindowWeights","Vector3","radianceConvSamples","irradianceConvSamples","skyColor","Vector4","invalidate","mimeTypes","isNullable","getAssetId","skyImage","assetId","tex","fetchTexture","err","console","error","isValidTextureType","isTexture2D","fogType","heightFogDensity","heightFogFalloff","heightFogStartHeight","heightFogColor","heightFogStartDistance","heightFogEndDistance","heightFogMaxOpacity","heightFogAtmosphereContribution","heightFogDirExponent","heightFogDirColor","aerialPerspectiveDistance","cameraHeightScale","atmosphereExposure","cloudy","cloudIntensity","wind","setXY","edit","skyboxRotation","skyboxTextureSize","panoramaTextureAsset","object","rootNode","sceneNode","remove","child","children","parent","mainCamera","persistentId","findNodeById","script","objectTypes","ScriptAttachment","getDefaultValue","scripts","create","add","index","attachments","splice","length","delete","JSONData","JSONArray","isPersistent","config","normalizeScriptAttachmentConfig","scriptConfig","Array","isArray","data","scriptConfigs","metaData"],"mappings":"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"}
1
+ {"version":3,"file":"scene.js","sources":["../../../../src/utility/serialization/scene/scene.ts"],"sourcesContent":["import type { Texture2D } from '@zephyr3d/device';\r\nimport type {\r\n CloudFormation,\r\n CloudMode,\r\n EnvLightType,\r\n FogType,\r\n GIUpdateMode,\r\n SkyType,\r\n VolumetricCloudDebugView\r\n} from '../../../render';\r\nimport { Scene } from '../../../scene/scene';\r\nimport { defineProps, type SerializableClass } from '../types';\r\nimport type { Nullable } from '@zephyr3d/base';\r\nimport { Vector2, Vector3, Vector4 } from '@zephyr3d/base';\r\nimport type { ResourceManager } from '../manager';\r\nimport { JSONArray, JSONData } from '../json';\r\nimport type { Camera } from '../../../camera';\r\nimport type { SceneNode } from '../../../scene';\r\nimport { ScriptAttachment, normalizeScriptAttachmentConfig } from '../../../scene/script_attachment';\r\nimport type { LightingMode } from '../../physical';\r\nimport { ScenePhysicsSettings } from '../../../scene/physics_settings';\r\n\r\n/** @internal */\r\nexport function getSceneClass(manager: ResourceManager): SerializableClass {\r\n return {\r\n ctor: Scene,\r\n name: 'Scene',\r\n createFunc() {\r\n return { obj: new Scene() };\r\n },\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'LightingMode',\r\n description: 'Lighting unit model. Legacy preserves the historical unitless pipeline.',\r\n type: 'string',\r\n phase: 0,\r\n default: 'legacy',\r\n options: {\r\n group: 'Rendering',\r\n enum: {\r\n labels: ['Legacy', 'Physical (experimental)'],\r\n values: ['legacy', 'physical']\r\n }\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.lightingMode;\r\n },\r\n set(this: Scene, value) {\r\n this.lightingMode = value.str[0] as LightingMode;\r\n }\r\n },\r\n {\r\n name: 'SDFEnabled',\r\n description:\r\n 'Track the meshes with a baked signed distance field and stream their fields in around the camera, for the effects and simulations that read the scene SDF.',\r\n type: 'bool',\r\n default: false,\r\n options: { group: 'SDF' },\r\n get(this: Scene, value) {\r\n value.bool[0] = this.sdf.enabled;\r\n },\r\n set(this: Scene, value) {\r\n this.sdf.enabled = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'SDFStreamRadius',\r\n description: 'Distance from the camera within which mesh fields are kept loaded.',\r\n type: 'float',\r\n default: 256,\r\n options: { group: 'SDF', minValue: 1, maxValue: 100000 },\r\n isHidden(this: Scene) {\r\n return !this.sdf.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.sdf.streamRadius;\r\n },\r\n set(this: Scene, value) {\r\n this.sdf.streamRadius = Math.max(1, value.num[0]);\r\n }\r\n },\r\n {\r\n name: 'SDFAtlasSize',\r\n description:\r\n 'Voxels per axis of the texture that holds the loaded mesh fields. When meshes near the camera are missing from the distance field view and the console warns that the atlas is full, raise it; each axis costs memory, 512×256×256 is 64 MB.',\r\n type: 'int3',\r\n default: [512, 256, 256],\r\n options: { group: 'SDF', minValue: 64, maxValue: 2048 },\r\n isHidden(this: Scene) {\r\n return !this.sdf.enabled;\r\n },\r\n get(this: Scene, value) {\r\n const size = this.sdf.atlasSize;\r\n value.num[0] = size[0];\r\n value.num[1] = size[1];\r\n value.num[2] = size[2];\r\n },\r\n set(this: Scene, value) {\r\n this.sdf.atlasSize = [value.num[0], value.num[1], value.num[2]];\r\n }\r\n },\r\n {\r\n name: 'GIEnabled',\r\n description:\r\n 'Build the voxel scene the global illumination reads: the static meshes with a baked distance field are rasterized into a material atlas around the camera, giving the field surfaces their colour and glow. Turns SDFEnabled on. WebGPU only; nothing changes on WebGL2.',\r\n type: 'bool',\r\n default: false,\r\n options: { group: 'Global Illumination' },\r\n get(this: Scene, value) {\r\n value.bool[0] = this.gi.enabled;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.enabled = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'GIVoxelizeBudget',\r\n description:\r\n 'Meshes voxelized per frame. Higher fills the voxel scene sooner after loading or moving far, at the cost of a longer frame while it does.',\r\n type: 'int',\r\n default: 8,\r\n options: { group: 'Global Illumination', minValue: 1, maxValue: 64 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.voxelizeBudget;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.voxelizeBudget = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GISunShadowConeAngle',\r\n description:\r\n 'Softness of the sun shadow in the bounced light, as the half angle in degrees of the cone traced through the distance field; the default is the size of the sun. Wider blurs the shadow edges in the indirect light but darkens floors lit through narrow openings; narrower sharpens them.',\r\n type: 'float',\r\n default: 0.5357,\r\n options: { group: 'Global Illumination', minValue: 0.1, maxValue: 45 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.sunShadowConeAngle;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.sunShadowConeAngle = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GILocalLightShadows',\r\n description:\r\n 'Let point, spot and rect lights that cast shadows also cast them in the bounced light, so objects block the light they bounce. Applies to the eight lights nearest the camera; turn off to save GPU time in scenes with many shadowed lights.',\r\n type: 'bool',\r\n default: true,\r\n options: { group: 'Global Illumination' },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.bool[0] = this.gi.localLightShadows;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.localLightShadows = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'GIIntensity',\r\n description:\r\n 'Strength of the bounced light the probes add. 1 is physically consistent with the direct lighting; raise to exaggerate colour bleeding, lower to tone it down.',\r\n type: 'float',\r\n default: 1,\r\n options: { group: 'Global Illumination', minValue: 0, maxValue: 10 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.intensity;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.intensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIProbeSpacing',\r\n description:\r\n 'Distance in world units between light probes. Smaller resolves indirect light in tighter spaces and leaks less through thin walls, but the volume covers less distance around the camera and takes longer to refresh.',\r\n type: 'float',\r\n default: 1,\r\n options: { group: 'Global Illumination', minValue: 0.25, maxValue: 16 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.probeSpacing;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.probeSpacing = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIProbeBudget',\r\n description:\r\n 'Light probes updated per frame. Higher makes bounced light follow moving lights and the camera sooner, at more GPU time per frame.',\r\n type: 'int',\r\n default: 4096,\r\n options: { group: 'Global Illumination', minValue: 64, maxValue: 16384 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.probeBudget;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.probeBudget = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIProbeRays',\r\n description:\r\n 'Rays each probe traces per update. More gives smoother, less flickering bounced light at more GPU time per frame.',\r\n type: 'int',\r\n default: 128,\r\n options: { group: 'Global Illumination', minValue: 16, maxValue: 512 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.probeRays;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.probeRays = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIProbeHysteresis',\r\n description:\r\n 'How long bounced light holds on to what it showed before. Higher keeps it steadier in a still view but slower to follow a light or camera change; lower follows sooner with more flicker.',\r\n type: 'float',\r\n default: 0.97,\r\n options: { group: 'Global Illumination', minValue: 0.5, maxValue: 0.99 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.probeHysteresis;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.probeHysteresis = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIProbeLevels',\r\n description:\r\n 'Nested probe volumes around the camera, each twice as coarse and as wide as the one inside it. More levels carry bounced light farther out, each adding as many probes as the finest, so every probe is refreshed less often; one level covers only the finest volume.',\r\n type: 'int',\r\n default: 4,\r\n options: { group: 'Global Illumination', minValue: 1, maxValue: 4 },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.gi.probeLevels;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.probeLevels = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'GIUpdateMode',\r\n description:\r\n 'Continuous keeps the bounced light following the sun, the lights and the camera. Frozen stops it where it is: cheaper, and right for a scene whose lighting does not change, but the volume no longer follows the camera.',\r\n type: 'string',\r\n default: 'continuous',\r\n options: {\r\n group: 'Global Illumination',\r\n enum: { labels: ['Continuous', 'Frozen'], values: ['continuous', 'frozen'] }\r\n },\r\n isHidden(this: Scene) {\r\n return !this.gi.enabled;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.gi.updateMode;\r\n },\r\n set(this: Scene, value) {\r\n this.gi.updateMode = value.str[0] as GIUpdateMode;\r\n }\r\n },\r\n {\r\n name: 'MetersPerUnit',\r\n description: 'Physical meters represented by one scene unit',\r\n type: 'float',\r\n phase: 0,\r\n default: 1,\r\n options: {\r\n group: 'Rendering',\r\n minValue: 0.000001\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.metersPerUnit;\r\n },\r\n set(this: Scene, value) {\r\n this.metersPerUnit = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.lightingMode === 'physical';\r\n }\r\n },\r\n {\r\n name: 'Name',\r\n description: 'Scene name',\r\n type: 'string',\r\n default: '',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.name;\r\n },\r\n set(this: Scene, value) {\r\n this.name = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'EnvLightType',\r\n description: 'Environment light type of scene',\r\n phase: 0,\r\n type: 'string',\r\n options: {\r\n enum: {\r\n labels: ['None', 'Constant', 'Hemispheric', 'IBL'],\r\n values: ['none', 'constant', 'hemisphere', 'ibl']\r\n }\r\n },\r\n default: 'ibl',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.light.type;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.type = value.str[0] as EnvLightType;\r\n }\r\n },\r\n {\r\n name: 'AmbientColor',\r\n description: 'RGB value for ambient color if environment light type sets to `Constant`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.2, 0.2, 0.2],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientColor.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'constant';\r\n }\r\n },\r\n {\r\n name: 'AmbientUp',\r\n description: 'RGB value for upper ambient color if environment light type sets to `Hemispheric`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.3, 0.5, 0.8],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientUp;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientUp.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'hemisphere';\r\n }\r\n },\r\n {\r\n name: 'AmbientDown',\r\n description: 'RGB value for lower ambient color if environment light type sets to `Hemispheric`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.2, 0.2, 0.2],\r\n options: {\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.light.ambientDown;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.ambientDown.setXYZW(value.num[0], value.num[1], value.num[2], 1);\r\n },\r\n isValid() {\r\n return this.env.light.type === 'hemisphere';\r\n }\r\n },\r\n {\r\n name: 'EnvLightStrength',\r\n description: 'Environment light strength',\r\n type: 'float',\r\n phase: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.strength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'EnvLightIntensity',\r\n description:\r\n 'Illuminance an authored (skybox / image) sky represents, in lux. Not used by the ' +\r\n 'scattering sky, whose brightness comes from the sun illuminance; dim that with ' +\r\n 'EnvLightStrength instead.',\r\n type: 'float',\r\n phase: 0,\r\n options: {\r\n animatable: true,\r\n minValue: 0,\r\n label: 'Intensity (lux)',\r\n group: 'Environment/Physical'\r\n },\r\n default: 30000,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.intensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.intensity = value.num[0];\r\n },\r\n isHidden(this: Scene) {\r\n // A scattering sky derives its luminance from the sun, so this value never reaches the\r\n // bake. Hiding it avoids presenting a control that cannot affect the image.\r\n return this.lightingMode !== 'physical' || this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'EnvLightSpecularStrength',\r\n description: 'Environment light specular strength',\r\n type: 'float',\r\n phase: 0,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.light.specularStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.light.specularStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SHWindowWeights',\r\n description: 'Window weights for SH lighting',\r\n type: 'vec3',\r\n options: { minValue: 0, maxValue: 1 },\r\n default: [1, 1, 1],\r\n get(this: Scene, value) {\r\n const weights = this.env.sky.shWindowWeights;\r\n value.num[0] = weights.x;\r\n value.num[1] = weights.y;\r\n value.num[2] = weights.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.shWindowWeights = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'RadianceConvSamples',\r\n description: 'Sample count for radiance convolution',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 2048 },\r\n default: 64,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.radianceConvSamples;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.radianceConvSamples = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'IrradianceConvSamples',\r\n description: 'Sample count for irradiance convolution',\r\n type: 'int',\r\n options: { minValue: 1, maxValue: 2048 },\r\n default: 256,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.irradianceConvSamples;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.irradianceConvSamples = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'SkyType',\r\n description: 'Type of sky rendering used by the scene',\r\n type: 'string',\r\n phase: 0,\r\n options: {\r\n enum: {\r\n labels: ['None', 'Image', 'SkyBox', 'Scatter'],\r\n values: ['none', 'image', 'skybox', 'scatter']\r\n }\r\n },\r\n default: 'scatter',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.skyType;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyType = value.str[0] as SkyType;\r\n }\r\n },\r\n {\r\n name: 'SkyColor',\r\n description: 'RGB value for sky color if skyType sets to `Image`',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [1, 1, 1],\r\n options: {\r\n animatable: true\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'image';\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.sky.skyColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyColor = new Vector4(value.num[0], value.num[1], value.num[2], 1);\r\n this.env.sky.invalidate();\r\n }\r\n },\r\n {\r\n name: 'SkyImage',\r\n description: 'Sky image file path if skyType sets to `Image`',\r\n type: 'object',\r\n default: null,\r\n options: {\r\n mimeTypes: [\r\n 'image/jpeg',\r\n 'image/png',\r\n 'image/tga',\r\n 'image/vnd.radiance',\r\n 'image/x-dds',\r\n 'image/webp'\r\n ]\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'image';\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = manager.getAssetId(this.env.sky.skyImage) ?? '';\r\n },\r\n async set(this: Scene, value) {\r\n if (!value) {\r\n this.env.sky.skyImage = null;\r\n } else {\r\n if (value.str[0]) {\r\n const assetId = value.str[0];\r\n let tex: Nullable<Texture2D>;\r\n try {\r\n tex = await manager.fetchTexture<Texture2D>(assetId);\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n tex = null;\r\n }\r\n const isValidTextureType = !!tex?.isTexture2D();\r\n if (isValidTextureType) {\r\n this.env.sky.skyImage = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'FogType',\r\n description: 'Type of fog rendering used by the scene',\r\n type: 'string',\r\n phase: 0,\r\n options: {\r\n enum: {\r\n labels: ['None', 'ExponentialHeightFog'],\r\n values: ['none', 'height_fog']\r\n }\r\n },\r\n default: 'none',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.fogType;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.fogType = value.str[0] as FogType;\r\n }\r\n },\r\n {\r\n type: 'float',\r\n name: 'HeightFogDensity',\r\n description: 'Base density of exponential height fog',\r\n default: 0.04,\r\n options: { group: 'HeightFog', label: 'Density', minValue: 0, maxValue: 1 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDensity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogFalloff',\r\n description: 'How quickly fog density changes with height',\r\n type: 'float',\r\n default: 0.2,\r\n options: { group: 'HeightFog', label: 'Falloff', minValue: 0, maxValue: 1 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogFalloff;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogFalloff = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogStartHeight',\r\n description: 'World height where height fog starts',\r\n type: 'float',\r\n default: 0,\r\n options: { group: 'HeightFog', label: 'StartHeight', minValue: 0, maxValue: 1000 },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogStartHeight;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogStartHeight = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogColor',\r\n description: 'Base color of the height fog',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0, 0, 0],\r\n options: {\r\n group: 'HeightFog',\r\n label: 'FogColor',\r\n animatable: true\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n const color = this.env.sky.heightFogColor;\r\n value.num[0] = color.x;\r\n value.num[1] = color.y;\r\n value.num[2] = color.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'HeightFogStartDistance',\r\n description: 'Distance from the camera where height fog begins',\r\n type: 'float',\r\n default: 0,\r\n options: {\r\n group: 'HeightFog',\r\n label: 'StartDistance'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogStartDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogStartDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogEndDistance',\r\n description:\r\n 'Horizontal distance beyond which height fog stops getting thicker. 0 lets it keep accumulating to any distance',\r\n type: 'float',\r\n default: 10000,\r\n options: {\r\n group: 'HeightFog',\r\n label: 'EndDistance'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogEndDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogEndDistance = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogMaxOpacity',\r\n description: 'Maximum opacity of the height fog',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'MaxOpacity', minValue: 0, maxValue: 1 },\r\n default: 1,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogMaxOpacity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogMaxOpacity = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogAtmosphereStrength',\r\n description: 'How much atmospheric scattering contributes to the fog',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'AtmosphereStrength', minValue: 0, maxValue: 10 },\r\n default: 1,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogAtmosphereContribution;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogAtmosphereContribution = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogDirExponent',\r\n description: 'Directional inscattering exponent for height fog',\r\n type: 'float',\r\n default: 4,\r\n options: { group: 'HeightFog', label: 'DirectionalExponent' },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDirExponent;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDirExponent = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogDirColor',\r\n description: 'Directional inscattering color for height fog',\r\n type: 'rgb',\r\n default: [0, 0, 0],\r\n options: {\r\n group: 'HeightFog',\r\n label: 'DirectionalInscattering'\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogDirColor.x;\r\n value.num[1] = this.env.sky.heightFogDirColor.y;\r\n value.num[2] = this.env.sky.heightFogDirColor.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogDirColor = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n }\r\n },\r\n {\r\n name: 'HeightFogSkyLightStrength',\r\n description:\r\n 'Makes distant fog take the color of the environment behind it instead of one flat color, removing the dark band at the horizon. Needs an IBL environment light',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'SkyLightStrength', minValue: 0, maxValue: 1 },\r\n default: 0,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogSkyLightStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogSkyLightStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'HeightFogSkyLightRoughness',\r\n description:\r\n 'Blurriness of the environment seen through the fog. Higher values give a softer, more uniform fog color',\r\n type: 'float',\r\n options: { group: 'HeightFog', label: 'SkyLightRoughness', minValue: 0, maxValue: 1 },\r\n default: 0.15,\r\n isValid(this: Scene) {\r\n return this.env.sky.fogType === 'height_fog';\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.heightFogSkyLightRoughness;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.heightFogSkyLightRoughness = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'AerialPerspectiveDistance',\r\n description:\r\n 'How far the atmosphere keeps hazing distant objects toward the sky color. Beyond this distance the haze stops getting thicker',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 1, maxValue: 200000 },\r\n default: 96000,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.aerialPerspectiveDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.aerialPerspectiveDistance = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AerialPerspectiveViewDistanceScale',\r\n description:\r\n 'Strength of the atmospheric haze on distant objects. Higher values make them fade into the sky color sooner; the sky itself does not change',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 10 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.aerialPerspectiveViewDistanceScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.aerialPerspectiveViewDistanceScale = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AerialPerspectiveStartDepth',\r\n description:\r\n 'Distance from the camera, in meters, where the atmospheric haze starts. Anything nearer stays completely clear',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 10000 },\r\n default: 100,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.aerialPerspectiveStartDepth;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.aerialPerspectiveStartDepth = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'CameraHeightScale',\r\n description:\r\n 'How many meters of atmosphere one world unit stands for. Larger values make the camera climb faster through the sky and distant objects haze sooner',\r\n type: 'float',\r\n phase: 1,\r\n options: { animatable: true, minValue: 0.001, maxValue: 1000 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cameraHeightScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cameraHeightScale = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AtmosphereRebakeAltitudeRatio',\r\n description:\r\n 'How much the camera must climb or descend, as a fraction of its altitude, before the environment lighting from the sky is updated. Smaller values follow the sky more closely while flying but cost more',\r\n type: 'float',\r\n phase: 1,\r\n options: { minValue: 0, maxValue: 1 },\r\n default: 0.05,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.atmosphereRebakeAltitudeRatio;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.atmosphereRebakeAltitudeRatio = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AtmosphereRebakeAngle',\r\n description:\r\n 'How far, in degrees of planet curvature, the camera must travel before the environment lighting from the sky is updated. 0.5 degrees is about 55 km on Earth',\r\n type: 'float',\r\n phase: 1,\r\n options: { minValue: 0, maxValue: 10 },\r\n default: 0.5,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.atmosphereRebakeAngle;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.atmosphereRebakeAngle = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'GroundAlbedo',\r\n description:\r\n 'Color of the ground seen below the horizon where no geometry covers the sky. It also reflects light back up and brightens the sky slightly',\r\n type: 'rgb',\r\n phase: 1,\r\n default: [0.401978, 0.401978, 0.401978],\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.groundAlbedo.x;\r\n value.num[1] = this.env.sky.groundAlbedo.y;\r\n value.num[2] = this.env.sky.groundAlbedo.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.groundAlbedo = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'LowerHemisphereIsBlack',\r\n description:\r\n 'Keeps the ground below the horizon out of the environment lighting, so objects are not lit from below as if standing on an endless plain. The ground stays visible in the sky itself',\r\n type: 'bool',\r\n phase: 1,\r\n default: true,\r\n get(this: Scene, value) {\r\n value.bool[0] = this.env.sky.lowerHemisphereIsBlack;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.lowerHemisphereIsBlack = value.bool[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'AtmosphereExposure',\r\n description: 'Exposure multiplier for atmospheric scattering and sky rendering',\r\n type: 'float',\r\n options: { animatable: true, minValue: 0, maxValue: 8 },\r\n default: 1,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.atmosphereExposure;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.atmosphereExposure = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'Cloudy',\r\n description: 'Cloud coverage amount for the procedural sky',\r\n type: 'float',\r\n default: 0.6,\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 1 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudy;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudy = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'CloudIntensity',\r\n description: 'Brightness of procedural clouds',\r\n type: 'float',\r\n default: 40,\r\n phase: 1,\r\n options: { animatable: true, minValue: 0, maxValue: 200 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudIntensity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudIntensity = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'CloudMode',\r\n description:\r\n 'Procedural draws a flat cloud layer; Volumetric draws lit 3D clouds (WebGPU only, falls back to Procedural elsewhere)',\r\n type: 'string',\r\n phase: 1,\r\n options: {\r\n enum: { labels: ['Procedural', 'Volumetric'], values: ['procedural', 'volumetric'] }\r\n },\r\n default: 'procedural',\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.cloudMode;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudMode = value.str[0] as CloudMode;\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudLayerBottomAltitude',\r\n description: 'Raises the cloud base: higher clouds look smaller and farther away',\r\n type: 'float',\r\n default: 1500,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'LayerBottomAltitude',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 20000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.layerBottomAltitude;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.layerBottomAltitude = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudLayerHeight',\r\n description: 'Lets clouds tower higher above their base',\r\n type: 'float',\r\n default: 4000,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'LayerHeight',\r\n animatable: true,\r\n minValue: 100,\r\n maxValue: 20000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.layerHeight;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.layerHeight = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudBaseHeightVariation',\r\n description: 'Maximum local rise of cloud undersides above the layer base, in meters',\r\n type: 'float',\r\n default: 700,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'BaseHeightVariation',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.baseHeightVariation;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.baseHeightVariation = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudCoverage',\r\n description: 'Weather coverage: higher grows cloud fields; zero removes all clouds',\r\n type: 'float',\r\n default: 0.55,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'Coverage',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.coverage;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.coverage = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDensity',\r\n description: 'Makes clouds more opaque and their shadowed sides darker',\r\n type: 'float',\r\n default: 0.03,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'Density',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 0.5\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.density;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.density = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudWeatherMapScale',\r\n description:\r\n 'Spreads cloud fields wider apart; lower packs more, smaller cloud fields into the sky',\r\n type: 'float',\r\n default: 64000,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'WeatherMapScale',\r\n animatable: true,\r\n minValue: 1000,\r\n maxValue: 500000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.weatherMapScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.weatherMapScale = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudBaseNoiseScale',\r\n description: 'Size of the large billows that shape each cloud',\r\n type: 'float',\r\n default: 8000,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'BaseNoiseScale',\r\n animatable: true,\r\n minValue: 100,\r\n maxValue: 100000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.baseNoiseScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.baseNoiseScale = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudShapeStrength',\r\n description:\r\n 'Strength of the large noise billows; lower keeps cloud bodies fuller and more connected',\r\n type: 'float',\r\n default: 1,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'ShapeStrength',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.shapeStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.shapeStrength = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDetailNoiseScale',\r\n description: 'Size of the small wisps along cloud edges',\r\n type: 'float',\r\n default: 600,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'DetailNoiseScale',\r\n animatable: true,\r\n minValue: 10,\r\n maxValue: 10000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.detailNoiseScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.detailNoiseScale = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudFormation',\r\n description:\r\n 'Isolated: separate island-like clouds with persistent gaps. Connected: cloud fields that merge as Coverage rises',\r\n type: 'string',\r\n default: 'isolated',\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'Formation',\r\n enum: { labels: ['Isolated', 'Connected'], values: ['isolated', 'connected'] }\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.volumetricCloud.formation;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.formation = value.str[0] as CloudFormation;\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudAnvilBias',\r\n description: 'Spreads the tops of tall clouds out into anvils',\r\n type: 'float',\r\n default: 0,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'AnvilBias',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.anvilBias;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.anvilBias = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDetailErosion',\r\n description: 'Higher gives raggeder, wispier cloud edges',\r\n type: 'float',\r\n default: 0.35,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'DetailErosion',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.detailErosion;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.detailErosion = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDetailBottomErosion',\r\n description:\r\n 'Detail erosion at the cloud base relative to the full amount; lower keeps the base flatter',\r\n type: 'float',\r\n default: 0.1,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'DetailBottomErosion',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.detailBottomErosion;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.detailBottomErosion = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudPhaseG',\r\n description: 'Tightens and brightens the silver lining around the sun',\r\n type: 'float',\r\n default: 0.8,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'PhaseG',\r\n animatable: true,\r\n minValue: -0.999,\r\n maxValue: 0.999\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.phaseG;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.phaseG = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudPhaseG2',\r\n description: 'Negative values brighten clouds when looking away from the sun',\r\n type: 'float',\r\n default: -0.3,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'PhaseG2',\r\n animatable: true,\r\n minValue: -0.999,\r\n maxValue: 0.999\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.phaseG2;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.phaseG2 = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudPhaseBlend',\r\n description: 'Moves the look from the sun-facing lobe (0) to the second lobe (1)',\r\n type: 'float',\r\n default: 0.5,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'PhaseBlend',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.phaseBlend;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.phaseBlend = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudMultiScatteringOctaves',\r\n description: 'More bounces make thick clouds glow brighter and softer',\r\n type: 'int',\r\n default: 2,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'MultiScatteringOctaves',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 2\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.msOctaves;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.msOctaves = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudMultiScatteringContribution',\r\n description: 'Brightness of the bounced light inside clouds',\r\n type: 'float',\r\n default: 0.5,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'MultiScatteringContribution',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.msContribution;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.msContribution = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudMultiScatteringOcclusion',\r\n description: 'Lower lets bounced light reach deeper into thick clouds',\r\n type: 'float',\r\n default: 0.5,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'MultiScatteringOcclusion',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.msOcclusion;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.msOcclusion = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudMultiScatteringEccentricity',\r\n description: 'Lower spreads bounced light evenly instead of around the sun',\r\n type: 'float',\r\n default: 0.5,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'MultiScatteringEccentricity',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.msEccentricity;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.msEccentricity = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudGroundAlbedo',\r\n description: 'Brightens cloud undersides with light bounced off the ground',\r\n type: 'float',\r\n default: 0.4,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'GroundAlbedo',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.groundAlbedo;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.groundAlbedo = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudSkyLightBottomOcclusion',\r\n description: 'Darkens the sky light on cloud undersides',\r\n type: 'float',\r\n default: 0.5,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'SkyLightBottomOcclusion',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.skyLightCloudBottomOcclusion;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.skyLightCloudBottomOcclusion = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudTracingMaxDistance',\r\n description: 'How far into the layer clouds are still drawn; lower drops distant clouds',\r\n type: 'float',\r\n default: 50000,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'TracingMaxDistance',\r\n animatable: true,\r\n minValue: 1000,\r\n maxValue: 500000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.tracingMaxDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.tracingMaxDistance = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudViewSampleCountScale',\r\n description: 'Finer cloud detail at a higher cost',\r\n type: 'float',\r\n default: 2,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'ViewSampleCountScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 8\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.viewSampleCountScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.viewSampleCountScale = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudShadowSampleCountScale',\r\n description: 'Smoother self-shadowing inside clouds at a higher cost',\r\n type: 'float',\r\n default: 1,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'ShadowSampleCountScale',\r\n animatable: true,\r\n minValue: 0.05,\r\n maxValue: 8\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.shadowSampleCountScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.shadowSampleCountScale = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudShadowTracingDistance',\r\n description: 'How far towards the sun clouds look for cloud that shades them',\r\n type: 'float',\r\n default: 8000,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'ShadowTracingDistance',\r\n animatable: true,\r\n minValue: 100,\r\n maxValue: 50000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.shadowTracingDistance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.shadowTracingDistance = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudStopTracingTransmittance',\r\n description: 'Lower is slightly more exact behind dense clouds but slower',\r\n type: 'float',\r\n default: 0.005,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'StopTracingTransmittance',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.stopTracingTransmittanceThreshold;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.stopTracingTransmittanceThreshold = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudNoiseSeed',\r\n description: 'Picks a different generated cloud pattern',\r\n type: 'int',\r\n default: 0,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'NoiseSeed',\r\n animatable: true,\r\n minValue: 0,\r\n maxValue: 1000\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.noiseSeed;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.noiseSeed = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudFramesPerUpdate',\r\n description: 'Fewer frames let clouds and sunlight change faster but cost more per frame',\r\n type: 'int',\r\n default: 64,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'FramesPerUpdate',\r\n animatable: true,\r\n minValue: 4,\r\n maxValue: 256\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.framesPerUpdate;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.framesPerUpdate = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudCacheResolution',\r\n description: 'Keeps clouds sharp at narrow fields of view at a higher memory cost',\r\n type: 'int',\r\n default: 768,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'CacheResolution',\r\n animatable: true,\r\n minValue: 128,\r\n maxValue: 2048\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.volumetricCloud.cacheResolution;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.cacheResolution = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudPerSampleSunTransmittance',\r\n description:\r\n 'Reddens the sunlight inside clouds by the air between each point and the sun; matters most at sunrise and sunset',\r\n type: 'bool',\r\n default: false,\r\n phase: 2,\r\n options: { group: 'VolumetricClouds', label: 'PerSampleSunTransmittance' },\r\n get(this: Scene, value) {\r\n value.bool[0] = this.env.sky.volumetricCloud.perSampleAtmosphericLightTransmittance;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.perSampleAtmosphericLightTransmittance = value.bool[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudAlbedo',\r\n description: 'Tint of the light clouds scatter; lower values make clouds greyer',\r\n type: 'rgb',\r\n default: [1, 1, 1],\r\n phase: 2,\r\n options: { group: 'VolumetricClouds', label: 'Albedo', animatable: true },\r\n get(this: Scene, value) {\r\n const c = this.env.sky.volumetricCloud.albedo;\r\n value.num[0] = c.x;\r\n value.num[1] = c.y;\r\n value.num[2] = c.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.albedo = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudWind',\r\n description: 'Direction and speed the clouds drift with, in meters per second',\r\n type: 'vec2',\r\n default: [10, 0],\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'Wind',\r\n animatable: true,\r\n minValue: -100,\r\n maxValue: 100\r\n },\r\n get(this: Scene, value) {\r\n const w = this.env.sky.volumetricCloud.wind;\r\n value.num[0] = w.x;\r\n value.num[1] = w.y;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.volumetricCloud.wind = new Vector2(value.num[0], value.num[1]);\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudWeatherMap',\r\n description:\r\n 'Where clouds form: R Connected footprints, G Isolated footprints (higher values fill first as Coverage rises), B cloud type (0 stratus to 1 cumulus). Empty generates one',\r\n type: 'object',\r\n default: null,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'WeatherMap',\r\n mimeTypes: ['image/png', 'image/tga', 'image/webp', 'image/ktx2', 'image/x-dds']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = manager.getAssetId(this.env.sky.cloudWeatherMap) ?? '';\r\n },\r\n async set(this: Scene, value) {\r\n if (!value || !value.str[0]) {\r\n this.env.sky.cloudWeatherMap = null;\r\n return;\r\n }\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n // Data, not color: no sRGB decoding\r\n tex = await manager.fetchTexture<Texture2D>(value.str[0], { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.env.sky.cloudWeatherMap = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudBaseNoise',\r\n description:\r\n 'Shape of the large billows, as a 2D atlas of the slices of a cubic volume (e.g. 128^3 as 2048x1024). Empty generates one',\r\n type: 'object',\r\n default: null,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'BaseNoise',\r\n mimeTypes: ['image/png', 'image/tga', 'image/webp', 'image/ktx2', 'image/x-dds']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = manager.getAssetId(this.env.sky.cloudBaseNoise) ?? '';\r\n },\r\n async set(this: Scene, value) {\r\n if (!value || !value.str[0]) {\r\n this.env.sky.cloudBaseNoise = null;\r\n return;\r\n }\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n // Data, not color: no sRGB decoding\r\n tex = await manager.fetchTexture<Texture2D>(value.str[0], { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.env.sky.cloudBaseNoise = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDetailNoise',\r\n description:\r\n 'Shape of the small edge wisps, as a 2D atlas of the slices of a cubic volume (e.g. 32^3 as 256x128). Empty generates one',\r\n type: 'object',\r\n default: null,\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'DetailNoise',\r\n mimeTypes: ['image/png', 'image/tga', 'image/webp', 'image/ktx2', 'image/x-dds']\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = manager.getAssetId(this.env.sky.cloudDetailNoise) ?? '';\r\n },\r\n async set(this: Scene, value) {\r\n if (!value || !value.str[0]) {\r\n this.env.sky.cloudDetailNoise = null;\r\n return;\r\n }\r\n let tex: Nullable<Texture2D> = null;\r\n try {\r\n // Data, not color: no sRGB decoding\r\n tex = await manager.fetchTexture<Texture2D>(value.str[0], { linearColorSpace: true });\r\n } catch (err) {\r\n console.error(`Load asset failed: ${value.str[0]}: ${err}`);\r\n }\r\n if (tex?.isTexture2D()) {\r\n this.env.sky.cloudDetailNoise = tex;\r\n } else {\r\n console.error('Invalid texture type');\r\n }\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDebugView',\r\n description:\r\n 'Shows a cloud resource, height profile or density section over the sky for inspection',\r\n type: 'string',\r\n default: 'none',\r\n phase: 2,\r\n options: {\r\n group: 'VolumetricClouds',\r\n label: 'DebugView',\r\n enum: {\r\n labels: [\r\n 'None',\r\n 'WeatherMap',\r\n 'BaseNoise',\r\n 'DetailNoise',\r\n 'HeightProfileXY',\r\n 'HeightProfileXZ',\r\n 'BaseDensityXY',\r\n 'BaseDensityXZ',\r\n 'DensityXY',\r\n 'DensityXZ'\r\n ],\r\n values: [\r\n 'none',\r\n 'weather',\r\n 'baseNoise',\r\n 'detailNoise',\r\n 'profileXY',\r\n 'profileXZ',\r\n 'baseDensityXY',\r\n 'baseDensityXZ',\r\n 'densityXY',\r\n 'densityXZ'\r\n ]\r\n }\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.cloudDebugView;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudDebugView = value.str[0] as VolumetricCloudDebugView;\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDebugSlice',\r\n description:\r\n 'Noise slice depth, normalized Z of XY sections, or normalized layer height of XZ sections',\r\n type: 'float',\r\n default: 0,\r\n phase: 2,\r\n options: { group: 'VolumetricClouds', label: 'DebugSlice', minValue: 0, maxValue: 1 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudDebugSlice;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudDebugSlice = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'VolumetricCloudDebugChannel',\r\n description: 'Channel shown by DebugView: 0 color, 1-4 R, G, B or A as grey',\r\n type: 'int',\r\n default: 0,\r\n phase: 2,\r\n options: { group: 'VolumetricClouds', label: 'DebugChannel', minValue: 0, maxValue: 4 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.cloudDebugChannel;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.cloudDebugChannel = value.num[0];\r\n },\r\n isValid(this: Scene) {\r\n return this.env.sky.skyType === 'scatter' && this.env.sky.cloudMode === 'volumetric';\r\n }\r\n },\r\n {\r\n name: 'Wind',\r\n description: 'Wind direction and speed used by the procedural sky',\r\n type: 'vec2',\r\n default: [0, 0],\r\n phase: 1,\r\n options: { animatable: true, minValue: -100, maxValue: 100 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.wind.x;\r\n value.num[1] = this.env.sky.wind.y;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.wind.setXY(value.num[0], value.num[1]);\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'scatter';\r\n }\r\n },\r\n {\r\n name: 'SkyBoxRotation',\r\n description: 'Euler rotation of the skybox',\r\n type: 'vec3',\r\n default: [0, 0, 0],\r\n phase: 1,\r\n options: {\r\n label: 'Rotation',\r\n edit: 'quaternion',\r\n animatable: true\r\n },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.skyboxRotation.x;\r\n value.num[1] = this.env.sky.skyboxRotation.y;\r\n value.num[2] = this.env.sky.skyboxRotation.z;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyboxRotation = new Vector3(value.num[0], value.num[1], value.num[2]);\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'SkyBoxTextureSize',\r\n description: 'Skybox cubemap resolution',\r\n type: 'int',\r\n default: 1024,\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.sky.skyboxTextureSize;\r\n },\r\n set(this: Scene, value) {\r\n this.env.sky.skyboxTextureSize = value.num[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'PanoramaTexture',\r\n description: 'Panorama texture file path if skyType sets to `skybox`',\r\n type: 'object',\r\n phase: 1,\r\n options: {\r\n mimeTypes: ['image/vnd.radiance']\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.env.sky.panoramaTextureAsset;\r\n },\r\n async set(this: Scene, value) {\r\n this.env.sky.panoramaTextureAsset = value.str[0];\r\n },\r\n isValid() {\r\n return this.env.sky.skyType === 'skybox';\r\n }\r\n },\r\n {\r\n name: 'WindFieldDirection',\r\n description:\r\n 'Compass direction the wind blows toward, in degrees. Grass leans and gusts travel this way',\r\n type: 'float',\r\n default: 0,\r\n options: { group: 'Wind', label: 'Direction', animatable: true, minValue: -180, maxValue: 180 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.direction;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.direction = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldStrength',\r\n description: 'How hard the wind blows. 0 is still air; higher values bend grass further over',\r\n type: 'float',\r\n default: 0.3,\r\n options: { group: 'Wind', label: 'Strength', animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.strength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.strength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldSpeed',\r\n description: 'How fast the gusts sweep across the ground, in units per second',\r\n type: 'float',\r\n default: 4,\r\n options: { group: 'Wind', label: 'GustSpeed', animatable: true, minValue: 0, maxValue: 50 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.speed;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.speed = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldGustStrength',\r\n description:\r\n 'How strongly gusts come and go. 0 gives a steady wind; higher values make waves of stronger wind roll through fields',\r\n type: 'float',\r\n default: 0.6,\r\n options: { group: 'Wind', label: 'GustStrength', animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.gustStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.gustStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldGustScale',\r\n description: 'Size of a gust on the ground, in units. Larger values give broad, slow-looking waves',\r\n type: 'float',\r\n default: 30,\r\n options: { group: 'Wind', label: 'GustSize', animatable: true, minValue: 0.1, maxValue: 500 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.gustScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.gustScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldDetailStrength',\r\n description: 'Amount of small, fast flutter on top of the gusts',\r\n type: 'float',\r\n default: 0.25,\r\n options: { group: 'Wind', label: 'TurbulenceStrength', animatable: true, minValue: 0, maxValue: 2 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.detailStrength;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.detailStrength = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'WindFieldDetailScale',\r\n description: 'Size of the small flutter patches, in units',\r\n type: 'float',\r\n default: 4,\r\n options: { group: 'Wind', label: 'TurbulenceSize', animatable: true, minValue: 0.1, maxValue: 100 },\r\n get(this: Scene, value) {\r\n value.num[0] = this.env.wind.detailScale;\r\n },\r\n set(this: Scene, value) {\r\n this.env.wind.detailScale = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'NodeHierarchy',\r\n description: 'Node tree of this scene',\r\n type: 'object',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.rootNode;\r\n },\r\n set(this: Scene, value) {\r\n const sceneNode = value.object[0] as SceneNode;\r\n if (sceneNode) {\r\n sceneNode.remove();\r\n for (const child of sceneNode.children) {\r\n child.parent = this.rootNode;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: 'MainCamera',\r\n description: 'Main camera node of this scene',\r\n type: 'string',\r\n isHidden() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.mainCamera?.persistentId ?? '';\r\n },\r\n set(this: Scene, value) {\r\n this.mainCamera = value.str[0] ? this.findNodeById<Camera>(value.str[0]) : null;\r\n }\r\n },\r\n {\r\n name: 'Script',\r\n description: 'The first script path which is attached to this scene',\r\n type: 'object',\r\n options: {\r\n mimeTypes: ['text/x-typescript']\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.str[0] = this.script;\r\n },\r\n set(this: Scene, value) {\r\n this.script = value?.str?.[0] ?? '';\r\n }\r\n },\r\n {\r\n name: 'Scripts',\r\n description: 'All scripts paths which are attached to this scene',\r\n type: 'object_array',\r\n options: {\r\n objectTypes: [ScriptAttachment]\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n getDefaultValue(this: Scene) {\r\n return this.scripts;\r\n },\r\n isNullable() {\r\n return false;\r\n },\r\n get(this: Scene, value) {\r\n value.object = this.scripts;\r\n },\r\n set(this: Scene, value) {\r\n this.scripts = (value.object as ScriptAttachment[]) ?? [];\r\n },\r\n create() {\r\n return new ScriptAttachment();\r\n },\r\n add(this: Scene, value, index) {\r\n const attachments = this.scripts;\r\n attachments.splice(\r\n index ?? attachments.length,\r\n 0,\r\n (value.object?.[0] as ScriptAttachment) ?? new ScriptAttachment()\r\n );\r\n this.scripts = attachments;\r\n },\r\n delete(this: Scene, index) {\r\n const attachments = this.scripts;\r\n if (index >= 0 && index < attachments.length) {\r\n attachments.splice(index, 1);\r\n this.scripts = attachments;\r\n }\r\n }\r\n },\r\n {\r\n name: 'ScriptConfig',\r\n description: 'Configuration object passed to the first scene script',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONData, JSONArray] },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n isPersistent(this: Scene) {\r\n return !!this.script;\r\n },\r\n get(this: Scene, value) {\r\n const config = normalizeScriptAttachmentConfig(this.scriptConfig);\r\n value.object[0] =\r\n config == null\r\n ? null\r\n : Array.isArray(config)\r\n ? new JSONArray(null, config)\r\n : new JSONData(null, config);\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as\r\n | JSONData\r\n | JSONArray\r\n | Record<string, unknown>\r\n | unknown[]\r\n | null\r\n | undefined;\r\n this.scriptConfig =\r\n data instanceof JSONData || data instanceof JSONArray\r\n ? normalizeScriptAttachmentConfig(data.data)\r\n : normalizeScriptAttachmentConfig(data);\r\n }\r\n },\r\n {\r\n name: 'ScriptConfigs',\r\n description: 'Per-script configuration array for all scene scripts',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONArray] },\r\n getDefaultValue(this: Scene) {\r\n return this.scriptConfigs;\r\n },\r\n isHidden() {\r\n return true;\r\n },\r\n isNullable() {\r\n return true;\r\n },\r\n isPersistent(this: Scene) {\r\n return this.scripts.length > 0;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.scriptConfigs.length > 0 ? new JSONArray(null, this.scriptConfigs) : null;\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as JSONArray | unknown[] | null | undefined;\r\n this.scriptConfigs = data instanceof JSONArray ? data.data : Array.isArray(data) ? data : [];\r\n }\r\n },\r\n {\r\n name: 'Physics',\r\n description:\r\n 'Gravity, step rate and collision layers used when the scene is simulated with physics; leave empty for defaults',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [ScenePhysicsSettings] },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.physicsSettings;\r\n },\r\n set(this: Scene, value) {\r\n const settings = value?.object[0];\r\n this.physicsSettings = settings instanceof ScenePhysicsSettings ? settings : null;\r\n }\r\n },\r\n {\r\n name: 'Metadata',\r\n description: 'Meta data for this scene',\r\n type: 'object',\r\n default: null,\r\n options: { objectTypes: [JSONData, JSONArray] },\r\n isNullable() {\r\n return true;\r\n },\r\n get(this: Scene, value) {\r\n value.object[0] = this.metaData\r\n ? Array.isArray(this.metaData)\r\n ? new JSONArray(null, this.metaData)\r\n : new JSONData(null, this.metaData)\r\n : null;\r\n },\r\n set(this: Scene, value) {\r\n const data = value?.object[0] as\r\n | JSONData\r\n | JSONArray\r\n | Record<string, unknown>\r\n | unknown[]\r\n | null\r\n | undefined;\r\n this.metaData =\r\n data instanceof JSONData || data instanceof JSONArray ? data.data : (data ?? null);\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n}\r\n"],"names":["getSceneClass","manager","ctor","Scene","name","createFunc","obj","getProps","defineProps","description","type","phase","default","options","group","enum","labels","values","get","value","str","lightingMode","set","bool","sdf","enabled","minValue","maxValue","isHidden","num","streamRadius","Math","max","size","atlasSize","gi","voxelizeBudget","sunShadowConeAngle","localLightShadows","intensity","probeSpacing","probeBudget","probeRays","probeHysteresis","probeLevels","updateMode","metersPerUnit","isValid","env","light","animatable","color","ambientColor","x","y","z","setXYZW","ambientUp","ambientDown","strength","label","sky","skyType","specularStrength","weights","shWindowWeights","Vector3","radianceConvSamples","irradianceConvSamples","skyColor","Vector4","invalidate","mimeTypes","isNullable","getAssetId","skyImage","assetId","tex","fetchTexture","err","console","error","isValidTextureType","isTexture2D","fogType","heightFogDensity","heightFogFalloff","heightFogStartHeight","heightFogColor","heightFogStartDistance","heightFogEndDistance","heightFogMaxOpacity","heightFogAtmosphereContribution","heightFogDirExponent","heightFogDirColor","heightFogSkyLightStrength","heightFogSkyLightRoughness","aerialPerspectiveDistance","aerialPerspectiveViewDistanceScale","aerialPerspectiveStartDepth","cameraHeightScale","atmosphereRebakeAltitudeRatio","atmosphereRebakeAngle","groundAlbedo","lowerHemisphereIsBlack","atmosphereExposure","cloudy","cloudIntensity","cloudMode","volumetricCloud","layerBottomAltitude","layerHeight","baseHeightVariation","coverage","density","weatherMapScale","baseNoiseScale","shapeStrength","detailNoiseScale","formation","anvilBias","detailErosion","detailBottomErosion","phaseG","phaseG2","phaseBlend","msOctaves","msContribution","msOcclusion","msEccentricity","skyLightCloudBottomOcclusion","tracingMaxDistance","viewSampleCountScale","shadowSampleCountScale","shadowTracingDistance","stopTracingTransmittanceThreshold","noiseSeed","framesPerUpdate","cacheResolution","perSampleAtmosphericLightTransmittance","c","albedo","w","wind","Vector2","cloudWeatherMap","linearColorSpace","cloudBaseNoise","cloudDetailNoise","cloudDebugView","cloudDebugSlice","cloudDebugChannel","setXY","edit","skyboxRotation","skyboxTextureSize","panoramaTextureAsset","direction","speed","gustStrength","gustScale","detailStrength","detailScale","object","rootNode","sceneNode","remove","child","children","parent","mainCamera","persistentId","findNodeById","script","objectTypes","ScriptAttachment","getDefaultValue","scripts","create","add","index","attachments","splice","length","delete","JSONData","JSONArray","isPersistent","config","normalizeScriptAttachmentConfig","scriptConfig","Array","isArray","data","scriptConfigs","ScenePhysicsSettings","physicsSettings","settings","metaData"],"mappings":";;;;;;;AAsBA,iBACO,SAASA,aAAAA,CAAcC,OAAwB,EAAA;IACpD,OAAO;QACLC,IAAMC,EAAAA,KAAAA;QACNC,IAAM,EAAA,OAAA;AACNC,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAEC,gBAAAA,GAAAA,EAAK,IAAIH,KAAAA;AAAQ,aAAA;AAC5B,SAAA;AACAI,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,OAAOC,WAAY,CAAA;AACjB,gBAAA;oBACEJ,IAAM,EAAA,cAAA;oBACNK,WAAa,EAAA,yEAAA;oBACbC,IAAM,EAAA,QAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA,QAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACPC,IAAM,EAAA;4BACJC,MAAQ,EAAA;AAAC,gCAAA,QAAA;AAAU,gCAAA;AAA0B,6BAAA;4BAC7CC,MAAQ,EAAA;AAAC,gCAAA,QAAA;AAAU,gCAAA;AAAW;AAChC;AACF,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,YAAY;AAClC,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACE,YAAY,GAAGF,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,YAAA;oBACNK,WACE,EAAA,4JAAA;oBACFC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA,KAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA;AAAM,qBAAA;AACxBI,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACC,GAAG,CAACC,OAAO;AAClC,qBAAA;AACAH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACK,GAAG,CAACC,OAAO,GAAGN,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEnB,IAAM,EAAA,iBAAA;oBACNK,WAAa,EAAA,oEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,KAAA;wBAAOY,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAO,qBAAA;AACvDC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACJ,GAAG,CAACC,OAAO;AAC1B,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACL,GAAG,CAACM,YAAY;AACtC,qBAAA;AACAR,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACK,GAAG,CAACM,YAAY,GAAGC,IAAAA,CAAKC,GAAG,CAAC,CAAGb,EAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AAClD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,cAAA;oBACNK,WACE,EAAA,8OAAA;oBACFC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;oBACxBC,OAAS,EAAA;wBAAEC,KAAO,EAAA,KAAA;wBAAOY,QAAU,EAAA,EAAA;wBAAIC,QAAU,EAAA;AAAK,qBAAA;AACtDC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACJ,GAAG,CAACC,OAAO;AAC1B,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMc,IAAO,GAAA,IAAI,CAACT,GAAG,CAACU,SAAS;AAC/Bf,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,GAAGI,IAAI,CAAC,CAAE,CAAA;AACtBd,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,GAAGI,IAAI,CAAC,CAAE,CAAA;AACtBd,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,GAAGI,IAAI,CAAC,CAAE,CAAA;AACxB,qBAAA;AACAX,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACK,GAAG,CAACU,SAAS,GAAG;4BAACf,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;4BAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;4BAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAE;AAAC,yBAAA;AACjE;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,WAAA;oBACNK,WACE,EAAA,0QAAA;oBACFC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA,KAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA;AAAsB,qBAAA;AACxCI,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACY,EAAE,CAACV,OAAO;AACjC,qBAAA;AACAH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACV,OAAO,GAAGN,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEnB,IAAM,EAAA,kBAAA;oBACNK,WACE,EAAA,2IAAA;oBACFC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;AACnEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACC,cAAc;AACvC,qBAAA;AACAd,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACC,cAAc,GAAGjB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACvC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,sBAAA;oBACNK,WACE,EAAA,6RAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,MAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,GAAA;wBAAKC,QAAU,EAAA;AAAG,qBAAA;AACrEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACE,kBAAkB;AAC3C,qBAAA;AACAf,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACE,kBAAkB,GAAGlB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC3C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,qBAAA;oBACNK,WACE,EAAA,+OAAA;oBACFC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA;AAAsB,qBAAA;AACxCc,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACY,EAAE,CAACG,iBAAiB;AAC3C,qBAAA;AACAhB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACG,iBAAiB,GAAGnB,KAAMI,CAAAA,IAAI,CAAC,CAAE,CAAA;AAC3C;AACF,iBAAA;AACA,gBAAA;oBACEnB,IAAM,EAAA,aAAA;oBACNK,WACE,EAAA,gKAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;AACnEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACI,SAAS;AAClC,qBAAA;AACAjB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACI,SAAS,GAAGpB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,gBAAA;oBACNK,WACE,EAAA,uNAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,IAAA;wBAAMC,QAAU,EAAA;AAAG,qBAAA;AACtEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACK,YAAY;AACrC,qBAAA;AACAlB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACK,YAAY,GAAGrB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,eAAA;oBACNK,WACE,EAAA,oIAAA;oBACFC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,EAAA;wBAAIC,QAAU,EAAA;AAAM,qBAAA;AACvEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACM,WAAW;AACpC,qBAAA;AACAnB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACM,WAAW,GAAGtB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,aAAA;oBACNK,WACE,EAAA,mHAAA;oBACFC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,EAAA;wBAAIC,QAAU,EAAA;AAAI,qBAAA;AACrEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACO,SAAS;AAClC,qBAAA;AACApB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACO,SAAS,GAAGvB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,mBAAA;oBACNK,WACE,EAAA,2LAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,GAAA;wBAAKC,QAAU,EAAA;AAAK,qBAAA;AACvEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACQ,eAAe;AACxC,qBAAA;AACArB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACQ,eAAe,GAAGxB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,eAAA;oBACNK,WACE,EAAA,wQAAA;oBACFC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,qBAAA;wBAAuBY,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AAClEC,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACM,EAAE,CAACS,WAAW;AACpC,qBAAA;AACAtB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACS,WAAW,GAAGzB,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,cAAA;oBACNK,WACE,EAAA,2NAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,YAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,qBAAA;wBACPC,IAAM,EAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,YAAA;AAAc,gCAAA;AAAS,6BAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,YAAA;AAAc,gCAAA;AAAS;AAAC;AAC7E,qBAAA;AACAW,oBAAAA,QAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,IAAI,CAACO,EAAE,CAACV,OAAO;AACzB,qBAAA;AACAP,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACe,EAAE,CAACU,UAAU;AACnC,qBAAA;AACAvB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAACgB,EAAE,CAACU,UAAU,GAAG1B,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AACnC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,eAAA;oBACNK,WAAa,EAAA,+CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACPY,QAAU,EAAA;AACZ,qBAAA;AACAR,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiB,aAAa;AACnC,qBAAA;AACAxB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC2B,aAAa,GAAG3B,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA;AACnC,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAI,CAAC1B,YAAY,KAAK,UAAA;AAC/B;AACF,iBAAA;AACA,gBAAA;oBACEjB,IAAM,EAAA,MAAA;oBACNK,WAAa,EAAA,YAAA;oBACbC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,EAAA;AACTgB,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAV,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAChB,IAAI;AAC1B,qBAAA;AACAkB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACf,IAAI,GAAGe,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA;AAC1B;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,cAAA;oBACNK,WAAa,EAAA,iCAAA;oBACbE,KAAO,EAAA,CAAA;oBACPD,IAAM,EAAA,QAAA;oBACNG,OAAS,EAAA;wBACPE,IAAM,EAAA;4BACJC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA,UAAA;AAAY,gCAAA,aAAA;AAAe,gCAAA;AAAM,6BAAA;4BAClDC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA,UAAA;AAAY,gCAAA,YAAA;AAAc,gCAAA;AAAM;AACnD;AACF,qBAAA;oBACAL,OAAS,EAAA,KAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACC,KAAK,CAACvC,IAAI;AACpC,qBAAA;AACAY,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACvC,IAAI,GAAGS,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,cAAA;oBACNK,WAAa,EAAA,0EAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;oBACxBC,OAAS,EAAA;wBACPqC,UAAY,EAAA;AACd,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMgC,QAAQ,IAAI,CAACH,GAAG,CAACC,KAAK,CAACG,YAAY;AACzCjC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAME,CAAC;AACtBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMG,CAAC;AACtBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMI,CAAC;AACxB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACG,YAAY,CAACI,OAAO,CAACrC,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA;AAChF,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACC,KAAK,CAACvC,IAAI,KAAK,UAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEN,IAAM,EAAA,WAAA;oBACNK,WAAa,EAAA,mFAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;oBACxBC,OAAS,EAAA;wBACPqC,UAAY,EAAA;AACd,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMgC,QAAQ,IAAI,CAACH,GAAG,CAACC,KAAK,CAACQ,SAAS;AACtCtC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAME,CAAC;AACtBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMG,CAAC;AACtBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMI,CAAC;AACxB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACQ,SAAS,CAACD,OAAO,CAACrC,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA;AAC7E,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACC,KAAK,CAACvC,IAAI,KAAK,YAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEN,IAAM,EAAA,aAAA;oBACNK,WAAa,EAAA,mFAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,GAAA;AAAK,wBAAA,GAAA;AAAK,wBAAA;AAAI,qBAAA;oBACxBC,OAAS,EAAA;wBACPqC,UAAY,EAAA;AACd,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMgC,QAAQ,IAAI,CAACH,GAAG,CAACC,KAAK,CAACS,WAAW;AACxCvC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAME,CAAC;AACtBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMG,CAAC;AACtBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMI,CAAC;AACxB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACS,WAAW,CAACF,OAAO,CAACrC,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA;AAC/E,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACC,KAAK,CAACvC,IAAI,KAAK,YAAA;AACjC;AACF,iBAAA;AACA,gBAAA;oBACEN,IAAM,EAAA,kBAAA;oBACNK,WAAa,EAAA,4BAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACvDf,OAAS,EAAA,CAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACC,KAAK,CAACU,QAAQ;AACxC,qBAAA;AACArC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACU,QAAQ,GAAGxC,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,mBAAA;AACNK,oBAAAA,WAAAA,EACE,sFACA,iFACA,GAAA,2BAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPqC,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVkC,KAAO,EAAA,iBAAA;wBACP9C,KAAO,EAAA;AACT,qBAAA;oBACAF,OAAS,EAAA,KAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACC,KAAK,CAACV,SAAS;AACzC,qBAAA;AACAjB,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACV,SAAS,GAAGpB,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACzC,qBAAA;AACAD,oBAAAA,QAAAA,CAAAA,GAAAA;;;AAGE,wBAAA,OAAO,IAAI,CAACP,YAAY,KAAK,UAAc,IAAA,IAAI,CAAC2B,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AACtE;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,0BAAA;oBACNK,WAAa,EAAA,qCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACvDf,OAAS,EAAA,CAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACC,KAAK,CAACc,gBAAgB;AAChD,qBAAA;AACAzC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACC,KAAK,CAACc,gBAAgB,GAAG5C,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAChD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,iBAAA;oBACNK,WAAa,EAAA,gCAAA;oBACbC,IAAM,EAAA,MAAA;oBACNG,OAAS,EAAA;wBAAEa,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACpCf,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;AAClBM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAM6C,UAAU,IAAI,CAAChB,GAAG,CAACa,GAAG,CAACI,eAAe;AAC5C9C,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGmC,QAAQX,CAAC;AACxBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGmC,QAAQV,CAAC;AACxBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGmC,QAAQT,CAAC;AAC1B,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACI,eAAe,GAAG,IAAIC,OAAAA,CAAQ/C,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,MAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AACrF;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,qBAAA;oBACNK,WAAa,EAAA,uCAAA;oBACbC,IAAM,EAAA,KAAA;oBACNG,OAAS,EAAA;wBAAEa,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAK,qBAAA;oBACvCf,OAAS,EAAA,EAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACM,mBAAmB;AACjD,qBAAA;AACA7C,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACM,mBAAmB,GAAGhD,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACjD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,uBAAA;oBACNK,WAAa,EAAA,yCAAA;oBACbC,IAAM,EAAA,KAAA;oBACNG,OAAS,EAAA;wBAAEa,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAK,qBAAA;oBACvCf,OAAS,EAAA,GAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACO,qBAAqB;AACnD,qBAAA;AACA9C,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACO,qBAAqB,GAAGjD,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACnD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,SAAA;oBACNK,WAAa,EAAA,yCAAA;oBACbC,IAAM,EAAA,QAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPE,IAAM,EAAA;4BACJC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA,OAAA;AAAS,gCAAA,QAAA;AAAU,gCAAA;AAAU,6BAAA;4BAC9CC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA,OAAA;AAAS,gCAAA,QAAA;AAAU,gCAAA;AAAU;AAChD;AACF,qBAAA;oBACAL,OAAS,EAAA,SAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACC,OAAO;AACrC,qBAAA;AACAxC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACC,OAAO,GAAG3C,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,UAAA;oBACNK,WAAa,EAAA,oDAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBAClBC,OAAS,EAAA;wBACPqC,UAAY,EAAA;AACd,qBAAA;AACAH,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,OAAA;AAClC,qBAAA;AACA5C,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMgC,QAAQ,IAAI,CAACH,GAAG,CAACa,GAAG,CAACQ,QAAQ;AACnClD,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAME,CAAC;AACtBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMG,CAAC;AACtBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMI,CAAC;AACxB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACQ,QAAQ,GAAG,IAAIC,OAAAA,CAAQnD,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE,CAAA,CAAA;AAC9E,wBAAA,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACU,UAAU,EAAA;AACzB;AACF,iBAAA;AACA,gBAAA;oBACEnE,IAAM,EAAA,UAAA;oBACNK,WAAa,EAAA,gDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBACP2D,SAAW,EAAA;AACT,4BAAA,YAAA;AACA,4BAAA,WAAA;AACA,4BAAA,WAAA;AACA,4BAAA,oBAAA;AACA,4BAAA,aAAA;AACA,4BAAA;AACD;AACH,qBAAA;AACAzB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,OAAA;AAClC,qBAAA;AACAW,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGnB,QAAQyE,UAAU,CAAC,IAAI,CAAC1B,GAAG,CAACa,GAAG,CAACc,QAAQ,CAAK,IAAA,EAAA;AAC9D,qBAAA;AACA,oBAAA,MAAMrD,KAAiBH,KAAK,EAAA;AAC1B,wBAAA,IAAI,CAACA,KAAO,EAAA;AACV,4BAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACc,QAAQ,GAAG,IAAA;yBACnB,MAAA;AACL,4BAAA,IAAIxD,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,EAAE;AAChB,gCAAA,MAAMwD,OAAUzD,GAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;gCAC5B,IAAIyD,GAAAA;gCACJ,IAAI;oCACFA,GAAM,GAAA,MAAM5E,OAAQ6E,CAAAA,YAAY,CAAYF,OAAAA,CAAAA;AAC9C,iCAAA,CAAE,OAAOG,GAAK,EAAA;AACZC,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE9D,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAE2D,GAAK,CAAA,CAAA,CAAA;oCAC1DF,GAAM,GAAA,IAAA;AACR;gCACA,MAAMK,kBAAAA,GAAqB,CAAC,CAACL,GAAKM,EAAAA,WAAAA,EAAAA;AAClC,gCAAA,IAAID,kBAAoB,EAAA;AACtB,oCAAA,IAAI,CAAClC,GAAG,CAACa,GAAG,CAACc,QAAQ,GAAGE,GAAAA;iCACnB,MAAA;AACLG,oCAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACE7E,IAAM,EAAA,SAAA;oBACNK,WAAa,EAAA,yCAAA;oBACbC,IAAM,EAAA,QAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPE,IAAM,EAAA;4BACJC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA;AAAuB,6BAAA;4BACxCC,MAAQ,EAAA;AAAC,gCAAA,MAAA;AAAQ,gCAAA;AAAa;AAChC;AACF,qBAAA;oBACAL,OAAS,EAAA,MAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACuB,OAAO;AACrC,qBAAA;AACA9D,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACuB,OAAO,GAAGjE,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AACrC;AACF,iBAAA;AACA,gBAAA;oBACEV,IAAM,EAAA,OAAA;oBACNN,IAAM,EAAA,kBAAA;oBACNK,WAAa,EAAA,wCAAA;oBACbG,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,SAAA;wBAAWlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AAC1EoB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACwB,gBAAgB;AAC9C,qBAAA;AACA/D,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACwB,gBAAgB,GAAGlE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC9C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,kBAAA;oBACNK,WAAa,EAAA,6CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,SAAA;wBAAWlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AAC1EoB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACyB,gBAAgB;AAC9C,qBAAA;AACAhE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACyB,gBAAgB,GAAGnE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC9C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,sBAAA;oBACNK,WAAa,EAAA,sCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,aAAA;wBAAelC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAK,qBAAA;AACjFoB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC0B,oBAAoB;AAClD,qBAAA;AACAjE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC0B,oBAAoB,GAAGpE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAClD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,gBAAA;oBACNK,WAAa,EAAA,8BAAA;oBACbC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBAClBC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACP8C,KAAO,EAAA,UAAA;wBACPV,UAAY,EAAA;AACd,qBAAA;AACAH,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMgC,QAAQ,IAAI,CAACH,GAAG,CAACa,GAAG,CAAC2B,cAAc;AACzCrE,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAME,CAAC;AACtBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMG,CAAC;AACtBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGsB,MAAMI,CAAC;AACxB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC2B,cAAc,GAAG,IAAItB,OAAAA,CAAQ/C,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,MAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AACpF;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,wBAAA;oBACNK,WAAa,EAAA,kDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACP8C,KAAO,EAAA;AACT,qBAAA;AACAb,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC4B,sBAAsB;AACpD,qBAAA;AACAnE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC4B,sBAAsB,GAAGtE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACpD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,sBAAA;oBACNK,WACE,EAAA,gHAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,KAAA;oBACTC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACP8C,KAAO,EAAA;AACT,qBAAA;AACAb,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC6B,oBAAoB;AAClD,qBAAA;AACApE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC6B,oBAAoB,GAAGvE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAClD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,qBAAA;oBACNK,WAAa,EAAA,mCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNG,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,YAAA;wBAAclC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBAC7Ef,OAAS,EAAA,CAAA;AACTmC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC8B,mBAAmB;AACjD,qBAAA;AACArE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC8B,mBAAmB,GAAGxE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACjD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,6BAAA;oBACNK,WAAa,EAAA,wDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNG,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,oBAAA;wBAAsBlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACtFf,OAAS,EAAA,CAAA;AACTmC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC+B,+BAA+B;AAC7D,qBAAA;AACAtE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC+B,+BAA+B,GAAGzE,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7D;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,sBAAA;oBACNK,WAAa,EAAA,kDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA;AAAsB,qBAAA;AAC5Db,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgC,oBAAoB;AAClD,qBAAA;AACAvE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgC,oBAAoB,GAAG1E,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAClD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,mBAAA;oBACNK,WAAa,EAAA,+CAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBAClBC,OAAS,EAAA;wBACPC,KAAO,EAAA,WAAA;wBACP8C,KAAO,EAAA;AACT,qBAAA;AACAb,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACiC,iBAAiB,CAACzC,CAAC;AAC/ClC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACiC,iBAAiB,CAACxC,CAAC;AAC/CnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACiC,iBAAiB,CAACvC,CAAC;AACjD,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACiC,iBAAiB,GAAG,IAAI5B,OAAAA,CAAQ/C,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,MAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AACvF;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,2BAAA;oBACNK,WACE,EAAA,gKAAA;oBACFC,IAAM,EAAA,OAAA;oBACNG,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,kBAAA;wBAAoBlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACnFf,OAAS,EAAA,CAAA;AACTmC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACkC,yBAAyB;AACvD,qBAAA;AACAzE,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACkC,yBAAyB,GAAG5E,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,4BAAA;oBACNK,WACE,EAAA,yGAAA;oBACFC,IAAM,EAAA,OAAA;oBACNG,OAAS,EAAA;wBAAEC,KAAO,EAAA,WAAA;wBAAa8C,KAAO,EAAA,mBAAA;wBAAqBlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACpFf,OAAS,EAAA,IAAA;AACTmC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACuB,OAAO,KAAK,YAAA;AAClC,qBAAA;AACAlE,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACmC,0BAA0B;AACxD,qBAAA;AACA1E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACmC,0BAA0B,GAAG7E,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACxD;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,2BAAA;oBACNK,WACE,EAAA,+HAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAO,qBAAA;oBAC3Df,OAAS,EAAA,KAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACoC,yBAAyB;AACvD,qBAAA;AACA3E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACoC,yBAAyB,GAAG9E,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,oCAAA;oBACNK,WACE,EAAA,6IAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACvDf,OAAS,EAAA,CAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACqC,kCAAkC;AAChE,qBAAA;AACA5E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACqC,kCAAkC,GAAG/E,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAChE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,6BAAA;oBACNK,WACE,EAAA,gHAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAM,qBAAA;oBAC1Df,OAAS,EAAA,GAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACsC,2BAA2B;AACzD,qBAAA;AACA7E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACsC,2BAA2B,GAAGhF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACzD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,mBAAA;oBACNK,WACE,EAAA,qJAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,KAAA;wBAAOC,QAAU,EAAA;AAAK,qBAAA;oBAC7Df,OAAS,EAAA,CAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACuC,iBAAiB;AAC/C,qBAAA;AACA9E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACuC,iBAAiB,GAAGjF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC/C,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,+BAAA;oBACNK,WACE,EAAA,0MAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEa,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACpCf,OAAS,EAAA,IAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACwC,6BAA6B;AAC3D,qBAAA;AACA/E,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACwC,6BAA6B,GAAGlF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC3D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,uBAAA;oBACNK,WACE,EAAA,8JAAA;oBACFC,IAAM,EAAA,OAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEa,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;oBACrCf,OAAS,EAAA,GAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACyC,qBAAqB;AACnD,qBAAA;AACAhF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACyC,qBAAqB,GAAGnF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACnD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,cAAA;oBACNK,WACE,EAAA,4IAAA;oBACFC,IAAM,EAAA,KAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA;AAAC,wBAAA,QAAA;AAAU,wBAAA,QAAA;AAAU,wBAAA;AAAS,qBAAA;AACvCM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC0C,YAAY,CAAClD,CAAC;AAC1ClC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC0C,YAAY,CAACjD,CAAC;AAC1CnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC0C,YAAY,CAAChD,CAAC;AAC5C,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC0C,YAAY,GAAG,IAAIrC,OAAAA,CAAQ/C,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,MAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AAClF,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,wBAAA;oBACNK,WACE,EAAA,sLAAA;oBACFC,IAAM,EAAA,MAAA;oBACNC,KAAO,EAAA,CAAA;oBACPC,OAAS,EAAA,IAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMI,CAAAA,IAAI,CAAC,CAAA,CAAE,GAAG,IAAI,CAACyB,GAAG,CAACa,GAAG,CAAC2C,sBAAsB;AACrD,qBAAA;AACAlF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC2C,sBAAsB,GAAGrF,KAAAA,CAAMI,IAAI,CAAC,CAAE,CAAA;AACrD,qBAAA;AACAwB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,oBAAA;oBACNK,WAAa,EAAA,kEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNG,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;oBACtDf,OAAS,EAAA,CAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC4C,kBAAkB;AAChD,qBAAA;AACAnF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC4C,kBAAkB,GAAGtF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAChD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,QAAA;oBACNK,WAAa,EAAA,8CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACtDT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC6C,MAAM;AACpC,qBAAA;AACApF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC6C,MAAM,GAAGvF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACpC,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,gBAAA;oBACNK,WAAa,EAAA,iCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,EAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAI,qBAAA;AACxDT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC8C,cAAc;AAC5C,qBAAA;AACArF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC8C,cAAc,GAAGxF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC5C,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,WAAA;oBACNK,WACE,EAAA,uHAAA;oBACFC,IAAM,EAAA,QAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPE,IAAM,EAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,YAAA;AAAc,gCAAA;AAAa,6BAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,YAAA;AAAc,gCAAA;AAAa;AAAC;AACrF,qBAAA;oBACAL,OAAS,EAAA,YAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAAC+C,SAAS;AACvC,qBAAA;AACAtF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC+C,SAAS,GAAGzF,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AACvC,qBAAA;AACA2B,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,oCAAA;oBACNK,WAAa,EAAA,oEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,qBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACC,mBAAmB;AACjE,qBAAA;AACAxF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACC,mBAAmB,GAAG3F,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACjE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,4BAAA;oBACNK,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,aAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,GAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACE,WAAW;AACzD,qBAAA;AACAzF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACE,WAAW,GAAG5F,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACzD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,oCAAA;oBACNK,WAAa,EAAA,wEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,qBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACG,mBAAmB;AACjE,qBAAA;AACA1F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACG,mBAAmB,GAAG7F,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACjE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,yBAAA;oBACNK,WAAa,EAAA,sEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,UAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACI,QAAQ;AACtD,qBAAA;AACA3F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACI,QAAQ,GAAG9F,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACtD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,wBAAA;oBACNK,WAAa,EAAA,0DAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,SAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACK,OAAO;AACrD,qBAAA;AACA5F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACK,OAAO,GAAG/F,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACrD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,gCAAA;oBACNK,WACE,EAAA,uFAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,KAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,iBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,IAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACM,eAAe;AAC7D,qBAAA;AACA7F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACM,eAAe,GAAGhG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,+BAAA;oBACNK,WAAa,EAAA,iDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,gBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,GAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACO,cAAc;AAC5D,qBAAA;AACA9F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACO,cAAc,GAAGjG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC5D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,8BAAA;oBACNK,WACE,EAAA,yFAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,eAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACQ,aAAa;AAC3D,qBAAA;AACA/F,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACQ,aAAa,GAAGlG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC3D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,iCAAA;oBACNK,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,kBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,EAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACS,gBAAgB;AAC9D,qBAAA;AACAhG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACS,gBAAgB,GAAGnG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC9D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0BAAA;oBACNK,WACE,EAAA,kHAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,UAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,WAAA;wBACP7C,IAAM,EAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,UAAA;AAAY,gCAAA;AAAY,6BAAA;4BAAEC,MAAQ,EAAA;AAAC,gCAAA,UAAA;AAAY,gCAAA;AAAY;AAAC;AAC/E,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACU,SAAS;AACvD,qBAAA;AACAjG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACU,SAAS,GAAGpG,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AACvD,qBAAA;AACA2B,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0BAAA;oBACNK,WAAa,EAAA,iDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,WAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACW,SAAS;AACvD,qBAAA;AACAlG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACW,SAAS,GAAGrG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,8BAAA;oBACNK,WAAa,EAAA,4CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,eAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACY,aAAa;AAC3D,qBAAA;AACAnG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACY,aAAa,GAAGtG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC3D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,oCAAA;oBACNK,WACE,EAAA,4FAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,qBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACa,mBAAmB;AACjE,qBAAA;AACApG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACa,mBAAmB,GAAGvG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACjE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,uBAAA;oBACNK,WAAa,EAAA,yDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,QAAA;wBACPV,UAAY,EAAA,IAAA;AACZxB,wBAAAA,QAAAA,EAAU,MAAC;wBACXC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACc,MAAM;AACpD,qBAAA;AACArG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACc,MAAM,GAAGxG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACpD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,wBAAA;oBACNK,WAAa,EAAA,gEAAA;oBACbC,IAAM,EAAA,OAAA;AACNE,oBAAAA,OAAAA,EAAS,IAAC;oBACVD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,SAAA;wBACPV,UAAY,EAAA,IAAA;AACZxB,wBAAAA,QAAAA,EAAU,MAAC;wBACXC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACe,OAAO;AACrD,qBAAA;AACAtG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACe,OAAO,GAAGzG,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACrD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,2BAAA;oBACNK,WAAa,EAAA,oEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,YAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACgB,UAAU;AACxD,qBAAA;AACAvG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACgB,UAAU,GAAG1G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACxD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,uCAAA;oBACNK,WAAa,EAAA,yDAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,wBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACiB,SAAS;AACvD,qBAAA;AACAxG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACiB,SAAS,GAAG3G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,4CAAA;oBACNK,WAAa,EAAA,+CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,6BAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACkB,cAAc;AAC5D,qBAAA;AACAzG,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACkB,cAAc,GAAG5G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC5D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,yCAAA;oBACNK,WAAa,EAAA,yDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,0BAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACmB,WAAW;AACzD,qBAAA;AACA1G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACmB,WAAW,GAAG7G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACzD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,4CAAA;oBACNK,WAAa,EAAA,8DAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,6BAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACoB,cAAc;AAC5D,qBAAA;AACA3G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACoB,cAAc,GAAG9G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC5D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,6BAAA;oBACNK,WAAa,EAAA,8DAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,cAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACN,YAAY;AAC1D,qBAAA;AACAjF,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACN,YAAY,GAAGpF,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC1D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,wCAAA;oBACNK,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,yBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACqB,4BAA4B;AAC1E,qBAAA;AACA5G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACqB,4BAA4B,GAAG/G,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC1E,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,mCAAA;oBACNK,WAAa,EAAA,2EAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,KAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,oBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,IAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACsB,kBAAkB;AAChE,qBAAA;AACA7G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACsB,kBAAkB,GAAGhH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAChE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,qCAAA;oBACNK,WAAa,EAAA,qCAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,sBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,IAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACuB,oBAAoB;AAClE,qBAAA;AACA9G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACuB,oBAAoB,GAAGjH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAClE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,uCAAA;oBACNK,WAAa,EAAA,wDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,wBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,IAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACwB,sBAAsB;AACpE,qBAAA;AACA/G,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACwB,sBAAsB,GAAGlH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACpE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,sCAAA;oBACNK,WAAa,EAAA,gEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,uBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,GAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACyB,qBAAqB;AACnE,qBAAA;AACAhH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACyB,qBAAqB,GAAGnH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACnE,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,yCAAA;oBACNK,WAAa,EAAA,6DAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,KAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,0BAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC0B,iCAAiC;AAC/E,qBAAA;AACAjH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC0B,iCAAiC,GAAGpH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC/E,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0BAAA;oBACNK,WAAa,EAAA,2CAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,WAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC2B,SAAS;AACvD,qBAAA;AACAlH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC2B,SAAS,GAAGrH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,gCAAA;oBACNK,WAAa,EAAA,4EAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,EAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,iBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,CAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC4B,eAAe;AAC7D,qBAAA;AACAnH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC4B,eAAe,GAAGtH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,gCAAA;oBACNK,WAAa,EAAA,qEAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,GAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,iBAAA;wBACPV,UAAY,EAAA,IAAA;wBACZxB,QAAU,EAAA,GAAA;wBACVC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC6B,eAAe;AAC7D,qBAAA;AACApH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC6B,eAAe,GAAGvH,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7D,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0CAAA;oBACNK,WACE,EAAA,kHAAA;oBACFC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA,KAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEC,KAAO,EAAA,kBAAA;wBAAoB8C,KAAO,EAAA;AAA4B,qBAAA;AACzE1C,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMI,IAAI,CAAC,CAAE,CAAA,GAAG,IAAI,CAACyB,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC8B,sCAAsC;AACrF,qBAAA;AACArH,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAAC8B,sCAAsC,GAAGxH,KAAAA,CAAMI,IAAI,CAAC,CAAE,CAAA;AACrF,qBAAA;AACAwB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,uBAAA;oBACNK,WAAa,EAAA,mEAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBAClBD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEC,KAAO,EAAA,kBAAA;wBAAoB8C,KAAO,EAAA,QAAA;wBAAUV,UAAY,EAAA;AAAK,qBAAA;AACxEhC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpB,MAAMyH,CAAAA,GAAI,IAAI,CAAC5F,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACgC,MAAM;AAC7C1H,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG+G,EAAEvF,CAAC;AAClBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG+G,EAAEtF,CAAC;AAClBnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG+G,EAAErF,CAAC;AACpB,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACgC,MAAM,GAAG,IAAI3E,OAAQ/C,CAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AAC5F,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,qBAAA;oBACNK,WAAa,EAAA,iEAAA;oBACbC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,EAAA;AAAI,wBAAA;AAAE,qBAAA;oBAChBD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,MAAA;wBACPV,UAAY,EAAA,IAAA;AACZxB,wBAAAA,QAAAA,EAAU,IAAC;wBACXC,QAAU,EAAA;AACZ,qBAAA;AACAT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpB,MAAM2H,CAAAA,GAAI,IAAI,CAAC9F,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACkC,IAAI;AAC3C5H,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGiH,EAAEzF,CAAC;AAClBlC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAGiH,EAAExF,CAAC;AACpB,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACgD,eAAe,CAACkC,IAAI,GAAG,IAAIC,OAAQ7H,CAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AAC5E,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,2BAAA;oBACNK,WACE,EAAA,2KAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,YAAA;wBACPY,SAAW,EAAA;AAAC,4BAAA,WAAA;AAAa,4BAAA,WAAA;AAAa,4BAAA,YAAA;AAAc,4BAAA,YAAA;AAAc,4BAAA;AAAc;AAClF,qBAAA;AACAC,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGnB,QAAQyE,UAAU,CAAC,IAAI,CAAC1B,GAAG,CAACa,GAAG,CAACoF,eAAe,CAAK,IAAA,EAAA;AACrE,qBAAA;AACA,oBAAA,MAAM3H,KAAiBH,KAAK,EAAA;AAC1B,wBAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;AAC3B,4BAAA,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACoF,eAAe,GAAG,IAAA;AAC/B,4BAAA;AACF;AACA,wBAAA,IAAIpE,GAA2B,GAAA,IAAA;wBAC/B,IAAI;;4BAEFA,GAAM,GAAA,MAAM5E,QAAQ6E,YAAY,CAAY3D,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAAE8H,gBAAkB,EAAA;AAAK,6BAAA,CAAA;AACrF,yBAAA,CAAE,OAAOnE,GAAK,EAAA;AACZC,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE9D,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAE2D,GAAK,CAAA,CAAA,CAAA;AAC5D;AACA,wBAAA,IAAIF,KAAKM,WAAe,EAAA,EAAA;AACtB,4BAAA,IAAI,CAACnC,GAAG,CAACa,GAAG,CAACoF,eAAe,GAAGpE,GAAAA;yBAC1B,MAAA;AACLG,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF,qBAAA;AACAlC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0BAAA;oBACNK,WACE,EAAA,0HAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,WAAA;wBACPY,SAAW,EAAA;AAAC,4BAAA,WAAA;AAAa,4BAAA,WAAA;AAAa,4BAAA,YAAA;AAAc,4BAAA,YAAA;AAAc,4BAAA;AAAc;AAClF,qBAAA;AACAC,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGnB,QAAQyE,UAAU,CAAC,IAAI,CAAC1B,GAAG,CAACa,GAAG,CAACsF,cAAc,CAAK,IAAA,EAAA;AACpE,qBAAA;AACA,oBAAA,MAAM7H,KAAiBH,KAAK,EAAA;AAC1B,wBAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;AAC3B,4BAAA,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACsF,cAAc,GAAG,IAAA;AAC9B,4BAAA;AACF;AACA,wBAAA,IAAItE,GAA2B,GAAA,IAAA;wBAC/B,IAAI;;4BAEFA,GAAM,GAAA,MAAM5E,QAAQ6E,YAAY,CAAY3D,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAAE8H,gBAAkB,EAAA;AAAK,6BAAA,CAAA;AACrF,yBAAA,CAAE,OAAOnE,GAAK,EAAA;AACZC,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE9D,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAE2D,GAAK,CAAA,CAAA,CAAA;AAC5D;AACA,wBAAA,IAAIF,KAAKM,WAAe,EAAA,EAAA;AACtB,4BAAA,IAAI,CAACnC,GAAG,CAACa,GAAG,CAACsF,cAAc,GAAGtE,GAAAA;yBACzB,MAAA;AACLG,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF,qBAAA;AACAlC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,4BAAA;oBACNK,WACE,EAAA,0HAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,aAAA;wBACPY,SAAW,EAAA;AAAC,4BAAA,WAAA;AAAa,4BAAA,WAAA;AAAa,4BAAA,YAAA;AAAc,4BAAA,YAAA;AAAc,4BAAA;AAAc;AAClF,qBAAA;AACAC,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,GAAGnB,QAAQyE,UAAU,CAAC,IAAI,CAAC1B,GAAG,CAACa,GAAG,CAACuF,gBAAgB,CAAK,IAAA,EAAA;AACtE,qBAAA;AACA,oBAAA,MAAM9H,KAAiBH,KAAK,EAAA;AAC1B,wBAAA,IAAI,CAACA,KAAS,IAAA,CAACA,MAAMC,GAAG,CAAC,EAAE,EAAE;AAC3B,4BAAA,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACuF,gBAAgB,GAAG,IAAA;AAChC,4BAAA;AACF;AACA,wBAAA,IAAIvE,GAA2B,GAAA,IAAA;wBAC/B,IAAI;;4BAEFA,GAAM,GAAA,MAAM5E,QAAQ6E,YAAY,CAAY3D,MAAMC,GAAG,CAAC,EAAE,EAAE;gCAAE8H,gBAAkB,EAAA;AAAK,6BAAA,CAAA;AACrF,yBAAA,CAAE,OAAOnE,GAAK,EAAA;AACZC,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,CAAC,mBAAmB,EAAE9D,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA,CAAC,EAAE,EAAE2D,GAAK,CAAA,CAAA,CAAA;AAC5D;AACA,wBAAA,IAAIF,KAAKM,WAAe,EAAA,EAAA;AACtB,4BAAA,IAAI,CAACnC,GAAG,CAACa,GAAG,CAACuF,gBAAgB,GAAGvE,GAAAA;yBAC3B,MAAA;AACLG,4BAAAA,OAAAA,CAAQC,KAAK,CAAC,sBAAA,CAAA;AAChB;AACF,qBAAA;AACAlC,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,0BAAA;oBACNK,WACE,EAAA,uFAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,MAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACPC,KAAO,EAAA,kBAAA;wBACP8C,KAAO,EAAA,WAAA;wBACP7C,IAAM,EAAA;4BACJC,MAAQ,EAAA;AACN,gCAAA,MAAA;AACA,gCAAA,YAAA;AACA,gCAAA,WAAA;AACA,gCAAA,aAAA;AACA,gCAAA,iBAAA;AACA,gCAAA,iBAAA;AACA,gCAAA,eAAA;AACA,gCAAA,eAAA;AACA,gCAAA,WAAA;AACA,gCAAA;AACD,6BAAA;4BACDC,MAAQ,EAAA;AACN,gCAAA,MAAA;AACA,gCAAA,SAAA;AACA,gCAAA,WAAA;AACA,gCAAA,aAAA;AACA,gCAAA,WAAA;AACA,gCAAA,WAAA;AACA,gCAAA,eAAA;AACA,gCAAA,eAAA;AACA,gCAAA,WAAA;AACA,gCAAA;AACD;AACH;AACF,qBAAA;AACAC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAACwF,cAAc;AAC5C,qBAAA;AACA/H,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACwF,cAAc,GAAGlI,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AAC5C,qBAAA;AACA2B,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,2BAAA;oBACNK,WACE,EAAA,2FAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEC,KAAO,EAAA,kBAAA;wBAAoB8C,KAAO,EAAA,YAAA;wBAAclC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACpFT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACyF,eAAe;AAC7C,qBAAA;AACAhI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACyF,eAAe,GAAGnI,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7C,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,6BAAA;oBACNK,WAAa,EAAA,+DAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,CAAA;oBACTD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEC,KAAO,EAAA,kBAAA;wBAAoB8C,KAAO,EAAA,cAAA;wBAAgBlC,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACtFT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC0F,iBAAiB;AAC/C,qBAAA;AACAjI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC0F,iBAAiB,GAAGpI,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC/C,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAa,IAAA,IAAI,CAACd,GAAG,CAACa,GAAG,CAAC+C,SAAS,KAAK,YAAA;AAC1E;AACF,iBAAA;AACA,gBAAA;oBACExG,IAAM,EAAA,MAAA;oBACNK,WAAa,EAAA,qDAAA;oBACbC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBACfD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBAAEqC,UAAY,EAAA,IAAA;AAAMxB,wBAAAA,QAAAA,EAAU,IAAC;wBAAKC,QAAU,EAAA;AAAI,qBAAA;AAC3DT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACkF,IAAI,CAAC1F,CAAC;AAClClC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAACkF,IAAI,CAACzF,CAAC;AACpC,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAACkF,IAAI,CAACS,KAAK,CAACrI,KAAAA,CAAMU,GAAG,CAAC,CAAA,CAAE,EAAEV,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,CAAA;AACpD,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,SAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,gBAAA;oBACNK,WAAa,EAAA,8BAAA;oBACbC,IAAM,EAAA,MAAA;oBACNE,OAAS,EAAA;AAAC,wBAAA,CAAA;AAAG,wBAAA,CAAA;AAAG,wBAAA;AAAE,qBAAA;oBAClBD,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACP+C,KAAO,EAAA,UAAA;wBACP6F,IAAM,EAAA,YAAA;wBACNvG,UAAY,EAAA;AACd,qBAAA;AACAhC,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC6F,cAAc,CAACrG,CAAC;AAC5ClC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC6F,cAAc,CAACpG,CAAC;AAC5CnC,wBAAAA,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC6F,cAAc,CAACnG,CAAC;AAC9C,qBAAA;AACAjC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC6F,cAAc,GAAG,IAAIxF,OAAAA,CAAQ/C,KAAMU,CAAAA,GAAG,CAAC,CAAE,CAAA,EAAEV,MAAMU,GAAG,CAAC,EAAE,EAAEV,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA,CAAA;AACpF,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,QAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,mBAAA;oBACNK,WAAa,EAAA,2BAAA;oBACbC,IAAM,EAAA,KAAA;oBACNE,OAAS,EAAA,IAAA;AACTM,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAACa,GAAG,CAAC8F,iBAAiB;AAC/C,qBAAA;AACArI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC8F,iBAAiB,GAAGxI,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC/C,qBAAA;AACAkB,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,QAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,iBAAA;oBACNK,WAAa,EAAA,wDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNC,KAAO,EAAA,CAAA;oBACPE,OAAS,EAAA;wBACP2D,SAAW,EAAA;AAAC,4BAAA;AAAqB;AACnC,qBAAA;AACAtD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC4B,GAAG,CAACa,GAAG,CAAC+F,oBAAoB;AAClD,qBAAA;AACA,oBAAA,MAAMtI,KAAiBH,KAAK,EAAA;wBAC1B,IAAI,CAAC6B,GAAG,CAACa,GAAG,CAAC+F,oBAAoB,GAAGzI,KAAAA,CAAMC,GAAG,CAAC,CAAE,CAAA;AAClD,qBAAA;AACA2B,oBAAAA,OAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACC,GAAG,CAACa,GAAG,CAACC,OAAO,KAAK,QAAA;AAClC;AACF,iBAAA;AACA,gBAAA;oBACE1D,IAAM,EAAA,oBAAA;oBACNK,WACE,EAAA,4FAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,WAAA;wBAAaV,UAAY,EAAA,IAAA;AAAMxB,wBAAAA,QAAAA,EAAU,IAAC;wBAAKC,QAAU,EAAA;AAAI,qBAAA;AAC9FT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACc,SAAS;AACxC,qBAAA;AACAvI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACc,SAAS,GAAG1I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,mBAAA;oBACNK,WAAa,EAAA,gFAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,UAAA;wBAAYV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AACxFT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACpF,QAAQ;AACvC,qBAAA;AACArC,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACpF,QAAQ,GAAGxC,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACvC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,gBAAA;oBACNK,WAAa,EAAA,iEAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,WAAA;wBAAaV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAG,qBAAA;AAC1FT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACe,KAAK;AACpC,qBAAA;AACAxI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACe,KAAK,GAAG3I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACpC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,uBAAA;oBACNK,WACE,EAAA,sHAAA;oBACFC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,GAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,cAAA;wBAAgBV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AAC5FT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACgB,YAAY;AAC3C,qBAAA;AACAzI,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACgB,YAAY,GAAG5I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC3C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,oBAAA;oBACNK,WAAa,EAAA,sFAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,EAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,UAAA;wBAAYV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,GAAA;wBAAKC,QAAU,EAAA;AAAI,qBAAA;AAC5FT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACiB,SAAS;AACxC,qBAAA;AACA1I,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACiB,SAAS,GAAG7I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,yBAAA;oBACNK,WAAa,EAAA,mDAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,oBAAA;wBAAsBV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,CAAA;wBAAGC,QAAU,EAAA;AAAE,qBAAA;AAClGT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACkB,cAAc;AAC7C,qBAAA;AACA3I,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACkB,cAAc,GAAG9I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC7C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,sBAAA;oBACNK,WAAa,EAAA,6CAAA;oBACbC,IAAM,EAAA,OAAA;oBACNE,OAAS,EAAA,CAAA;oBACTC,OAAS,EAAA;wBAAEC,KAAO,EAAA,MAAA;wBAAQ8C,KAAO,EAAA,gBAAA;wBAAkBV,UAAY,EAAA,IAAA;wBAAMxB,QAAU,EAAA,GAAA;wBAAKC,QAAU,EAAA;AAAI,qBAAA;AAClGT,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMU,CAAAA,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACmB,GAAG,CAAC+F,IAAI,CAACmB,WAAW;AAC1C,qBAAA;AACA5I,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;wBACpB,IAAI,CAAC6B,GAAG,CAAC+F,IAAI,CAACmB,WAAW,GAAG/I,KAAAA,CAAMU,GAAG,CAAC,CAAE,CAAA;AAC1C;AACF,iBAAA;AACA,gBAAA;oBACEzB,IAAM,EAAA,eAAA;oBACNK,WAAa,EAAA,yBAAA;oBACbC,IAAM,EAAA,QAAA;AACNkB,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAV,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACC,QAAQ;AACjC,qBAAA;AACA9I,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,MAAMkJ,SAAYlJ,GAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAE,CAAA;AACjC,wBAAA,IAAIE,SAAW,EAAA;AACbA,4BAAAA,SAAAA,CAAUC,MAAM,EAAA;AAChB,4BAAA,KAAK,MAAMC,KAAAA,IAASF,SAAUG,CAAAA,QAAQ,CAAE;AACtCD,gCAAAA,KAAAA,CAAME,MAAM,GAAG,IAAI,CAACL,QAAQ;AAC9B;AACF;AACF;AACF,iBAAA;AACA,gBAAA;oBACEhK,IAAM,EAAA,YAAA;oBACNK,WAAa,EAAA,gCAAA;oBACbC,IAAM,EAAA,QAAA;AACNkB,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAV,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;wBACpBA,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACsJ,UAAU,EAAEC,YAAgB,IAAA,EAAA;AAClD,qBAAA;AACArJ,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAACuJ,UAAU,GAAGvJ,KAAMC,CAAAA,GAAG,CAAC,CAAE,CAAA,GAAG,IAAI,CAACwJ,YAAY,CAASzJ,KAAAA,CAAMC,GAAG,CAAC,EAAE,CAAI,GAAA,IAAA;AAC7E;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,QAAA;oBACNK,WAAa,EAAA,uDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNG,OAAS,EAAA;wBACP2D,SAAW,EAAA;AAAC,4BAAA;AAAoB;AAClC,qBAAA;AACA5C,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACA6C,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMC,GAAG,CAAC,CAAA,CAAE,GAAG,IAAI,CAACyJ,MAAM;AAC5B,qBAAA;AACAvJ,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC0J,MAAM,GAAG1J,OAAOC,GAAK,GAAC,EAAE,IAAI,EAAA;AACnC;AACF,iBAAA;AACA,gBAAA;oBACEhB,IAAM,EAAA,SAAA;oBACNK,WAAa,EAAA,oDAAA;oBACbC,IAAM,EAAA,cAAA;oBACNG,OAAS,EAAA;wBACPiK,WAAa,EAAA;AAACC,4BAAAA;AAAiB;AACjC,qBAAA;AACAnJ,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAoJ,oBAAAA,eAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAI,CAACC,OAAO;AACrB,qBAAA;AACAxG,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,KAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMgJ,MAAM,GAAG,IAAI,CAACc,OAAO;AAC7B,qBAAA;AACA3J,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,IAAI,CAAC8J,OAAO,GAAG,KAAOd,CAAAA,MAAM,IAA2B,EAAE;AAC3D,qBAAA;AACAe,oBAAAA,MAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAIH,gBAAAA,EAAAA;AACb,qBAAA;oBACAI,GAAiBhK,CAAAA,CAAAA,KAAK,EAAEiK,KAAK,EAAA;wBAC3B,MAAMC,WAAAA,GAAc,IAAI,CAACJ,OAAO;AAChCI,wBAAAA,WAAAA,CAAYC,MAAM,CAChBF,KAASC,IAAAA,WAAAA,CAAYE,MAAM,EAC3B,CAAA,EACA,KAACpK,CAAMgJ,MAAM,GAAG,CAAA,CAAE,IAAyB,IAAIY,gBAAAA,EAAAA,CAAAA;wBAEjD,IAAI,CAACE,OAAO,GAAGI,WAAAA;AACjB,qBAAA;AACAG,oBAAAA,MAAAA,CAAAA,CAAoBJ,KAAK,EAAA;wBACvB,MAAMC,WAAAA,GAAc,IAAI,CAACJ,OAAO;AAChC,wBAAA,IAAIG,KAAS,IAAA,CAAA,IAAKA,KAAQC,GAAAA,WAAAA,CAAYE,MAAM,EAAE;4BAC5CF,WAAYC,CAAAA,MAAM,CAACF,KAAO,EAAA,CAAA,CAAA;4BAC1B,IAAI,CAACH,OAAO,GAAGI,WAAAA;AACjB;AACF;AACF,iBAAA;AACA,gBAAA;oBACEjL,IAAM,EAAA,cAAA;oBACNK,WAAa,EAAA,uDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEiK,WAAa,EAAA;AAACW,4BAAAA,QAAAA;AAAUC,4BAAAA;AAAU;AAAC,qBAAA;AAC9C9J,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACA6C,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAkH,oBAAAA,YAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,CAAC,CAAC,IAAI,CAACd,MAAM;AACtB,qBAAA;AACA3J,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpB,wBAAA,MAAMyK,MAASC,GAAAA,+BAAAA,CAAgC,IAAI,CAACC,YAAY,CAAA;AAChE3K,wBAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAA,CAAE,GACbyB,MAAAA,IAAU,OACN,IACAG,GAAAA,KAAAA,CAAMC,OAAO,CAACJ,UACZ,IAAIF,SAAAA,CAAU,MAAME,MACpB,CAAA,GAAA,IAAIH,SAAS,IAAMG,EAAAA,MAAAA,CAAAA;AAC7B,qBAAA;AACAtK,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,MAAM8K,IAAO9K,GAAAA,KAAAA,EAAOgJ,MAAM,CAAC,CAAE,CAAA;wBAO7B,IAAI,CAAC2B,YAAY,GACfG,IAAgBR,YAAAA,QAAAA,IAAYQ,IAAgBP,YAAAA,SAAAA,GACxCG,+BAAgCI,CAAAA,IAAAA,CAAKA,IAAI,CAAA,GACzCJ,+BAAgCI,CAAAA,IAAAA,CAAAA;AACxC;AACF,iBAAA;AACA,gBAAA;oBACE7L,IAAM,EAAA,eAAA;oBACNK,WAAa,EAAA,sDAAA;oBACbC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEiK,WAAa,EAAA;AAACY,4BAAAA;AAAU;AAAC,qBAAA;AACpCV,oBAAAA,eAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAI,CAACkB,aAAa;AAC3B,qBAAA;AACAtK,oBAAAA,QAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACA6C,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAkH,oBAAAA,YAAAA,CAAAA,GAAAA;AACE,wBAAA,OAAO,IAAI,CAACV,OAAO,CAACM,MAAM,GAAG,CAAA;AAC/B,qBAAA;AACArK,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAAC+B,aAAa,CAACX,MAAM,GAAG,IAAI,IAAIG,SAAAA,CAAU,MAAM,IAAI,CAACQ,aAAa,CAAI,GAAA,IAAA;AAC9F,qBAAA;AACA5K,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,MAAM8K,IAAO9K,GAAAA,KAAAA,EAAOgJ,MAAM,CAAC,CAAE,CAAA;AAC7B,wBAAA,IAAI,CAAC+B,aAAa,GAAGD,IAAAA,YAAgBP,SAAYO,GAAAA,IAAAA,CAAKA,IAAI,GAAGF,KAAMC,CAAAA,OAAO,CAACC,IAAAA,CAAAA,GAAQA,OAAO,EAAE;AAC9F;AACF,iBAAA;AACA,gBAAA;oBACE7L,IAAM,EAAA,SAAA;oBACNK,WACE,EAAA,iHAAA;oBACFC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEiK,WAAa,EAAA;AAACqB,4BAAAA;AAAqB;AAAC,qBAAA;AAC/C1H,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAA,CAAE,GAAG,IAAI,CAACiC,eAAe;AACxC,qBAAA;AACA9K,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,MAAMkL,QAAWlL,GAAAA,KAAAA,EAAOgJ,MAAM,CAAC,CAAE,CAAA;AACjC,wBAAA,IAAI,CAACiC,eAAe,GAAGC,QAAAA,YAAoBF,uBAAuBE,QAAW,GAAA,IAAA;AAC/E;AACF,iBAAA;AACA,gBAAA;oBACEjM,IAAM,EAAA,UAAA;oBACNK,WAAa,EAAA,0BAAA;oBACbC,IAAM,EAAA,QAAA;oBACNE,OAAS,EAAA,IAAA;oBACTC,OAAS,EAAA;wBAAEiK,WAAa,EAAA;AAACW,4BAAAA,QAAAA;AAAUC,4BAAAA;AAAU;AAAC,qBAAA;AAC9CjH,oBAAAA,UAAAA,CAAAA,GAAAA;wBACE,OAAO,IAAA;AACT,qBAAA;AACAvD,oBAAAA,GAAAA,CAAAA,CAAiBC,KAAK,EAAA;AACpBA,wBAAAA,KAAAA,CAAMgJ,MAAM,CAAC,CAAE,CAAA,GAAG,IAAI,CAACmC,QAAQ,GAC3BP,KAAMC,CAAAA,OAAO,CAAC,IAAI,CAACM,QAAQ,CACzB,GAAA,IAAIZ,SAAU,CAAA,IAAA,EAAM,IAAI,CAACY,QAAQ,CAAA,GACjC,IAAIb,QAAAA,CAAS,IAAM,EAAA,IAAI,CAACa,QAAQ,CAClC,GAAA,IAAA;AACN,qBAAA;AACAhL,oBAAAA,GAAAA,CAAAA,CAAiBH,KAAK,EAAA;AACpB,wBAAA,MAAM8K,IAAO9K,GAAAA,KAAAA,EAAOgJ,MAAM,CAAC,CAAE,CAAA;wBAO7B,IAAI,CAACmC,QAAQ,GACXL,IAAgBR,YAAAA,QAAAA,IAAYQ,gBAAgBP,SAAYO,GAAAA,IAAAA,CAAKA,IAAI,GAAIA,IAAQ,IAAA,IAAA;AACjF;AACF;AACD,aAAA,CAAA;AACH;AACF,KAAA;AACF;;;;"}