@carbonenginejs/runtime-trinity 0.5.0 → 0.7.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 (1499) hide show
  1. package/README.md +35 -243
  2. package/dist/controllers/CjsControllerExpressionProgram.js +157 -0
  3. package/dist/controllers/CjsControllerExpressionProgram.js.map +1 -1
  4. package/dist/controllers/ITr2ControllerAction.js +57 -0
  5. package/dist/controllers/ITr2ControllerAction.js.map +1 -1
  6. package/dist/controllers/Tr2ActionAnimateCurveSet.js +12 -2
  7. package/dist/controllers/Tr2ActionAnimateCurveSet.js.map +1 -1
  8. package/dist/controllers/Tr2ActionAnimateValue.js +28 -2
  9. package/dist/controllers/Tr2ActionAnimateValue.js.map +1 -1
  10. package/dist/controllers/Tr2ActionBindRTPC.js +13 -2
  11. package/dist/controllers/Tr2ActionBindRTPC.js.map +1 -1
  12. package/dist/controllers/Tr2ActionCallback.js +7 -2
  13. package/dist/controllers/Tr2ActionCallback.js.map +1 -1
  14. package/dist/controllers/Tr2ActionChildEffect.js +65 -2
  15. package/dist/controllers/Tr2ActionChildEffect.js.map +1 -1
  16. package/dist/controllers/Tr2ActionOverlay.js +70 -2
  17. package/dist/controllers/Tr2ActionOverlay.js.map +1 -1
  18. package/dist/controllers/Tr2ActionPlayCurveSet.js +18 -2
  19. package/dist/controllers/Tr2ActionPlayCurveSet.js.map +1 -1
  20. package/dist/controllers/Tr2ActionPlayMeshAnimation.js +31 -2
  21. package/dist/controllers/Tr2ActionPlayMeshAnimation.js.map +1 -1
  22. package/dist/controllers/Tr2ActionPlaySound.js +13 -2
  23. package/dist/controllers/Tr2ActionPlaySound.js.map +1 -1
  24. package/dist/controllers/Tr2ActionPython.js +13 -2
  25. package/dist/controllers/Tr2ActionPython.js.map +1 -1
  26. package/dist/controllers/Tr2ActionResetClipSphereCenter.js +21 -4
  27. package/dist/controllers/Tr2ActionResetClipSphereCenter.js.map +1 -1
  28. package/dist/controllers/Tr2ActionSetAttenuationScaling.js +7 -2
  29. package/dist/controllers/Tr2ActionSetAttenuationScaling.js.map +1 -1
  30. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js +7 -2
  31. package/dist/controllers/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  32. package/dist/controllers/Tr2ActionSetAudioSwitch.js +7 -2
  33. package/dist/controllers/Tr2ActionSetAudioSwitch.js.map +1 -1
  34. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js +25 -2
  35. package/dist/controllers/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  36. package/dist/controllers/Tr2ActionSetShaderOption.js +7 -2
  37. package/dist/controllers/Tr2ActionSetShaderOption.js.map +1 -1
  38. package/dist/controllers/Tr2ActionSetValue.js +37 -2
  39. package/dist/controllers/Tr2ActionSetValue.js.map +1 -1
  40. package/dist/controllers/Tr2ActionSpawnParticles.js +12 -2
  41. package/dist/controllers/Tr2ActionSpawnParticles.js.map +1 -1
  42. package/dist/controllers/Tr2BindingPoint.js +71 -4
  43. package/dist/controllers/Tr2BindingPoint.js.map +1 -1
  44. package/dist/controllers/Tr2Controller.js +39 -2
  45. package/dist/controllers/Tr2Controller.js.map +1 -1
  46. package/dist/controllers/Tr2ControllerEventHandler.js +12 -2
  47. package/dist/controllers/Tr2ControllerEventHandler.js.map +1 -1
  48. package/dist/controllers/Tr2ControllerExpression.js +19 -2
  49. package/dist/controllers/Tr2ControllerExpression.js.map +1 -1
  50. package/dist/controllers/Tr2ControllerFloatVariable.js +8 -2
  51. package/dist/controllers/Tr2ControllerFloatVariable.js.map +1 -1
  52. package/dist/controllers/Tr2ControllerReference.js +13 -2
  53. package/dist/controllers/Tr2ControllerReference.js.map +1 -1
  54. package/dist/controllers/Tr2StateMachine.js +19 -2
  55. package/dist/controllers/Tr2StateMachine.js.map +1 -1
  56. package/dist/controllers/Tr2StateMachineState.js +49 -2
  57. package/dist/controllers/Tr2StateMachineState.js.map +1 -1
  58. package/dist/controllers/Tr2StateMachineTransition.js +31 -2
  59. package/dist/controllers/Tr2StateMachineTransition.js.map +1 -1
  60. package/dist/controllers/Tr2SyncToAnimation.js +7 -2
  61. package/dist/controllers/Tr2SyncToAnimation.js.map +1 -1
  62. package/dist/controllers/Tr2TimelineController.js +63 -2
  63. package/dist/controllers/Tr2TimelineController.js.map +1 -1
  64. package/dist/controllers/Tr2TimelineEntry.js +2 -2
  65. package/dist/controllers/Tr2TimelineEntry.js.map +1 -1
  66. package/dist/controllers/contracts.js +24 -1
  67. package/dist/controllers/contracts.js.map +1 -1
  68. package/dist/controllers/index.js +1 -1
  69. package/dist/curves/CjsGrannyCurves.js +151 -1
  70. package/dist/curves/CjsGrannyCurves.js.map +1 -1
  71. package/dist/curves/Tr2BoneMatrixCurve.js +27 -4
  72. package/dist/curves/Tr2BoneMatrixCurve.js.map +1 -1
  73. package/dist/curves/Tr2CameraFollowCurveKey.js +9 -3
  74. package/dist/curves/Tr2CameraFollowCurveKey.js.map +1 -1
  75. package/dist/curves/Tr2CurveColor.js +10 -4
  76. package/dist/curves/Tr2CurveColor.js.map +1 -1
  77. package/dist/curves/Tr2CurveColorMixer.js +10 -4
  78. package/dist/curves/Tr2CurveColorMixer.js.map +1 -1
  79. package/dist/curves/Tr2CurveCombiner.js +8 -3
  80. package/dist/curves/Tr2CurveCombiner.js.map +1 -1
  81. package/dist/curves/Tr2CurveConstant.js +22 -6
  82. package/dist/curves/Tr2CurveConstant.js.map +1 -1
  83. package/dist/curves/Tr2CurveEulerRotation.js +8 -3
  84. package/dist/curves/Tr2CurveEulerRotation.js.map +1 -1
  85. package/dist/curves/Tr2CurveEulerRotationExpression.js +69 -3
  86. package/dist/curves/Tr2CurveEulerRotationExpression.js.map +1 -1
  87. package/dist/curves/Tr2CurveQuaternion.js +8 -3
  88. package/dist/curves/Tr2CurveQuaternion.js.map +1 -1
  89. package/dist/curves/Tr2CurveQuaternionKey.js +8 -3
  90. package/dist/curves/Tr2CurveQuaternionKey.js.map +1 -1
  91. package/dist/curves/Tr2CurveRandomAxisRotation.js +31 -3
  92. package/dist/curves/Tr2CurveRandomAxisRotation.js.map +1 -1
  93. package/dist/curves/Tr2CurveScalar.js +40 -5
  94. package/dist/curves/Tr2CurveScalar.js.map +1 -1
  95. package/dist/curves/Tr2CurveScalarExpression.js +13 -2
  96. package/dist/curves/Tr2CurveScalarExpression.js.map +1 -1
  97. package/dist/curves/Tr2CurveScalarKey.js +8 -2
  98. package/dist/curves/Tr2CurveScalarKey.js.map +1 -1
  99. package/dist/curves/Tr2CurveSetRange.js +7 -2
  100. package/dist/curves/Tr2CurveSetRange.js.map +1 -1
  101. package/dist/curves/Tr2CurveVector2.js +8 -3
  102. package/dist/curves/Tr2CurveVector2.js.map +1 -1
  103. package/dist/curves/Tr2CurveVector3.js +8 -3
  104. package/dist/curves/Tr2CurveVector3.js.map +1 -1
  105. package/dist/curves/Tr2CurveVector3Expression.js +74 -3
  106. package/dist/curves/Tr2CurveVector3Expression.js.map +1 -1
  107. package/dist/curves/Tr2CurveVector3Lerp.js +9 -3
  108. package/dist/curves/Tr2CurveVector3Lerp.js.map +1 -1
  109. package/dist/curves/Tr2DistanceTracker.js +9 -3
  110. package/dist/curves/Tr2DistanceTracker.js.map +1 -1
  111. package/dist/curves/Tr2FollowCurve.js +9 -3
  112. package/dist/curves/Tr2FollowCurve.js.map +1 -1
  113. package/dist/curves/Tr2GrannyEventTrack.js +6 -1
  114. package/dist/curves/Tr2GrannyEventTrack.js.map +1 -1
  115. package/dist/curves/Tr2GrannyTrack.js +8 -2
  116. package/dist/curves/Tr2GrannyTrack.js.map +1 -1
  117. package/dist/curves/Tr2GrannyTransformTrack.js +9 -3
  118. package/dist/curves/Tr2GrannyTransformTrack.js.map +1 -1
  119. package/dist/curves/Tr2GrannyVectorTrack.js +6 -1
  120. package/dist/curves/Tr2GrannyVectorTrack.js.map +1 -1
  121. package/dist/curves/Tr2MatrixKey.js +8 -3
  122. package/dist/curves/Tr2MatrixKey.js.map +1 -1
  123. package/dist/curves/Tr2ObjectFollowCurveKey.js +10 -4
  124. package/dist/curves/Tr2ObjectFollowCurveKey.js.map +1 -1
  125. package/dist/curves/Tr2QuaternionLerpCurve.js +10 -4
  126. package/dist/curves/Tr2QuaternionLerpCurve.js.map +1 -1
  127. package/dist/curves/Tr2RotationAdapter.js +9 -3
  128. package/dist/curves/Tr2RotationAdapter.js.map +1 -1
  129. package/dist/curves/Tr2ScalarExprKey.js +21 -3
  130. package/dist/curves/Tr2ScalarExprKey.js.map +1 -1
  131. package/dist/curves/Tr2ScalarExprKeyCurve.js +27 -4
  132. package/dist/curves/Tr2ScalarExprKeyCurve.js.map +1 -1
  133. package/dist/curves/Tr2ScalarFader.js +14 -3
  134. package/dist/curves/Tr2ScalarFader.js.map +1 -1
  135. package/dist/curves/Tr2TranslationAdapter.js +10 -4
  136. package/dist/curves/Tr2TranslationAdapter.js.map +1 -1
  137. package/dist/curves/TriColorSequencer.js +10 -4
  138. package/dist/curves/TriColorSequencer.js.map +1 -1
  139. package/dist/curves/TriCurveSet.js +25 -2
  140. package/dist/curves/TriCurveSet.js.map +1 -1
  141. package/dist/curves/TriEventCurve.js +25 -2
  142. package/dist/curves/TriEventCurve.js.map +1 -1
  143. package/dist/curves/TriEventKey.js +7 -2
  144. package/dist/curves/TriEventKey.js.map +1 -1
  145. package/dist/curves/TriPerlinCurve.js +33 -3
  146. package/dist/curves/TriPerlinCurve.js.map +1 -1
  147. package/dist/curves/TriVectorSequencer.js +10 -4
  148. package/dist/curves/TriVectorSequencer.js.map +1 -1
  149. package/dist/eve/AudioGameObject.js +95 -7
  150. package/dist/eve/AudioGameObject.js.map +1 -1
  151. package/dist/eve/BackAndForthData.js +10 -3
  152. package/dist/eve/BackAndForthData.js.map +1 -1
  153. package/dist/eve/CjsDistributionRandom.js +6 -0
  154. package/dist/eve/CjsDistributionRandom.js.map +1 -1
  155. package/dist/eve/CjsEveThrottleableState.js +11 -0
  156. package/dist/eve/CjsEveThrottleableState.js.map +1 -1
  157. package/dist/eve/EveChildUpdateParams.js +11 -4
  158. package/dist/eve/EveChildUpdateParams.js.map +1 -1
  159. package/dist/eve/EveComponentTypes.js.map +1 -1
  160. package/dist/eve/EveCustomMask.js +64 -33
  161. package/dist/eve/EveCustomMask.js.map +1 -1
  162. package/dist/eve/EveDistanceField.js +87 -3
  163. package/dist/eve/EveDistanceField.js.map +1 -1
  164. package/dist/eve/EveEntity.js +138 -0
  165. package/dist/eve/EveEntity.js.map +1 -0
  166. package/dist/eve/EveImpactOverlay.js +64 -3
  167. package/dist/eve/EveImpactOverlay.js.map +1 -1
  168. package/dist/eve/EveLODHelper.js +17 -13
  169. package/dist/eve/EveLODHelper.js.map +1 -1
  170. package/dist/eve/EveLineData.js +6 -4
  171. package/dist/eve/EveLineData.js.map +1 -1
  172. package/dist/eve/EveThrottleable.js +13 -2
  173. package/dist/eve/EveThrottleable.js.map +1 -1
  174. package/dist/eve/EveUpdateContext.js +3 -3
  175. package/dist/eve/EveUpdateContext.js.map +1 -1
  176. package/dist/eve/FollowASplineData.js +9 -2
  177. package/dist/eve/FollowASplineData.js.map +1 -1
  178. package/dist/eve/FormationData.js +8 -2
  179. package/dist/eve/FormationData.js.map +1 -1
  180. package/dist/eve/InertiaData.js +10 -3
  181. package/dist/eve/InertiaData.js.map +1 -1
  182. package/dist/eve/PlacementDataWithIdentifier.js +11 -4
  183. package/dist/eve/PlacementDataWithIdentifier.js.map +1 -1
  184. package/dist/eve/PlayFXData.js +10 -3
  185. package/dist/eve/PlayFXData.js.map +1 -1
  186. package/dist/eve/SeekTargetData.js +10 -3
  187. package/dist/eve/SeekTargetData.js.map +1 -1
  188. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js +105 -0
  189. package/dist/eve/attachment/EveSpaceObjectAttachmentUtils.js.map +1 -0
  190. package/dist/eve/attachment/banner/EveBannerItem.js +70 -0
  191. package/dist/eve/attachment/banner/EveBannerItem.js.map +1 -0
  192. package/dist/eve/{EveBannerLight.js → attachment/banner/EveBannerLight.js} +16 -5
  193. package/dist/eve/attachment/banner/EveBannerLight.js.map +1 -0
  194. package/dist/eve/attachment/banner/EveBannerSet.js +537 -0
  195. package/dist/eve/attachment/banner/EveBannerSet.js.map +1 -0
  196. package/dist/eve/{EveBoosterSet2.js → attachment/booster/EveBoosterSet2.js} +267 -46
  197. package/dist/eve/attachment/booster/EveBoosterSet2.js.map +1 -0
  198. package/dist/eve/{EveBoosterSet2Renderable.js → attachment/booster/EveBoosterSet2Renderable.js} +216 -15
  199. package/dist/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -0
  200. package/dist/eve/{EveTrailsSet.js → attachment/booster/EveTrailsSet.js} +52 -4
  201. package/dist/eve/attachment/booster/EveTrailsSet.js.map +1 -0
  202. package/dist/eve/attachment/decal/DecalMeshCache.js +2 -2
  203. package/dist/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  204. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js +512 -0
  205. package/dist/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -0
  206. package/dist/eve/attachment/haze/EveHazeSet.js +187 -0
  207. package/dist/eve/attachment/haze/EveHazeSet.js.map +1 -0
  208. package/dist/eve/attachment/haze/EveHazeSetItem.js +64 -0
  209. package/dist/eve/attachment/haze/EveHazeSetItem.js.map +1 -0
  210. package/dist/eve/{EveHazeSetLight.js → attachment/haze/EveHazeSetLight.js} +16 -5
  211. package/dist/eve/attachment/haze/EveHazeSetLight.js.map +1 -0
  212. package/dist/eve/attachment/itemSetBounds.js +131 -0
  213. package/dist/eve/attachment/itemSetBounds.js.map +1 -0
  214. package/dist/eve/{EvePlaneLight.js → attachment/plane/EvePlaneLight.js} +17 -5
  215. package/dist/eve/attachment/plane/EvePlaneLight.js.map +1 -0
  216. package/dist/eve/attachment/plane/EvePlaneSet.js +303 -0
  217. package/dist/eve/attachment/plane/EvePlaneSet.js.map +1 -0
  218. package/dist/eve/attachment/plane/EvePlaneSetItem.js +72 -0
  219. package/dist/eve/attachment/plane/EvePlaneSetItem.js.map +1 -0
  220. package/dist/eve/{EveSpotlightLight.js → attachment/spotlight/EveSpotlightLight.js} +16 -5
  221. package/dist/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -0
  222. package/dist/eve/attachment/spotlight/EveSpotlightSet.js +235 -0
  223. package/dist/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -0
  224. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js +61 -0
  225. package/dist/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -0
  226. package/dist/eve/{EveSpriteLight.js → attachment/sprite/EveSpriteLight.js} +17 -5
  227. package/dist/eve/attachment/sprite/EveSpriteLight.js.map +1 -0
  228. package/dist/eve/attachment/sprite/EveSpriteLineSet.js +192 -0
  229. package/dist/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -0
  230. package/dist/eve/{EveSpriteLineSetItem.js → attachment/sprite/EveSpriteLineSetItem.js} +34 -9
  231. package/dist/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -0
  232. package/dist/eve/attachment/sprite/EveSpriteSet.js +255 -0
  233. package/dist/eve/attachment/sprite/EveSpriteSet.js.map +1 -0
  234. package/dist/{generated/eve/attachment/sprites → eve/attachment/sprite}/EveSpriteSetItem.js +28 -31
  235. package/dist/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -0
  236. package/dist/eve/attachment/turrets/EveTurretFiringFX.js +187 -5
  237. package/dist/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  238. package/dist/eve/attachment/turrets/EveTurretSet.js +333 -19
  239. package/dist/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  240. package/dist/eve/attachment/turrets/EveTurretTarget.js +115 -3
  241. package/dist/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  242. package/dist/eve/camera/EveCamera.js +644 -0
  243. package/dist/eve/camera/EveCamera.js.map +1 -0
  244. package/dist/eve/child/EveChildAudio.js +67 -4
  245. package/dist/eve/child/EveChildAudio.js.map +1 -1
  246. package/dist/eve/child/EveChildBehaviorSystem.js +412 -0
  247. package/dist/eve/child/EveChildBehaviorSystem.js.map +1 -0
  248. package/dist/{generated/eve → eve}/child/EveChildBulletStorm.js +46 -8
  249. package/dist/eve/child/EveChildBulletStorm.js.map +1 -0
  250. package/dist/eve/child/EveChildContainer.js +181 -22
  251. package/dist/eve/child/EveChildContainer.js.map +1 -1
  252. package/dist/eve/child/EveChildEffectPropagator.js +5 -5
  253. package/dist/eve/child/EveChildEffectPropagator.js.map +1 -1
  254. package/dist/eve/child/EveChildFogVolume.js +76 -4
  255. package/dist/eve/child/EveChildFogVolume.js.map +1 -1
  256. package/dist/eve/child/EveChildInheritProperties.js +20 -3
  257. package/dist/eve/child/EveChildInheritProperties.js.map +1 -1
  258. package/dist/eve/child/EveChildInstanceTransform.js +4 -4
  259. package/dist/eve/child/EveChildInstanceTransform.js.map +1 -1
  260. package/dist/eve/child/EveChildInstancedMeshes.js +485 -23
  261. package/dist/eve/child/EveChildInstancedMeshes.js.map +1 -1
  262. package/dist/eve/child/EveChildLightingOverride.js +78 -4
  263. package/dist/eve/child/EveChildLightingOverride.js.map +1 -1
  264. package/dist/{generated/eve → eve}/child/EveChildLink.js +23 -22
  265. package/dist/eve/child/EveChildLink.js.map +1 -0
  266. package/dist/eve/child/EveChildMesh.js +366 -111
  267. package/dist/eve/child/EveChildMesh.js.map +1 -1
  268. package/dist/eve/child/EveChildSpherePin.js +108 -0
  269. package/dist/eve/child/EveChildSpherePin.js.map +1 -0
  270. package/dist/eve/child/EveChildTransform.js +48 -5
  271. package/dist/eve/child/EveChildTransform.js.map +1 -1
  272. package/dist/eve/child/EveCloudVolumeBall.js +4 -4
  273. package/dist/eve/child/EveCloudVolumeBall.js.map +1 -1
  274. package/dist/eve/child/IEveSpaceObjectChild.js +7 -2
  275. package/dist/eve/child/IEveSpaceObjectChild.js.map +1 -1
  276. package/dist/eve/child/behaviors/CollisionAvoidance.js +112 -0
  277. package/dist/eve/child/behaviors/CollisionAvoidance.js.map +1 -0
  278. package/dist/eve/child/behaviors/DroneAgent.js +5 -5
  279. package/dist/eve/child/behaviors/DroneAgent.js.map +1 -1
  280. package/dist/eve/child/behaviors/InclusionVolume.js +131 -0
  281. package/dist/eve/child/behaviors/InclusionVolume.js.map +1 -0
  282. package/dist/eve/child/behaviors/Wander.js +99 -0
  283. package/dist/eve/child/behaviors/Wander.js.map +1 -0
  284. package/dist/{generated/eve → eve}/child/behaviors/enums.js +1 -1
  285. package/dist/eve/child/behaviors/enums.js.map +1 -0
  286. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js +540 -0
  287. package/dist/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -0
  288. package/dist/eve/{ProcessLifetimeData.js → child/behaviors/lifecycle/ProcessLifetimeData.js} +10 -4
  289. package/dist/eve/child/behaviors/lifecycle/ProcessLifetimeData.js.map +1 -0
  290. package/dist/eve/child/behaviors/{SplineTunnel.js → tunnels/SplineTunnel.js} +11 -9
  291. package/dist/eve/child/behaviors/tunnels/SplineTunnel.js.map +1 -0
  292. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js +211 -0
  293. package/dist/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -0
  294. package/dist/eve/child/behaviors/{SplineTunnelPoint.js → tunnels/SplineTunnelPoint.js} +6 -6
  295. package/dist/eve/child/behaviors/tunnels/SplineTunnelPoint.js.map +1 -0
  296. package/dist/eve/child/lineSetPaths/EveBezierCurve.js +82 -8
  297. package/dist/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  298. package/dist/eve/child/lineSetPaths/EveCircle.js +82 -8
  299. package/dist/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  300. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierAttachToBone.js +27 -19
  301. package/dist/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -0
  302. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js +8 -3
  303. package/dist/eve/child/modifiers/EveChildModifierBillboard2D.js.map +1 -1
  304. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierBillboard3D.js +26 -23
  305. package/dist/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -0
  306. package/dist/eve/child/modifiers/EveChildModifierBooster.js +10 -4
  307. package/dist/eve/child/modifiers/EveChildModifierBooster.js.map +1 -1
  308. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js +12 -6
  309. package/dist/eve/child/modifiers/EveChildModifierCameraOrientedRotationConstrained.js.map +1 -1
  310. package/dist/eve/child/modifiers/EveChildModifierHalo.js +9 -4
  311. package/dist/eve/child/modifiers/EveChildModifierHalo.js.map +1 -1
  312. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js +10 -4
  313. package/dist/eve/child/modifiers/EveChildModifierHaloInverted.js.map +1 -1
  314. package/dist/eve/child/modifiers/EveChildModifierSRT.js +10 -5
  315. package/dist/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  316. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierStretch.js +36 -22
  317. package/dist/eve/child/modifiers/EveChildModifierStretch.js.map +1 -0
  318. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js +2 -2
  319. package/dist/eve/child/modifiers/EveChildModifierTransformCommon.js.map +1 -1
  320. package/dist/{generated/eve → eve}/child/modifiers/EveChildModifierTranslateWithCamera.js +19 -17
  321. package/dist/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -0
  322. package/dist/{generated/eve → eve}/child/procedural/EveChildProceduralContainer.js +15 -8
  323. package/dist/eve/child/procedural/EveChildProceduralContainer.js.map +1 -0
  324. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMap.js +14 -14
  325. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -0
  326. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +8 -8
  327. package/dist/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -0
  328. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCycling.js +14 -14
  329. package/dist/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -0
  330. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodCyclingParameter.js +10 -10
  331. package/dist/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -0
  332. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandom.js +19 -19
  333. package/dist/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -0
  334. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodRandomParameter.js +9 -9
  335. package/dist/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -0
  336. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholdParameter.js +9 -9
  337. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -0
  338. package/dist/{generated/eve → eve}/child/procedural/selection/EveProceduralMethodThresholds.js +19 -19
  339. package/dist/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -0
  340. package/dist/{generated/eve → eve}/distribution/EveBaseDistributionMethod.js +136 -7
  341. package/dist/eve/distribution/EveBaseDistributionMethod.js.map +1 -0
  342. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +14 -3
  343. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -0
  344. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +13 -5
  345. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -0
  346. package/dist/{generated/eve → eve}/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +16 -5
  347. package/dist/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -0
  348. package/dist/eve/distribution/attributeModifiers/InitialPlacement.js +2 -2
  349. package/dist/eve/distribution/attributeModifiers/InitialPlacement.js.map +1 -1
  350. package/dist/eve/distribution/attributeModifiers/enums.js.map +1 -0
  351. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorLocators.js +18 -5
  352. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -0
  353. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +33 -5
  354. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -0
  355. package/dist/{generated/eve → eve}/distribution/placement/EveDistributionPlacementGeneratorVolume.js +38 -7
  356. package/dist/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -0
  357. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +16 -4
  358. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -0
  359. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +16 -5
  360. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -0
  361. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +17 -6
  362. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -0
  363. package/dist/{generated/eve → eve}/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +16 -5
  364. package/dist/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -0
  365. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerBurst.js +21 -3
  366. package/dist/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -0
  367. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +27 -3
  368. package/dist/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -0
  369. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerInterval.js +19 -3
  370. package/dist/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -0
  371. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +24 -5
  372. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -0
  373. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +23 -4
  374. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -0
  375. package/dist/{generated/eve → eve}/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +23 -4
  376. package/dist/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -0
  377. package/dist/{generated/eve/effect → eve/effect/lensflare}/EveLensflare.js +81 -9
  378. package/dist/eve/effect/lensflare/EveLensflare.js.map +1 -0
  379. package/dist/eve/effect/multiEffect/EveMultiEffect.js +302 -0
  380. package/dist/eve/effect/multiEffect/EveMultiEffect.js.map +1 -0
  381. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js +92 -0
  382. package/dist/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -0
  383. package/dist/eve/index.js +118 -46
  384. package/dist/eve/index.js.map +1 -1
  385. package/dist/eve/lights/CjsLightData.js +12 -5
  386. package/dist/eve/lights/CjsLightData.js.map +1 -1
  387. package/dist/eve/lights/LightFeatures.js +2 -2
  388. package/dist/eve/lights/LightFeatures.js.map +1 -1
  389. package/dist/eve/lights/Tr2Light.js +130 -4
  390. package/dist/eve/lights/Tr2Light.js.map +1 -1
  391. package/dist/eve/lights/Tr2PointLight.js +9 -4
  392. package/dist/eve/lights/Tr2PointLight.js.map +1 -1
  393. package/dist/eve/lights/Tr2SpotLight.js +9 -4
  394. package/dist/eve/lights/Tr2SpotLight.js.map +1 -1
  395. package/dist/eve/lights/Tr2TexturedPointLight.js +11 -1
  396. package/dist/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  397. package/dist/eve/lights/lightConversion.js +196 -0
  398. package/dist/eve/lights/lightConversion.js.map +1 -0
  399. package/dist/eve/{EveLocator2.js → locator/EveLocator2.js} +23 -4
  400. package/dist/eve/locator/EveLocator2.js.map +1 -0
  401. package/dist/eve/{EveLocatorSets.js → locator/EveLocatorSets.js} +46 -4
  402. package/dist/eve/locator/EveLocatorSets.js.map +1 -0
  403. package/dist/eve/{Locator.js → locator/Locator.js} +10 -5
  404. package/dist/eve/locator/Locator.js.map +1 -0
  405. package/dist/eve/{LocatorData.js → locator/LocatorData.js} +7 -5
  406. package/dist/eve/locator/LocatorData.js.map +1 -0
  407. package/dist/eve/overlays/EveMeshOverlayEffect.js +208 -0
  408. package/dist/eve/overlays/EveMeshOverlayEffect.js.map +1 -0
  409. package/dist/eve/{EveParticleDirectForce.js → particles/force/EveParticleDirectForce.js} +6 -6
  410. package/dist/eve/particles/force/EveParticleDirectForce.js.map +1 -0
  411. package/dist/eve/{EveParticleDragForce.js → particles/force/EveParticleDragForce.js} +6 -6
  412. package/dist/eve/particles/force/EveParticleDragForce.js.map +1 -0
  413. package/dist/eve/{EveParticleSpring.js → particles/force/EveParticleSpring.js} +7 -7
  414. package/dist/eve/particles/force/EveParticleSpring.js.map +1 -0
  415. package/dist/eve/particles/static/EveSceneStaticParticles.js +326 -0
  416. package/dist/eve/particles/static/EveSceneStaticParticles.js.map +1 -0
  417. package/dist/eve/perObjectData/childPerObjectRecords.js +90 -0
  418. package/dist/eve/perObjectData/childPerObjectRecords.js.map +1 -0
  419. package/dist/eve/renderable/stretch/CjsStretchRuntime.js +78 -2
  420. package/dist/eve/renderable/stretch/CjsStretchRuntime.js.map +1 -1
  421. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js +88 -4
  422. package/dist/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  423. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js +95 -4
  424. package/dist/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  425. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js +40 -4
  426. package/dist/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  427. package/dist/eve/renderable/stretch/EveStretch.js +162 -13
  428. package/dist/eve/renderable/stretch/EveStretch.js.map +1 -1
  429. package/dist/eve/renderable/stretch/EveStretch2.js +125 -16
  430. package/dist/eve/renderable/stretch/EveStretch2.js.map +1 -1
  431. package/dist/eve/renderable/stretch/EveStretch3.js +265 -12
  432. package/dist/eve/renderable/stretch/EveStretch3.js.map +1 -1
  433. package/dist/eve/scene/EveSpaceScene.js +62 -12
  434. package/dist/eve/scene/EveSpaceScene.js.map +1 -1
  435. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentCollection.js +26 -3
  436. package/dist/eve/scene/components/EveComponentCollection.js.map +1 -0
  437. package/dist/{generated/eve/scene → eve/scene/components}/EveComponentRegistry.js +76 -4
  438. package/dist/eve/scene/components/EveComponentRegistry.js.map +1 -0
  439. package/dist/eve/scene/picking/EvePickingContext.js +61 -0
  440. package/dist/eve/scene/picking/EvePickingContext.js.map +1 -0
  441. package/dist/eve/scene/shadows/TriShadowFrustum.js +70 -0
  442. package/dist/eve/scene/shadows/TriShadowFrustum.js.map +1 -0
  443. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js +129 -0
  444. package/dist/eve/scene/shadows/TriShadowOrthoFrustum.js.map +1 -0
  445. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +20 -20
  446. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -0
  447. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +21 -21
  448. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -0
  449. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +14 -14
  450. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -0
  451. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +13 -13
  452. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -0
  453. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +32 -32
  454. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -0
  455. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +11 -11
  456. package/dist/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -0
  457. package/dist/{generated/eve → eve}/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +25 -25
  458. package/dist/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -0
  459. package/dist/eve/smartLights/attributeModifiers/enums.js.map +1 -0
  460. package/dist/{generated/eve → eve}/socket/EveSocketParameterBindingBase.js +28 -3
  461. package/dist/eve/socket/EveSocketParameterBindingBase.js.map +1 -0
  462. package/dist/{generated/eve → eve}/socket/EveSocketParameterBool.js +18 -2
  463. package/dist/eve/socket/EveSocketParameterBool.js.map +1 -0
  464. package/dist/{generated/eve → eve}/socket/EveSocketParameterColor.js +23 -7
  465. package/dist/eve/socket/EveSocketParameterColor.js.map +1 -0
  466. package/dist/eve/socket/EveSocketParameterFilePath.js +6 -6
  467. package/dist/eve/socket/EveSocketParameterFilePath.js.map +1 -1
  468. package/dist/{generated/eve → eve}/socket/EveSocketParameterFloat.js +18 -2
  469. package/dist/eve/socket/EveSocketParameterFloat.js.map +1 -0
  470. package/dist/{generated/eve → eve}/socket/EveSocketParameterInt.js +18 -2
  471. package/dist/eve/socket/EveSocketParameterInt.js.map +1 -0
  472. package/dist/{generated/eve → eve}/socket/EveSocketParameterString.js +44 -4
  473. package/dist/eve/socket/EveSocketParameterString.js.map +1 -0
  474. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector2.js +19 -3
  475. package/dist/eve/socket/EveSocketParameterVector2.js.map +1 -0
  476. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector3.js +19 -3
  477. package/dist/eve/socket/EveSocketParameterVector3.js.map +1 -0
  478. package/dist/{generated/eve → eve}/socket/EveSocketParameterVector4.js +19 -3
  479. package/dist/eve/socket/EveSocketParameterVector4.js.map +1 -0
  480. package/dist/eve/spaceObject/EveEffectRoot2.js +69 -33
  481. package/dist/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  482. package/dist/eve/spaceObject/EveMissile.js +55 -7
  483. package/dist/eve/spaceObject/EveMissile.js.map +1 -1
  484. package/dist/eve/spaceObject/EveMissileWarhead.js +112 -16
  485. package/dist/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  486. package/dist/eve/spaceObject/EveMobile.js +107 -3
  487. package/dist/eve/spaceObject/EveMobile.js.map +1 -1
  488. package/dist/eve/spaceObject/EveRootTransform.js +21 -4
  489. package/dist/eve/spaceObject/EveRootTransform.js.map +1 -1
  490. package/dist/{generated/eve → eve}/spaceObject/EveShip2.js +34 -14
  491. package/dist/eve/spaceObject/EveShip2.js.map +1 -0
  492. package/dist/eve/spaceObject/EveSpaceObject2.js +747 -205
  493. package/dist/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  494. package/dist/eve/spaceObject/EveStation2.js +1 -1
  495. package/dist/eve/spaceObject/EveStation2.js.map +1 -1
  496. package/dist/eve/spaceObject/EveTransform.js +124 -24
  497. package/dist/eve/spaceObject/EveTransform.js.map +1 -1
  498. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js +70 -0
  499. package/dist/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -0
  500. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js +19 -16
  501. package/dist/eve/spaceObject/createEveSpaceObjectMainPerObjectValues.js.map +1 -1
  502. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +92 -0
  503. package/dist/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -0
  504. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +158 -0
  505. package/dist/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -0
  506. package/dist/eve/spaceObject/planet/EvePlanet.js +63 -0
  507. package/dist/eve/spaceObject/planet/EvePlanet.js.map +1 -0
  508. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js +225 -0
  509. package/dist/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -0
  510. package/dist/eve/spaceObject/swarm/SwarmVehicle.js +4 -4
  511. package/dist/eve/spaceObject/swarm/SwarmVehicle.js.map +1 -1
  512. package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js +3 -3
  513. package/dist/eve/spaceObject/swarm/SwarmVehicleDebug.js.map +1 -1
  514. package/dist/eve/ui/EveEllipseDefinition.js +18 -3
  515. package/dist/eve/ui/EveEllipseDefinition.js.map +1 -1
  516. package/dist/eve/ui/EveEllipseSet.js +44 -2
  517. package/dist/eve/ui/EveEllipseSet.js.map +1 -1
  518. package/dist/eve/ui/EveSpherePin.js +159 -0
  519. package/dist/eve/ui/EveSpherePin.js.map +1 -0
  520. package/dist/eve/ui/EveSprite2dBracket.js +9 -4
  521. package/dist/eve/ui/EveSprite2dBracket.js.map +1 -1
  522. package/dist/eve/ui/EveUiObject.js +12 -1
  523. package/dist/eve/ui/EveUiObject.js.map +1 -1
  524. package/dist/{generated/eve/ui → eve/ui/lines}/EveLineSet.js +71 -10
  525. package/dist/eve/ui/lines/EveLineSet.js.map +1 -0
  526. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +78 -0
  527. package/dist/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -0
  528. package/dist/{generated/eve/ui → eve/ui/tacticalOverlay}/EveTacticalTrails.js +24 -4
  529. package/dist/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -0
  530. package/dist/eve/virtualCamera/EveVirtualCamera.js +158 -6
  531. package/dist/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  532. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js +67 -2
  533. package/dist/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  534. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +18 -1
  535. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  536. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +21 -2
  537. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  538. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +18 -1
  539. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  540. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +30 -1
  541. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  542. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +16 -1
  543. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  544. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +42 -4
  545. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  546. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +19 -2
  547. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  548. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +20 -2
  549. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  550. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +22 -2
  551. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  552. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +22 -2
  553. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  554. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js +13 -2
  555. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveRight.js.map +1 -1
  556. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js +16 -2
  557. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveUp.js.map +1 -1
  558. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +18 -2
  559. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  560. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +23 -3
  561. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  562. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +38 -2
  563. package/dist/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  564. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js +38 -2
  565. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionBase.js.map +1 -1
  566. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js +12 -1
  567. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionCut.js.map +1 -1
  568. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +39 -2
  569. package/dist/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  570. package/dist/eve/volume/EveBoxVolume.js +63 -4
  571. package/dist/eve/volume/EveBoxVolume.js.map +1 -1
  572. package/dist/eve/volume/EveEllipsoidVolume.js +58 -4
  573. package/dist/eve/volume/EveEllipsoidVolume.js.map +1 -1
  574. package/dist/eve/volume/EveSphereVolume.js +37 -3
  575. package/dist/eve/volume/EveSphereVolume.js.map +1 -1
  576. package/dist/generated/curves/Tr2VectorFunctionModifier.js +3 -3
  577. package/dist/generated/curves/Tr2VectorFunctionModifier.js.map +1 -1
  578. package/dist/generated/eve/child/EveChildCloud.js +5 -5
  579. package/dist/generated/eve/child/EveChildCloud.js.map +1 -1
  580. package/dist/generated/eve/child/EveChildCloud2.js +759 -48
  581. package/dist/generated/eve/child/EveChildCloud2.js.map +1 -1
  582. package/dist/generated/eve/child/EveChildExplosion.js +4 -4
  583. package/dist/generated/eve/child/EveChildExplosion.js.map +1 -1
  584. package/dist/generated/eve/child/EveChildInstanceContainer.js +1 -1
  585. package/dist/generated/eve/child/EveChildInstanceContainer.js.map +1 -1
  586. package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js +3 -3
  587. package/dist/generated/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
  588. package/dist/generated/eve/child/EveChildLineSet.js +2 -2
  589. package/dist/generated/eve/child/EveChildLineSet.js.map +1 -1
  590. package/dist/generated/eve/child/EveChildParticleSphere.js +3 -3
  591. package/dist/generated/eve/child/EveChildParticleSphere.js.map +1 -1
  592. package/dist/generated/eve/child/EveChildParticleSystem.js +16 -10
  593. package/dist/generated/eve/child/EveChildParticleSystem.js.map +1 -1
  594. package/dist/generated/eve/child/EveChildPlug.js +1 -1
  595. package/dist/generated/eve/child/EveChildPlug.js.map +1 -1
  596. package/dist/generated/eve/child/EveChildPostProcessVolume.js +4 -4
  597. package/dist/generated/eve/child/EveChildPostProcessVolume.js.map +1 -1
  598. package/dist/generated/eve/child/EveChildQuad.js +5 -5
  599. package/dist/generated/eve/child/EveChildQuad.js.map +1 -1
  600. package/dist/generated/eve/child/EveChildRef.js +1 -1
  601. package/dist/generated/eve/child/EveChildRef.js.map +1 -1
  602. package/dist/generated/eve/child/EveChildSocket.js +2 -2
  603. package/dist/generated/eve/child/EveChildSocket.js.map +1 -1
  604. package/dist/generated/eve/child/EveCloudEditableVolume.js +2 -2
  605. package/dist/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  606. package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js +2 -2
  607. package/dist/generated/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
  608. package/dist/generated/eve/child/IEveLightingOverride.js +2 -2
  609. package/dist/generated/eve/child/IEveLightingOverride.js.map +1 -1
  610. package/dist/generated/eve/child/behaviors/Allign.js +3 -3
  611. package/dist/generated/eve/child/behaviors/Allign.js.map +1 -1
  612. package/dist/generated/eve/child/behaviors/ApproachGroup.js +3 -3
  613. package/dist/generated/eve/child/behaviors/ApproachGroup.js.map +1 -1
  614. package/dist/generated/eve/child/behaviors/BackAndForth.js +18 -21
  615. package/dist/generated/eve/child/behaviors/BackAndForth.js.map +1 -1
  616. package/dist/generated/eve/child/behaviors/BehaviorGroup.js +7 -7
  617. package/dist/generated/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  618. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js +5 -5
  619. package/dist/generated/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  620. package/dist/generated/eve/child/behaviors/DroneAvoidance.js +3 -3
  621. package/dist/generated/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  622. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js +29 -32
  623. package/dist/generated/eve/child/behaviors/EveKDdroneManagementTree.js.map +1 -1
  624. package/dist/generated/eve/child/behaviors/FollowASpline.js +16 -20
  625. package/dist/generated/eve/child/behaviors/FollowASpline.js.map +1 -1
  626. package/dist/generated/eve/child/behaviors/Formation.js +4 -4
  627. package/dist/generated/eve/child/behaviors/Formation.js.map +1 -1
  628. package/dist/generated/eve/child/behaviors/Inertia.js +4 -4
  629. package/dist/generated/eve/child/behaviors/Inertia.js.map +1 -1
  630. package/dist/generated/eve/child/behaviors/PlayFX.js +16 -16
  631. package/dist/generated/eve/child/behaviors/PlayFX.js.map +1 -1
  632. package/dist/generated/eve/child/behaviors/SeekTarget.js +4 -4
  633. package/dist/generated/eve/child/behaviors/SeekTarget.js.map +1 -1
  634. package/dist/generated/eve/child/behaviors/SpawnDrones.js +4 -4
  635. package/dist/generated/eve/child/behaviors/SpawnDrones.js.map +1 -1
  636. package/dist/generated/eve/child/behaviors/index.js +0 -6
  637. package/dist/generated/eve/child/behaviors/index.js.map +1 -1
  638. package/dist/generated/eve/child/index.js +0 -23
  639. package/dist/generated/eve/child/index.js.map +1 -1
  640. package/dist/generated/eve/child/lineSetPaths/EveLineChildContainer.js +1 -1
  641. package/dist/generated/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
  642. package/dist/generated/eve/effect/EveOccluder.js +2 -2
  643. package/dist/generated/eve/effect/EveOccluder.js.map +1 -1
  644. package/dist/generated/eve/effect/EveStarfield.js +2 -2
  645. package/dist/generated/eve/effect/EveStarfield.js.map +1 -1
  646. package/dist/generated/eve/effect/index.js +0 -3
  647. package/dist/generated/eve/effect/index.js.map +1 -1
  648. package/dist/generated/eve/index.js +0 -88
  649. package/dist/generated/eve/index.js.map +1 -1
  650. package/dist/generated/eve/lights/Tr2FactionLight.js +4 -4
  651. package/dist/generated/eve/lights/Tr2FactionLight.js.map +1 -1
  652. package/dist/generated/eve/scene/EvePendingPickingReadback.js +2 -2
  653. package/dist/generated/eve/scene/EvePendingPickingReadback.js.map +1 -1
  654. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js +3 -3
  655. package/dist/generated/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  656. package/dist/generated/eve/scene/index.js +0 -6
  657. package/dist/generated/eve/scene/index.js.map +1 -1
  658. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js +2 -2
  659. package/dist/generated/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  660. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js +3 -3
  661. package/dist/generated/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  662. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js +23 -23
  663. package/dist/generated/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  664. package/dist/generated/eve/smartLights/EveSmartLightMesh.js +1 -1
  665. package/dist/generated/eve/smartLights/EveSmartLightMesh.js.map +1 -1
  666. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js +6 -6
  667. package/dist/generated/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  668. package/dist/generated/eve/smartLights/EveSmartLightQuad.js +6 -6
  669. package/dist/generated/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  670. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js +1 -1
  671. package/dist/generated/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  672. package/dist/generated/eve/smartLights/index.js +0 -8
  673. package/dist/generated/eve/smartLights/index.js.map +1 -1
  674. package/dist/generated/eve/spaceObject/index.js +0 -4
  675. package/dist/generated/eve/spaceObject/index.js.map +1 -1
  676. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js +194 -173
  677. package/dist/generated/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  678. package/dist/generated/eve/spaceObject/swarm/index.js +0 -1
  679. package/dist/generated/eve/spaceObject/swarm/index.js.map +1 -1
  680. package/dist/generated/eve/ui/EveConnector.js +4 -4
  681. package/dist/generated/eve/ui/EveConnector.js.map +1 -1
  682. package/dist/generated/eve/ui/EveCurveLineSet.js +2 -2
  683. package/dist/generated/eve/ui/EveCurveLineSet.js.map +1 -1
  684. package/dist/generated/eve/ui/EveLineContainer.js +2 -2
  685. package/dist/generated/eve/ui/EveLineContainer.js.map +1 -1
  686. package/dist/generated/eve/ui/EveProjectBracket.js +4 -4
  687. package/dist/generated/eve/ui/EveProjectBracket.js.map +1 -1
  688. package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js +2 -2
  689. package/dist/generated/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
  690. package/dist/generated/eve/ui/EveTacticalOverlay.js +4 -4
  691. package/dist/generated/eve/ui/EveTacticalOverlay.js.map +1 -1
  692. package/dist/generated/eve/ui/index.js +0 -4
  693. package/dist/generated/eve/ui/index.js.map +1 -1
  694. package/dist/generated/font/Tr2FontManager.js +2 -2
  695. package/dist/generated/font/Tr2FontManager.js.map +1 -1
  696. package/dist/generated/font/Tr2FontMeasurer.js +2 -2
  697. package/dist/generated/font/Tr2FontMeasurer.js.map +1 -1
  698. package/dist/generated/font/Tr2SBitWrapper.js +2 -2
  699. package/dist/generated/font/Tr2SBitWrapper.js.map +1 -1
  700. package/dist/generated/index.js +0 -93
  701. package/dist/generated/index.js.map +1 -1
  702. package/dist/generated/particle/ITr2GenericEmitter.js +4 -4
  703. package/dist/generated/particle/ITr2GenericEmitter.js.map +1 -1
  704. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js +4 -4
  705. package/dist/generated/particle/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  706. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js +3 -3
  707. package/dist/generated/particle/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  708. package/dist/generated/particle/Tr2DynamicEmitter.js +2 -2
  709. package/dist/generated/particle/Tr2DynamicEmitter.js.map +1 -1
  710. package/dist/generated/particle/Tr2ElementBlendConstraint.js +3 -3
  711. package/dist/generated/particle/Tr2ElementBlendConstraint.js.map +1 -1
  712. package/dist/generated/particle/Tr2ForceSphereVolume.js +3 -3
  713. package/dist/generated/particle/Tr2ForceSphereVolume.js.map +1 -1
  714. package/dist/generated/particle/Tr2GpuParticleSystem.js +2 -2
  715. package/dist/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
  716. package/dist/generated/particle/Tr2ParticleSystem.js +3 -3
  717. package/dist/generated/particle/Tr2ParticleSystem.js.map +1 -1
  718. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js +5 -5
  719. package/dist/generated/particle/Tr2ParticleTurbulenceForce.js.map +1 -1
  720. package/dist/generated/particle/Tr2PlaneConstraint.js +4 -4
  721. package/dist/generated/particle/Tr2PlaneConstraint.js.map +1 -1
  722. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js +2 -2
  723. package/dist/generated/particle/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  724. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js +3 -3
  725. package/dist/generated/particle/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  726. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js +3 -3
  727. package/dist/generated/particle/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  728. package/dist/generated/particle/Tr2SphereConstraint.js +4 -4
  729. package/dist/generated/particle/Tr2SphereConstraint.js.map +1 -1
  730. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js +4 -4
  731. package/dist/generated/particle/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  732. package/dist/generated/particle/Tr2StaticEmitter.js +2 -2
  733. package/dist/generated/particle/Tr2StaticEmitter.js.map +1 -1
  734. package/dist/generated/postProcess/Tr2PostProcessRenderer.js +2 -2
  735. package/dist/generated/postProcess/Tr2PostProcessRenderer.js.map +1 -1
  736. package/dist/generated/raytracing/Tr2RaytracingGeometry.js +3 -3
  737. package/dist/generated/raytracing/Tr2RaytracingGeometry.js.map +1 -1
  738. package/dist/generated/raytracing/Tr2RaytracingManager.js +2 -2
  739. package/dist/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
  740. package/dist/generated/raytracing/Tr2RaytracingMesh.js +2 -2
  741. package/dist/generated/raytracing/Tr2RaytracingMesh.js.map +1 -1
  742. package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js +2 -2
  743. package/dist/generated/raytracing/Tr2RaytracingPipelineStateManager.js.map +1 -1
  744. package/dist/generated/renderJob/Tr2RenderNodeEffect.js +2 -2
  745. package/dist/generated/renderJob/Tr2RenderNodeEffect.js.map +1 -1
  746. package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js +2 -2
  747. package/dist/generated/renderJob/Tr2RenderNodeSprite2dScene.js.map +1 -1
  748. package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js +1 -1
  749. package/dist/generated/renderJob/Tr2StepExecuteRenderNode.js.map +1 -1
  750. package/dist/generated/renderJob/TriStepClearUav.js +2 -2
  751. package/dist/generated/renderJob/TriStepClearUav.js.map +1 -1
  752. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js +1 -1
  753. package/dist/generated/renderJob/TriStepFilterVisibilityResults.js.map +1 -1
  754. package/dist/generated/renderJob/TriStepPythonCB.js +1 -1
  755. package/dist/generated/renderJob/TriStepPythonCB.js.map +1 -1
  756. package/dist/generated/renderJob/TriStepRemoteUpdate.js +1 -1
  757. package/dist/generated/renderJob/TriStepRemoteUpdate.js.map +1 -1
  758. package/dist/generated/renderJob/TriStepRenderAtlas.js +3 -3
  759. package/dist/generated/renderJob/TriStepRenderAtlas.js.map +1 -1
  760. package/dist/generated/renderJob/TriStepRenderDebug.js +2 -2
  761. package/dist/generated/renderJob/TriStepRenderDebug.js.map +1 -1
  762. package/dist/generated/renderJob/TriStepRenderEffect.js +2 -2
  763. package/dist/generated/renderJob/TriStepRenderEffect.js.map +1 -1
  764. package/dist/generated/renderJob/TriStepRenderFps.js +1 -1
  765. package/dist/generated/renderJob/TriStepRenderFps.js.map +1 -1
  766. package/dist/generated/renderJob/TriStepRenderLineGraph.js +1 -1
  767. package/dist/generated/renderJob/TriStepRenderLineGraph.js.map +1 -1
  768. package/dist/generated/renderJob/TriStepRenderObject.js +1 -1
  769. package/dist/generated/renderJob/TriStepRenderObject.js.map +1 -1
  770. package/dist/generated/renderJob/TriStepRenderPass.js +1 -1
  771. package/dist/generated/renderJob/TriStepRenderPass.js.map +1 -1
  772. package/dist/generated/renderJob/TriStepRenderScene.js +1 -1
  773. package/dist/generated/renderJob/TriStepRenderScene.js.map +1 -1
  774. package/dist/generated/renderJob/TriStepRenderSceneDebug.js +1 -1
  775. package/dist/generated/renderJob/TriStepRenderSceneDebug.js.map +1 -1
  776. package/dist/generated/renderJob/TriStepRenderTexture.js +2 -2
  777. package/dist/generated/renderJob/TriStepRenderTexture.js.map +1 -1
  778. package/dist/generated/renderJob/TriStepRunComputeShader.js +1 -1
  779. package/dist/generated/renderJob/TriStepRunComputeShader.js.map +1 -1
  780. package/dist/generated/renderJob/TriStepSetDebugRenderer.js +1 -1
  781. package/dist/generated/renderJob/TriStepSetDebugRenderer.js.map +1 -1
  782. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js +1 -1
  783. package/dist/generated/renderJob/TriStepSetUpscalingContextID.js.map +1 -1
  784. package/dist/generated/renderJob/TriStepSetVariableStore.js +1 -1
  785. package/dist/generated/renderJob/TriStepSetVariableStore.js.map +1 -1
  786. package/dist/generated/renderJob/TriStepTestBlocking.js +1 -1
  787. package/dist/generated/renderJob/TriStepTestBlocking.js.map +1 -1
  788. package/dist/generated/renderJob/TriStepToggleCubemap.js +1 -1
  789. package/dist/generated/renderJob/TriStepToggleCubemap.js.map +1 -1
  790. package/dist/generated/renderJob/TriStepUpdate.js +1 -1
  791. package/dist/generated/renderJob/TriStepUpdate.js.map +1 -1
  792. package/dist/generated/sprite2d/Tr2Sprite2d.js +1 -1
  793. package/dist/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
  794. package/dist/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
  795. package/dist/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
  796. package/dist/generated/sprite2d/Tr2Sprite2dContainer.js +1 -1
  797. package/dist/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
  798. package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js +1 -1
  799. package/dist/generated/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
  800. package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js +4 -4
  801. package/dist/generated/sprite2d/Tr2Sprite2dDisplayList.js.map +1 -1
  802. package/dist/generated/sprite2d/Tr2Sprite2dFrame.js +1 -1
  803. package/dist/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
  804. package/dist/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
  805. package/dist/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
  806. package/dist/generated/sprite2d/Tr2Sprite2dLine.js +3 -3
  807. package/dist/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
  808. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js +3 -3
  809. package/dist/generated/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  810. package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js +2 -2
  811. package/dist/generated/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
  812. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js +4 -4
  813. package/dist/generated/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  814. package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js +1 -1
  815. package/dist/generated/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
  816. package/dist/generated/sprite2d/Tr2Sprite2dScene.js +6 -6
  817. package/dist/generated/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  818. package/dist/generated/sprite2d/Tr2Sprite2dStretch.js +1 -1
  819. package/dist/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
  820. package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js +1 -1
  821. package/dist/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
  822. package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js +1 -1
  823. package/dist/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
  824. package/dist/generated/sprite2d/Tr2Sprite2dTexture.js +3 -3
  825. package/dist/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
  826. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js +2 -2
  827. package/dist/generated/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  828. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js +2 -2
  829. package/dist/generated/sprite2d/Tr2Sprite2dVertex.js.map +1 -1
  830. package/dist/generated/sprite2d/Tr2SpriteObject.js +3 -3
  831. package/dist/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
  832. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js +2 -2
  833. package/dist/generated/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  834. package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js +1 -1
  835. package/dist/generated/sprite2d/Tr2TexturedSpriteObject.js.map +1 -1
  836. package/dist/generated/trinityCore/ITr2FroxelFogSettings.js +2 -2
  837. package/dist/generated/trinityCore/ITr2FroxelFogSettings.js.map +1 -1
  838. package/dist/generated/trinityCore/ITr2ImpostorSource.js +3 -3
  839. package/dist/generated/trinityCore/ITr2ImpostorSource.js.map +1 -1
  840. package/dist/generated/trinityCore/ITr2InstanceData.js +2 -2
  841. package/dist/generated/trinityCore/ITr2InstanceData.js.map +1 -1
  842. package/dist/generated/trinityCore/Tr2AtlasTexture.js +2 -2
  843. package/dist/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
  844. package/dist/generated/trinityCore/Tr2BoundingLineSet.js +2 -2
  845. package/dist/generated/trinityCore/Tr2BoundingLineSet.js.map +1 -1
  846. package/dist/generated/trinityCore/Tr2CurveLineSet.js +5 -5
  847. package/dist/generated/trinityCore/Tr2CurveLineSet.js.map +1 -1
  848. package/dist/generated/trinityCore/Tr2DebugRenderer.js +4 -4
  849. package/dist/generated/trinityCore/Tr2DebugRenderer.js.map +1 -1
  850. package/dist/generated/trinityCore/Tr2Denoiser.js +2 -2
  851. package/dist/generated/trinityCore/Tr2Denoiser.js.map +1 -1
  852. package/dist/generated/trinityCore/Tr2GpuProfiler.js +2 -2
  853. package/dist/generated/trinityCore/Tr2GpuProfiler.js.map +1 -1
  854. package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
  855. package/dist/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  856. package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js +1 -1
  857. package/dist/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
  858. package/dist/generated/trinityCore/Tr2HostBitmap.js +3 -3
  859. package/dist/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  860. package/dist/generated/trinityCore/Tr2ImpostorManager.js +2 -2
  861. package/dist/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
  862. package/dist/generated/trinityCore/Tr2KelvinColor.js +2 -2
  863. package/dist/generated/trinityCore/Tr2KelvinColor.js.map +1 -1
  864. package/dist/generated/trinityCore/Tr2LineGraph.js +3 -3
  865. package/dist/generated/trinityCore/Tr2LineGraph.js.map +1 -1
  866. package/dist/generated/trinityCore/Tr2LineSet.js +3 -3
  867. package/dist/generated/trinityCore/Tr2LineSet.js.map +1 -1
  868. package/dist/generated/trinityCore/Tr2ManipulationTool.js +5 -5
  869. package/dist/generated/trinityCore/Tr2ManipulationTool.js.map +1 -1
  870. package/dist/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
  871. package/dist/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
  872. package/dist/generated/trinityCore/Tr2PrimitiveSet.js +4 -4
  873. package/dist/generated/trinityCore/Tr2PrimitiveSet.js.map +1 -1
  874. package/dist/generated/trinityCore/Tr2PrimitiveText.js +3 -3
  875. package/dist/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
  876. package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js +2 -2
  877. package/dist/generated/trinityCore/Tr2ProjectBoundingBoxBracket.js.map +1 -1
  878. package/dist/generated/trinityCore/Tr2QuadRenderer.js +2 -2
  879. package/dist/generated/trinityCore/Tr2QuadRenderer.js.map +1 -1
  880. package/dist/generated/trinityCore/Tr2ReflectionProbe.js +4 -4
  881. package/dist/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
  882. package/dist/generated/trinityCore/Tr2RingBuffer.js +2 -2
  883. package/dist/generated/trinityCore/Tr2RingBuffer.js.map +1 -1
  884. package/dist/generated/trinityCore/Tr2RotationTool.js +2 -2
  885. package/dist/generated/trinityCore/Tr2RotationTool.js.map +1 -1
  886. package/dist/generated/trinityCore/Tr2SSAO.js +2 -2
  887. package/dist/generated/trinityCore/Tr2SSAO.js.map +1 -1
  888. package/dist/generated/trinityCore/Tr2SSSSS.js +3 -3
  889. package/dist/generated/trinityCore/Tr2SSSSS.js.map +1 -1
  890. package/dist/generated/trinityCore/Tr2ScalingTool.js +3 -3
  891. package/dist/generated/trinityCore/Tr2ScalingTool.js.map +1 -1
  892. package/dist/generated/trinityCore/Tr2ShadowMap.js +2 -2
  893. package/dist/generated/trinityCore/Tr2ShadowMap.js.map +1 -1
  894. package/dist/generated/trinityCore/Tr2SolidSet.js +3 -3
  895. package/dist/generated/trinityCore/Tr2SolidSet.js.map +1 -1
  896. package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js +3 -3
  897. package/dist/generated/trinityCore/Tr2StreamingBitmapSaver.js.map +1 -1
  898. package/dist/generated/trinityCore/Tr2TextureAnimation.js +2 -2
  899. package/dist/generated/trinityCore/Tr2TextureAnimation.js.map +1 -1
  900. package/dist/generated/trinityCore/Tr2TextureArray.js +3 -3
  901. package/dist/generated/trinityCore/Tr2TextureArray.js.map +1 -1
  902. package/dist/generated/trinityCore/Tr2TextureAtlas.js +3 -3
  903. package/dist/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  904. package/dist/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
  905. package/dist/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
  906. package/dist/generated/trinityCore/Tr2TextureReference.js +2 -2
  907. package/dist/generated/trinityCore/Tr2TextureReference.js.map +1 -1
  908. package/dist/generated/trinityCore/Tr2Transform.js +5 -5
  909. package/dist/generated/trinityCore/Tr2Transform.js.map +1 -1
  910. package/dist/generated/trinityCore/Tr2TransientTextureReference.js +2 -2
  911. package/dist/generated/trinityCore/Tr2TransientTextureReference.js.map +1 -1
  912. package/dist/generated/trinityCore/Tr2TranslationTool.js +2 -2
  913. package/dist/generated/trinityCore/Tr2TranslationTool.js.map +1 -1
  914. package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js +2 -2
  915. package/dist/generated/trinityCore/Tr2VolumetricsRenderer.js.map +1 -1
  916. package/dist/generated/trinityCore/TriLineSet.js +4 -4
  917. package/dist/generated/trinityCore/TriLineSet.js.map +1 -1
  918. package/dist/generated/trinityCore/TriRigidOrientation.js +4 -4
  919. package/dist/generated/trinityCore/TriRigidOrientation.js.map +1 -1
  920. package/dist/generated/trinityCore/index.js +0 -5
  921. package/dist/generated/trinityCore/index.js.map +1 -1
  922. package/dist/generated/utilities/Float4x3.js +2 -2
  923. package/dist/generated/utilities/Float4x3.js.map +1 -1
  924. package/dist/generated/utilities/Obb.js +3 -3
  925. package/dist/generated/utilities/Obb.js.map +1 -1
  926. package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js +2 -2
  927. package/dist/generated/utilities/Tr2MaterialBoundsAdjustment.js.map +1 -1
  928. package/dist/index.js +131 -152
  929. package/dist/index.js.map +1 -1
  930. package/dist/particle/Tr2GpuSharedEmitter.js +43 -4
  931. package/dist/particle/Tr2GpuSharedEmitter.js.map +1 -1
  932. package/dist/particle/Tr2GpuUniqueEmitter.js +7 -2
  933. package/dist/particle/Tr2GpuUniqueEmitter.js.map +1 -1
  934. package/dist/particle/Tr2ParticleAttractorForce.js +13 -3
  935. package/dist/particle/Tr2ParticleAttractorForce.js.map +1 -1
  936. package/dist/particle/Tr2ParticleDirectForce.js +10 -3
  937. package/dist/particle/Tr2ParticleDirectForce.js.map +1 -1
  938. package/dist/particle/Tr2ParticleDragForce.js +10 -3
  939. package/dist/particle/Tr2ParticleDragForce.js.map +1 -1
  940. package/dist/particle/Tr2ParticleElementData.js +2 -2
  941. package/dist/particle/Tr2ParticleElementData.js.map +1 -1
  942. package/dist/particle/Tr2ParticleElementDeclaration.js +7 -2
  943. package/dist/particle/Tr2ParticleElementDeclaration.js.map +1 -1
  944. package/dist/particle/Tr2ParticleElementDeclarationName.js +2 -2
  945. package/dist/particle/Tr2ParticleElementDeclarationName.js.map +1 -1
  946. package/dist/particle/Tr2ParticleFluidDragForce.js +13 -3
  947. package/dist/particle/Tr2ParticleFluidDragForce.js.map +1 -1
  948. package/dist/particle/Tr2ParticleSpring.js +13 -3
  949. package/dist/particle/Tr2ParticleSpring.js.map +1 -1
  950. package/dist/particle/Tr2ParticleVortexForce.js +13 -3
  951. package/dist/particle/Tr2ParticleVortexForce.js.map +1 -1
  952. package/dist/particle/particleElementBinding.js +12 -0
  953. package/dist/particle/particleElementBinding.js.map +1 -1
  954. package/dist/postProcess/BlurContext.js +2 -2
  955. package/dist/postProcess/BlurContext.js.map +1 -1
  956. package/dist/postProcess/GaussianData.js +4 -4
  957. package/dist/postProcess/GaussianData.js.map +1 -1
  958. package/dist/postProcess/Tr2PPBloomEffect.js +8 -2
  959. package/dist/postProcess/Tr2PPBloomEffect.js.map +1 -1
  960. package/dist/postProcess/Tr2PPColorCorrectionEffect.js +2 -2
  961. package/dist/postProcess/Tr2PPColorCorrectionEffect.js.map +1 -1
  962. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js +17 -1
  963. package/dist/postProcess/Tr2PPDepthOfFieldEffect.js.map +1 -1
  964. package/dist/postProcess/Tr2PPDesaturateEffect.js +1 -1
  965. package/dist/postProcess/Tr2PPDesaturateEffect.js.map +1 -1
  966. package/dist/postProcess/Tr2PPDynamicExposureEffect.js +1 -1
  967. package/dist/postProcess/Tr2PPDynamicExposureEffect.js.map +1 -1
  968. package/dist/postProcess/Tr2PPEffect.js +2 -2
  969. package/dist/postProcess/Tr2PPEffect.js.map +1 -1
  970. package/dist/postProcess/Tr2PPFadeEffect.js +2 -2
  971. package/dist/postProcess/Tr2PPFadeEffect.js.map +1 -1
  972. package/dist/postProcess/Tr2PPFilmGrainEffect.js +1 -1
  973. package/dist/postProcess/Tr2PPFilmGrainEffect.js.map +1 -1
  974. package/dist/postProcess/Tr2PPFogEffect.js +4 -4
  975. package/dist/postProcess/Tr2PPFogEffect.js.map +1 -1
  976. package/dist/postProcess/Tr2PPGenericEffect.js +8 -1
  977. package/dist/postProcess/Tr2PPGenericEffect.js.map +1 -1
  978. package/dist/postProcess/Tr2PPGodRaysEffect.js +2 -2
  979. package/dist/postProcess/Tr2PPGodRaysEffect.js.map +1 -1
  980. package/dist/postProcess/Tr2PPLutEffect.js +1 -1
  981. package/dist/postProcess/Tr2PPLutEffect.js.map +1 -1
  982. package/dist/postProcess/Tr2PPSignalLossEffect.js +1 -1
  983. package/dist/postProcess/Tr2PPSignalLossEffect.js.map +1 -1
  984. package/dist/postProcess/Tr2PPTaaEffect.js +11 -1
  985. package/dist/postProcess/Tr2PPTaaEffect.js.map +1 -1
  986. package/dist/postProcess/Tr2PPTonemappingEffect.js +6 -1
  987. package/dist/postProcess/Tr2PPTonemappingEffect.js.map +1 -1
  988. package/dist/postProcess/Tr2PPVignetteEffect.js +3 -3
  989. package/dist/postProcess/Tr2PPVignetteEffect.js.map +1 -1
  990. package/dist/postProcess/Tr2PostProcess.js +7 -2
  991. package/dist/postProcess/Tr2PostProcess.js.map +1 -1
  992. package/dist/postProcess/Tr2PostProcess2.js +149 -2
  993. package/dist/postProcess/Tr2PostProcess2.js.map +1 -1
  994. package/dist/postProcess/Tr2PostProcessAttributes.js +94 -5
  995. package/dist/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  996. package/dist/renderJob/Tr2RenderJobs.js +36 -2
  997. package/dist/renderJob/Tr2RenderJobs.js.map +1 -1
  998. package/dist/renderJob/TriRenderJob.js +61 -2
  999. package/dist/renderJob/TriRenderJob.js.map +1 -1
  1000. package/dist/renderJob/TriRenderStep.js +22 -2
  1001. package/dist/renderJob/TriRenderStep.js.map +1 -1
  1002. package/dist/renderJob/TriStepClear.js +20 -2
  1003. package/dist/renderJob/TriStepClear.js.map +1 -1
  1004. package/dist/renderJob/TriStepCopyRenderTarget.js +52 -1
  1005. package/dist/renderJob/TriStepCopyRenderTarget.js.map +1 -1
  1006. package/dist/renderJob/TriStepEnableWireframeMode.js +10 -1
  1007. package/dist/renderJob/TriStepEnableWireframeMode.js.map +1 -1
  1008. package/dist/renderJob/TriStepGenerateMipMaps.js +10 -1
  1009. package/dist/renderJob/TriStepGenerateMipMaps.js.map +1 -1
  1010. package/dist/renderJob/TriStepPopDepthStencil.js +7 -1
  1011. package/dist/renderJob/TriStepPopDepthStencil.js.map +1 -1
  1012. package/dist/renderJob/TriStepPopProjection.js +7 -1
  1013. package/dist/renderJob/TriStepPopProjection.js.map +1 -1
  1014. package/dist/renderJob/TriStepPopRenderTarget.js +13 -1
  1015. package/dist/renderJob/TriStepPopRenderTarget.js.map +1 -1
  1016. package/dist/renderJob/TriStepPopViewTransform.js +7 -1
  1017. package/dist/renderJob/TriStepPopViewTransform.js.map +1 -1
  1018. package/dist/renderJob/TriStepPopViewport.js +7 -1
  1019. package/dist/renderJob/TriStepPopViewport.js.map +1 -1
  1020. package/dist/renderJob/TriStepPresentSwapChain.js +13 -1
  1021. package/dist/renderJob/TriStepPresentSwapChain.js.map +1 -1
  1022. package/dist/renderJob/TriStepPushDepthStencil.js +18 -1
  1023. package/dist/renderJob/TriStepPushDepthStencil.js.map +1 -1
  1024. package/dist/renderJob/TriStepPushProjection.js +7 -1
  1025. package/dist/renderJob/TriStepPushProjection.js.map +1 -1
  1026. package/dist/renderJob/TriStepPushRenderTarget.js +10 -1
  1027. package/dist/renderJob/TriStepPushRenderTarget.js.map +1 -1
  1028. package/dist/renderJob/TriStepPushViewTransform.js +7 -1
  1029. package/dist/renderJob/TriStepPushViewTransform.js.map +1 -1
  1030. package/dist/renderJob/TriStepPushViewport.js +7 -1
  1031. package/dist/renderJob/TriStepPushViewport.js.map +1 -1
  1032. package/dist/renderJob/TriStepRemoteSync.js +18 -1
  1033. package/dist/renderJob/TriStepRemoteSync.js.map +1 -1
  1034. package/dist/renderJob/TriStepResolve.js +14 -1
  1035. package/dist/renderJob/TriStepResolve.js.map +1 -1
  1036. package/dist/renderJob/TriStepRunJob.js +13 -1
  1037. package/dist/renderJob/TriStepRunJob.js.map +1 -1
  1038. package/dist/renderJob/TriStepSetDepthStencil.js +13 -1
  1039. package/dist/renderJob/TriStepSetDepthStencil.js.map +1 -1
  1040. package/dist/renderJob/TriStepSetProjection.js +15 -1
  1041. package/dist/renderJob/TriStepSetProjection.js.map +1 -1
  1042. package/dist/renderJob/TriStepSetRenderState.js +22 -2
  1043. package/dist/renderJob/TriStepSetRenderState.js.map +1 -1
  1044. package/dist/renderJob/TriStepSetRenderTarget.js +13 -1
  1045. package/dist/renderJob/TriStepSetRenderTarget.js.map +1 -1
  1046. package/dist/renderJob/TriStepSetStdRndStates.js +19 -1
  1047. package/dist/renderJob/TriStepSetStdRndStates.js.map +1 -1
  1048. package/dist/renderJob/TriStepSetView.js +30 -3
  1049. package/dist/renderJob/TriStepSetView.js.map +1 -1
  1050. package/dist/renderJob/TriStepSetViewport.js +18 -1
  1051. package/dist/renderJob/TriStepSetViewport.js.map +1 -1
  1052. package/dist/renderJob/TriStepSetVisualizationMode.js +20 -1
  1053. package/dist/renderJob/TriStepSetVisualizationMode.js.map +1 -1
  1054. package/dist/shader/Tr2Effect.js +219 -4
  1055. package/dist/shader/Tr2Effect.js.map +1 -1
  1056. package/dist/shader/Tr2Material.js +43 -2
  1057. package/dist/shader/Tr2Material.js.map +1 -1
  1058. package/dist/shader/index.js +1 -11
  1059. package/dist/shader/index.js.map +1 -1
  1060. package/dist/shader/material/Tr2EffectLibraryParameters.js +9 -2
  1061. package/dist/shader/material/Tr2EffectLibraryParameters.js.map +1 -1
  1062. package/dist/shader/material/Tr2EffectParam.js +2 -2
  1063. package/dist/shader/material/Tr2EffectParam.js.map +1 -1
  1064. package/dist/shader/material/Tr2EffectPassParameters.js +25 -2
  1065. package/dist/shader/material/Tr2EffectPassParameters.js.map +1 -1
  1066. package/dist/shader/material/Tr2EffectTechniqueInputs.js +2 -2
  1067. package/dist/shader/material/Tr2EffectTechniqueInputs.js.map +1 -1
  1068. package/dist/shader/material/Tr2MaterialStageInput.js +17 -2
  1069. package/dist/shader/material/Tr2MaterialStageInput.js.map +1 -1
  1070. package/dist/shader/material/Tr2SharedConstantBuffers.js +2 -2
  1071. package/dist/shader/material/Tr2SharedConstantBuffers.js.map +1 -1
  1072. package/dist/shader/parameter/CjsParameter.js +95 -1
  1073. package/dist/shader/parameter/CjsParameter.js.map +1 -1
  1074. package/dist/shader/parameter/CjsVectorParameter.js +20 -0
  1075. package/dist/shader/parameter/CjsVectorParameter.js.map +1 -1
  1076. package/dist/shader/parameter/Tr2ConstantEffectParameter.js +2 -2
  1077. package/dist/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  1078. package/dist/shader/parameter/Tr2FloatParameter.js +54 -1
  1079. package/dist/shader/parameter/Tr2FloatParameter.js.map +1 -1
  1080. package/dist/shader/parameter/Tr2GeometryBufferParameter.js +41 -2
  1081. package/dist/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  1082. package/dist/shader/parameter/Tr2Matrix4Parameter.js +56 -2
  1083. package/dist/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  1084. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js +55 -1
  1085. package/dist/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  1086. package/dist/shader/parameter/Tr2TextureAnimationParameter.js +36 -1
  1087. package/dist/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  1088. package/dist/shader/parameter/Tr2Vector2Parameter.js +89 -3
  1089. package/dist/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  1090. package/dist/shader/parameter/Tr2Vector3Parameter.js +98 -3
  1091. package/dist/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  1092. package/dist/shader/parameter/Tr2Vector4Parameter.js +108 -3
  1093. package/dist/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  1094. package/dist/shader/parameter/TriFloatArrayParameter.js +27 -1
  1095. package/dist/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  1096. package/dist/shader/parameter/TriTextureParameter.js +86 -2
  1097. package/dist/shader/parameter/TriTextureParameter.js.map +1 -1
  1098. package/dist/shader/parameter/TriTransformParameter.js +29 -6
  1099. package/dist/shader/parameter/TriTransformParameter.js.map +1 -1
  1100. package/dist/shader/parameter/TriVariableParameter.js +40 -2
  1101. package/dist/shader/parameter/TriVariableParameter.js.map +1 -1
  1102. package/dist/shader/parameter/TriVector4.js +5 -3
  1103. package/dist/shader/parameter/TriVector4.js.map +1 -1
  1104. package/dist/shader/reflection/Tr2ShaderOption.js +8 -3
  1105. package/dist/shader/reflection/Tr2ShaderOption.js.map +1 -1
  1106. package/dist/shader/sampler/Tr2SamplerOverride.js +2 -2
  1107. package/dist/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  1108. package/dist/shader/sampler/Tr2SamplerOverrideData.js +2 -2
  1109. package/dist/shader/sampler/Tr2SamplerOverrideData.js.map +1 -1
  1110. package/dist/shader/support/CjsVariableStore.js +140 -0
  1111. package/dist/shader/support/CjsVariableStore.js.map +1 -1
  1112. package/dist/shader/support/Tr2DataTextureManager.js +2 -2
  1113. package/dist/shader/support/Tr2DataTextureManager.js.map +1 -1
  1114. package/dist/shader/support/Tr2EffectStateManager.js +2 -2
  1115. package/dist/shader/support/Tr2EffectStateManager.js.map +1 -1
  1116. package/dist/shader/support/Tr2ShaderBuffer.js +17 -2
  1117. package/dist/shader/support/Tr2ShaderBuffer.js.map +1 -1
  1118. package/dist/sprite2d/Tr2Sprite2dClipRect.js +2 -2
  1119. package/dist/sprite2d/Tr2Sprite2dClipRect.js.map +1 -1
  1120. package/dist/sprite2d/Tr2Sprite2dD3DVertex.js +2 -2
  1121. package/dist/sprite2d/Tr2Sprite2dD3DVertex.js.map +1 -1
  1122. package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js +4 -4
  1123. package/dist/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
  1124. package/dist/sprite2d/Tr2Sprite2dTriangle.js +2 -2
  1125. package/dist/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
  1126. package/dist/sprite2d/Tr2Sprite2dVertexBase.js +5 -5
  1127. package/dist/sprite2d/Tr2Sprite2dVertexBase.js.map +1 -1
  1128. package/dist/trinityCore/CjsBatchManager.js +67 -1
  1129. package/dist/trinityCore/CjsBatchManager.js.map +1 -1
  1130. package/dist/trinityCore/GrannyBoneOffset.js +56 -5
  1131. package/dist/trinityCore/GrannyBoneOffset.js.map +1 -1
  1132. package/dist/trinityCore/ITriRenderBatchAccumulator.js +90 -2
  1133. package/dist/trinityCore/ITriRenderBatchAccumulator.js.map +1 -1
  1134. package/dist/trinityCore/Tr2DepthStencil.js +3 -3
  1135. package/dist/trinityCore/Tr2DepthStencil.js.map +1 -1
  1136. package/dist/trinityCore/Tr2DirectInstanceData.js +22 -3
  1137. package/dist/trinityCore/Tr2DirectInstanceData.js.map +1 -1
  1138. package/dist/trinityCore/Tr2ExpressionTermInfo.js +23 -2
  1139. package/dist/trinityCore/Tr2ExpressionTermInfo.js.map +1 -1
  1140. package/dist/trinityCore/Tr2GpuBuffer.js +8 -3
  1141. package/dist/trinityCore/Tr2GpuBuffer.js.map +1 -1
  1142. package/dist/{generated/trinityCore → trinityCore}/Tr2GrannyAnimation.js +143 -14
  1143. package/dist/trinityCore/Tr2GrannyAnimation.js.map +1 -0
  1144. package/dist/trinityCore/Tr2InstancedMesh.js +54 -2
  1145. package/dist/trinityCore/Tr2InstancedMesh.js.map +1 -1
  1146. package/dist/trinityCore/Tr2MaterialParameterStore.js +7 -2
  1147. package/dist/trinityCore/Tr2MaterialParameterStore.js.map +1 -1
  1148. package/dist/trinityCore/Tr2Mesh.js +38 -1
  1149. package/dist/trinityCore/Tr2Mesh.js.map +1 -1
  1150. package/dist/trinityCore/Tr2MeshArea.js +80 -2
  1151. package/dist/trinityCore/Tr2MeshArea.js.map +1 -1
  1152. package/dist/trinityCore/Tr2MeshBase.js +101 -5
  1153. package/dist/trinityCore/Tr2MeshBase.js.map +1 -1
  1154. package/dist/trinityCore/Tr2PerObjectData.js +10 -0
  1155. package/dist/trinityCore/Tr2PerObjectData.js.map +1 -1
  1156. package/dist/trinityCore/Tr2PickType.js +33 -0
  1157. package/dist/trinityCore/Tr2PickType.js.map +1 -0
  1158. package/dist/trinityCore/Tr2PrimaryRenderContext.js +2 -2
  1159. package/dist/trinityCore/Tr2PrimaryRenderContext.js.map +1 -1
  1160. package/dist/trinityCore/Tr2RenderBatch.js +139 -2
  1161. package/dist/trinityCore/Tr2RenderBatch.js.map +1 -1
  1162. package/dist/trinityCore/Tr2RenderContext.js +275 -4
  1163. package/dist/trinityCore/Tr2RenderContext.js.map +1 -1
  1164. package/dist/trinityCore/Tr2RenderTarget.js +3 -3
  1165. package/dist/trinityCore/Tr2RenderTarget.js.map +1 -1
  1166. package/dist/trinityCore/Tr2RuntimeGpuBuffer.js +2 -2
  1167. package/dist/trinityCore/Tr2RuntimeGpuBuffer.js.map +1 -1
  1168. package/dist/trinityCore/Tr2RuntimeInstanceData.js +182 -3
  1169. package/dist/trinityCore/Tr2RuntimeInstanceData.js.map +1 -1
  1170. package/dist/trinityCore/Tr2SerializedMorphAnimation.js +2 -2
  1171. package/dist/trinityCore/Tr2SerializedMorphAnimation.js.map +1 -1
  1172. package/dist/trinityCore/Tr2ShLightingManager.js +397 -0
  1173. package/dist/trinityCore/Tr2ShLightingManager.js.map +1 -0
  1174. package/dist/trinityCore/Tr2SwapChain.js +2 -2
  1175. package/dist/trinityCore/Tr2SwapChain.js.map +1 -1
  1176. package/dist/trinityCore/Tr2VariableStore.js +28 -2
  1177. package/dist/trinityCore/Tr2VariableStore.js.map +1 -1
  1178. package/dist/trinityCore/Tr2VisibilityResults.js +9 -4
  1179. package/dist/trinityCore/Tr2VisibilityResults.js.map +1 -1
  1180. package/dist/trinityCore/TriDevice.js +8 -3
  1181. package/dist/trinityCore/TriDevice.js.map +1 -1
  1182. package/dist/trinityCore/TriFloat.js +2 -2
  1183. package/dist/trinityCore/TriFloat.js.map +1 -1
  1184. package/dist/trinityCore/TriFrustum.js +24 -17
  1185. package/dist/trinityCore/TriFrustum.js.map +1 -1
  1186. package/dist/trinityCore/TriFrustumOrtho.js +2 -2
  1187. package/dist/trinityCore/TriFrustumOrtho.js.map +1 -1
  1188. package/dist/trinityCore/TriObserverLocal.js +46 -3
  1189. package/dist/trinityCore/TriObserverLocal.js.map +1 -1
  1190. package/dist/trinityCore/TriProjection.js +88 -34
  1191. package/dist/trinityCore/TriProjection.js.map +1 -1
  1192. package/dist/trinityCore/TriRect.js +14 -2
  1193. package/dist/trinityCore/TriRect.js.map +1 -1
  1194. package/dist/trinityCore/TriRenderBatchAccumulator.js +48 -2
  1195. package/dist/trinityCore/TriRenderBatchAccumulator.js.map +1 -1
  1196. package/dist/trinityCore/TriRenderBatchMap.js +47 -1
  1197. package/dist/trinityCore/TriRenderBatchMap.js.map +1 -1
  1198. package/dist/trinityCore/TriSettings.js +40 -2
  1199. package/dist/trinityCore/TriSettings.js.map +1 -1
  1200. package/dist/trinityCore/TriTorque.js +4 -4
  1201. package/dist/trinityCore/TriTorque.js.map +1 -1
  1202. package/dist/trinityCore/TriVariable.js +32 -2
  1203. package/dist/trinityCore/TriVariable.js.map +1 -1
  1204. package/dist/trinityCore/TriView.js +19 -4
  1205. package/dist/trinityCore/TriView.js.map +1 -1
  1206. package/dist/trinityCore/TriViewport.js +14 -2
  1207. package/dist/trinityCore/TriViewport.js.map +1 -1
  1208. package/dist/trinityCore/{Tr2BindingVector3.js → binding/Tr2BindingVector3.js} +4 -4
  1209. package/dist/trinityCore/binding/Tr2BindingVector3.js.map +1 -0
  1210. package/dist/trinityCore/binding/Tr2DynamicBinding.js +266 -0
  1211. package/dist/trinityCore/binding/Tr2DynamicBinding.js.map +1 -0
  1212. package/dist/trinityCore/binding/Tr2ExternalParameter.js +392 -0
  1213. package/dist/trinityCore/binding/Tr2ExternalParameter.js.map +1 -0
  1214. package/dist/trinityCore/{Tr2PyValueBinding.js → binding/Tr2PyValueBinding.js} +31 -7
  1215. package/dist/trinityCore/binding/Tr2PyValueBinding.js.map +1 -0
  1216. package/dist/trinityCore/binding/TriValueBinding.js +648 -0
  1217. package/dist/trinityCore/binding/TriValueBinding.js.map +1 -0
  1218. package/dist/trinityCore/index.js +11 -2
  1219. package/dist/trinityCore/index.js.map +1 -1
  1220. package/dist/trinityCore/pickRay.js +84 -0
  1221. package/dist/trinityCore/pickRay.js.map +1 -0
  1222. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js +931 -0
  1223. package/dist/trinityCore/rawData/CjsPerObjectLayouts.js.map +1 -0
  1224. package/dist/trinityCore/rawData/RawData.js +434 -0
  1225. package/dist/trinityCore/rawData/RawData.js.map +1 -0
  1226. package/dist/trinityCore/rawData/TriPoolAllocator.js +357 -0
  1227. package/dist/trinityCore/rawData/TriPoolAllocator.js.map +1 -0
  1228. package/dist/ui/Tr2PresentParameters.js +2 -2
  1229. package/dist/ui/Tr2PresentParameters.js.map +1 -1
  1230. package/dist/utilities/Range.js +55 -2
  1231. package/dist/utilities/Range.js.map +1 -1
  1232. package/docs/README.md +88 -0
  1233. package/docs/architecture.md +162 -0
  1234. package/docs/concepts/eve-runtime-behavior.md +86 -0
  1235. package/docs/concepts/generated-class-lifecycle.md +116 -0
  1236. package/docs/reference/api.md +76 -0
  1237. package/docs/reference/classes/eve-runtime.md +106 -0
  1238. package/docs/reference/classes/trinity-core.md +26 -0
  1239. package/docs/reference/implementation-status.md +104 -0
  1240. package/docs/reference/main-semantic-extraction.md +104 -0
  1241. package/package.json +33 -26
  1242. package/dist/eve/DecalVSPerObjectData.js +0 -34
  1243. package/dist/eve/DecalVSPerObjectData.js.map +0 -1
  1244. package/dist/eve/EveBannerItem.js +0 -43
  1245. package/dist/eve/EveBannerItem.js.map +0 -1
  1246. package/dist/eve/EveBannerLight.js.map +0 -1
  1247. package/dist/eve/EveBannerSet.js +0 -109
  1248. package/dist/eve/EveBannerSet.js.map +0 -1
  1249. package/dist/eve/EveBasicPerObjectData.js +0 -31
  1250. package/dist/eve/EveBasicPerObjectData.js.map +0 -1
  1251. package/dist/eve/EveBoosterSet2.js.map +0 -1
  1252. package/dist/eve/EveBoosterSet2Renderable.js.map +0 -1
  1253. package/dist/eve/EveChildSpherePinPerObjectData.js +0 -37
  1254. package/dist/eve/EveChildSpherePinPerObjectData.js.map +0 -1
  1255. package/dist/eve/EveHazeSet.js +0 -72
  1256. package/dist/eve/EveHazeSet.js.map +0 -1
  1257. package/dist/eve/EveHazeSetLight.js.map +0 -1
  1258. package/dist/eve/EveLocator2.js.map +0 -1
  1259. package/dist/eve/EveLocatorSets.js.map +0 -1
  1260. package/dist/eve/EveParticleDirectForce.js.map +0 -1
  1261. package/dist/eve/EveParticleDragForce.js.map +0 -1
  1262. package/dist/eve/EveParticleSpring.js.map +0 -1
  1263. package/dist/eve/EvePerObjectPSData.js +0 -29
  1264. package/dist/eve/EvePerObjectPSData.js.map +0 -1
  1265. package/dist/eve/EvePerObjectVSData.js +0 -29
  1266. package/dist/eve/EvePerObjectVSData.js.map +0 -1
  1267. package/dist/eve/EvePlaneLight.js.map +0 -1
  1268. package/dist/eve/EvePlaneSet.js +0 -104
  1269. package/dist/eve/EvePlaneSet.js.map +0 -1
  1270. package/dist/eve/EvePlaneSetItem.js +0 -45
  1271. package/dist/eve/EvePlaneSetItem.js.map +0 -1
  1272. package/dist/eve/EveSpaceObjectDecal.js +0 -150
  1273. package/dist/eve/EveSpaceObjectDecal.js.map +0 -1
  1274. package/dist/eve/EveSpaceObjectPSData.js +0 -73
  1275. package/dist/eve/EveSpaceObjectPSData.js.map +0 -1
  1276. package/dist/eve/EveSpaceObjectVSData.js +0 -79
  1277. package/dist/eve/EveSpaceObjectVSData.js.map +0 -1
  1278. package/dist/eve/EveSpacePerObjectData.js +0 -97
  1279. package/dist/eve/EveSpacePerObjectData.js.map +0 -1
  1280. package/dist/eve/EveSpherePinPerObjectData.js +0 -37
  1281. package/dist/eve/EveSpherePinPerObjectData.js.map +0 -1
  1282. package/dist/eve/EveSpotlightLight.js.map +0 -1
  1283. package/dist/eve/EveSpotlightSet.js +0 -98
  1284. package/dist/eve/EveSpotlightSet.js.map +0 -1
  1285. package/dist/eve/EveSpriteLight.js.map +0 -1
  1286. package/dist/eve/EveSpriteLineSet.js +0 -74
  1287. package/dist/eve/EveSpriteLineSet.js.map +0 -1
  1288. package/dist/eve/EveSpriteLineSetItem.js.map +0 -1
  1289. package/dist/eve/EveSpriteSet.js +0 -115
  1290. package/dist/eve/EveSpriteSet.js.map +0 -1
  1291. package/dist/eve/EveTrailsSet.js.map +0 -1
  1292. package/dist/eve/Locator.js.map +0 -1
  1293. package/dist/eve/LocatorData.js.map +0 -1
  1294. package/dist/eve/ProcessLifetimeData.js.map +0 -1
  1295. package/dist/eve/attachment/turrets/EveTurretSetPSData.js +0 -47
  1296. package/dist/eve/attachment/turrets/EveTurretSetPSData.js.map +0 -1
  1297. package/dist/eve/attachment/turrets/EveTurretSetVSData.js +0 -62
  1298. package/dist/eve/attachment/turrets/EveTurretSetVSData.js.map +0 -1
  1299. package/dist/eve/child/behaviors/SplineTunnel.js.map +0 -1
  1300. package/dist/eve/child/behaviors/SplineTunnelPoint.js.map +0 -1
  1301. package/dist/eve/perObjectData/DecalPSPerObjectData.js +0 -56
  1302. package/dist/eve/perObjectData/DecalPSPerObjectData.js.map +0 -1
  1303. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js +0 -31
  1304. package/dist/eve/perObjectData/EveMissileWarheadPerObjectData.js.map +0 -1
  1305. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js +0 -36
  1306. package/dist/eve/perObjectData/EveTurretSetPerObjectData.js.map +0 -1
  1307. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js +0 -64
  1308. package/dist/eve/perObjectData/MergeMorphsConstantBuffer.js.map +0 -1
  1309. package/dist/generated/eve/EveCamera.js +0 -264
  1310. package/dist/generated/eve/EveCamera.js.map +0 -1
  1311. package/dist/generated/eve/EveEntity.js +0 -81
  1312. package/dist/generated/eve/EveEntity.js.map +0 -1
  1313. package/dist/generated/eve/attachment/decal/index.js +0 -2
  1314. package/dist/generated/eve/attachment/decal/index.js.map +0 -1
  1315. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js +0 -52
  1316. package/dist/generated/eve/attachment/haze/EveHazeSetItem.js.map +0 -1
  1317. package/dist/generated/eve/attachment/haze/index.js +0 -2
  1318. package/dist/generated/eve/attachment/haze/index.js.map +0 -1
  1319. package/dist/generated/eve/attachment/index.js +0 -5
  1320. package/dist/generated/eve/attachment/index.js.map +0 -1
  1321. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js +0 -55
  1322. package/dist/generated/eve/attachment/spotlights/EveSpotlightSetItem.js.map +0 -1
  1323. package/dist/generated/eve/attachment/spotlights/index.js +0 -2
  1324. package/dist/generated/eve/attachment/spotlights/index.js.map +0 -1
  1325. package/dist/generated/eve/attachment/sprites/EveSpriteSetItem.js.map +0 -1
  1326. package/dist/generated/eve/attachment/sprites/index.js +0 -2
  1327. package/dist/generated/eve/attachment/sprites/index.js.map +0 -1
  1328. package/dist/generated/eve/attachment/turrets/enums.js +0 -32
  1329. package/dist/generated/eve/attachment/turrets/enums.js.map +0 -1
  1330. package/dist/generated/eve/attachment/turrets/index.js +0 -2
  1331. package/dist/generated/eve/attachment/turrets/index.js.map +0 -1
  1332. package/dist/generated/eve/child/EveChildBehaviorSystem.js +0 -357
  1333. package/dist/generated/eve/child/EveChildBehaviorSystem.js.map +0 -1
  1334. package/dist/generated/eve/child/EveChildBulletStorm.js.map +0 -1
  1335. package/dist/generated/eve/child/EveChildLink.js.map +0 -1
  1336. package/dist/generated/eve/child/EveChildSpherePin.js +0 -54
  1337. package/dist/generated/eve/child/EveChildSpherePin.js.map +0 -1
  1338. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js +0 -85
  1339. package/dist/generated/eve/child/behaviors/CollisionAvoidance.js.map +0 -1
  1340. package/dist/generated/eve/child/behaviors/InclusionVolume.js +0 -104
  1341. package/dist/generated/eve/child/behaviors/InclusionVolume.js.map +0 -1
  1342. package/dist/generated/eve/child/behaviors/ProcessLifetime.js +0 -458
  1343. package/dist/generated/eve/child/behaviors/ProcessLifetime.js.map +0 -1
  1344. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js +0 -161
  1345. package/dist/generated/eve/child/behaviors/SplineTunnelGroup.js.map +0 -1
  1346. package/dist/generated/eve/child/behaviors/Wander.js +0 -92
  1347. package/dist/generated/eve/child/behaviors/Wander.js.map +0 -1
  1348. package/dist/generated/eve/child/behaviors/enums.js.map +0 -1
  1349. package/dist/generated/eve/child/modifiers/EveChildModifierAttachToBone.js.map +0 -1
  1350. package/dist/generated/eve/child/modifiers/EveChildModifierBillboard3D.js.map +0 -1
  1351. package/dist/generated/eve/child/modifiers/EveChildModifierStretch.js.map +0 -1
  1352. package/dist/generated/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +0 -1
  1353. package/dist/generated/eve/child/modifiers/index.js +0 -5
  1354. package/dist/generated/eve/child/modifiers/index.js.map +0 -1
  1355. package/dist/generated/eve/child/procedural/EveChildProceduralContainer.js.map +0 -1
  1356. package/dist/generated/eve/child/procedural/index.js +0 -10
  1357. package/dist/generated/eve/child/procedural/index.js.map +0 -1
  1358. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +0 -1
  1359. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +0 -1
  1360. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +0 -1
  1361. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +0 -1
  1362. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +0 -1
  1363. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +0 -1
  1364. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +0 -1
  1365. package/dist/generated/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +0 -1
  1366. package/dist/generated/eve/child/procedural/selection/index.js +0 -9
  1367. package/dist/generated/eve/child/procedural/selection/index.js.map +0 -1
  1368. package/dist/generated/eve/distribution/EveBaseDistributionMethod.js.map +0 -1
  1369. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +0 -1
  1370. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +0 -1
  1371. package/dist/generated/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +0 -1
  1372. package/dist/generated/eve/distribution/attributeModifiers/enums.js.map +0 -1
  1373. package/dist/generated/eve/distribution/attributeModifiers/index.js +0 -5
  1374. package/dist/generated/eve/distribution/attributeModifiers/index.js.map +0 -1
  1375. package/dist/generated/eve/distribution/index.js +0 -19
  1376. package/dist/generated/eve/distribution/index.js.map +0 -1
  1377. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +0 -1
  1378. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +0 -1
  1379. package/dist/generated/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +0 -1
  1380. package/dist/generated/eve/distribution/placement/index.js +0 -4
  1381. package/dist/generated/eve/distribution/placement/index.js.map +0 -1
  1382. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +0 -1
  1383. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +0 -1
  1384. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +0 -1
  1385. package/dist/generated/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +0 -1
  1386. package/dist/generated/eve/distribution/spawnModifiers/index.js +0 -5
  1387. package/dist/generated/eve/distribution/spawnModifiers/index.js.map +0 -1
  1388. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +0 -1
  1389. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +0 -1
  1390. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +0 -1
  1391. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +0 -1
  1392. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +0 -1
  1393. package/dist/generated/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +0 -1
  1394. package/dist/generated/eve/distribution/spawners/index.js +0 -7
  1395. package/dist/generated/eve/distribution/spawners/index.js.map +0 -1
  1396. package/dist/generated/eve/effect/EveLensflare.js.map +0 -1
  1397. package/dist/generated/eve/effect/EveMultiEffect.js +0 -84
  1398. package/dist/generated/eve/effect/EveMultiEffect.js.map +0 -1
  1399. package/dist/generated/eve/effect/EveMultiEffectParameter.js +0 -45
  1400. package/dist/generated/eve/effect/EveMultiEffectParameter.js.map +0 -1
  1401. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js +0 -47
  1402. package/dist/generated/eve/fxAttributes/EveCameraFxAttributes.js.map +0 -1
  1403. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js +0 -63
  1404. package/dist/generated/eve/fxAttributes/EveSpaceObjectFxAttributes.js.map +0 -1
  1405. package/dist/generated/eve/fxAttributes/index.js +0 -3
  1406. package/dist/generated/eve/fxAttributes/index.js.map +0 -1
  1407. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js +0 -58
  1408. package/dist/generated/eve/overlays/EveMeshOverlayEffect.js.map +0 -1
  1409. package/dist/generated/eve/overlays/index.js +0 -2
  1410. package/dist/generated/eve/overlays/index.js.map +0 -1
  1411. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js +0 -66
  1412. package/dist/generated/eve/perObjectData/EveBoosterSetPerObjectData.js.map +0 -1
  1413. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js +0 -39
  1414. package/dist/generated/eve/perObjectData/EveChildBulletStormPerObjectData.js.map +0 -1
  1415. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js +0 -34
  1416. package/dist/generated/eve/perObjectData/EveDecalPerObjectData.js.map +0 -1
  1417. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js +0 -32
  1418. package/dist/generated/eve/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +0 -1
  1419. package/dist/generated/eve/perObjectData/index.js +0 -5
  1420. package/dist/generated/eve/perObjectData/index.js.map +0 -1
  1421. package/dist/generated/eve/scene/EveComponentCollection.js.map +0 -1
  1422. package/dist/generated/eve/scene/EveComponentRegistry.js.map +0 -1
  1423. package/dist/generated/eve/scene/EvePickingContext.js +0 -43
  1424. package/dist/generated/eve/scene/EvePickingContext.js.map +0 -1
  1425. package/dist/generated/eve/scene/EveSceneStaticParticles.js +0 -173
  1426. package/dist/generated/eve/scene/EveSceneStaticParticles.js.map +0 -1
  1427. package/dist/generated/eve/scene/TriShadowFrustum.js +0 -83
  1428. package/dist/generated/eve/scene/TriShadowFrustum.js.map +0 -1
  1429. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js +0 -140
  1430. package/dist/generated/eve/scene/TriShadowOrthoFrustum.js.map +0 -1
  1431. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +0 -1
  1432. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +0 -1
  1433. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +0 -1
  1434. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +0 -1
  1435. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +0 -1
  1436. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +0 -1
  1437. package/dist/generated/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +0 -1
  1438. package/dist/generated/eve/smartLights/attributeModifiers/enums.js.map +0 -1
  1439. package/dist/generated/eve/smartLights/attributeModifiers/index.js +0 -9
  1440. package/dist/generated/eve/smartLights/attributeModifiers/index.js.map +0 -1
  1441. package/dist/generated/eve/socket/EveSocketParameterBindingBase.js.map +0 -1
  1442. package/dist/generated/eve/socket/EveSocketParameterBool.js.map +0 -1
  1443. package/dist/generated/eve/socket/EveSocketParameterColor.js.map +0 -1
  1444. package/dist/generated/eve/socket/EveSocketParameterFloat.js.map +0 -1
  1445. package/dist/generated/eve/socket/EveSocketParameterInt.js.map +0 -1
  1446. package/dist/generated/eve/socket/EveSocketParameterString.js.map +0 -1
  1447. package/dist/generated/eve/socket/EveSocketParameterVector2.js.map +0 -1
  1448. package/dist/generated/eve/socket/EveSocketParameterVector3.js.map +0 -1
  1449. package/dist/generated/eve/socket/EveSocketParameterVector4.js.map +0 -1
  1450. package/dist/generated/eve/socket/index.js +0 -10
  1451. package/dist/generated/eve/socket/index.js.map +0 -1
  1452. package/dist/generated/eve/spaceObject/EvePlanet.js +0 -47
  1453. package/dist/generated/eve/spaceObject/EvePlanet.js.map +0 -1
  1454. package/dist/generated/eve/spaceObject/EveShip2.js.map +0 -1
  1455. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js +0 -46
  1456. package/dist/generated/eve/spaceObject/IEveSpaceObject2.js.map +0 -1
  1457. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js +0 -129
  1458. package/dist/generated/eve/spaceObject/swarm/EveSwarmRenderable.js.map +0 -1
  1459. package/dist/generated/eve/ui/EveLineSet.js.map +0 -1
  1460. package/dist/generated/eve/ui/EveSpherePin.js +0 -94
  1461. package/dist/generated/eve/ui/EveSpherePin.js.map +0 -1
  1462. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js +0 -44
  1463. package/dist/generated/eve/ui/EveTacticalOverlayTrackObject.js.map +0 -1
  1464. package/dist/generated/eve/ui/EveTacticalTrails.js.map +0 -1
  1465. package/dist/generated/trinityCore/Tr2DynamicBinding.js +0 -58
  1466. package/dist/generated/trinityCore/Tr2DynamicBinding.js.map +0 -1
  1467. package/dist/generated/trinityCore/Tr2ExternalParameter.js +0 -164
  1468. package/dist/generated/trinityCore/Tr2ExternalParameter.js.map +0 -1
  1469. package/dist/generated/trinityCore/Tr2GrannyAnimation.js.map +0 -1
  1470. package/dist/generated/trinityCore/Tr2ShLightingManager.js +0 -48
  1471. package/dist/generated/trinityCore/Tr2ShLightingManager.js.map +0 -1
  1472. package/dist/generated/trinityCore/TriValueBinding.js +0 -249
  1473. package/dist/generated/trinityCore/TriValueBinding.js.map +0 -1
  1474. package/dist/shader/Tr2Shader.js +0 -150
  1475. package/dist/shader/Tr2Shader.js.map +0 -1
  1476. package/dist/shader/reflection/Tr2EffectConstant.js +0 -61
  1477. package/dist/shader/reflection/Tr2EffectConstant.js.map +0 -1
  1478. package/dist/shader/reflection/Tr2EffectDefine.js +0 -34
  1479. package/dist/shader/reflection/Tr2EffectDefine.js.map +0 -1
  1480. package/dist/shader/reflection/Tr2EffectDescription.js +0 -34
  1481. package/dist/shader/reflection/Tr2EffectDescription.js.map +0 -1
  1482. package/dist/shader/reflection/Tr2EffectLibrary.js +0 -61
  1483. package/dist/shader/reflection/Tr2EffectLibrary.js.map +0 -1
  1484. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js +0 -54
  1485. package/dist/shader/reflection/Tr2EffectParameterAnnotation.js.map +0 -1
  1486. package/dist/shader/reflection/Tr2EffectResource.js +0 -63
  1487. package/dist/shader/reflection/Tr2EffectResource.js.map +0 -1
  1488. package/dist/shader/reflection/Tr2EffectStageInput.js +0 -58
  1489. package/dist/shader/reflection/Tr2EffectStageInput.js.map +0 -1
  1490. package/dist/shader/reflection/Tr2EffectTechnique.js +0 -40
  1491. package/dist/shader/reflection/Tr2EffectTechnique.js.map +0 -1
  1492. package/dist/shader/reflection/Tr2Pass.js +0 -46
  1493. package/dist/shader/reflection/Tr2Pass.js.map +0 -1
  1494. package/dist/shader/sampler/Tr2SamplerSetup.js +0 -34
  1495. package/dist/shader/sampler/Tr2SamplerSetup.js.map +0 -1
  1496. package/dist/trinityCore/Tr2BindingVector3.js.map +0 -1
  1497. package/dist/trinityCore/Tr2PyValueBinding.js.map +0 -1
  1498. /package/dist/{generated/eve → eve}/distribution/attributeModifiers/enums.js +0 -0
  1499. /package/dist/{generated/eve → eve}/smartLights/attributeModifiers/enums.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"EveSpaceObject2.js","sources":["../../../../src/eve/spaceObject/EveSpaceObject2.js"],"sourcesContent":["// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.h\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2.cpp\r\n// Source: E:\\carbonengine\\trinity\\trinity\\Eve\\SpaceObject\\EveSpaceObject2_Blue.cpp\r\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/core-types/schema\";\r\nimport { EveEntity } from \"../../generated/eve/EveEntity.js\";\r\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\r\nimport { EveChildInheritProperties } from \"../child/EveChildInheritProperties.js\";\r\nimport { box3 } from \"@carbonenginejs/core-math/box3\";\r\nimport { mat4 } from \"@carbonenginejs/core-math/mat4\";\r\nimport { quat } from \"@carbonenginejs/core-math/quat\";\r\nimport { sph3 } from \"@carbonenginejs/core-math/sph3\";\r\nimport { vec3 } from \"@carbonenginejs/core-math/vec3\";\r\nimport { vec4 } from \"@carbonenginejs/core-math/vec4\";\r\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\r\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\r\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\r\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\r\nimport { TriBatchType } from \"@carbonenginejs/runtime-const/graphics\";\r\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\r\nimport { Tr2RenderBatch, TriRenderBatchAreaBlock } from \"../../trinityCore/Tr2RenderBatch.js\";\r\n\r\n// Static scratch for the sorted-transparent area pass (allocation rules: hot\r\n// per-frame path, copy-into, never allocate per call).\r\nconst TRANSPARENT_AABB_MIN = vec3.create();\r\nconst TRANSPARENT_AABB_MAX = vec3.create();\r\nconst TRANSPARENT_CENTER = vec3.create();\r\n\r\n// Carbon EveMeshOverlayEffect::OverlayType (EveMeshOverlayEffect.h:35-41).\r\nconst OVERLAY_TYPE_OPAQUEONLY = 0;\r\nconst OVERLAY_TYPE_ALL = 1;\r\n\r\n@type.define({ className: \"EveSpaceObject2\", family: \"eve/spaceObject\" })\r\nexport class EveSpaceObject2 extends EveEntity\r\n{\r\n\r\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @schema.enum(\"ReflectionMode\")\r\n reflectionMode = 3;\r\n\r\n /** m_effectChildren (PIEveSpaceObjectChildVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectChild\")\r\n effectChildren = [];\r\n\r\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveTransform\")\r\n children = [];\r\n\r\n /** m_name (std::string) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n /** m_mute (bool) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n mute = false;\r\n\r\n /** m_inheritProperties (EveChildInheritPropertiesPtr) [READWRITE] */\r\n @io.readwrite\r\n @type.objectRef(\"EveChildInheritProperties\")\r\n inheritProperties = null;\r\n\r\n /** m_customMasks (PEveCustomMaskVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveCustomMask\")\r\n customMasks = [];\r\n\r\n /** m_overlayEffects (PEveMeshOverlayEffectVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveMeshOverlayEffect\")\r\n overlayEffects = [];\r\n\r\n /** m_positionDelta (Tr2BindingVector3Ptr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2BindingVector3\")\r\n positionDelta = null;\r\n\r\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\r\n @io.read\r\n @type.int32\r\n @schema.enum(\"Tr2Lod\")\r\n lodLevel = -1;\r\n\r\n /** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriCurveSet\")\r\n curveSets = [];\r\n\r\n /** m_isPickable (bool) [READWRITE] */\r\n @io.readwrite\r\n @type.boolean\r\n isPickable = true;\r\n\r\n /** m_estimatedPixelDiameter (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameter = 0;\r\n\r\n /** m_estimatedPixelDiameterWithChildren (float) [READ] */\r\n @io.read\r\n @type.float32\r\n estimatedPixelDiameterWithChildren = 0;\r\n\r\n /** m_generatedShapeEllipsoidCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_generatedShapeEllipsoidRadius (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n generatedShapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_animationUpdater (Tr2GrannyAnimationPtr) [READ] */\r\n @io.read\r\n @type.objectRef(\"Tr2GrannyAnimation\")\r\n animationUpdater = null;\r\n\r\n /** m_dna (std::string) [READ, PERSIST] */\r\n @io.persist\r\n @type.string\r\n dna = \"\";\r\n\r\n /** m_castShadow (bool) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n castShadow = false;\r\n\r\n /** m_isAnimated (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n isAnimated = false;\r\n\r\n /** m_dynamicBoundingSphereEnabled (bool) [READ, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n dynamicBoundingSphereEnabled = false;\r\n\r\n /** m_attachments (PIEveSpaceObjectAttachmentVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"IEveSpaceObjectAttachment\")\r\n attachments = [];\r\n\r\n /** m_decals (PEveSpaceObjectDecalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveSpaceObjectDecal\")\r\n decals = [];\r\n\r\n /** m_lights (PTr2LightVector) [READ, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.list(\"Tr2Light\")\r\n lights = [];\r\n\r\n /** m_externalParameters (PTr2ExternalParameterVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"Tr2ExternalParameter\")\r\n externalParameters = [];\r\n\r\n /** m_controllers (PITr2ControllerVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"ITr2Controller\")\r\n controllers = [];\r\n\r\n /** m_locators (PEveLocator2Vector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocator2\")\r\n locators = [];\r\n\r\n /** m_mesh (Tr2MeshBasePtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"Tr2MeshBase\")\r\n mesh = null;\r\n\r\n /** m_impactOverlay (EveImpactOverlayPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"EveImpactOverlay\")\r\n impactOverlay = null;\r\n\r\n /** m_clipSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n clipSphereCenter = vec3.create();\r\n\r\n /** m_clipSphereFactor2 (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor2 = 0;\r\n\r\n /** m_clipSphereFactor (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n clipSphereFactor = 0;\r\n\r\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"TriObserverLocal\")\r\n observers = [];\r\n\r\n /** m_worldPosition (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n worldPosition = vec3.create();\r\n\r\n /** m_ballRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n rotationCurve = null;\r\n\r\n /** m_worldRotation (Quaternion) [READ] */\r\n @io.read\r\n @type.quat\r\n worldRotation = quat.create();\r\n\r\n /** m_modelScale (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n modelScale = 1;\r\n\r\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\r\n @io.persist\r\n @type.list(\"EveLocatorSets\")\r\n locatorSets = [];\r\n\r\n /** m_activationStrength (float) [READWRITE] */\r\n @io.readwrite\r\n @type.float32\r\n activationStrength = 1;\r\n\r\n /** m_albedoColor (Color) [READWRITE] */\r\n @io.readwrite\r\n @type.color\r\n albedoColor = vec4.createLinear();\r\n\r\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.boolean\r\n display = true;\r\n\r\n /** m_update (bool) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.boolean\r\n update = true;\r\n\r\n /** m_secondaryLightingSphereRadius (float) [READ] */\r\n @io.read\r\n @type.float32\r\n secondaryLightingSphereRadius = 0;\r\n\r\n /** m_boundingSphereCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n boundingSphereCenter = vec3.create();\r\n\r\n /** m_dirtLevel (float) [READWRITE, NOTIFY] */\r\n @io.notify\r\n @io.readwrite\r\n @type.float32\r\n dirtLevel = 0;\r\n\r\n /** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */\r\n @io.readwrite\r\n @type.vec4\r\n customShaderData = vec4.create();\r\n\r\n /** m_lastDamageLocatorHit (int) [READ] */\r\n @io.read\r\n @type.int32\r\n lastDamageLocatorHit = -1;\r\n\r\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.float32\r\n boundingSphereRadius = -1;\r\n\r\n /** m_boundingSphereWorldCenter (Vector3) [READ] */\r\n @io.read\r\n @type.vec3\r\n modelWorldPosition = vec3.create();\r\n\r\n /** m_modelTranslation (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n modelTranslationCurve = null;\r\n\r\n /** m_modelRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriQuaternionFunction\")\r\n modelRotationCurve = null;\r\n\r\n /** m_shapeEllipsoidCenter (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidCenter = vec3.create();\r\n\r\n /** m_shapeEllipsoidRadius (Vector3) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.vec3\r\n shapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\r\n\r\n /** m_ballPosition (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\r\n @io.persist\r\n @type.objectRef(\"ITriVectorFunction\")\r\n translationCurve = null;\r\n\r\n @io.read\r\n @type.mat4\r\n worldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n inverseWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.mat4\r\n lastWorldTransform = mat4.create();\r\n\r\n @io.read\r\n @type.vec3\r\n worldVelocity = vec3.create();\r\n\r\n @io.readwrite\r\n @type.objectRef(\"ITr2AudGeometry\")\r\n audioGeometry = null;\r\n\r\n @type.boolean\r\n isVisible = false;\r\n\r\n #controllerVariables = new Map([\r\n [\"DirtLevel\", 0],\r\n [\"ActivationStrength\", 1],\r\n [\"ShieldDamage\", 1],\r\n [\"ArmorDamage\", 1],\r\n [\"HullDamage\", 1],\r\n [\"ClipSphereFactor\", 0],\r\n [\"ClipSphereFactor2\", 0]\r\n ]);\r\n\r\n #lastUpdateTransformTime = null;\r\n\r\n // Carbon m_lastCurveUpdateTime: stamped by the sync-side LOD gate; the async\r\n // side updates curve sets only when it matches the frame time.\r\n #lastCurveUpdateTime = 0;\r\n\r\n // Carbon m_dynamicBoundingSphere: disabled while w is -1; a future animation\r\n // updater port publishes skinned bounds here.\r\n #dynamicBoundingSphere = sph3.set(sph3.create(), 0, 0, 0, -1);\r\n\r\n // Carbon keeps the realized world sphere separate from the authored local\r\n // sphere. It is refreshed by UpdateWorldBounds after transform changes.\r\n #boundingSphereWorldRadius = -1;\r\n\r\n // Carbon visibility and mesh LOD state are runtime-only renderer results.\r\n #isInFrustum = false;\r\n\r\n #isMeshVisible = false;\r\n\r\n #lodLevelWithChildren = Tr2Lod.TR2_LOD_UNSPECIFIED;\r\n\r\n #meshScreenSize = 0;\r\n\r\n #overlayMeshAreaBlocks = [ [], [] ];\r\n\r\n #shadowMeshOpaqueAreas = [];\r\n\r\n #cachedAreaBlocksBuilt = false;\r\n\r\n // Carbon m_localAabbMin/Max: cached so GetLocalBoundingBox can answer before\r\n // LOD selection assigns a mesh (at worst it lags one frame).\r\n #localAabbMin = vec3.create();\r\n\r\n #localAabbMax = vec3.create();\r\n\r\n // Carbon m_allowLodSelection: cleared by FreezeHighDetailMesh.\r\n #allowLodSelection = true;\r\n\r\n // Carbon m_impostorMode: the impostor system that raises it is unported.\r\n #impostorMode = false;\r\n\r\n get meshLod()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n set meshLod(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n }\r\n // Authored inherit properties propagate as part of the lifecycle so a\r\n // field-populated graph (values import, document hydration) matches the\r\n // SetInheritProperties authoring path.\r\n if (this.inheritProperties)\r\n {\r\n this.#PropagateInheritProperties();\r\n }\r\n // Carbon derives the impact overlay's damage locator count from the\r\n // \"damage\" locator set at build time; deriving it here keeps it out of\r\n // the authored values while reproducing the same live state.\r\n if (this.impactOverlay)\r\n {\r\n let damageLocatorCount = 0;\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(\"damage\")) damageLocatorCount += set.locators.length;\r\n }\r\n this.impactOverlay.SetDamageLocatorCount(damageLocatorCount);\r\n }\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetMesh()\r\n {\r\n return this.mesh;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMesh(mesh)\r\n {\r\n this.mesh = mesh ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddController(controller)\r\n {\r\n this.controllers.push(controller);\r\n if (!controller?.IsLinked?.())\r\n {\r\n controller?.Link?.(this);\r\n }\r\n EveSpaceObject2.#ApplyControllerVariables(controller, this.#controllerVariables, \"SetVariable\");\r\n return controller;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddObserver(observer)\r\n {\r\n this.observers.push(observer);\r\n return observer;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetInheritProperties(colorSet)\r\n {\r\n if (!this.inheritProperties)\r\n {\r\n this.inheritProperties = new EveChildInheritProperties();\r\n }\r\n this.inheritProperties.SetProperties(colorSet);\r\n this.#PropagateInheritProperties();\r\n }\r\n\r\n #PropagateInheritProperties()\r\n {\r\n const properties = this.inheritProperties.GetProperties();\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetInheritProperties?.(properties);\r\n }\r\n for (const light of this.lights)\r\n {\r\n light?.SetInheritProperties?.(properties);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetEffectChildByName(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const child of this.effectChildren)\r\n {\r\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\r\n {\r\n return child;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n AddToEffectChildrenList(child)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n child?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.effectChildren.push(child);\r\n EveSpaceObject2.#ApplyControllerVariables(child, this.#controllerVariables, \"SetControllerVariable\");\r\n return child;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n AddLight(light)\r\n {\r\n if (this.inheritProperties)\r\n {\r\n light?.SetInheritProperties?.(this.inheritProperties.GetProperties());\r\n }\r\n this.lights.push(light);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ClearLights()\r\n {\r\n this.lights.length = 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n RemoveFromEffectChildrenList(child)\r\n {\r\n const index = this.effectChildren.indexOf(child);\r\n if (index === -1)\r\n {\r\n return false;\r\n }\r\n this.effectChildren.splice(index, 1);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelRotationCurve(curve)\r\n {\r\n this.modelRotationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelRotationCurve()\r\n {\r\n return this.modelRotationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetModelTranslationCurve(curve)\r\n {\r\n this.modelTranslationCurve = curve ?? null;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetModelTranslationCurve()\r\n {\r\n return this.modelTranslationCurve;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateWorldTransform(time)\r\n {\r\n const nextTime = Number(time) || 0;\r\n if (this.#lastUpdateTransformTime === nextTime)\r\n {\r\n return false;\r\n }\r\n this.#lastUpdateTransformTime = nextTime;\r\n mat4.copy(this.lastWorldTransform, this.worldTransform);\r\n\r\n EveSpaceObject2.#UpdateCurve(this.translationCurve, nextTime, this.worldPosition, EveSpaceObject2.#zero);\r\n if (this.translationCurve?.GetValueDotAt)\r\n {\r\n this.translationCurve.GetValueDotAt(nextTime, this.worldVelocity);\r\n }\r\n else\r\n {\r\n vec3.set(this.worldVelocity, 0, 0, 0);\r\n }\r\n\r\n EveSpaceObject2.#UpdateCurve(this.rotationCurve, nextTime, this.worldRotation, EveSpaceObject2.#identityRotation);\r\n const rotation = quat.clone(this.worldRotation);\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelRotationCurve, nextTime, modelRotation, EveSpaceObject2.#identityRotation);\r\n // Carbon (row-vector): rotation = modelRotation * m_worldRotation - model first.\r\n quat.multiply(rotation, rotation, modelRotation);\r\n }\r\n\r\n mat4.fromQuat(this.worldTransform, rotation);\r\n if (this.modelScale !== 1)\r\n {\r\n mat4.scale(this.worldTransform, this.worldTransform, [this.modelScale, this.modelScale, this.modelScale]);\r\n }\r\n\r\n if (this.modelTranslationCurve)\r\n {\r\n const modelTranslation = vec3.create();\r\n EveSpaceObject2.#UpdateCurve(this.modelTranslationCurve, nextTime, modelTranslation, EveSpaceObject2.#zero);\r\n vec3.transformMat4(modelTranslation, modelTranslation, this.worldTransform);\r\n this.worldTransform[12] = this.worldPosition[0] + modelTranslation[0];\r\n this.worldTransform[13] = this.worldPosition[1] + modelTranslation[1];\r\n this.worldTransform[14] = this.worldPosition[2] + modelTranslation[2];\r\n }\r\n else\r\n {\r\n this.worldTransform[12] = this.worldPosition[0];\r\n this.worldTransform[13] = this.worldPosition[1];\r\n this.worldTransform[14] = this.worldPosition[2];\r\n }\r\n\r\n if (!mat4.invert(this.inverseWorldTransform, this.worldTransform))\r\n {\r\n mat4.identity(this.inverseWorldTransform);\r\n }\r\n this.UpdateWorldBounds();\r\n return true;\r\n }\r\n\r\n /**\r\n * Refreshes Carbon's realized world-space sphere from the dynamic skinned\r\n * sphere when available, otherwise from the authored local sphere.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.\")\r\n UpdateWorldBounds()\r\n {\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n updater.GetDynamicBounds?.(this.#dynamicBoundingSphere, this.#localAabbMin, this.#localAabbMax);\r\n if (this.#dynamicBoundingSphere[3] > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.#dynamicBoundingSphere, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.#dynamicBoundingSphere[3];\r\n return true;\r\n }\r\n }\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.transformMat4(this.modelWorldPosition, this.boundingSphereCenter, this.worldTransform);\r\n this.#boundingSphereWorldRadius = this.modelScale * this.boundingSphereRadius;\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateSyncronous(updateContext = null)\r\n {\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n this.UpdateWorldTransform(time);\r\n if (!this.update)\r\n {\r\n return false;\r\n }\r\n\r\n const observerTransform = this.GetObserverTransform();\r\n for (const observer of this.observers)\r\n {\r\n observer?.Update?.(observerTransform);\r\n }\r\n\r\n // LOD-gated curve/overlay stamp (Carbon EveSpaceObject2::UpdateSyncronous:\r\n // ShouldUpdate(m_lodLevelWithChildren, time - m_lastCurveUpdateTime) -\r\n // adapted to lodLevel, m_lodLevelWithChildren is unported). Overlay effects\r\n // receive the context time as BOTH clocks, as Carbon does; the async pass\r\n // updates curve sets only on frames stamped here.\r\n if (EveLODHelper.ShouldUpdate(this.lodLevel, time - this.#lastCurveUpdateTime))\r\n {\r\n this.#lastCurveUpdateTime = time;\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.Update?.(time, time);\r\n }\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateSyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateSyncronous?.(updateContext, this);\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n UpdateAsyncronous(updateContext = null)\r\n {\r\n if (!this.update)\r\n {\r\n return 0;\r\n }\r\n\r\n const threshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetHighDetailThreshold\", \"highDetailThreshold\");\r\n const frequency = this.isVisible && threshold > 0\r\n ? Math.min(1, this.estimatedPixelDiameter / threshold)\r\n : 0;\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Update?.(frequency);\r\n }\r\n\r\n // Object-level curve sets update only on frames the sync-side LOD gate\r\n // stamped, receiving the context time as BOTH realTime and simTime\r\n // (Carbon EveSpaceObject2::UpdateAsyncronous: if (m_lastCurveUpdateTime ==\r\n // time) (*it)->Update(time, time)).\r\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\r\n if (this.#lastCurveUpdateTime === time)\r\n {\r\n for (const curveSet of this.curveSets)\r\n {\r\n curveSet?.Update?.(time, time);\r\n }\r\n }\r\n\r\n for (const child of this.children)\r\n {\r\n child?.Update?.(updateContext);\r\n }\r\n\r\n if (this.effectChildren.length)\r\n {\r\n const params = new EveChildUpdateParams();\r\n params.spaceObjectParent = this;\r\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\r\n params.activationStrength = this.activationStrength;\r\n params.controllerUpdateFrequency = frequency;\r\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\r\n for (const child of this.effectChildren)\r\n {\r\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\r\n child?.UpdateAsyncronous?.(updateContext, params);\r\n }\r\n }\r\n\r\n this.impactOverlay?.UpdateAsyncronous?.(updateContext, this);\r\n return frequency;\r\n }\r\n\r\n /**\r\n * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards\r\n * visibility to the explicitly owned visual branches.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.\")\r\n UpdateVisibility(updateContext = null, _parentTransform = EveSpaceObject2.#identityTransform)\r\n {\r\n this.isVisible = false;\r\n this.#isMeshVisible = false;\r\n this.#isInFrustum = false;\r\n if (!this.display)\r\n {\r\n return false;\r\n }\r\n\r\n this.UpdateWorldBounds();\r\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\r\n this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n this.#impostorMode = false;\r\n\r\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\r\n const lowThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetLowDetailThreshold\", \"lowDetailThreshold\");\r\n const mediumThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetMediumDetailThreshold\", \"mediumDetailThreshold\");\r\n const visibilityThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetVisibilityThreshold\", \"visibilityThreshold\");\r\n const lodFactor = EveSpaceObject2.#GetContextValue(updateContext, \"GetLodFactor\", \"lodFactor\") || 1;\r\n\r\n if (this.boundingSphereRadius > 0 && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n if (frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false)\r\n {\r\n this.EstimatePixelDiameter(frustum);\r\n this.#isMeshVisible = true;\r\n }\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform, null, 0))\r\n {\r\n this.#isMeshVisible = true;\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform);\r\n }\r\n }\r\n\r\n if (this.GetBoundingSphere(EveSpaceObject2.#worldSphere, 1))\r\n {\r\n this.#isInFrustum = frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false;\r\n this.estimatedPixelDiameterWithChildren = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n if (this.#isInFrustum && this.estimatedPixelDiameterWithChildren >= visibilityThreshold)\r\n {\r\n this.isVisible = true;\r\n }\r\n }\r\n\r\n if (this.isVisible)\r\n {\r\n if (this.estimatedPixelDiameter > mediumThreshold) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameter > lowThreshold) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\r\n\r\n if (this.estimatedPixelDiameterWithChildren > mediumThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_HIGH;\r\n else if (this.estimatedPixelDiameterWithChildren > lowThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_MEDIUM;\r\n else this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\r\n }\r\n\r\n for (const observer of this.observers)\r\n {\r\n const target = observer?.GetObserver?.() ?? observer?.observer;\r\n target?.SetVisibility?.(this.isVisible);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.UpdateVisibility?.(updateContext, this.worldTransform, this.#lodLevelWithChildren);\r\n }\r\n\r\n if (this.mesh && this.#boundingSphereWorldRadius > 0)\r\n {\r\n EveSpaceObject2.#SetSphere(\r\n EveSpaceObject2.#worldSphere,\r\n this.modelWorldPosition,\r\n this.#boundingSphereWorldRadius\r\n );\r\n this.#meshScreenSize = EveSpaceObject2.#GetEstimatedPixelSize(frustum, EveSpaceObject2.#worldSphere) * lodFactor;\r\n if (!this.#allowLodSelection) this.#meshScreenSize = Infinity;\r\n this.mesh.UseWithScreenSize?.(this.#meshScreenSize, this.#boundingSphereWorldRadius);\r\n }\r\n return this.isVisible;\r\n }\r\n\r\n /** Collects the hull and explicitly owned Carbon child/decal renderables. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.\")\r\n GetRenderables(out = [])\r\n {\r\n if (!this.display || !this.isVisible) return out;\r\n if (this.#allowLodSelection && this.#isMeshVisible)\r\n {\r\n this.mesh?.GetBoundingBox?.(this.#localAabbMin, this.#localAabbMax);\r\n }\r\n if (this.mesh && this.#isMeshVisible && this.mesh.IsLoading?.() !== true)\r\n {\r\n out.push(this);\r\n }\r\n if (this.DisplayChildren())\r\n {\r\n for (const child of this.children) child?.GetRenderables?.(out);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (this.DisplayChildren() || child?.IsAlwaysOn?.()) child?.GetRenderables?.(out);\r\n }\r\n if (this.mesh && this.#isMeshVisible)\r\n {\r\n const geometryResource = this.mesh.GetGeometryResource?.();\r\n if (geometryResource)\r\n {\r\n for (const decal of this.decals)\r\n {\r\n decal?.GetRenderables?.(out, null, geometryResource, this.#meshScreenSize);\r\n }\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated\r\n * attachments recurse, the impact overlay contributes, the hull mesh delegates\r\n * per batch type, and TRANSPARENT routes through the distance-sorted area\r\n * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is\r\n * deferred with the overlay realization work. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.\")\r\n GetBatches(batches, batchType, perObjectData, reason, renderContext = null)\r\n {\r\n if (!this.mesh) return false;\r\n if (this.mesh.display === false) return false;\r\n\r\n // Returns whether any batch was committed (JS addition; Carbon returns\r\n // void). The O(1) accumulator count makes the delta check free.\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n if (this.activationStrength !== 0)\r\n {\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.GetBatches?.(batches, batchType, perObjectData, reason);\r\n }\r\n }\r\n\r\n this.impactOverlay?.GetBatches?.(batches, batchType, perObjectData, this.#meshScreenSize);\r\n\r\n const areas = this.mesh.GetAreas?.(batchType);\r\n if (areas)\r\n {\r\n if (batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\r\n {\r\n this.mesh.GetBatches(batches, areas, perObjectData);\r\n }\r\n else\r\n {\r\n this.#GetSortedTransparentBatches(areas, batches, perObjectData, renderContext);\r\n }\r\n }\r\n\r\n // add overlay effect batches (Carbon calls this for every batch type)\r\n this.GetBatchesFromOverlayVector(batches, perObjectData, batchType, this.mesh);\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n // Carbon GetSortedBatchesFromMeshAreaVector (EveSpaceObject2.cpp:57-121):\r\n // object-space area bounding-box centers -> world space -> squared distance to\r\n // the view position, sorted back-to-front (descending), committed in that\r\n // order into the order-preserving TRANSPARENT accumulator. Bounding boxes come\r\n // from the geometry resource when it exposes them; a failed lookup keeps\r\n // Carbon's origin-center fallback.\r\n #GetSortedTransparentBatches(areas, batches, perObjectData, renderContext)\r\n {\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n const sorted = [];\r\n for (const area of areas)\r\n {\r\n if (!area || area.GetDisplay?.() === false) continue;\r\n\r\n vec3.set(TRANSPARENT_CENTER, 0, 0, 0);\r\n if (geometry?.GetAreaBoundingBox?.(meshIndex, area.GetIndex(), TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX))\r\n {\r\n vec3.add(TRANSPARENT_CENTER, TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX);\r\n vec3.scale(TRANSPARENT_CENTER, TRANSPARENT_CENTER, 0.5);\r\n }\r\n vec3.transformMat4(TRANSPARENT_CENTER, TRANSPARENT_CENTER, this.worldTransform);\r\n\r\n const dx = (viewPosition?.[0] ?? 0) - TRANSPARENT_CENTER[0];\r\n const dy = (viewPosition?.[1] ?? 0) - TRANSPARENT_CENTER[1];\r\n const dz = (viewPosition?.[2] ?? 0) - TRANSPARENT_CENTER[2];\r\n sorted.push({ area, distance: dx * dx + dy * dy + dz * dz });\r\n }\r\n\r\n sorted.sort((a, b) => b.distance - a.distance);\r\n\r\n for (const entry of sorted)\r\n {\r\n const area = entry.area;\r\n if (!area.GetMaterialInterface?.()) continue;\r\n const batch = this.mesh.CreateGeometryBatch(geometry, area, perObjectData);\r\n if (batch) batches.Commit(batch);\r\n }\r\n }\r\n\r\n /** Rebuilds the cached overlay/shadow area-block lists from the current mesh\r\n * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by\r\n * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +\r\n * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the\r\n * shadow list groups OPAQUE areas by shared material. All coalesced. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.\")\r\n RebuildCachedData()\r\n {\r\n this.ReleaseCachedData();\r\n if (!this.mesh) return;\r\n\r\n const all = this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL];\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_TRANSPARENT);\r\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_DECAL);\r\n this.mesh.CollectAreaBlocks(\r\n this.#overlayMeshAreaBlocks[OVERLAY_TYPE_OPAQUEONLY], TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n TriRenderBatchAreaBlock.Optimize(blocks);\r\n }\r\n\r\n this.mesh.CollectAreaBlocksWithSharedMaterials(\r\n this.#shadowMeshOpaqueAreas, TriBatchType.TRIBATCHTYPE_OPAQUE);\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n collector.Optimize();\r\n }\r\n this.#cachedAreaBlocksBuilt = true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n ReleaseCachedData()\r\n {\r\n for (const blocks of this.#overlayMeshAreaBlocks)\r\n {\r\n blocks.length = 0;\r\n }\r\n this.#shadowMeshOpaqueAreas.length = 0;\r\n this.#cachedAreaBlocksBuilt = false;\r\n }\r\n\r\n #EnsureCachedAreaBlocks()\r\n {\r\n if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();\r\n }\r\n\r\n /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per\r\n * cached shared-material OPAQUE area block, using the area's own material.\r\n * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the\r\n * engine via the geometry source descriptor, so shadowPixelSize travels unused\r\n * until engine LOD selection consumes it. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.\")\r\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\r\n {\r\n if (!this.mesh || this.mesh.display === false) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = this.mesh.meshIndex ?? 0;\r\n\r\n let committed = false;\r\n for (const collector of this.#shadowMeshOpaqueAreas)\r\n {\r\n const material = collector.shaderMaterial;\r\n if (!material) continue;\r\n for (const block of collector.areaBlockVector)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) continue;\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n committed = batches.Commit(batch) || committed;\r\n }\r\n }\r\n return committed;\r\n }\r\n\r\n /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the\r\n * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at\r\n * maximum priority; each displayed overlay effect draws its per-batch-type\r\n * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything\r\n * else -> TYPE_ALL). */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Generated EveMeshOverlayEffect has no method surface yet, so the per-batch-type effect selection reads its fields here until the class is promoted; realized-LOD draw args defer to the engine.\")\r\n GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh)\r\n {\r\n const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;\r\n if (!impactEffect && !this.overlayEffects.length) return false;\r\n if (!mesh) return false;\r\n this.#EnsureCachedAreaBlocks();\r\n\r\n const committedBefore = batches.GetBatchCount?.() ?? 0;\r\n\r\n const geometry = mesh.GetGeometryResource?.() ?? null;\r\n const meshIndex = mesh.meshIndex ?? 0;\r\n\r\n if (impactEffect)\r\n {\r\n for (const block of this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL])\r\n {\r\n this.#CommitBlockBatch(batches, impactEffect, geometry, meshIndex, block, perObjectData, 0xFFFFFFFF);\r\n }\r\n }\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n const effects = this.#OverlayEffectsFor(overlay, batchType);\r\n if (!effects) continue;\r\n\r\n const overlayType = batchType === TriBatchType.TRIBATCHTYPE_OPAQUE\r\n ? OVERLAY_TYPE_OPAQUEONLY\r\n : OVERLAY_TYPE_ALL;\r\n const blocks = this.#overlayMeshAreaBlocks[overlayType];\r\n for (const effect of effects)\r\n {\r\n for (const block of blocks)\r\n {\r\n this.#CommitBlockBatch(batches, effect, geometry, meshIndex, block, perObjectData, 0);\r\n }\r\n }\r\n }\r\n\r\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\r\n }\r\n\r\n #CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority)\r\n {\r\n const batch = new Tr2RenderBatch();\r\n batch.SetMaterial(material);\r\n if (!batch.IsValid()) return;\r\n if (priority !== 0) batch.SetPriority(priority);\r\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\r\n batch.SetPerObjectData(perObjectData ?? null);\r\n batches.Commit(batch);\r\n }\r\n\r\n // EveMeshOverlayEffect::GetEffects (display-gated, per batch type). Prefers a\r\n // promoted method surface; falls back to the generated class's fields.\r\n #OverlayEffectsFor(overlay, batchType)\r\n {\r\n if (!overlay) return null;\r\n if (typeof overlay.GetEffects === \"function\") return overlay.GetEffects(batchType) ?? null;\r\n if (overlay.display === false) return null;\r\n\r\n switch (batchType)\r\n {\r\n case TriBatchType.TRIBATCHTYPE_OPAQUE: return overlay.opaqueEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DECAL: return overlay.decalEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_TRANSPARENT: return overlay.transparentEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_ADDITIVE: return overlay.additiveEffects ?? null;\r\n case TriBatchType.TRIBATCHTYPE_DISTORTION: return overlay.distortionEffects ?? null;\r\n default: return null;\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The overlay HasTransparentArea predicate reads the generated class's transparentEffects field until the class is promoted.\")\r\n HasTransparentBatches()\r\n {\r\n if (!this.mesh) return false;\r\n if ((this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\r\n\r\n for (const overlay of this.overlayEffects)\r\n {\r\n if (overlay?.HasTransparentArea?.() ?? ((overlay?.transparentEffects?.length ?? 0) > 0)) return true;\r\n }\r\n return false;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\r\n GetSortValue(renderContext = null)\r\n {\r\n const viewPosition = renderContext?.GetViewPosition?.();\r\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\r\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\r\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\r\n return Math.hypot(x, y, z);\r\n }\r\n\r\n /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,\r\n * which calls back into the object at upload time; the GPU-free record carries\r\n * the same live object reference for the engine serializer (the space-object\r\n * Main profile) to pull current values at realization. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.\")\r\n GetPerObjectData(accumulator = null)\r\n {\r\n const data = typeof accumulator?.Allocate === \"function\"\r\n ? accumulator.Allocate(Tr2PerObjectData)\r\n : new Tr2PerObjectData();\r\n data.object = this;\r\n return data;\r\n }\r\n\r\n /** Carbon forwards the shadow pass to the same per-object record. */\r\n @carbon.method\r\n @impl.implemented\r\n GetShadowPerObjectData(accumulator = null)\r\n {\r\n return this.GetPerObjectData(accumulator);\r\n }\r\n\r\n /** Carbon EveSpaceObject2::GetLights (cpp:3536-3560): submits m_lights to\r\n * the light manager. Awaits the LightOwner consumption pass\r\n * (Tr2LightManager submission is unported); registration presence is the\r\n * \"LightOwner\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n GetLights(..._args)\r\n {\r\n throw new Error(\"EveSpaceObject2.GetLights is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveSpaceObject2::IsCastingShadow (cpp:1940-1990) culls against the\r\n * camera/shadow frustums; awaits the TriFrustum port (visibility pass).\r\n * Presence satisfies the \"ShadowCaster\" duck contract. */\r\n @carbon.method\r\n @impl.notImplemented\r\n IsCastingShadow(..._args)\r\n {\r\n throw new Error(\"EveSpaceObject2.IsCastingShadow is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its\r\n * own components and its children with the scene registration container \"so\r\n * we don't have to traverse the tree every frame\". RegisterAudioGeometry\r\n * (cpp:3572-3575) is audio-engine-owned and unported. Gate m_display. */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry && this.display)\r\n {\r\n if (this.lights.length)\r\n {\r\n registry.RegisterComponent(EveComponentType.LightOwner, this);\r\n }\r\n\r\n if (ShouldReflect(this.reflectionMode))\r\n {\r\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\r\n }\r\n\r\n if (this.castShadow)\r\n {\r\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\r\n }\r\n\r\n for (const child of this.effectChildren)\r\n {\r\n child?.Register?.(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.Register?.(registry);\r\n }\r\n }\r\n }\r\n\r\n /** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards\r\n * the un-registration to the children only - EveEntity::UnRegister already\r\n * called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does\r\n * not re-check display. UnregisterAudioGeometry (cpp:3617) is\r\n * audio-engine-owned and unported. */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterComponents()\r\n {\r\n const registry = this.GetComponentRegistry();\r\n if (registry)\r\n {\r\n for (const child of this.effectChildren)\r\n {\r\n child?.UnRegister?.(registry);\r\n }\r\n\r\n for (const attachment of this.attachments)\r\n {\r\n attachment?.UnRegister?.(registry);\r\n }\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n DisplayChildren()\r\n {\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetObserverTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetLocalToWorldTransform()\r\n {\r\n return this.worldTransform;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldPosition()\r\n {\r\n return this.worldPosition;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetWorldRotation()\r\n {\r\n return this.worldRotation;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n FindSoundEmitter(name)\r\n {\r\n const target = String(name ?? \"\");\r\n for (const observer of this.observers)\r\n {\r\n if (observer?.name === target)\r\n {\r\n return typeof observer.GetObserver === \"function\"\r\n ? observer.GetObserver()\r\n : observer.observer ?? null;\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n const emitter = child?.FindSoundEmitter?.(target);\r\n if (emitter)\r\n {\r\n return emitter;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetMute(mute)\r\n {\r\n this.mute = !!mute;\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetMute?.(this.mute);\r\n }\r\n for (const observer of this.observers)\r\n {\r\n observer?.SetMute?.(this.mute);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation with explicit loop, start, and speed settings\r\n * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true)\r\n {\r\n this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding box under a transform (CMF path: the\r\n * local box corners transformed with perspective divide). The granny path\r\n * is unported. Returns an inverted-empty { min, max } box when dynamic\r\n * bounds are disabled, as Carbon's BoundingBoxInitialize does.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingBoxFromTransform(transform)\r\n {\r\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\r\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const { min: localMin, max: localMax } = this.GetLocalBoundingBox();\r\n const corner = vec3.create();\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n corner,\r\n index & 1 ? localMax[0] : localMin[0],\r\n index & 2 ? localMax[1] : localMin[1],\r\n index & 4 ? localMax[2] : localMin[2]\r\n );\r\n vec3.transformMat4(corner, corner, transform);\r\n vec3.min(min, min, corner);\r\n vec3.max(max, max, corner);\r\n }\r\n }\r\n return { min, max };\r\n }\r\n\r\n /**\r\n * Calculates the skinned bounding sphere (CMF path: the current bounding\r\n * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds\r\n * are disabled.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CalculateSkinnedBoundingSphere(out = vec4.create())\r\n {\r\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\r\n {\r\n const center = this.GetBoundingSphereCenter();\r\n return vec4.set(out, center[0], center[1], center[2], this.GetBoundingSphereRadius());\r\n }\r\n return vec4.set(out, 0, 0, 0, -1);\r\n }\r\n\r\n /**\r\n * Clears all impact and damage effects on the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearImpactDamage()\r\n {\r\n this.impactOverlay?.Clear?.();\r\n }\r\n\r\n /**\r\n * Clears all animations on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearAnimations()\r\n {\r\n this.animationUpdater?.ClearAnimations?.();\r\n }\r\n\r\n /**\r\n * Creates an impact facing a position on the closest facing damage locator.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CreateImpactFromPosition(position, direction, lifeTime, size)\r\n {\r\n const closestDamageLocator = this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);\r\n }\r\n\r\n /**\r\n * Creates an impact effect on a damage locator through the impact overlay.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n CreateImpact(damageLocatorIndex, direction, lifeTime, size)\r\n {\r\n if (this.impactOverlay)\r\n {\r\n return this.impactOverlay.CreateImpact?.(damageLocatorIndex, direction, lifeTime, size, 1, this.lodLevel, this) ?? -1;\r\n }\r\n return -1;\r\n }\r\n\r\n /**\r\n * Ends the current animation on the animation updater.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EndAnimation()\r\n {\r\n this.animationUpdater?.EndAnimation?.();\r\n }\r\n\r\n /**\r\n * Freezes LOD selection at the current mesh and marks decal geometry\r\n * frozen.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n FreezeHighDetailMesh()\r\n {\r\n this.#allowLodSelection = false;\r\n for (const decal of this.decals)\r\n {\r\n decal?.SetHighDetailDecalState?.(true);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the number of damage locators on this object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocatorCount()\r\n {\r\n return this.GetLocatorCount(EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the number of locators in a named locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorCount(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the first locator list whose set has the requested Carbon name.\r\n * The returned list remains owned by the locator set.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorsForSet(locatorSetName)\r\n {\r\n return this.#GetLocatorsForSet(locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the closest locator in a set to a world position, ignoring locator\r\n * facing. Returns -1 when the set is missing or empty.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetCloseLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return -1;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n /**\r\n * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex\r\n * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not\r\n * script-exposed.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetGoodLocatorIndex(position, locatorSetName)\r\n {\r\n return this.GetCloseLocatorIndex(position, locatorSetName);\r\n }\r\n\r\n /**\r\n * Gets the local direction of an indexed damage locator, (0,0,0) for\r\n * indices out of range (Carbon script GetDamageLocatorDirection maps to\r\n * GetDamageLocatorDirectionLocal).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create())\r\n {\r\n const targetableCall = typeof inWorldSpaceOrOut === \"boolean\";\r\n const inWorldSpace = targetableCall && inWorldSpaceOrOut;\r\n if (!targetableCall) out = inWorldSpaceOrOut;\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n vec3.set(out, 0, targetableCall ? 1 : 0, 0);\r\n return targetableCall ? false : out;\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace) EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n return targetableCall ? true : out;\r\n }\r\n\r\n /** Internal ITriTargetable locator query, using the org-standard out-last convention. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.\")\r\n GetDamageLocatorPosition(index, inWorldSpace, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n if (inWorldSpace) vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n else vec3.set(out, 0, 0, 0);\r\n return false;\r\n }\r\n this.#GetLocatorInObjectSpace(out, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (inWorldSpace) vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n\r\n /** Gets the closest facing damage locator for ITriTargetable consumers. */\r\n @carbon.method\r\n @impl.implemented\r\n GetClosestDamageLocatorIndex(position)\r\n {\r\n return this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\r\n }\r\n\r\n /** Ports Carbon's randomized distance/direction fit for impact variation. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriRand is represented by Math.random; all locator scoring remains source-faithful.\")\r\n GetGoodDamageLocatorIndex(position)\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators) return 0;\r\n\r\n const objectPosition = vec3.transformMat4(EveSpaceObject2.#objectPosition, position, this.inverseWorldTransform);\r\n let minDistance = Infinity;\r\n let maxDistance = Number.MIN_VALUE;\r\n let bestDirectionFit = 0;\r\n\r\n for (const locator of locators)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locator);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n minDistance = Math.min(minDistance, distance);\r\n maxDistance = Math.max(maxDistance, distance);\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n bestDirectionFit = Math.max(bestDirectionFit, EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset));\r\n }\r\n\r\n const desiredFit = Math.random() * (0.25 - (1 - bestDirectionFit)) + 0.75;\r\n let bestFit = 1;\r\n let bestLocator = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\r\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\r\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\r\n const range = maxDistance - minDistance;\r\n let scale = range > 0 ? 1 - (distance - minDistance) / range : 1;\r\n let value = 2 * scale - 1;\r\n value = value < 0 ? 1 - Math.sqrt(Math.abs(value)) : Math.sqrt(Math.abs(value)) + 1;\r\n value *= 0.5;\r\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\r\n value *= EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset);\r\n const fit = Math.abs(value - desiredFit);\r\n if (fit < bestFit)\r\n {\r\n bestFit = fit;\r\n bestLocator = index;\r\n }\r\n }\r\n return bestLocator < 0 ? this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName) : bestLocator;\r\n }\r\n\r\n /** Gets the model-scaled target radius. */\r\n @carbon.method\r\n @impl.implemented\r\n GetRadius()\r\n {\r\n return this.GetBoundingSphereRadius();\r\n }\r\n\r\n /** Computes a miss point just outside the model silhouette. */\r\n @carbon.method\r\n @impl.implemented\r\n GetMissPosition(hit, source, out = vec3.create())\r\n {\r\n if (this.boundingSphereRadius > 0)\r\n {\r\n vec3.copy(out, this.modelWorldPosition);\r\n if (hit && source)\r\n {\r\n vec3.subtract(EveSpaceObject2.#missOffset, hit, out);\r\n vec3.subtract(EveSpaceObject2.#missDirection, hit, source);\r\n const directionLength = vec3.length(EveSpaceObject2.#missDirection);\r\n if (directionLength) vec3.scale(EveSpaceObject2.#missDirection, EveSpaceObject2.#missDirection, 1 / directionLength);\r\n vec3.scaleAndAdd(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, EveSpaceObject2.#missDirection, -vec3.dot(EveSpaceObject2.#missDirection, EveSpaceObject2.#missOffset));\r\n const offsetLength = vec3.length(EveSpaceObject2.#missOffset);\r\n if (offsetLength) vec3.scale(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, 1 / offsetLength);\r\n vec3.scaleAndAdd(out, out, EveSpaceObject2.#missOffset, this.GetBoundingSphereRadius() * 1.125);\r\n }\r\n }\r\n else\r\n {\r\n this.GetDamageLocatorPosition(-1, true, out);\r\n }\r\n return out;\r\n }\r\n\r\n /** Gets the current target impact material. */\r\n @carbon.method\r\n @impl.implemented\r\n GetImpactConfiguration()\r\n {\r\n return this.impactOverlay?.GetImpactConfiguration?.() ?? ImpactConfiguration.IMPACT_INVALID;\r\n }\r\n\r\n /** Reports whether impacts currently use the authored shield ellipsoid. */\r\n @carbon.method\r\n @impl.implemented\r\n HasImpactConfigurationShield()\r\n {\r\n return !!this.impactOverlay?.HasShieldEllipsoid?.()\r\n && this.GetImpactConfiguration() === ImpactConfiguration.IMPACT_SHIELD;\r\n }\r\n\r\n /** Resolves a shield-ray or damage-locator collision point. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.\")\r\n GetImpactPosition(locator, posPrev, posNow, epsilon, out = vec3.create())\r\n {\r\n if (!this.HasImpactConfigurationShield())\r\n {\r\n this.GetDamageLocatorPosition(locator, true, out);\r\n return vec3.squaredDistance(posNow, out) < Number(epsilon);\r\n }\r\n\r\n vec3.transformMat4(EveSpaceObject2.#rayOrigin, posPrev, this.inverseWorldTransform);\r\n vec3.transformMat4(EveSpaceObject2.#rayEnd, posNow, this.inverseWorldTransform);\r\n vec3.subtract(EveSpaceObject2.#rayDirection, EveSpaceObject2.#rayEnd, EveSpaceObject2.#rayOrigin);\r\n this.#GetShapeEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii);\r\n const t = EveSpaceObject2.#IntersectEllipsoidRay(out, EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayOrigin, EveSpaceObject2.#rayDirection);\r\n if (t !== null && t >= -1 && t <= 1)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n return true;\r\n }\r\n if (EveSpaceObject2.#IsPointInsideEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayEnd))\r\n {\r\n vec3.copy(out, posNow);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /** Updates an existing impact overlay entry. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateImpact(out, direction, impactIndex)\r\n {\r\n return this.impactOverlay?.UpdateImpact?.(out, direction, impactIndex) ?? false;\r\n }\r\n\r\n /**\r\n * Gets the local position of an indexed damage locator, (0,0,0) for\r\n * indices out of range.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets the world-space position of an indexed damage locator, (0,0,0) for\r\n * indices out of range (returned untransformed, as Carbon does).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTransformedDamageLocator(index, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\r\n if (!locators || !(index >= 0 && index < locators.length))\r\n {\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n return vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n\r\n /**\r\n * Checks whether this object is in impostor mode. The impostor system that\r\n * raises the flag is unported, so this reports the default until then.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n IsImpostor()\r\n {\r\n return this.#impostorMode;\r\n }\r\n\r\n /**\r\n * Gets a locator position from a named set. Out-of-range or missing-set\r\n * queries return the world translation in world space and (0,0,0) in\r\n * object space, as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n if (inWorldSpace)\r\n {\r\n return vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\r\n }\r\n return vec3.set(out, 0, 0, 0);\r\n }\r\n const direction = vec3.create();\r\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n vec3.transformMat4(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Gets a locator direction from a named set. Out-of-range or missing-set\r\n * queries return (0,1,0), as Carbon does.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (index < 0 || !locators || index >= locators.length)\r\n {\r\n return vec3.set(out, 0, 1, 0);\r\n }\r\n const position = vec3.create();\r\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\r\n if (inWorldSpace)\r\n {\r\n EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\r\n }\r\n return out;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n HandleControllerEvent(name)\r\n {\r\n const eventName = String(name ?? \"\");\r\n for (const controller of this.controllers)\r\n {\r\n controller?.HandleEvent?.(eventName);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.HandleControllerEvent?.(eventName);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.HandleControllerEvent?.(eventName);\r\n }\r\n }\r\n\r\n /**\r\n * Plays an animation once, replacing the current one\r\n * (Carbon script PlayAnimation maps to PlayAnimationOnce).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n PlayAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, true, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation once after the current one (Carbon ChainAnimation).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimation(animName)\r\n {\r\n this.#PlayAnimation(animName, false, 1, 0, 1, true);\r\n }\r\n\r\n /**\r\n * Chains an animation with explicit loop, start, and speed settings\r\n * (Carbon ChainAnimationEx).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ChainAnimationEx(animName, loopCount, start, speed)\r\n {\r\n this.#PlayAnimation(animName, false, loopCount, start, speed, true);\r\n }\r\n\r\n // Carbon EveSpaceObject2::PlayAnimation: every playback wrapper funnels\r\n // into the animation updater, which owns playback state; a missing updater\r\n // is a Carbon-faithful no-op.\r\n #PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone)\r\n {\r\n this.animationUpdater?.PlayAnimation?.(String(animName ?? \"\"), replace, loopCount, delay, speed, clearWhenDone);\r\n }\r\n\r\n /**\r\n * Recalculates the authored bounding sphere from the mesh geometry\r\n * resource. Fails when no mesh or ready geometry resource is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildBoundingSphereInformation()\r\n {\r\n const mesh = this.mesh;\r\n if (!mesh)\r\n {\r\n return false;\r\n }\r\n const geometryRes = mesh.GetGeometryResource?.();\r\n if (!geometryRes || !geometryRes.IsGood?.())\r\n {\r\n return false;\r\n }\r\n geometryRes.RecalculateBoundingSphere?.();\r\n const sphere = vec4.create();\r\n geometryRes.GetBoundingSphere?.(mesh.GetMeshIndex?.() ?? 0, sphere);\r\n vec3.set(this.boundingSphereCenter, sphere[0], sphere[1], sphere[2]);\r\n this.boundingSphereRadius = sphere[3];\r\n return true;\r\n }\r\n\r\n /** Sets Carbon's authored local bounding sphere from a sph3-compatible value. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.\")\r\n SetBoundingSphereInformation(sphere)\r\n {\r\n if (sphere?.center)\r\n {\r\n vec3.copy(this.boundingSphereCenter, sphere.center);\r\n this.boundingSphereRadius = Number(sphere.radius);\r\n }\r\n else\r\n {\r\n this.boundingSphereRadius = sph3.extract(sphere, this.boundingSphereCenter);\r\n }\r\n this.UpdateWorldBounds();\r\n return this;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n GetControllerVariables()\r\n {\r\n return Object.fromEntries(this.#controllerVariables);\r\n }\r\n\r\n /** Gets Carbon's most recently selected geometry LOD. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Geometry resources without multi-LOD support expose their sole browser LOD as index zero.\")\r\n GetLastUsedMeshLod()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n if (!geometryResource) return -1;\r\n if (!this.#allowLodSelection) return 0;\r\n return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;\r\n }\r\n\r\n /**\r\n * Gets a named locator's transform (Carbon script GetLocatorTransform maps\r\n * to GetEveLocatorTransform): the identity for unknown names, the animated\r\n * bone world transform when the animation updater resolves the name, else\r\n * the authored locator transform.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocatorTransform(name, out = mat4.create())\r\n {\r\n const target = String(name ?? \"\");\r\n let locator = null;\r\n for (const candidate of this.locators)\r\n {\r\n if (candidate?.GetName?.() === target)\r\n {\r\n locator = candidate;\r\n break;\r\n }\r\n }\r\n if (!locator)\r\n {\r\n return mat4.identity(out);\r\n }\r\n if (this.animationUpdater?.GetBoneWorldTransform?.(target, out))\r\n {\r\n return out;\r\n }\r\n return mat4.copy(out, locator.GetTransform());\r\n }\r\n\r\n /**\r\n * Gets the local axis-aligned bounding box: dynamic skinned bounds when\r\n * enabled, else the mesh box, else the cached box (at worst it lags one\r\n * frame). With out arguments it fills them and returns true; without, it\r\n * returns { min, max }.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetLocalBoundingBox(minBounds, maxBounds)\r\n {\r\n const min = vec3.create();\r\n const max = vec3.create();\r\n const updater = this.animationUpdater;\r\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\r\n {\r\n const sphere = vec4.create();\r\n updater.GetDynamicBounds?.(sphere, min, max);\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else if (this.mesh?.GetBoundingBox?.(min, max))\r\n {\r\n vec3.copy(this.#localAabbMin, min);\r\n vec3.copy(this.#localAabbMax, max);\r\n }\r\n else\r\n {\r\n vec3.copy(min, this.#localAabbMin);\r\n vec3.copy(max, this.#localAabbMax);\r\n }\r\n if (minBounds && maxBounds)\r\n {\r\n vec3.copy(minBounds, min);\r\n vec3.copy(maxBounds, max);\r\n return true;\r\n }\r\n return { min, max };\r\n }\r\n\r\n /** Gets Carbon's cached local box transformed into a world-axis-aligned box. */\r\n @carbon.method\r\n @impl.adapted\r\n GetWorldBoundingBox(minBounds, maxBounds)\r\n {\r\n box3.fromBounds(EveSpaceObject2.#localBox, this.#localAabbMin, this.#localAabbMax);\r\n EveSpaceObject2.#TransformBox(EveSpaceObject2.#worldBox, EveSpaceObject2.#localBox, this.worldTransform);\r\n const min = minBounds ?? vec3.create();\r\n const max = maxBounds ?? vec3.create();\r\n vec3.set(min, EveSpaceObject2.#worldBox[0], EveSpaceObject2.#worldBox[1], EveSpaceObject2.#worldBox[2]);\r\n vec3.set(max, EveSpaceObject2.#worldBox[3], EveSpaceObject2.#worldBox[4], EveSpaceObject2.#worldBox[5]);\r\n return minBounds && maxBounds ? true : { min, max };\r\n }\r\n\r\n /** Reports whether the attached mesh has a ready geometry resource. */\r\n @carbon.method\r\n @impl.implemented\r\n IsBoundingBoxReady()\r\n {\r\n const geometryResource = this.mesh?.GetGeometryResource?.();\r\n return !!geometryResource?.IsGood?.();\r\n }\r\n\r\n /**\r\n * Gets Carbon's realized world sphere, optionally accumulated with transform\r\n * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoundingSphere(out = sph3.create(), query = 0)\r\n {\r\n if (!this.UpdateWorldBounds()) return false;\r\n EveSpaceObject2.#SetSphere(out, this.modelWorldPosition, this.#boundingSphereWorldRadius);\r\n if (!query || !this.DisplayChildren()) return true;\r\n for (const child of this.children)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\r\n {\r\n sph3.union(out, out, EveSpaceObject2.#childSphere);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /** Updates Carbon's geometry-derived on-screen pixel diameter. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.\")\r\n EstimatePixelDiameter(frustum)\r\n {\r\n if (this.mesh?.GetBoundingBox?.(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax))\r\n {\r\n vec3.copy(this.#localAabbMin, EveSpaceObject2.#boundsMin);\r\n vec3.copy(this.#localAabbMax, EveSpaceObject2.#boundsMax);\r\n }\r\n sph3.fromBounds(EveSpaceObject2.#localSphere, this.#localAabbMin, this.#localAabbMax);\r\n sph3.transformMat4(EveSpaceObject2.#worldSphere, EveSpaceObject2.#localSphere, this.worldTransform);\r\n this.estimatedPixelDiameter = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\r\n return this.estimatedPixelDiameter;\r\n }\r\n\r\n /** Reports the result of the latest Carbon visibility update. */\r\n @carbon.method\r\n @impl.implemented\r\n IsInFrustum()\r\n {\r\n return this.#isInFrustum;\r\n }\r\n\r\n /**\r\n * Gets the bounding sphere center, preferring the dynamic skinned sphere\r\n * when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereCenter(out = vec3.create())\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return vec3.set(out, this.#dynamicBoundingSphere[0], this.#dynamicBoundingSphere[1], this.#dynamicBoundingSphere[2]);\r\n }\r\n return vec3.copy(out, this.boundingSphereCenter);\r\n }\r\n\r\n /**\r\n * Gets the model-scaled bounding sphere radius, preferring the dynamic\r\n * skinned sphere when one is published.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetBoundingSphereRadius()\r\n {\r\n if (this.#dynamicBoundingSphere[3] !== -1)\r\n {\r\n return this.modelScale * this.#dynamicBoundingSphere[3];\r\n }\r\n return this.modelScale * this.boundingSphereRadius;\r\n }\r\n\r\n /**\r\n * Gets the number of mesh-bound bones. Carbon dereferences the animation\r\n * updater unchecked; CarbonEngineJS reports 0 when none is attached.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBoneCount()\r\n {\r\n const updater = this.animationUpdater;\r\n if (!updater)\r\n {\r\n return 0;\r\n }\r\n if (updater.IsUsingCMF?.())\r\n {\r\n if (!updater.HasMeshBinding?.())\r\n {\r\n return 0;\r\n }\r\n return updater.GetSkeletonBoneIndices?.().length ?? 0;\r\n }\r\n return updater.GetMeshBindingBoneCount?.() ?? 0;\r\n }\r\n\r\n @carbon.method\r\n @impl.adapted\r\n SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true)\r\n {\r\n this.impactOverlay?.SetDamageState?.(shield, armor, hull, doCreateArmorImpacts);\r\n this.SetControllerVariable(\"ShieldDamage\", shield);\r\n this.SetControllerVariable(\"ArmorDamage\", armor);\r\n this.SetControllerVariable(\"HullDamage\", hull);\r\n }\r\n\r\n /**\r\n * Toggles a named impact-overlay animation (boosters, hardeners, ...).\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetImpactAnimation(name, enable, duration)\r\n {\r\n this.impactOverlay?.ToggleEffect?.(name, enable, duration);\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetControllerVariable(name, value)\r\n {\r\n const key = String(name ?? \"\");\r\n const next = Number(value);\r\n this.#controllerVariables.set(key, next);\r\n for (const controller of this.controllers)\r\n {\r\n controller?.SetVariable?.(key, next);\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetControllerVariable?.(key, next);\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.SetControllerVariable?.(key, next);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n SetProceduralContainerVariable(name, value)\r\n {\r\n for (const child of this.effectChildren)\r\n {\r\n child?.SetProceduralContainerVariable?.(name, value);\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n StartControllers()\r\n {\r\n for (const controller of this.controllers)\r\n {\r\n controller?.Start?.();\r\n }\r\n for (const child of this.effectChildren)\r\n {\r\n child?.StartControllers?.();\r\n }\r\n for (const overlay of this.overlayEffects)\r\n {\r\n overlay?.StartControllers?.();\r\n }\r\n }\r\n\r\n /**\r\n * Applies bone and model transforms to locators and returns\r\n * [position, rotation, boneIndex] tuples, as the Carbon script surface\r\n * does (TransformLocators maps to PyTransformLocators). Accepts either\r\n * locator records ({ position, direction, boneIndex }, Carbon's\r\n * LocatorStructureList shape) or the same [position, rotation, boneIndex]\r\n * tuple shape it returns.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n TransformLocators(locators = [])\r\n {\r\n const result = [];\r\n for (const locator of locators ?? [])\r\n {\r\n const record = Array.isArray(locator)\r\n ? { position: locator[0], rotation: locator[1], boneIndex: locator[2] }\r\n : { position: locator?.position, rotation: locator?.direction ?? locator?.rotation, boneIndex: locator?.boneIndex };\r\n const position = vec3.clone(record.position ?? EveSpaceObject2.#zero);\r\n const rotation = quat.clone(record.rotation ?? EveSpaceObject2.#identityRotation);\r\n const boneIndex = Number(record.boneIndex ?? 0);\r\n this.#TransformLocator(position, rotation, boneIndex);\r\n if (this.modelTranslationCurve || this.modelRotationCurve)\r\n {\r\n this.#ApplyModelTransform(position, rotation);\r\n }\r\n result.push([position, rotation, boneIndex]);\r\n }\r\n return result;\r\n }\r\n\r\n // Carbon Blue TransformLocator: bone-attached records pick up the mesh\r\n // bone matrix; without bone data the authored values pass through.\r\n #TransformLocator(position, rotation, boneIndex)\r\n {\r\n const updater = this.animationUpdater;\r\n if (boneIndex <= 0 || !updater?.IsInitialized?.())\r\n {\r\n return;\r\n }\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, boneIndex);\r\n if (!bone)\r\n {\r\n return;\r\n }\r\n vec3.transformMat4(position, position, bone);\r\n const boneRotation = mat4.getRotation(quat.create(), bone);\r\n quat.multiply(rotation, boneRotation, rotation);\r\n }\r\n\r\n // Carbon Blue ApplyModelTransform samples both curves at the Be::Time()\r\n // origin (pure GetValueAt, no playback advance): translation adds, model\r\n // rotation rotates the position and pre-multiplies.\r\n #ApplyModelTransform(position, rotation)\r\n {\r\n if (this.modelTranslationCurve)\r\n {\r\n const translation = vec3.create();\r\n this.modelTranslationCurve.GetValueAt?.(0, translation);\r\n vec3.add(position, position, translation);\r\n }\r\n if (this.modelRotationCurve)\r\n {\r\n const modelRotation = quat.create();\r\n this.modelRotationCurve.GetValueAt?.(0, modelRotation);\r\n vec3.transformQuat(position, position, modelRotation);\r\n quat.multiply(rotation, modelRotation, rotation);\r\n }\r\n }\r\n\r\n // Carbon GetLocatorsForSet: first set matching the name wins.\r\n #GetLocatorsForSet(locatorSetName)\r\n {\r\n const target = String(locatorSetName ?? \"\");\r\n for (const set of this.locatorSets)\r\n {\r\n if (set?.HasName?.(target))\r\n {\r\n return set.GetLocators();\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n // Carbon GetLocatorInObjectSpace: the direction is +Y rotated by the\r\n // authored quaternion; bone-attached locators additionally apply the mesh\r\n // bone matrix. Carbon leaves the outputs untouched (caller-uninitialized)\r\n // when bone data is missing; CarbonEngineJS keeps the unskinned values.\r\n #GetLocatorInObjectSpace(outPosition, outDirection, locator)\r\n {\r\n vec3.transformQuat(outDirection, EveSpaceObject2.#unitY, locator.direction);\r\n vec3.copy(outPosition, locator.position);\r\n const updater = this.animationUpdater;\r\n if (locator.boneIndex > 0 && updater?.IsInitialized?.())\r\n {\r\n const boneCount = Number(updater.GetMeshBoneCount?.() ?? 0);\r\n if (locator.boneIndex < boneCount)\r\n {\r\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, locator.boneIndex);\r\n if (bone)\r\n {\r\n vec3.transformMat4(outPosition, locator.position, bone);\r\n EveSpaceObject2.#TransformNormal(outDirection, outDirection, bone);\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the\r\n // set is missing, -1 when no locator faces the position.\r\n #GetClosestLocatorIndex(position, locatorSetName)\r\n {\r\n const locators = this.#GetLocatorsForSet(locatorSetName);\r\n if (!locators)\r\n {\r\n return 0;\r\n }\r\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\r\n const locatorPosition = vec3.create();\r\n const locatorDirection = vec3.create();\r\n let closestLength = Infinity;\r\n let closestIndex = -1;\r\n for (let index = 0; index < locators.length; index++)\r\n {\r\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\r\n if (!EveSpaceObject2.#IsLocatorFacingPosition(locatorDirection, posInObjectSpace))\r\n {\r\n continue;\r\n }\r\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\r\n if (distance < closestLength)\r\n {\r\n closestIndex = index;\r\n closestLength = distance;\r\n }\r\n }\r\n return closestIndex;\r\n }\r\n\r\n static #IsLocatorFacingPosition(locatorDirection, posInObjectSpace)\r\n {\r\n const moved = vec3.subtract(vec3.create(), posInObjectSpace, locatorDirection);\r\n return vec3.squaredLength(moved) < vec3.squaredLength(posInObjectSpace);\r\n }\r\n\r\n static #TransformNormal(out, direction, matrix)\r\n {\r\n const x = direction[0];\r\n const y = direction[1];\r\n const z = direction[2];\r\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\r\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\r\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\r\n return out;\r\n }\r\n\r\n #GetShapeEllipsoid(outCenter, outRadii)\r\n {\r\n if (this.shapeEllipsoidRadius[0] > 0)\r\n {\r\n vec3.copy(outCenter, this.shapeEllipsoidCenter);\r\n vec3.copy(outRadii, this.shapeEllipsoidRadius);\r\n }\r\n else\r\n {\r\n const bounds = this.GetLocalBoundingBox(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax);\r\n if (bounds === false)\r\n {\r\n vec3.set(EveSpaceObject2.#boundsMin, -1, -1, -1);\r\n vec3.set(EveSpaceObject2.#boundsMax, 1, 1, 1);\r\n }\r\n vec3.subtract(outRadii, EveSpaceObject2.#boundsMax, EveSpaceObject2.#boundsMin);\r\n vec3.scale(outRadii, outRadii, Math.sqrt(3) * 0.5);\r\n vec3.lerp(outCenter, EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax, 0.5);\r\n }\r\n vec3.copy(this.generatedShapeEllipsoidCenter, outCenter);\r\n vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);\r\n }\r\n\r\n static #GetDirectionFit(v0, v1)\r\n {\r\n const direction = -vec3.dot(v0, v1);\r\n return direction < 0\r\n ? (1 - Math.sqrt(Math.abs(direction))) * 0.5\r\n : (Math.sqrt(Math.abs(direction)) + 1) * 0.5;\r\n }\r\n\r\n static #IntersectEllipsoidRay(out, center, radii, origin, direction)\r\n {\r\n const vx = direction[0] / radii[0];\r\n const vy = direction[1] / radii[1];\r\n const vz = direction[2] / radii[2];\r\n const sx = (origin[0] - center[0]) / radii[0];\r\n const sy = (origin[1] - center[1]) / radii[1];\r\n const sz = (origin[2] - center[2]) / radii[2];\r\n const vv = vx * vx + vy * vy + vz * vz;\r\n if (!(vv > 0)) return null;\r\n const vs = vx * sx + vy * sy + vz * sz;\r\n const ss = sx * sx + sy * sy + sz * sz;\r\n let discriminant = (vs / vv) ** 2 - ss / vv + 1 / vv;\r\n if (discriminant < 0) return null;\r\n discriminant = Math.sqrt(discriminant);\r\n let t = -discriminant - vs / vv;\r\n if (t < 0) t = discriminant - vs / vv;\r\n vec3.scaleAndAdd(out, origin, direction, t);\r\n return t;\r\n }\r\n\r\n static #IsPointInsideEllipsoid(center, radii, point)\r\n {\r\n const x = (point[0] - center[0]) / radii[0];\r\n const y = (point[1] - center[1]) / radii[1];\r\n const z = (point[2] - center[2]) / radii[2];\r\n return x * x + y * y + z * z <= 1;\r\n }\r\n\r\n // Mesh bone matrices come from the animation updater; only mat4-shaped\r\n // entries are usable.\r\n static #GetBoneMatrix(updater, boneIndex)\r\n {\r\n const bones = updater.GetMeshBoneMatrixList?.();\r\n const bone = bones?.[boneIndex];\r\n return bone && bone.length >= 16 ? bone : null;\r\n }\r\n\r\n static #ApplyControllerVariables(target, variables, methodName)\r\n {\r\n const setter = target?.[methodName];\r\n if (typeof setter !== \"function\")\r\n {\r\n return;\r\n }\r\n for (const [name, value] of variables)\r\n {\r\n setter.call(target, name, value);\r\n }\r\n }\r\n\r\n static #UpdateCurve(curve, time, out, fallback)\r\n {\r\n if (!curve)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = fallback[index];\r\n }\r\n return out;\r\n }\r\n\r\n let result;\r\n if (typeof curve.Update === \"function\")\r\n {\r\n result = curve.Update(time, out);\r\n }\r\n else if (typeof curve.GetValueAt === \"function\")\r\n {\r\n result = curve.GetValueAt(time, out);\r\n }\r\n if ((Array.isArray(result) || ArrayBuffer.isView(result)) && result !== out)\r\n {\r\n for (let index = 0; index < out.length; index++)\r\n {\r\n out[index] = result[index];\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n static #GetContextValue(context, methodName, ...propertyNames)\r\n {\r\n const method = context?.[methodName];\r\n if (typeof method === \"function\")\r\n {\r\n return Number(method.call(context)) || 0;\r\n }\r\n for (const propertyName of propertyNames)\r\n {\r\n if (context?.[propertyName] !== undefined && context?.[propertyName] !== null)\r\n {\r\n return Number(context[propertyName]) || 0;\r\n }\r\n }\r\n return 0;\r\n }\r\n\r\n static #GetPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #GetEstimatedPixelSize(frustum, sphere)\r\n {\r\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\r\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\r\n }\r\n\r\n static #SetSphere(out, center, radius)\r\n {\r\n return sph3.set(out, center[0], center[1], center[2], radius);\r\n }\r\n\r\n // Avoid box3.transformMat4's legacy all-components-sum empty sentinel: a\r\n // valid symmetric box such as [-1,-1,-1,1,1,1] has that same sum.\r\n static #TransformBox(out, bounds, transform)\r\n {\r\n out[0] = out[1] = out[2] = Infinity;\r\n out[3] = out[4] = out[5] = -Infinity;\r\n for (let index = 0; index < 8; index++)\r\n {\r\n vec3.set(\r\n EveSpaceObject2.#boxCorner,\r\n index & 1 ? bounds[3] : bounds[0],\r\n index & 2 ? bounds[4] : bounds[1],\r\n index & 4 ? bounds[5] : bounds[2]\r\n );\r\n vec3.transformMat4(EveSpaceObject2.#boxCorner, EveSpaceObject2.#boxCorner, transform);\r\n out[0] = Math.min(out[0], EveSpaceObject2.#boxCorner[0]);\r\n out[1] = Math.min(out[1], EveSpaceObject2.#boxCorner[1]);\r\n out[2] = Math.min(out[2], EveSpaceObject2.#boxCorner[2]);\r\n out[3] = Math.max(out[3], EveSpaceObject2.#boxCorner[0]);\r\n out[4] = Math.max(out[4], EveSpaceObject2.#boxCorner[1]);\r\n out[5] = Math.max(out[5], EveSpaceObject2.#boxCorner[2]);\r\n }\r\n return out;\r\n }\r\n\r\n static #zero = Object.freeze([0, 0, 0]);\r\n\r\n static #unitY = Object.freeze([0, 1, 0]);\r\n\r\n static #locatorDirection = vec3.create();\r\n static #locatorPosition = vec3.create();\r\n static #locatorOffset = vec3.create();\r\n static #objectPosition = vec3.create();\r\n static #missOffset = vec3.create();\r\n static #missDirection = vec3.create();\r\n static #rayOrigin = vec3.create();\r\n static #rayEnd = vec3.create();\r\n static #rayDirection = vec3.create();\r\n static #ellipsoidCenter = vec3.create();\r\n static #ellipsoidRadii = vec3.create();\r\n static #boundsMin = vec3.create();\r\n static #boundsMax = vec3.create();\r\n static #childSphere = sph3.create();\r\n static #localSphere = sph3.create();\r\n static #worldSphere = sph3.create();\r\n static #localBox = box3.create();\r\n static #worldBox = box3.create();\r\n static #boxCorner = vec3.create();\r\n\r\n static #identityRotation = Object.freeze([0, 0, 0, 1]);\r\n\r\n static #identityTransform = mat4.create();\r\n\r\n static #damageLocatorSetName = \"damage\";\r\n\r\n static ReflectionMode = ReflectionMode;\r\n\r\n static Tr2Lod = Tr2Lod;\r\n\r\n static ImpactConfiguration = ImpactConfiguration;\r\n\r\n}\r\n"],"names":["TRANSPARENT_AABB_MIN","vec3","create","TRANSPARENT_AABB_MAX","TRANSPARENT_CENTER","OVERLAY_TYPE_OPAQUEONLY","OVERLAY_TYPE_ALL","_EveSpaceObject","_identity","EveSpaceObject2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_effectChildren","_init_extra_effectChildren","_init_children","_init_extra_children","_init_name","_init_extra_name","_init_mute","_init_extra_mute","_init_inheritProperties","_init_extra_inheritProperties","_init_customMasks","_init_extra_customMasks","_init_overlayEffects","_init_extra_overlayEffects","_init_positionDelta","_init_extra_positionDelta","_init_lodLevel","_init_extra_lodLevel","_init_curveSets","_init_extra_curveSets","_init_isPickable","_init_extra_isPickable","_init_estimatedPixelDiameter","_init_extra_estimatedPixelDiameter","_init_estimatedPixelDiameterWithChildren","_init_extra_estimatedPixelDiameterWithChildren","_init_generatedShapeEllipsoidCenter","_init_extra_generatedShapeEllipsoidCenter","_init_generatedShapeEllipsoidRadius","_init_extra_generatedShapeEllipsoidRadius","_init_animationUpdater","_init_extra_animationUpdater","_init_dna","_init_extra_dna","_init_castShadow","_init_extra_castShadow","_init_isAnimated","_init_extra_isAnimated","_init_dynamicBoundingSphereEnabled","_init_extra_dynamicBoundingSphereEnabled","_init_attachments","_init_extra_attachments","_init_decals","_init_extra_decals","_init_lights","_init_extra_lights","_init_externalParameters","_init_extra_externalParameters","_init_controllers","_init_extra_controllers","_init_locators","_init_extra_locators","_init_mesh","_init_extra_mesh","_init_impactOverlay","_init_extra_impactOverlay","_init_clipSphereCenter","_init_extra_clipSphereCenter","_init_clipSphereFactor","_init_extra_clipSphereFactor","_init_clipSphereFactor2","_init_extra_clipSphereFactor2","_init_observers","_init_extra_observers","_init_worldPosition","_init_extra_worldPosition","_init_rotationCurve","_init_extra_rotationCurve","_init_worldRotation","_init_extra_worldRotation","_init_modelScale","_init_extra_modelScale","_init_locatorSets","_init_extra_locatorSets","_init_activationStrength","_init_extra_activationStrength","_init_albedoColor","_init_extra_albedoColor","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_secondaryLightingSphereRadius","_init_extra_secondaryLightingSphereRadius","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_dirtLevel","_init_extra_dirtLevel","_init_customShaderData","_init_extra_customShaderData","_init_lastDamageLocatorHit","_init_extra_lastDamageLocatorHit","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_modelWorldPosition","_init_extra_modelWorldPosition","_init_modelTranslationCurve","_init_extra_modelTranslationCurve","_init_modelRotationCurve","_init_extra_modelRotationCurve","_init_shapeEllipsoidCenter","_init_extra_shapeEllipsoidCenter","_init_shapeEllipsoidRadius","_init_extra_shapeEllipsoidRadius","_init_translationCurve","_init_extra_translationCurve","_init_worldTransform","_init_extra_worldTransform","_init_inverseWorldTransform","_init_extra_inverseWorldTransform","_init_lastWorldTransform","_init_extra_lastWorldTransform","_init_worldVelocity","_init_extra_worldVelocity","_init_audioGeometry","_init_extra_audioGeometry","_init_isVisible","_init_extra_isVisible","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","string","readwrite","boolean","objectRef","read","float32","quat","color","vec4","mat4","carbon","method","impl","adapted","implemented","reason","notImplemented","reflectionMode","effectChildren","children","name","mute","inheritProperties","customMasks","overlayEffects","positionDelta","lodLevel","curveSets","isPickable","estimatedPixelDiameter","estimatedPixelDiameterWithChildren","generatedShapeEllipsoidCenter","generatedShapeEllipsoidRadius","fromValues","animationUpdater","dna","castShadow","isAnimated","dynamicBoundingSphereEnabled","attachments","decals","lights","externalParameters","controllers","locators","mesh","impactOverlay","clipSphereCenter","clipSphereFactor2","clipSphereFactor","observers","worldPosition","rotationCurve","worldRotation","modelScale","locatorSets","activationStrength","albedoColor","createLinear","display","update","secondaryLightingSphereRadius","boundingSphereCenter","dirtLevel","customShaderData","lastDamageLocatorHit","boundingSphereRadius","modelWorldPosition","modelTranslationCurve","modelRotationCurve","shapeEllipsoidCenter","shapeEllipsoidRadius","translationCurve","worldTransform","inverseWorldTransform","lastWorldTransform","worldVelocity","audioGeometry","isVisible","Map","sph3","set","Tr2Lod","TR2_LOD_UNSPECIFIED","meshLod","Initialize","controller","IsLinked","Link","damageLocatorCount","HasName","length","SetDamageLocatorCount","GetMesh","SetMesh","AddController","push","AddObserver","observer","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","#PropagateInheritProperties","properties","GetProperties","child","light","GetEffectChildByName","target","String","GetName","AddToEffectChildrenList","AddLight","ClearLights","RemoveFromEffectChildrenList","index","indexOf","splice","SetModelRotationCurve","curve","GetModelRotationCurve","SetModelTranslationCurve","GetModelTranslationCurve","UpdateWorldTransform","time","nextTime","Number","copy","GetValueDotAt","rotation","clone","modelRotation","multiply","fromQuat","scale","modelTranslation","transformMat4","invert","identity","UpdateWorldBounds","updater","IsInitialized","GetDynamicBounds","UpdateSyncronous","updateContext","observerTransform","GetObserverTransform","Update","EveLODHelper","ShouldUpdate","overlay","params","EveChildUpdateParams","spaceObjectParent","ownerMaxSpeed","maxSpeed","localToWorldTransform","GetLocalToWorldTransform","DisplayChildren","IsAlwaysOn","UpdateAsyncronous","threshold","frequency","Math","min","curveSet","controllerUpdateFrequency","UpdateVisibility","_parentTransform","TR2_LOD_LOW","frustum","GetFrustum","lowThreshold","mediumThreshold","visibilityThreshold","lodFactor","IsSphereVisible","EstimatePixelDiameter","attachment","GetBoundingSphere","TR2_LOD_HIGH","TR2_LOD_MEDIUM","GetObserver","SetVisibility","Infinity","UseWithScreenSize","GetRenderables","out","GetBoundingBox","IsLoading","geometryResource","GetGeometryResource","decal","GetBatches","batches","batchType","perObjectData","renderContext","committedBefore","GetBatchCount","areas","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","GetBatchesFromOverlayVector","#GetSortedTransparentBatches","geometry","viewPosition","GetViewPosition","meshIndex","sorted","area","GetDisplay","GetAreaBoundingBox","GetIndex","add","dx","dy","dz","distance","sort","a","b","entry","GetMaterialInterface","batch","CreateGeometryBatch","Commit","RebuildCachedData","ReleaseCachedData","all","CollectAreaBlocks","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","blocks","TriRenderBatchAreaBlock","Optimize","CollectAreaBlocksWithSharedMaterials","collector","#EnsureCachedAreaBlocks","GetShadowBatches","_shadowPixelSize","committed","material","shaderMaterial","block","areaBlockVector","Tr2RenderBatch","SetMaterial","IsValid","SetGeometrySource","startIndex","count","SetPerObjectData","impactEffect","GetArmorDamageShader","effects","overlayType","effect","#CommitBlockBatch","priority","SetPriority","#OverlayEffectsFor","GetEffects","opaqueEffects","decalEffects","transparentEffects","TRIBATCHTYPE_ADDITIVE","additiveEffects","TRIBATCHTYPE_DISTORTION","distortionEffects","HasTransparentBatches","HasTransparentArea","GetSortValue","x","y","z","hypot","GetPerObjectData","accumulator","data","Allocate","Tr2PerObjectData","object","GetShadowPerObjectData","GetLights","_args","Error","IsCastingShadow","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ShouldReflect","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetWorldPosition","GetWorldRotation","FindSoundEmitter","emitter","SetMute","PlayAnimationEx","animName","loopCount","start","speed","clearWhenDone","CalculateSkinnedBoundingBoxFromTransform","transform","max","IsUsingCMF","localMin","localMax","GetLocalBoundingBox","corner","CalculateSkinnedBoundingSphere","center","GetBoundingSphereCenter","GetBoundingSphereRadius","ClearImpactDamage","Clear","ClearAnimations","CreateImpactFromPosition","position","direction","lifeTime","size","closestDamageLocator","CreateImpact","damageLocatorIndex","EndAnimation","FreezeHighDetailMesh","SetHighDetailDecalState","GetDamageLocatorCount","GetLocatorCount","locatorSetName","GetLocatorsForSet","GetCloseLocatorIndex","posInObjectSpace","locatorPosition","locatorDirection","closestLength","closestIndex","squaredDistance","GetGoodLocatorIndex","GetDamageLocatorDirection","inWorldSpaceOrOut","targetableCall","inWorldSpace","GetDamageLocatorPosition","GetClosestDamageLocatorIndex","GetGoodDamageLocatorIndex","objectPosition","minDistance","maxDistance","MIN_VALUE","bestDirectionFit","locator","subtract","desiredFit","random","bestFit","bestLocator","range","value","sqrt","abs","fit","GetRadius","GetMissPosition","hit","source","directionLength","scaleAndAdd","dot","offsetLength","GetImpactConfiguration","ImpactConfiguration","IMPACT_INVALID","HasImpactConfigurationShield","HasShieldEllipsoid","IMPACT_SHIELD","GetImpactPosition","posPrev","posNow","epsilon","t","UpdateImpact","impactIndex","GetDamageLocator","GetTransformedDamageLocator","IsImpostor","GetLocatorPositionFromSet","GetLocatorRotationFromSet","HandleControllerEvent","eventName","HandleEvent","PlayAnimation","ChainAnimation","ChainAnimationEx","#PlayAnimation","replace","delay","RebuildBoundingSphereInformation","geometryRes","IsGood","RecalculateBoundingSphere","sphere","GetMeshIndex","SetBoundingSphereInformation","radius","extract","GetControllerVariables","Object","fromEntries","GetLastUsedMeshLod","GetLodIndexForScreenSize","GetLocatorTransform","candidate","GetBoneWorldTransform","GetTransform","minBounds","maxBounds","GetWorldBoundingBox","box3","fromBounds","IsBoundingBoxReady","query","union","IsInFrustum","GetBoneCount","HasMeshBinding","GetSkeletonBoneIndices","GetMeshBindingBoneCount","SetImpactDamageState","shield","armor","hull","doCreateArmorImpacts","SetDamageState","SetControllerVariable","SetImpactAnimation","enable","duration","ToggleEffect","key","next","SetVariable","SetProceduralContainerVariable","StartControllers","Start","TransformLocators","result","record","Array","isArray","boneIndex","#TransformLocator","bone","boneRotation","getRotation","#ApplyModelTransform","translation","GetValueAt","transformQuat","#GetLocatorsForSet","GetLocators","#GetLocatorInObjectSpace","outPosition","outDirection","boneCount","GetMeshBoneCount","#GetClosestLocatorIndex","#GetShapeEllipsoid","outCenter","outRadii","bounds","lerp","#IsLocatorFacingPosition","moved","squaredLength","#TransformNormal","matrix","#GetDirectionFit","v0","v1","#IntersectEllipsoidRay","radii","origin","vx","vy","vz","sx","sy","sz","vv","vs","ss","discriminant","#IsPointInsideEllipsoid","point","#GetBoneMatrix","bones","GetMeshBoneMatrixList","#ApplyControllerVariables","variables","methodName","setter","call","#UpdateCurve","fallback","ArrayBuffer","isView","#GetContextValue","context","propertyNames","propertyName","undefined","#GetPixelSize","GetPixelSizeAccross","#GetEstimatedPixelSize","GetPixelSizeAccrossEst","#SetSphere","#TransformBox","freeze","ReflectionMode","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"EveSpaceObject2.js","sources":["../../../../src/eve/spaceObject/EveSpaceObject2.js"],"sourcesContent":["// Source: trinity/trinity/Eve/SpaceObject/EveSpaceObject2.h\n// Source: trinity/trinity/Eve/SpaceObject/EveSpaceObject2.cpp\n// Source: trinity/trinity/Eve/SpaceObject/EveSpaceObject2_Blue.cpp\nimport { carbon, impl, io, schema, type } from \"@carbonenginejs/runtime-utils/schema\";\nimport { EveEntity } from \"../EveEntity.js\";\nimport { EveChildUpdateParams } from \"../EveChildUpdateParams.js\";\nimport { EveChildInheritProperties } from \"../child/EveChildInheritProperties.js\";\nimport { box3 } from \"@carbonenginejs/runtime-utils/box3\";\nimport { mat4 } from \"@carbonenginejs/runtime-utils/mat4\";\nimport { quat } from \"@carbonenginejs/runtime-utils/quat\";\nimport { sph3 } from \"@carbonenginejs/runtime-utils/sph3\";\nimport { vec3 } from \"@carbonenginejs/runtime-utils/vec3\";\nimport { vec4 } from \"@carbonenginejs/runtime-utils/vec4\";\nimport { ReflectionMode } from \"../../generated/eve/enums.js\";\nimport { EveComponentType, ShouldReflect } from \"../EveComponentTypes.js\";\nimport { ImpactConfiguration } from \"../../generated/include/enums.js\";\nimport { EveLODHelper, Tr2Lod } from \"../EveLODHelper.js\";\nimport { TriBatchType } from \"@carbonenginejs/runtime-utils/graphics\";\nimport { MatrixCopyFrom3x4 } from \"../lights/lightConversion.js\";\nimport { getBoneList } from \"../../trinityCore/Tr2GrannyAnimation.js\";\nimport { Tr2PerObjectData } from \"../../trinityCore/Tr2PerObjectData.js\";\nimport { Tr2RenderBatch, TriRenderBatchAreaBlock } from \"../../trinityCore/Tr2RenderBatch.js\";\nimport { RawData } from \"../../trinityCore/rawData/RawData.js\";\nimport { TR2_PICK_TYPE_DEFAULT, Tr2PickType } from \"../../trinityCore/Tr2PickType.js\";\nimport { IEveSpaceObject2ParentData } from \"./IEveSpaceObject2ParentData.js\";\nimport { EveCustomMask } from \"../EveCustomMask.js\";\n\n// Static scratch for the sorted-transparent area pass (allocation rules: hot\n// per-frame path, copy-into, never allocate per call).\nconst TRANSPARENT_AABB_MIN = vec3.create();\nconst TRANSPARENT_AABB_MAX = vec3.create();\nconst TRANSPARENT_CENTER = vec3.create();\n\n// Carbon EveMeshOverlayEffect::OverlayType (EveMeshOverlayEffect.h:35-41).\nconst OVERLAY_TYPE_OPAQUEONLY = 0;\nconst OVERLAY_TYPE_ALL = 1;\n\n/**\n * The hull of an EVE space object - its mesh, locators, locator sets, decals,\n * attachments, lights, effect children, overlay effects, impact overlay and\n * controllers - together with the curve-driven world transform, visibility, LOD\n * and batch submission that drive them each frame.\n */\n@type.define({ className: \"EveSpaceObject2\", family: \"eve/spaceObject\" })\nexport class EveSpaceObject2 extends EveEntity\n{\n\n /** m_reflectionMode (EntityComponents::ReflectionMode - enum ReflectionMode) [READWRITE, PERSIST, NOTIFY, ENUM] */\n @io.notify\n @io.persist\n @type.int32\n @schema.enum(\"ReflectionMode\")\n reflectionMode = 3;\n\n /** m_effectChildren (PIEveSpaceObjectChildVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveSpaceObjectChild\")\n effectChildren = [];\n\n /** m_children (PIEveTransformVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveTransform\")\n children = [];\n\n /** m_name (std::string) [READWRITE, NOTIFY, PERSIST] */\n @io.notify\n @io.persist\n @type.string\n name = \"\";\n\n /** m_mute (bool) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.boolean\n mute = false;\n\n /** m_inheritProperties (EveChildInheritPropertiesPtr) [READWRITE] */\n @io.readwrite\n @type.objectRef(\"EveChildInheritProperties\")\n inheritProperties = null;\n\n /** m_customMasks (PEveCustomMaskVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"EveCustomMask\")\n customMasks = [];\n\n /** m_overlayEffects (PEveMeshOverlayEffectVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"EveMeshOverlayEffect\")\n overlayEffects = [];\n\n /** m_positionDelta (Tr2BindingVector3Ptr) [READ] */\n @io.read\n @type.objectRef(\"Tr2BindingVector3\")\n positionDelta = null;\n\n /** m_lodLevel (Tr2Lod - enum Tr2Lod) [READ] */\n @io.read\n @type.int32\n @schema.enum(\"Tr2Lod\")\n lodLevel = -1;\n\n /** m_curveSets (PTriCurveSetVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"TriCurveSet\")\n curveSets = [];\n\n /** m_isPickable (bool) [READWRITE] */\n @io.readwrite\n @type.boolean\n isPickable = true;\n\n /** m_estimatedPixelDiameter (float) [READ] */\n @io.read\n @type.float32\n estimatedPixelDiameter = 0;\n\n /** m_estimatedPixelDiameterWithChildren (float) [READ] */\n @io.read\n @type.float32\n estimatedPixelDiameterWithChildren = 0;\n\n /** m_generatedShapeEllipsoidCenter (Vector3) [READ] */\n @io.read\n @type.vec3\n generatedShapeEllipsoidCenter = vec3.create();\n\n /** m_generatedShapeEllipsoidRadius (Vector3) [READ] */\n @io.read\n @type.vec3\n generatedShapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\n\n /** m_animationUpdater (Tr2GrannyAnimationPtr) [READ] */\n @io.read\n @type.objectRef(\"Tr2GrannyAnimation\")\n animationUpdater = null;\n\n /** m_dna (std::string) [READ, PERSIST] */\n @io.persist\n @type.string\n dna = \"\";\n\n /** m_castShadow (bool) [READWRITE, NOTIFY, PERSIST] */\n @io.notify\n @io.persist\n @type.boolean\n castShadow = false;\n\n /** m_isAnimated (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n isAnimated = false;\n\n /** m_dynamicBoundingSphereEnabled (bool) [READ, PERSIST] */\n @io.persist\n @type.boolean\n dynamicBoundingSphereEnabled = false;\n\n /** m_attachments (PIEveSpaceObjectAttachmentVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"IEveSpaceObjectAttachment\")\n attachments = [];\n\n /** m_decals (PEveSpaceObjectDecalVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"EveSpaceObjectDecal\")\n decals = [];\n\n /** m_lights (PTr2LightVector) [READ, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.list(\"Tr2Light\")\n lights = [];\n\n /** m_externalParameters (PTr2ExternalParameterVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"Tr2ExternalParameter\")\n externalParameters = [];\n\n /** m_controllers (PITr2ControllerVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"ITr2Controller\")\n controllers = [];\n\n /** m_locators (PEveLocator2Vector) [READ, PERSIST] */\n @io.persist\n @type.list(\"EveLocator2\")\n locators = [];\n\n /** m_mesh (Tr2MeshBasePtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"Tr2MeshBase\")\n mesh = null;\n\n /** m_impactOverlay (EveImpactOverlayPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"EveImpactOverlay\")\n impactOverlay = null;\n\n /** m_clipSphereCenter (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n clipSphereCenter = vec3.create();\n\n /** m_clipSphereFactor2 (float) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.float32\n clipSphereFactor2 = 0;\n\n /** m_clipSphereFactor (float) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.float32\n clipSphereFactor = 0;\n\n /** m_observers (PTriObserverLocalVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"TriObserverLocal\")\n observers = [];\n\n /** m_worldPosition (Vector3) [READ] */\n @io.read\n @type.vec3\n worldPosition = vec3.create();\n\n /** m_ballRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"ITriQuaternionFunction\")\n rotationCurve = null;\n\n /** m_worldRotation (Quaternion) [READ] */\n @io.read\n @type.quat\n worldRotation = quat.create();\n\n /** m_modelScale (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n modelScale = 1;\n\n /** m_locatorSets (PEveLocatorSetsVector) [READ, PERSIST] */\n @io.persist\n @type.list(\"EveLocatorSets\")\n locatorSets = [];\n\n /** m_activationStrength (float) [READWRITE] */\n @io.readwrite\n @type.float32\n activationStrength = 1;\n\n /** m_albedoColor (Color) [READWRITE] */\n @io.readwrite\n @type.color\n albedoColor = vec4.createLinear();\n\n /** m_display (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n display = true;\n\n /** m_update (bool) [READWRITE, PERSIST] */\n @io.persist\n @type.boolean\n update = true;\n\n /** m_secondaryLightingSphereRadius (float) [READ] */\n @io.read\n @type.float32\n secondaryLightingSphereRadius = 0;\n\n /** m_boundingSphereCenter (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n boundingSphereCenter = vec3.create();\n\n /** m_dirtLevel (float) [READWRITE, NOTIFY] */\n @io.notify\n @io.readwrite\n @type.float32\n dirtLevel = 0;\n\n /** m_psData.customData (Vector4) [READWRITE] - script/SOF-driven custom shader data. */\n @io.readwrite\n @type.vec4\n customShaderData = vec4.create();\n\n /**\n * m_spaceObjectShipData (Vector4) [READ] - the packed shader ship data:\n * .y activation strength, .z dirt level, .w bounding-sphere radius\n * (PrepareShaderData, cpp:734-744). .x is authored elsewhere and left alone.\n */\n @io.read\n @type.vec4\n spaceObjectShipData = vec4.create();\n\n /** m_lastDamageLocatorHit (int) [READ] */\n @io.read\n @type.int32\n lastDamageLocatorHit = -1;\n\n /** m_boundingSphereRadius (float) [READWRITE, PERSIST] */\n @io.persist\n @type.float32\n boundingSphereRadius = -1;\n\n /** m_boundingSphereWorldCenter (Vector3) [READ] */\n @io.read\n @type.vec3\n modelWorldPosition = vec3.create();\n\n /** m_modelTranslation (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"ITriVectorFunction\")\n modelTranslationCurve = null;\n\n /** m_modelRotation (ITriQuaternionFunctionPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"ITriQuaternionFunction\")\n modelRotationCurve = null;\n\n /** m_shapeEllipsoidCenter (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n shapeEllipsoidCenter = vec3.create();\n\n /** m_shapeEllipsoidRadius (Vector3) [READWRITE, PERSIST] */\n @io.persist\n @type.vec3\n shapeEllipsoidRadius = vec3.fromValues(-1, -1, -1);\n\n /** m_ballPosition (ITriVectorFunctionPtr) [READWRITE, PERSIST] */\n @io.persist\n @type.objectRef(\"ITriVectorFunction\")\n translationCurve = null;\n\n @io.read\n @type.mat4\n worldTransform = mat4.create();\n\n @io.read\n @type.mat4\n inverseWorldTransform = mat4.create();\n\n @io.read\n @type.mat4\n lastWorldTransform = mat4.create();\n\n @io.read\n @type.vec3\n worldVelocity = vec3.create();\n\n @io.readwrite\n @type.objectRef(\"ITr2AudGeometry\")\n audioGeometry = null;\n\n @type.boolean\n isVisible = false;\n\n #controllerVariables = new Map([\n [\"DirtLevel\", 0],\n [\"ActivationStrength\", 1],\n [\"ShieldDamage\", 1],\n [\"ArmorDamage\", 1],\n [\"HullDamage\", 1],\n [\"ClipSphereFactor\", 0],\n [\"ClipSphereFactor2\", 0]\n ]);\n\n #lastUpdateTransformTime = null;\n\n // Carbon m_lastCurveUpdateTime: stamped by the sync-side LOD gate; the async\n // side updates curve sets only when it matches the frame time.\n #lastCurveUpdateTime = 0;\n\n // Carbon m_dynamicBoundingSphere: disabled while w is -1; a future animation\n // updater port publishes skinned bounds here.\n #dynamicBoundingSphere = sph3.set(sph3.create(), 0, 0, 0, -1);\n\n // Carbon keeps the realized world sphere separate from the authored local\n // sphere. It is refreshed by UpdateWorldBounds after transform changes.\n #boundingSphereWorldRadius = -1;\n\n // Carbon visibility and mesh LOD state are runtime-only renderer results.\n #isInFrustum = false;\n\n #isMeshVisible = false;\n\n #lodLevelWithChildren = Tr2Lod.TR2_LOD_UNSPECIFIED;\n\n #meshScreenSize = 0;\n\n #overlayMeshAreaBlocks = [ [], [] ];\n\n #shadowMeshOpaqueAreas = [];\n\n #cachedAreaBlocksBuilt = false;\n\n // Carbon m_localAabbMin/Max: cached so GetLocalBoundingBox can answer before\n // LOD selection assigns a mesh (at worst it lags one frame).\n #localAabbMin = vec3.create();\n\n #localAabbMax = vec3.create();\n\n // Carbon m_allowLodSelection: cleared by FreezeHighDetailMesh.\n #allowLodSelection = true;\n\n // Carbon m_impostorMode: the impostor system that raises it is unported.\n #impostorMode = false;\n\n /** EVE_SPACEOBJECT_CUSTOWMASK_MAX (EveSpaceObject2.h:49) - custom-mask slots. */\n static CUSTOM_MASK_MAX = EveCustomMask.CUSTOM_MASK_COUNT;\n\n /**\n * Carbon g_secondaryLightingRadiusCutoffFactor (cpp:52), a registered engine\n * setting defaulting to 0.3. It scales this hull's bounding radius into the\n * cutoff below which a secondary light source is too small to matter.\n */\n static SECONDARY_LIGHTING_RADIUS_CUTOFF_FACTOR = 0.3;\n\n /** Scratch for the per-frame shader-data fill; never allocate in it. */\n static #clipSphereCenterScratch = vec3.create();\n\n static #shapeCenterScratch = vec3.create();\n\n static #shapeRadiusScratch = vec3.create();\n\n // Carbon m_vsData / m_psData: the PERSISTENT per-object records. They are\n // owner-held members across frames rather than pool leases, because the\n // object fills them during update and reads them back afterwards\n // (cpp:3747 takes the world translation out of the STORED transposed matrix).\n // Carbon's paired m_perObjectDataVs/m_perObjectDataPs GPU buffers are the\n // engine's business; Invalidate on these records carries the same signal.\n #vsData = RawData.create(\"EveSpaceObjectVSData\");\n\n #psData = RawData.create(\"EveSpaceObjectPSData\");\n\n /** Alias for the mesh property; reads and writes go straight to mesh. */\n get meshLod()\n {\n return this.mesh;\n }\n\n /** Alias for the mesh property; reads and writes go straight to mesh. */\n set meshLod(mesh)\n {\n this.mesh = mesh ?? null;\n }\n\n /**\n * Links the authored controllers, pushes authored inherit properties down to\n * the effect children and lights, and derives the impact overlay's damage\n * locator count from the \"damage\" locator set - which Carbon does at build\n * time - so a field-populated graph reaches the same live state as the\n * authoring path.\n */\n @carbon.method\n @impl.adapted\n Initialize()\n {\n for (const controller of this.controllers)\n {\n if (!controller?.IsLinked?.())\n {\n controller?.Link?.(this);\n }\n }\n // Authored inherit properties propagate as part of the lifecycle so a\n // field-populated graph (values import, document hydration) matches the\n // SetInheritProperties authoring path.\n if (this.inheritProperties)\n {\n this.#PropagateInheritProperties();\n }\n // Carbon derives the impact overlay's damage locator count from the\n // \"damage\" locator set at build time; deriving it here keeps it out of\n // the authored values while reproducing the same live state.\n if (this.impactOverlay)\n {\n let damageLocatorCount = 0;\n for (const set of this.locatorSets)\n {\n if (set?.HasName?.(\"damage\")) damageLocatorCount += set.locators.length;\n }\n this.impactOverlay.SetDamageLocatorCount(damageLocatorCount);\n }\n return true;\n }\n\n /** Returns the hull mesh, or null when none is attached. */\n @carbon.method\n @impl.implemented\n GetMesh()\n {\n return this.mesh;\n }\n\n /**\n * Replaces the hull mesh; the cached area blocks are only rebuilt on the next\n * batch call.\n */\n @carbon.method\n @impl.adapted\n SetMesh(mesh)\n {\n this.mesh = mesh ?? null;\n }\n\n /**\n * Appends a controller, links it to this object when it is not already linked,\n * and replays the current controller variables onto it.\n */\n @carbon.method\n @impl.adapted\n AddController(controller)\n {\n this.controllers.push(controller);\n if (!controller?.IsLinked?.())\n {\n controller?.Link?.(this);\n }\n EveSpaceObject2.#ApplyControllerVariables(controller, this.#controllerVariables, \"SetVariable\");\n return controller;\n }\n\n /**\n * Appends a placement observer, which is repositioned from the observer\n * transform on every synchronous update; the observer is returned for\n * chaining.\n */\n @carbon.method\n @impl.implemented\n AddObserver(observer)\n {\n this.observers.push(observer);\n return observer;\n }\n\n /**\n * Sets the colour set that effect children and lights inherit, creating the\n * inherit-properties holder on first use, and pushes it to the existing\n * children and lights.\n */\n @carbon.method\n @impl.implemented\n SetInheritProperties(colorSet)\n {\n if (!this.inheritProperties)\n {\n this.inheritProperties = new EveChildInheritProperties();\n }\n this.inheritProperties.SetProperties(colorSet);\n this.#PropagateInheritProperties();\n }\n\n /** Pushes the current inherited properties to every effect child and light. */\n #PropagateInheritProperties()\n {\n const properties = this.inheritProperties.GetProperties();\n for (const child of this.effectChildren)\n {\n child?.SetInheritProperties?.(properties);\n }\n for (const light of this.lights)\n {\n light?.SetInheritProperties?.(properties);\n }\n }\n\n /**\n * Returns the first effect child with the given name, or null when none\n * matches.\n */\n @carbon.method\n @impl.implemented\n GetEffectChildByName(name)\n {\n const target = String(name ?? \"\");\n for (const child of this.effectChildren)\n {\n if ((child?.GetName?.() ?? child?.name ?? \"\") === target)\n {\n return child;\n }\n }\n return null;\n }\n\n /**\n * Appends an effect child, first giving it the hull's inherited properties and\n * then replaying the current controller variables onto it, so a late addition\n * starts in the same state as the rest.\n */\n @carbon.method\n @impl.adapted\n AddToEffectChildrenList(child)\n {\n if (this.inheritProperties)\n {\n child?.SetInheritProperties?.(this.inheritProperties.GetProperties());\n }\n this.effectChildren.push(child);\n EveSpaceObject2.#ApplyControllerVariables(child, this.#controllerVariables, \"SetControllerVariable\");\n return child;\n }\n\n /** Appends a light, first giving it the hull's inherited properties. */\n @carbon.method\n @impl.implemented\n AddLight(light)\n {\n if (this.inheritProperties)\n {\n light?.SetInheritProperties?.(this.inheritProperties.GetProperties());\n }\n this.lights.push(light);\n }\n\n /**\n * Drops every light from the hull; component registration is not revisited\n * here.\n */\n @carbon.method\n @impl.implemented\n ClearLights()\n {\n this.lights.length = 0;\n }\n\n /**\n * Removes an effect child, returning false when it is not attached to this\n * hull.\n */\n @carbon.method\n @impl.implemented\n RemoveFromEffectChildrenList(child)\n {\n const index = this.effectChildren.indexOf(child);\n if (index === -1)\n {\n return false;\n }\n this.effectChildren.splice(index, 1);\n return true;\n }\n\n /**\n * Sets the curve that rotates the model within the hull's ball rotation, or\n * clears it when passed nothing.\n */\n @carbon.method\n @impl.implemented\n SetModelRotationCurve(curve)\n {\n this.modelRotationCurve = curve ?? null;\n }\n\n /** Returns the model rotation curve, or null when none is set. */\n @carbon.method\n @impl.implemented\n GetModelRotationCurve()\n {\n return this.modelRotationCurve;\n }\n\n /**\n * Sets the curve that offsets the model within the hull's ball position, or\n * clears it when passed nothing.\n */\n @carbon.method\n @impl.implemented\n SetModelTranslationCurve(curve)\n {\n this.modelTranslationCurve = curve ?? null;\n }\n\n /** Returns the model translation curve, or null when none is set. */\n @carbon.method\n @impl.implemented\n GetModelTranslationCurve()\n {\n return this.modelTranslationCurve;\n }\n\n /**\n * Rebuilds the hull world transform for a frame from the ball position and rotation curves plus the optional model translation and rotation curves, applies modelScale as a uniform scale, then refreshes the inverse transform and the world bounds; the previous world transform is kept for motion vectors and the world velocity comes from the position curve's derivative.\n * @param {number} time Frame time; repeating the previous call's time is a no-op.\n * @returns {boolean} False when the transform had already been built for this time.\n */\n @carbon.method\n @impl.adapted\n UpdateWorldTransform(time)\n {\n const nextTime = Number(time) || 0;\n if (this.#lastUpdateTransformTime === nextTime)\n {\n return false;\n }\n this.#lastUpdateTransformTime = nextTime;\n mat4.copy(this.lastWorldTransform, this.worldTransform);\n // Carbon cpp:2675-2676: the OUTGOING transform becomes worldTransformLast,\n // stored transposed in both records, before the new one is built.\n this.#vsData.SetAndTranspose(\"worldTransformLast\", this.lastWorldTransform);\n this.#psData.SetAndTranspose(\"worldTransformLast\", this.lastWorldTransform);\n\n EveSpaceObject2.#UpdateCurve(this.translationCurve, nextTime, this.worldPosition, EveSpaceObject2.#zero);\n if (this.translationCurve?.GetValueDotAt)\n {\n this.translationCurve.GetValueDotAt(nextTime, this.worldVelocity);\n }\n else\n {\n vec3.set(this.worldVelocity, 0, 0, 0);\n }\n\n EveSpaceObject2.#UpdateCurve(this.rotationCurve, nextTime, this.worldRotation, EveSpaceObject2.#identityRotation);\n const rotation = quat.clone(this.worldRotation);\n if (this.modelRotationCurve)\n {\n const modelRotation = quat.create();\n EveSpaceObject2.#UpdateCurve(this.modelRotationCurve, nextTime, modelRotation, EveSpaceObject2.#identityRotation);\n // Carbon (row-vector): rotation = modelRotation * m_worldRotation - model first.\n quat.multiply(rotation, rotation, modelRotation);\n }\n\n mat4.fromQuat(this.worldTransform, rotation);\n if (this.modelScale !== 1)\n {\n // Carbon (row-vector): m_worldTransform * scaleMatrix - scale LAST\n // (cpp:2711-2716). gl mat4.scale builds W*S = scale FIRST; equivalent\n // ONLY because modelScale is strictly uniform (a uniform scale commutes\n // with the pure rotation here). If modelScale ever becomes a vec3 this\n // must become mat4.multiply(w, S, w) per the swap rule.\n mat4.scale(this.worldTransform, this.worldTransform, [this.modelScale, this.modelScale, this.modelScale]);\n }\n\n if (this.modelTranslationCurve)\n {\n const modelTranslation = vec3.create();\n EveSpaceObject2.#UpdateCurve(this.modelTranslationCurve, nextTime, modelTranslation, EveSpaceObject2.#zero);\n vec3.transformMat4(modelTranslation, modelTranslation, this.worldTransform);\n this.worldTransform[12] = this.worldPosition[0] + modelTranslation[0];\n this.worldTransform[13] = this.worldPosition[1] + modelTranslation[1];\n this.worldTransform[14] = this.worldPosition[2] + modelTranslation[2];\n }\n else\n {\n this.worldTransform[12] = this.worldPosition[0];\n this.worldTransform[13] = this.worldPosition[1];\n this.worldTransform[14] = this.worldPosition[2];\n }\n\n if (!mat4.invert(this.inverseWorldTransform, this.worldTransform))\n {\n mat4.identity(this.inverseWorldTransform);\n }\n this.UpdateWorldBounds();\n return true;\n }\n\n /**\n * Refreshes Carbon's realized world-space sphere from the dynamic skinned\n * sphere when available, otherwise from the authored local sphere.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"The browser runtime refreshes the cache with world-transform updates instead of Carbon's renderer-side PrepareShaderData pass.\")\n UpdateWorldBounds()\n {\n const updater = this.animationUpdater;\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\n {\n updater.GetDynamicBounds?.(this.#dynamicBoundingSphere, this.#localAabbMin, this.#localAabbMax);\n if (this.#dynamicBoundingSphere[3] > 0)\n {\n vec3.transformMat4(this.modelWorldPosition, this.#dynamicBoundingSphere, this.worldTransform);\n this.#boundingSphereWorldRadius = this.modelScale * this.#dynamicBoundingSphere[3];\n return true;\n }\n }\n if (this.boundingSphereRadius > 0)\n {\n vec3.transformMat4(this.modelWorldPosition, this.boundingSphereCenter, this.worldTransform);\n this.#boundingSphereWorldRadius = this.modelScale * this.boundingSphereRadius;\n return true;\n }\n return false;\n }\n\n /**\n * Carbon EveSpaceObject2::PrepareShaderData (cpp:734-763): refreshes the\n * world bounds, packs the ship data, and derives the clip-sphere dissolve\n * values into the persistent per-object records.\n */\n @carbon.method\n @impl.implemented\n PrepareShaderData(updateContext = null)\n {\n this.UpdateWorldBounds();\n\n // An impact overlay may damp the activation strength; otherwise full on.\n this.spaceObjectShipData[1] = this.impactOverlay\n ? (this.impactOverlay.GetActivationStrength?.(updateContext) ?? 1)\n : 1;\n this.spaceObjectShipData[3] = this.GetBoundingSphereRadius();\n this.spaceObjectShipData[2] = this.dirtLevel;\n\n // clipSphereFactor runs 0 (fully visible) to 1 (invisible); the shader gets\n // a signed squared radius rather than the factor itself.\n let normalizedBoundingRadius = this.GetBoundingSphereRadius() / (this.modelScale === 0 ? 1 : this.modelScale);\n const clipOffset = vec3.length(this.clipSphereCenter);\n normalizedBoundingRadius += clipOffset;\n const insideSpherePercentage = Math.min(1, clipOffset / normalizedBoundingRadius);\n const dissolveRadius = this.clipSphereFactor * normalizedBoundingRadius * (1 + insideSpherePercentage);\n\n const center = this.GetBoundingSphereCenter();\n const clipSphereCenter = EveSpaceObject2.#clipSphereCenterScratch;\n vec3.add(clipSphereCenter, this.clipSphereCenter, center);\n const clipRadiusSq = Math.sign(dissolveRadius) * dissolveRadius * dissolveRadius;\n\n this.#psData.Set(\"clipSphereCenter\", clipSphereCenter);\n this.#psData.Set(\"clipRadiusSq\", [clipRadiusSq]);\n this.#vsData.Set(\"clipData\", [clipSphereCenter[0], clipSphereCenter[1], clipSphereCenter[2], clipRadiusSq]);\n\n const dissolveRadius2 = this.clipSphereFactor2 * normalizedBoundingRadius * (1 + insideSpherePercentage);\n this.#psData.Set(\"clipRadius2Sq\", [Math.sign(dissolveRadius2) * dissolveRadius2 * dissolveRadius2]);\n this.#psData.Set(\"clipSphereFactor\", [this.clipSphereFactor]);\n this.#psData.Set(\"clipSphereFactor2\", [this.clipSphereFactor2]);\n }\n\n /**\n * Carbon EveSpaceObject2::UpdateShLighting (cpp:1411-1421): asks the scene's\n * SH lighting manager for this hull's secondary-lighting coefficients, faded\n * in across the low-detail threshold so a hull entering that range does not\n * pop. The coefficients are cleared first, which is also what leaves the\n * unwritten tail zero on the L1 path.\n * @param {Object} manager - Tr2ShLightingManager\n * @param {Object} [updateContext] - frame context, for the detail thresholds\n */\n @carbon.method\n @impl.implemented\n UpdateShLighting(manager, updateContext = null)\n {\n const coefficients = this.#psData.Get(\"shLightingCoefficients\");\n\n coefficients.fill(0);\n\n const lowThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetLowDetailThreshold\", \"lowDetailThreshold\");\n\n if (!(this.estimatedPixelDiameterWithChildren > lowThreshold) || typeof manager?.GetLighting !== \"function\")\n {\n return false;\n }\n\n const mediumThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetMediumDetailThreshold\", \"mediumDetailThreshold\");\n const intensityFadeRadius = (mediumThreshold - lowThreshold) * 0.25;\n const intensity = Math.min(Math.max((this.estimatedPixelDiameterWithChildren - lowThreshold) / intensityFadeRadius, 0), 1);\n\n manager.GetLighting(\n this.worldPosition,\n intensity,\n this.boundingSphereRadius * EveSpaceObject2.SECONDARY_LIGHTING_RADIUS_CUTOFF_FACTOR,\n coefficients\n );\n\n return true;\n }\n\n /**\n * Carbon EveSpaceObject2::ClearShLighting (cpp:1423-1426): drops this hull's\n * secondary-lighting contribution back to nothing.\n */\n @carbon.method\n @impl.implemented\n ClearShLighting()\n {\n this.#psData.Get(\"shLightingCoefficients\").fill(0);\n\n return true;\n }\n\n /**\n * Carbon EveSpaceObject2::GetParentData (cpp:1872-1885): the values an\n * attachment needs from its hull. `shLighting` is a LIVE view into the PS\n * record, exactly as Carbon hands out a raw pointer into m_psData - an\n * attachment reading it sees the hull's current coefficients.\n * @param {Object} [out] - caller-owned record, refreshed in place\n */\n @carbon.method\n @impl.implemented\n GetParentData(out = new IEveSpaceObject2ParentData())\n {\n mat4.copy(out.transform, this.worldTransform);\n // Carbon memsets the record and never assigns killCount on this path.\n out.killCount = 0;\n vec4.copy(out.shipData, this.spaceObjectShipData);\n vec3.copy(out.clipSphereCenter, this.#psData.Get(\"clipSphereCenter\"));\n out.clipRadiusSq = this.#psData.Get(\"clipRadiusSq\")[0];\n out.clipRadius2Sq = this.#psData.Get(\"clipRadius2Sq\")[0];\n out.clipFactor = this.#psData.Get(\"clipSphereFactor\")[0];\n out.clipFactor2 = this.#psData.Get(\"clipSphereFactor2\")[0];\n out.shLighting = this.#psData.Get(\"shLightingCoefficients\");\n vec4.copy(out.customData, this.#psData.Get(\"customData\"));\n\n return out;\n }\n\n /**\n * Carbon EveSpaceObject2::GetPerObjectStructs (cpp:1485-1490): hands a copy\n * of both records to a caller, with the VS record's customData taken from the\n * PS record as Carbon does.\n * @returns {{vs: RawData, ps: RawData}} independent copies, not live records\n */\n @carbon.method\n @impl.implemented\n GetPerObjectStructs(vsData = RawData.create(\"EveSpaceObjectVSData\"), psData = RawData.create(\"EveSpaceObjectPSData\"))\n {\n vsData.CopyFrom(this.#vsData);\n psData.CopyFrom(this.#psData);\n vsData.Set(\"customData\", this.#psData.Get(\"customData\"));\n return { vs: vsData, ps: psData };\n }\n\n /**\n * Refreshes the world transform, then - when the update flag is on - places the observers, stamps the LOD-gated curve clock while advancing the overlay effects, runs the effect children's synchronous pass with the current placement, and updates the impact overlay; the overlay effects receive the context time as both clocks, as Carbon does.\n * @returns {boolean} False when the update flag is off; the world transform is refreshed either way.\n */\n @carbon.method\n @impl.adapted\n UpdateSyncronous(updateContext = null)\n {\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\n this.UpdateWorldTransform(time);\n if (!this.update)\n {\n return false;\n }\n\n const observerTransform = this.GetObserverTransform();\n for (const observer of this.observers)\n {\n observer?.Update?.(observerTransform);\n }\n\n // LOD-gated curve/overlay stamp (Carbon EveSpaceObject2::UpdateSyncronous:\n // ShouldUpdate(m_lodLevelWithChildren, time - m_lastCurveUpdateTime) -\n // adapted to lodLevel, m_lodLevelWithChildren is unported). Overlay effects\n // receive the context time as BOTH clocks, as Carbon does; the async pass\n // updates curve sets only on frames stamped here.\n if (EveLODHelper.ShouldUpdate(this.lodLevel, time - this.#lastCurveUpdateTime))\n {\n this.#lastCurveUpdateTime = time;\n for (const overlay of this.overlayEffects)\n {\n overlay?.Update?.(time, time);\n }\n }\n\n if (this.effectChildren.length)\n {\n const params = new EveChildUpdateParams();\n params.spaceObjectParent = this;\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\n params.activationStrength = this.activationStrength;\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\n for (const child of this.effectChildren)\n {\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\n child?.UpdateSyncronous?.(updateContext, params);\n }\n }\n\n this.impactOverlay?.UpdateSyncronous?.(updateContext, this);\n return true;\n }\n\n /**\n * Runs the controllers at a frequency derived from the hull's estimated pixel diameter against the context's high-detail threshold, advances the object curve sets only on frames the synchronous LOD gate stamped, then updates the transform children, the effect children and the impact overlay.\n * @returns {number} The controller update frequency in 0..1, which is also handed to the effect children; 0 when the hull is not visible or the update flag is off.\n */\n @carbon.method\n @impl.adapted\n UpdateAsyncronous(updateContext = null)\n {\n if (!this.update)\n {\n return 0;\n }\n\n const threshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetHighDetailThreshold\", \"highDetailThreshold\");\n const frequency = this.isVisible && threshold > 0\n ? Math.min(1, this.estimatedPixelDiameter / threshold)\n : 0;\n for (const controller of this.controllers)\n {\n controller?.Update?.(frequency);\n }\n\n // Carbon cpp:626-663: the persistent buffers are invalidated once per\n // frame, then the shader data is prepared and copied into both records.\n this.#vsData.Invalidate();\n this.#psData.Invalidate();\n\n const previousActivationStrength = this.spaceObjectShipData[1];\n this.PrepareShaderData(updateContext);\n if (previousActivationStrength !== this.spaceObjectShipData[1])\n {\n this.SetControllerVariable?.(\"ActivationStrength\", this.spaceObjectShipData[1]);\n }\n\n this.#psData.Set(\"shipData\", this.spaceObjectShipData);\n this.#vsData.Set(\"shipData\", this.spaceObjectShipData);\n // m_psData.customData is script/SOF-driven; the model field is its author.\n this.#psData.Set(\"customData\", this.customShaderData);\n // Both records carry the same two matrices; each is written from the\n // LOGICAL transform, which produces the bytes Carbon's `m_psData.x =\n // m_vsData.x` copy of the already-transposed value produces.\n this.#vsData.SetAndTranspose(\"worldTransform\", this.worldTransform);\n this.#vsData.SetAndTranspose(\"invWorldTransform\", this.inverseWorldTransform);\n this.#psData.SetAndTranspose(\"worldTransform\", this.worldTransform);\n this.#psData.SetAndTranspose(\"invWorldTransform\", this.inverseWorldTransform);\n\n const shapeCenter = EveSpaceObject2.#shapeCenterScratch;\n const shapeRadius = EveSpaceObject2.#shapeRadiusScratch;\n this.GetShapeEllipsoid(shapeCenter, shapeRadius);\n this.#vsData.Set(\"ellpsoidRadii\", [ shapeRadius[0], shapeRadius[1], shapeRadius[2], 0 ]);\n this.#vsData.Set(\"ellpsoidCenter\", [ shapeCenter[0], shapeCenter[1], shapeCenter[2], 0 ]);\n\n if (this.impactOverlay)\n {\n this.#psData.Set(\"impactDataOffset\", [ this.impactOverlay.GetDataTextureOffset?.() ?? 0 ]);\n }\n\n for (let slot = 0; slot < EveSpaceObject2.CUSTOM_MASK_MAX; slot++)\n {\n if (this.customMasks.length > slot)\n {\n this.customMasks[slot]?.FillPerObjectData?.(slot, this.#vsData, this.#psData);\n }\n else\n {\n EveCustomMask.ZeroPerObjectData(slot, this.#vsData, this.#psData);\n }\n }\n\n // Object-level curve sets update only on frames the sync-side LOD gate\n // stamped, receiving the context time as BOTH realTime and simTime\n // (Carbon EveSpaceObject2::UpdateAsyncronous: if (m_lastCurveUpdateTime ==\n // time) (*it)->Update(time, time)).\n const time = EveSpaceObject2.#GetContextValue(updateContext, \"GetTime\", \"currentTime\", \"time\");\n if (this.#lastCurveUpdateTime === time)\n {\n for (const curveSet of this.curveSets)\n {\n curveSet?.Update?.(time, time);\n }\n }\n\n for (const child of this.children)\n {\n child?.Update?.(updateContext);\n }\n\n if (this.effectChildren.length)\n {\n const params = new EveChildUpdateParams();\n params.spaceObjectParent = this;\n params.ownerMaxSpeed = Number(this.maxSpeed) || 0;\n params.activationStrength = this.activationStrength;\n params.controllerUpdateFrequency = frequency;\n mat4.copy(params.localToWorldTransform, this.GetLocalToWorldTransform());\n for (const child of this.effectChildren)\n {\n params.isVisible = this.display && (this.DisplayChildren() || !!child?.IsAlwaysOn?.());\n child?.UpdateAsyncronous?.(updateContext, params);\n }\n }\n\n this.impactOverlay?.UpdateAsyncronous?.(updateContext, this);\n return frequency;\n }\n\n /**\n * Updates Carbon's visibility, pixel-size, and mesh-LOD state, then forwards\n * visibility to the explicitly owned visual branches.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Native impostor, raytracing, and audio-emitter realization remain engine-owned; graph visibility and LOD state are preserved.\")\n UpdateVisibility(updateContext = null, _parentTransform = EveSpaceObject2.#identityTransform)\n {\n this.isVisible = false;\n this.#isMeshVisible = false;\n this.#isInFrustum = false;\n if (!this.display)\n {\n return false;\n }\n\n this.UpdateWorldBounds();\n this.lodLevel = Tr2Lod.TR2_LOD_LOW;\n this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\n this.#impostorMode = false;\n\n const frustum = updateContext?.GetFrustum?.() ?? updateContext?.frustum;\n const lowThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetLowDetailThreshold\", \"lowDetailThreshold\");\n const mediumThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetMediumDetailThreshold\", \"mediumDetailThreshold\");\n const visibilityThreshold = EveSpaceObject2.#GetContextValue(updateContext, \"GetVisibilityThreshold\", \"visibilityThreshold\");\n const lodFactor = EveSpaceObject2.#GetContextValue(updateContext, \"GetLodFactor\", \"lodFactor\") || 1;\n\n if (this.boundingSphereRadius > 0 && this.#boundingSphereWorldRadius > 0)\n {\n EveSpaceObject2.#SetSphere(\n EveSpaceObject2.#worldSphere,\n this.modelWorldPosition,\n this.#boundingSphereWorldRadius\n );\n if (frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false)\n {\n this.EstimatePixelDiameter(frustum);\n this.#isMeshVisible = true;\n }\n }\n\n // Bones so a bone-parented attachment's bounds follow its bone, which is\n // what drives the per-bone AABB union (Carbon BoundingBox.cpp:815-833).\n const { bones, boneCount } = getBoneList(this.animationUpdater);\n\n for (const attachment of this.attachments)\n {\n if (attachment?.UpdateVisibility?.(updateContext, this.worldTransform, bones, boneCount))\n {\n this.#isMeshVisible = true;\n this.isVisible = true;\n }\n }\n\n if (this.DisplayChildren())\n {\n for (const child of this.children)\n {\n child?.UpdateVisibility?.(updateContext, this.worldTransform);\n }\n }\n\n if (this.GetBoundingSphere(EveSpaceObject2.#worldSphere, 1))\n {\n this.#isInFrustum = frustum?.IsSphereVisible?.(EveSpaceObject2.#worldSphere) !== false;\n this.estimatedPixelDiameterWithChildren = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\n if (this.#isInFrustum && this.estimatedPixelDiameterWithChildren >= visibilityThreshold)\n {\n this.isVisible = true;\n }\n }\n\n if (this.isVisible)\n {\n if (this.estimatedPixelDiameter > mediumThreshold) this.lodLevel = Tr2Lod.TR2_LOD_HIGH;\n else if (this.estimatedPixelDiameter > lowThreshold) this.lodLevel = Tr2Lod.TR2_LOD_MEDIUM;\n\n if (this.estimatedPixelDiameterWithChildren > mediumThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_HIGH;\n else if (this.estimatedPixelDiameterWithChildren > lowThreshold) this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_MEDIUM;\n else this.#lodLevelWithChildren = Tr2Lod.TR2_LOD_LOW;\n }\n\n for (const observer of this.observers)\n {\n const target = observer?.GetObserver?.() ?? observer?.observer;\n target?.SetVisibility?.(this.isVisible);\n }\n for (const child of this.effectChildren)\n {\n child?.UpdateVisibility?.(updateContext, this.worldTransform, this.#lodLevelWithChildren);\n }\n\n if (this.mesh && this.#boundingSphereWorldRadius > 0)\n {\n EveSpaceObject2.#SetSphere(\n EveSpaceObject2.#worldSphere,\n this.modelWorldPosition,\n this.#boundingSphereWorldRadius\n );\n this.#meshScreenSize = EveSpaceObject2.#GetEstimatedPixelSize(frustum, EveSpaceObject2.#worldSphere) * lodFactor;\n if (!this.#allowLodSelection) this.#meshScreenSize = Infinity;\n this.mesh.UseWithScreenSize?.(this.#meshScreenSize, this.#boundingSphereWorldRadius);\n }\n return this.isVisible;\n }\n\n /** Collects the hull and explicitly owned Carbon child/decal renderables. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Impostor submission and decal mesh caches are engine-owned; Trinity returns the backend-neutral renderable graph.\")\n GetRenderables(out = [])\n {\n if (!this.display || !this.isVisible) return out;\n if (this.#allowLodSelection && this.#isMeshVisible)\n {\n this.mesh?.GetBoundingBox?.(this.#localAabbMin, this.#localAabbMax);\n }\n if (this.mesh && this.#isMeshVisible && this.mesh.IsLoading?.() !== true)\n {\n out.push(this);\n }\n if (this.DisplayChildren())\n {\n for (const child of this.children) child?.GetRenderables?.(out);\n }\n for (const child of this.effectChildren)\n {\n if (this.DisplayChildren() || child?.IsAlwaysOn?.()) child?.GetRenderables?.(out);\n }\n if (this.mesh && this.#isMeshVisible)\n {\n const geometryResource = this.mesh.GetGeometryResource?.();\n if (geometryResource)\n {\n for (const decal of this.decals)\n {\n decal?.GetRenderables?.(out, null, geometryResource, this.#meshScreenSize);\n }\n }\n }\n return out;\n }\n\n /** Carbon ITr2Renderable contract (EveSpaceObject2.cpp:1097-1140): activated\n * attachments recurse, the impact overlay contributes, the hull mesh delegates\n * per batch type, and TRANSPARENT routes through the distance-sorted area\n * path. GetBatchesFromOverlayVector (precomputed overlay area blocks) is\n * deferred with the overlay realization work. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Overlay area-block batches are deferred; the view position arrives via the appended render-context argument instead of Carbon's renderer global.\")\n GetBatches(batches, batchType, perObjectData, reason, renderContext = null)\n {\n if (!this.mesh) return false;\n if (this.mesh.display === false) return false;\n\n // Returns whether any batch was committed (JS addition; Carbon returns\n // void). The O(1) accumulator count makes the delta check free.\n const committedBefore = batches.GetBatchCount?.() ?? 0;\n\n if (this.activationStrength !== 0)\n {\n for (const attachment of this.attachments)\n {\n attachment?.GetBatches?.(batches, batchType, perObjectData, reason);\n }\n }\n\n this.impactOverlay?.GetBatches?.(batches, batchType, perObjectData, this.#meshScreenSize);\n\n const areas = this.mesh.GetAreas?.(batchType);\n if (areas)\n {\n if (batchType !== TriBatchType.TRIBATCHTYPE_TRANSPARENT)\n {\n this.mesh.GetBatches(batches, areas, perObjectData);\n }\n else\n {\n this.#GetSortedTransparentBatches(areas, batches, perObjectData, renderContext);\n }\n }\n\n // add overlay effect batches (Carbon calls this for every batch type)\n this.GetBatchesFromOverlayVector(batches, perObjectData, batchType, this.mesh);\n\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\n }\n\n // Carbon GetSortedBatchesFromMeshAreaVector (EveSpaceObject2.cpp:57-121):\n // object-space area bounding-box centers -> world space -> squared distance to\n // the view position, sorted back-to-front (descending), committed in that\n // order into the order-preserving TRANSPARENT accumulator. Bounding boxes come\n // from the geometry resource when it exposes them; a failed lookup keeps\n // Carbon's origin-center fallback.\n\n /**\n * Commits the mesh's transparent areas back-to-front, ordering them by the\n * squared distance from the view position to each area's world-space\n * bounding-box center and falling back to the object origin when the geometry\n * resource cannot supply a box.\n */\n #GetSortedTransparentBatches(areas, batches, perObjectData, renderContext)\n {\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\n const viewPosition = renderContext?.GetViewPosition?.();\n const meshIndex = this.mesh.meshIndex ?? 0;\n\n const sorted = [];\n for (const area of areas)\n {\n if (!area || area.GetDisplay?.() === false) continue;\n\n vec3.set(TRANSPARENT_CENTER, 0, 0, 0);\n if (geometry?.GetAreaBoundingBox?.(meshIndex, area.GetIndex(), TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX))\n {\n vec3.add(TRANSPARENT_CENTER, TRANSPARENT_AABB_MIN, TRANSPARENT_AABB_MAX);\n vec3.scale(TRANSPARENT_CENTER, TRANSPARENT_CENTER, 0.5);\n }\n vec3.transformMat4(TRANSPARENT_CENTER, TRANSPARENT_CENTER, this.worldTransform);\n\n const dx = (viewPosition?.[0] ?? 0) - TRANSPARENT_CENTER[0];\n const dy = (viewPosition?.[1] ?? 0) - TRANSPARENT_CENTER[1];\n const dz = (viewPosition?.[2] ?? 0) - TRANSPARENT_CENTER[2];\n sorted.push({ area, distance: dx * dx + dy * dy + dz * dz });\n }\n\n sorted.sort((a, b) => b.distance - a.distance);\n\n for (const entry of sorted)\n {\n const area = entry.area;\n if (!area.GetMaterialInterface?.()) continue;\n const batch = this.mesh.CreateGeometryBatch(geometry, area, perObjectData);\n if (batch) batches.Commit(batch);\n }\n }\n\n /** Rebuilds the cached overlay/shadow area-block lists from the current mesh\n * (Carbon RebuildCachedData, EveSpaceObject2.cpp:2077-2097, triggered there by\n * the geometry-resource load callback). TYPE_ALL = shadow-casting OPAQUE +\n * TRANSPARENT + DECAL areas; TYPE_OPAQUEONLY = shadow-casting OPAQUE; the\n * shadow list groups OPAQUE areas by shared material. All coalesced. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon rebuilds from the geometry-resource notify callback; the GPU-free port rebuilds lazily on first batch use from the mesh areas alone.\")\n RebuildCachedData()\n {\n this.ReleaseCachedData();\n if (!this.mesh) return;\n\n const all = this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL];\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_OPAQUE);\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_TRANSPARENT);\n this.mesh.CollectAreaBlocks(all, TriBatchType.TRIBATCHTYPE_DECAL);\n this.mesh.CollectAreaBlocks(\n this.#overlayMeshAreaBlocks[OVERLAY_TYPE_OPAQUEONLY], TriBatchType.TRIBATCHTYPE_OPAQUE);\n for (const blocks of this.#overlayMeshAreaBlocks)\n {\n TriRenderBatchAreaBlock.Optimize(blocks);\n }\n\n this.mesh.CollectAreaBlocksWithSharedMaterials(\n this.#shadowMeshOpaqueAreas, TriBatchType.TRIBATCHTYPE_OPAQUE);\n for (const collector of this.#shadowMeshOpaqueAreas)\n {\n collector.Optimize();\n }\n this.#cachedAreaBlocksBuilt = true;\n }\n\n /**\n * Drops the cached overlay and shadow area-block lists so the next batch call\n * rebuilds them from the current mesh.\n */\n @carbon.method\n @impl.implemented\n ReleaseCachedData()\n {\n for (const blocks of this.#overlayMeshAreaBlocks)\n {\n blocks.length = 0;\n }\n this.#shadowMeshOpaqueAreas.length = 0;\n this.#cachedAreaBlocksBuilt = false;\n }\n\n /**\n * Rebuilds the cached area blocks on first use when a mesh is attached; Carbon\n * instead rebuilds them from the geometry-resource load callback.\n */\n #EnsureCachedAreaBlocks()\n {\n if (!this.#cachedAreaBlocksBuilt && this.mesh) this.RebuildCachedData();\n }\n\n /**\n * Carbon EveSpaceObject2::GetPickingBatches (cpp:3645-3675): collects the\n * geometry a pick pass should test, by mask. It is ordinary batch collection\n * - the pick itself is an engine pass that renders these and reads IDs back.\n *\n * The OPAQUE bit deliberately pulls in the transparent and additive OVERLAY\n * effects too, so a cloaking hull stays pickable.\n *\n * @param {Object} batches - the picking accumulator\n * @param {Number} pickTypes - a Tr2PickType mask\n * @param {Object} perObjectData - this hull's per-object record\n */\n @carbon.method\n @impl.implemented\n GetPickingBatches(batches, pickTypes = TR2_PICK_TYPE_DEFAULT, perObjectData = null)\n {\n if (pickTypes & Tr2PickType.PICK_TYPE_PICKING)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_PICKING, perObjectData);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_OPAQUE)\n {\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_OPAQUE, perObjectData);\n this.GetBatches(batches, TriBatchType.TRIBATCHTYPE_DECAL, perObjectData);\n this.GetBatchesFromOverlayVector(batches, perObjectData, TriBatchType.TRIBATCHTYPE_TRANSPARENT, this.mesh);\n this.GetBatchesFromOverlayVector(batches, perObjectData, TriBatchType.TRIBATCHTYPE_ADDITIVE, this.mesh);\n }\n\n if (pickTypes & Tr2PickType.PICK_TYPE_TRANSPARENT)\n {\n // Carbon takes the mesh's OWN areas here rather than going through\n // GetBatches, and returns early when the mesh is absent or hidden - so a\n // hidden mesh suppresses the transparent pass only, not the ones above.\n if (!this.mesh || this.mesh.display === false)\n {\n return true;\n }\n\n for (const batchType of [ TriBatchType.TRIBATCHTYPE_TRANSPARENT, TriBatchType.TRIBATCHTYPE_ADDITIVE ])\n {\n const areas = this.mesh.GetAreas?.(batchType);\n\n if (areas)\n {\n this.mesh.GetBatches?.(batches, areas, perObjectData);\n }\n }\n }\n\n return true;\n }\n\n /**\n * Carbon EveSpaceObject2::GetID (cpp:3640-3643): a picked area resolves to\n * the hull itself, so the area index is deliberately ignored.\n * @param {Number} [_areaID] - the picked area, unused by this class\n * @returns {EveSpaceObject2} this\n */\n @carbon.method\n @impl.implemented\n GetID(_areaID = 0)\n {\n return this;\n }\n\n /** Carbon GetShadowBatches (EveSpaceObject2.cpp:1143-1184): one batch per\n * cached shared-material OPAQUE area block, using the area's own material.\n * Carbon bakes realized-LOD draw args; the GPU-free port defers them to the\n * engine via the geometry source descriptor, so shadowPixelSize travels unused\n * until engine LOD selection consumes it. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Realized-LOD draw args are engine-resolved from the geometry source descriptor; primitive-count gating happens at realization.\")\n GetShadowBatches(batches, perObjectData, _shadowPixelSize)\n {\n if (!this.mesh || this.mesh.display === false) return false;\n this.#EnsureCachedAreaBlocks();\n\n const geometry = this.mesh.GetGeometryResource?.() ?? null;\n const meshIndex = this.mesh.meshIndex ?? 0;\n\n let committed = false;\n for (const collector of this.#shadowMeshOpaqueAreas)\n {\n const material = collector.shaderMaterial;\n if (!material) continue;\n for (const block of collector.areaBlockVector)\n {\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(material);\n if (!batch.IsValid()) continue;\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\n batch.SetPerObjectData(perObjectData ?? null);\n committed = batches.Commit(batch) || committed;\n }\n }\n return committed;\n }\n\n /** Carbon GetBatchesFromOverlayVector (EveSpaceObject2.cpp:1199-1285): the\n * impact overlay's armor-damage shader draws over the TYPE_ALL blocks at\n * maximum priority; each displayed overlay effect draws its per-batch-type\n * effects over its overlay-type blocks (OPAQUE -> TYPE_OPAQUEONLY, everything\n * else -> TYPE_ALL). */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Overlay selection is fully represented in the CPU graph; realized-LOD draw arguments remain engine-owned.\")\n GetBatchesFromOverlayVector(batches, perObjectData, batchType, mesh)\n {\n const impactEffect = this.impactOverlay?.GetArmorDamageShader?.(batchType) ?? null;\n if (!impactEffect && !this.overlayEffects.length) return false;\n if (!mesh) return false;\n this.#EnsureCachedAreaBlocks();\n\n const committedBefore = batches.GetBatchCount?.() ?? 0;\n\n const geometry = mesh.GetGeometryResource?.() ?? null;\n const meshIndex = mesh.meshIndex ?? 0;\n\n if (impactEffect)\n {\n for (const block of this.#overlayMeshAreaBlocks[OVERLAY_TYPE_ALL])\n {\n this.#CommitBlockBatch(batches, impactEffect, geometry, meshIndex, block, perObjectData, 0xFFFFFFFF);\n }\n }\n\n for (const overlay of this.overlayEffects)\n {\n const effects = this.#OverlayEffectsFor(overlay, batchType);\n if (!effects) continue;\n\n const overlayType = overlay.GetType(batchType);\n const blocks = this.#overlayMeshAreaBlocks[overlayType];\n for (const effect of effects)\n {\n for (const block of blocks)\n {\n this.#CommitBlockBatch(batches, effect, geometry, meshIndex, block, perObjectData, 0);\n }\n }\n }\n\n return (batches.GetBatchCount?.() ?? 0) > committedBefore;\n }\n\n /**\n * Builds and commits one render batch drawing a single cached area block with\n * the given material and optional priority, skipping the block when the\n * material yields no valid batch.\n */\n #CommitBlockBatch(batches, material, geometry, meshIndex, block, perObjectData, priority)\n {\n const batch = new Tr2RenderBatch();\n batch.SetMaterial(material);\n if (!batch.IsValid()) return;\n if (priority !== 0) batch.SetPriority(priority);\n batch.SetGeometrySource(geometry, meshIndex, block.startIndex, block.count, false);\n batch.SetPerObjectData(perObjectData ?? null);\n batches.Commit(batch);\n }\n\n // EveMeshOverlayEffect::GetEffects (display-gated, per batch type).\n\n /**\n * Returns an overlay effect's display-gated effect list for a batch type, or\n * null when it contributes none.\n */\n #OverlayEffectsFor(overlay, batchType)\n {\n return overlay?.GetEffects?.(batchType) ?? null;\n }\n\n /**\n * Reports whether the hull mesh has transparent areas or any overlay effect\n * does, which tells the renderer to route this object through the sorted\n * transparent pass.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Portable mesh area access replaces Carbon's native mesh-area vectors.\")\n HasTransparentBatches()\n {\n if (!this.mesh) return false;\n if ((this.mesh.GetAreas?.(TriBatchType.TRIBATCHTYPE_TRANSPARENT)?.length ?? 0) > 0) return true;\n\n for (const overlay of this.overlayEffects)\n {\n if (overlay?.HasTransparentArea?.()) return true;\n }\n return false;\n }\n\n /**\n * Returns the distance from the render context's view position to the hull\n * world translation, used to order transparent renderables back-to-front.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reads the Tr2Renderer view-position global; the relocated camera state arrives via the threaded render context.\")\n GetSortValue(renderContext = null)\n {\n const viewPosition = renderContext?.GetViewPosition?.();\n const x = (viewPosition?.[0] ?? 0) - this.worldTransform[12];\n const y = (viewPosition?.[1] ?? 0) - this.worldTransform[13];\n const z = (viewPosition?.[2] ?? 0) - this.worldTransform[14];\n return Math.hypot(x, y, z);\n }\n\n /** Carbon allocates Tr2PerObjectDataWithPersistentBuffers<EveSpaceObject2>,\n * which calls back into the object at upload time; the GPU-free record carries\n * the same live object reference for the engine serializer (the space-object\n * Main profile) to pull current values at realization. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Persistent VS/PS device buffers are engine-owned; the record carries the object reference the engine serializer consumes.\")\n GetPerObjectData(_accumulator = null)\n {\n // Carbon cpp:1437-1445: the bone ring is uploaded and its OFFSETS stamped\n // into the record, then a pooled handle referencing the two persistent\n // buffers is returned. The offsets are GPU addresses with no CPU\n // derivation, so they stay at their zero default here; the bone count is\n // CPU-known and is written.\n const boneCount = this.animationUpdater?.IsInitialized?.()\n ? (this.animationUpdater.GetMeshBoneCount?.() ?? 0)\n : null;\n if (boneCount !== null)\n {\n this.#vsData.SetIndex(\"boneOffsets\", 2, [ boneCount ]);\n }\n this.#vsData.Set(\"customData\", this.#psData.Get(\"customData\"));\n\n return { vs: this.#vsData, ps: this.#psData };\n }\n\n /** Carbon forwards the shadow pass to the same per-object record. */\n @carbon.method\n @impl.implemented\n GetShadowPerObjectData(accumulator = null)\n {\n return this.GetPerObjectData(accumulator);\n }\n\n /** Carbon EveSpaceObject2::GetLights (cpp:3536-3555): display gate only\n * (no lights-empty early-out, unlike EveChildMesh), then per light\n * AddLight(manager, worldTransform, 1, bones, boneCount) FOLLOWED by\n * SetBrightnessMultiplier(m_activationStrength) - the order is contract:\n * the submission uses the multiplier stamped on the PREVIOUS pass (first\n * pass uses the Tr2Light default 1) - one frame of activation-strength\n * lag, preserved verbatim. cpp:3554's dead `DisplayChildren()` local is\n * not ported. */\n @carbon.method\n @impl.implemented\n GetLights(lightManager)\n {\n if (!this.display)\n {\n return;\n }\n\n // cpp:3545-3547 - Tr2GrannyAnimationUtils::GetBoneList, so a bone-parented\n // light is placed by its bone rather than by the object transform alone.\n const { bones, boneCount } = getBoneList(this.animationUpdater);\n\n for (const light of this.lights)\n {\n light?.AddLight?.(lightManager, this.worldTransform, 1, bones, boneCount);\n light?.SetBrightnessMultiplier?.(this.activationStrength);\n }\n }\n\n /** Carbon EveSpaceObject2::IsCastingShadow (cpp:1940-1990) culls against the\n * camera/shadow frustums; awaits the TriFrustum port (visibility pass).\n * Presence satisfies the \"ShadowCaster\" duck contract. */\n @carbon.method\n @impl.notImplemented\n IsCastingShadow(..._args)\n {\n throw new Error(\"EveSpaceObject2.IsCastingShadow is not implemented in CarbonEngineJS.\");\n }\n\n /** Carbon EveSpaceObject2::RegisterComponents (cpp:3568-3609): registers its\n * own components and its children with the scene registration container \"so\n * we don't have to traverse the tree every frame\". RegisterAudioGeometry\n * (cpp:3572-3575) is audio-engine-owned and unported. Gate m_display. */\n @carbon.method\n @impl.implemented\n RegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry && this.display)\n {\n if (this.lights.length)\n {\n registry.RegisterComponent(EveComponentType.LightOwner, this);\n }\n\n if (ShouldReflect(this.reflectionMode))\n {\n registry.RegisterComponent(EveComponentType.ReflectionRenderable, this);\n }\n\n if (this.castShadow)\n {\n registry.RegisterComponent(EveComponentType.ShadowCaster, this);\n }\n\n for (const child of this.effectChildren)\n {\n child?.Register?.(registry);\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.Register?.(registry);\n }\n }\n }\n\n /** Carbon EveSpaceObject2::UnRegisterComponents (cpp:3615-3638): forwards\n * the un-registration to the children only - EveEntity::UnRegister already\n * called UnRegisterAllComponents(this) first (EveEntity.cpp:90) - and does\n * not re-check display. UnregisterAudioGeometry (cpp:3617) is\n * audio-engine-owned and unported. */\n @carbon.method\n @impl.implemented\n UnRegisterComponents()\n {\n const registry = this.GetComponentRegistry();\n if (registry)\n {\n for (const child of this.effectChildren)\n {\n child?.UnRegister?.(registry);\n }\n\n for (const attachment of this.attachments)\n {\n attachment?.UnRegister?.(registry);\n }\n }\n }\n\n /**\n * Reports whether children and effect children should be shown; always true on\n * the base hull, subclasses gate it on activation state.\n */\n @carbon.method\n @impl.implemented\n DisplayChildren()\n {\n return true;\n }\n\n /**\n * Returns the transform placement observers are attached to - the live hull\n * world transform.\n */\n @carbon.method\n @impl.implemented\n GetObserverTransform()\n {\n return this.worldTransform;\n }\n\n /**\n * Returns the transform effect children are placed against - the live hull\n * world transform, not a copy.\n */\n @carbon.method\n @impl.implemented\n GetLocalToWorldTransform()\n {\n return this.worldTransform;\n }\n\n /** Carbon's non-updating model-center query. */\n @carbon.method\n @impl.implemented\n GetModelCenterWorldPosition(out)\n {\n vec3.transformMat4(out, this.boundingSphereCenter, this.worldTransform);\n }\n\n /**\n * Returns the live curve-sampled ball position; the array is the object's own\n * field and is rewritten by the next transform update.\n */\n @carbon.method\n @impl.implemented\n GetWorldPosition()\n {\n return this.worldPosition;\n }\n\n /**\n * Returns the live curve-sampled ball rotation, which excludes the model\n * rotation curve; the quaternion is the object's own field and is rewritten by\n * the next transform update.\n */\n @carbon.method\n @impl.implemented\n GetWorldRotation()\n {\n return this.worldRotation;\n }\n\n /**\n * Finds a sound emitter by observer name on this hull and then recursively in\n * the effect children, returning null when no emitter carries the name.\n */\n @carbon.method\n @impl.implemented\n FindSoundEmitter(name)\n {\n const target = String(name ?? \"\");\n for (const observer of this.observers)\n {\n if (observer?.name === target)\n {\n return typeof observer.GetObserver === \"function\"\n ? observer.GetObserver()\n : observer.observer ?? null;\n }\n }\n for (const child of this.effectChildren)\n {\n const emitter = child?.FindSoundEmitter?.(target);\n if (emitter)\n {\n return emitter;\n }\n }\n return null;\n }\n\n /**\n * Sets the mute flag and pushes it to every effect child and placement\n * observer.\n */\n @carbon.method\n @impl.adapted\n SetMute(mute)\n {\n this.mute = !!mute;\n for (const child of this.effectChildren)\n {\n child?.SetMute?.(this.mute);\n }\n for (const observer of this.observers)\n {\n observer?.SetMute?.(this.mute);\n }\n }\n\n /**\n * Plays an animation with explicit loop, start, and speed settings\n * (Carbon PlayAnimationEx, MAP_METHOD_AND_WRAP_OPTIONAL_ARGS).\n */\n @carbon.method\n @impl.adapted\n PlayAnimationEx(animName, loopCount, start, speed, clearWhenDone = true)\n {\n this.#PlayAnimation(animName, true, loopCount, start, speed, clearWhenDone);\n }\n\n /**\n * Calculates the skinned bounding box under a transform (CMF path: the\n * local box corners transformed with perspective divide). The granny path\n * is unported. Returns an inverted-empty { min, max } box when dynamic\n * bounds are disabled, as Carbon's BoundingBoxInitialize does.\n */\n @carbon.method\n @impl.adapted\n CalculateSkinnedBoundingBoxFromTransform(transform)\n {\n const min = vec3.fromValues(Infinity, Infinity, Infinity);\n const max = vec3.fromValues(-Infinity, -Infinity, -Infinity);\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\n {\n const { min: localMin, max: localMax } = this.GetLocalBoundingBox();\n const corner = vec3.create();\n for (let index = 0; index < 8; index++)\n {\n vec3.set(\n corner,\n index & 1 ? localMax[0] : localMin[0],\n index & 2 ? localMax[1] : localMin[1],\n index & 4 ? localMax[2] : localMin[2]\n );\n vec3.transformMat4(corner, corner, transform);\n vec3.min(min, min, corner);\n vec3.max(max, max, corner);\n }\n }\n return { min, max };\n }\n\n /**\n * Calculates the skinned bounding sphere (CMF path: the current bounding\n * sphere; granny path unported). Returns (0,0,0,-1) when dynamic bounds\n * are disabled.\n */\n @carbon.method\n @impl.adapted\n CalculateSkinnedBoundingSphere(out = vec4.create())\n {\n if (this.dynamicBoundingSphereEnabled && this.mesh?.GetGeometryResource?.()?.IsUsingCMF?.())\n {\n const center = this.GetBoundingSphereCenter();\n return vec4.set(out, center[0], center[1], center[2], this.GetBoundingSphereRadius());\n }\n return vec4.set(out, 0, 0, 0, -1);\n }\n\n /**\n * Clears all impact and damage effects on the impact overlay.\n */\n @carbon.method\n @impl.implemented\n ClearImpactDamage()\n {\n this.impactOverlay?.Clear?.();\n }\n\n /**\n * Clears all animations on the animation updater.\n */\n @carbon.method\n @impl.implemented\n ClearAnimations()\n {\n this.animationUpdater?.ClearAnimations?.();\n }\n\n /**\n * Creates an impact facing a position on the closest facing damage locator.\n */\n @carbon.method\n @impl.implemented\n CreateImpactFromPosition(position, direction, lifeTime, size)\n {\n const closestDamageLocator = this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\n return this.CreateImpact(closestDamageLocator, direction, lifeTime, size);\n }\n\n /**\n * Creates an impact effect on a damage locator through the impact overlay.\n */\n @carbon.method\n @impl.adapted\n CreateImpact(damageLocatorIndex, direction, lifeTime, size)\n {\n if (this.impactOverlay)\n {\n return this.impactOverlay.CreateImpact?.(damageLocatorIndex, direction, lifeTime, size, 1, this.lodLevel, this) ?? -1;\n }\n return -1;\n }\n\n /**\n * Ends the current animation on the animation updater.\n */\n @carbon.method\n @impl.implemented\n EndAnimation()\n {\n this.animationUpdater?.EndAnimation?.();\n }\n\n /**\n * Freezes LOD selection at the current mesh and marks decal geometry\n * frozen.\n */\n @carbon.method\n @impl.implemented\n FreezeHighDetailMesh()\n {\n this.#allowLodSelection = false;\n for (const decal of this.decals)\n {\n decal?.SetHighDetailDecalState?.(true);\n }\n }\n\n /**\n * Gets the number of damage locators on this object.\n */\n @carbon.method\n @impl.implemented\n GetDamageLocatorCount()\n {\n return this.GetLocatorCount(EveSpaceObject2.#damageLocatorSetName);\n }\n\n /**\n * Gets the number of locators in a named locator set.\n */\n @carbon.method\n @impl.implemented\n GetLocatorCount(locatorSetName)\n {\n return this.#GetLocatorsForSet(locatorSetName)?.length ?? 0;\n }\n\n /**\n * Gets the first locator list whose set has the requested Carbon name.\n * The returned list remains owned by the locator set.\n */\n @carbon.method\n @impl.implemented\n GetLocatorsForSet(locatorSetName)\n {\n return this.#GetLocatorsForSet(locatorSetName);\n }\n\n /**\n * Gets the closest locator in a set to a world position, ignoring locator\n * facing. Returns -1 when the set is missing or empty.\n */\n @carbon.method\n @impl.implemented\n GetCloseLocatorIndex(position, locatorSetName)\n {\n const locators = this.#GetLocatorsForSet(locatorSetName);\n if (!locators)\n {\n return -1;\n }\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\n const locatorPosition = vec3.create();\n const locatorDirection = vec3.create();\n let closestLength = Infinity;\n let closestIndex = -1;\n for (let index = 0; index < locators.length; index++)\n {\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\n if (distance < closestLength)\n {\n closestIndex = index;\n closestLength = distance;\n }\n }\n return closestIndex;\n }\n\n /**\n * Carbon's script surface maps GetGoodLocatorIndex to GetCloseLocatorIndex\n * (EveSpaceObject2_Blue.cpp); the internal randomized fit heuristic is not\n * script-exposed.\n */\n @carbon.method\n @impl.adapted\n GetGoodLocatorIndex(position, locatorSetName)\n {\n return this.GetCloseLocatorIndex(position, locatorSetName);\n }\n\n /**\n * Gets the local direction of an indexed damage locator, (0,0,0) for\n * indices out of range (Carbon script GetDamageLocatorDirection maps to\n * GetDamageLocatorDirectionLocal).\n */\n @carbon.method\n @impl.adapted\n GetDamageLocatorDirection(index, inWorldSpaceOrOut = vec3.create(), out = vec3.create())\n {\n const targetableCall = typeof inWorldSpaceOrOut === \"boolean\";\n const inWorldSpace = targetableCall && inWorldSpaceOrOut;\n if (!targetableCall) out = inWorldSpaceOrOut;\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\n if (!locators || !(index >= 0 && index < locators.length))\n {\n vec3.set(out, 0, targetableCall ? 1 : 0, 0);\n return targetableCall ? false : out;\n }\n const position = vec3.create();\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\n if (inWorldSpace) EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\n return targetableCall ? true : out;\n }\n\n /** Internal ITriTargetable locator query, using the org-standard out-last convention. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS keeps output parameters last and returns a validity flag for targetable callers.\")\n GetDamageLocatorPosition(index, inWorldSpace, out = vec3.create())\n {\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\n if (!locators || !(index >= 0 && index < locators.length))\n {\n if (inWorldSpace) vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\n else vec3.set(out, 0, 0, 0);\n return false;\n }\n this.#GetLocatorInObjectSpace(out, EveSpaceObject2.#locatorDirection, locators[index]);\n if (inWorldSpace) vec3.transformMat4(out, out, this.worldTransform);\n return true;\n }\n\n /** Gets the closest facing damage locator for ITriTargetable consumers. */\n @carbon.method\n @impl.implemented\n GetClosestDamageLocatorIndex(position)\n {\n return this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName);\n }\n\n /** Ports Carbon's randomized distance/direction fit for impact variation. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"TriRand is represented by Math.random; all locator scoring remains source-faithful.\")\n GetGoodDamageLocatorIndex(position)\n {\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\n if (!locators) return 0;\n\n const objectPosition = vec3.transformMat4(EveSpaceObject2.#objectPosition, position, this.inverseWorldTransform);\n let minDistance = Infinity;\n let maxDistance = Number.MIN_VALUE;\n let bestDirectionFit = 0;\n\n for (const locator of locators)\n {\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locator);\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\n minDistance = Math.min(minDistance, distance);\n maxDistance = Math.max(maxDistance, distance);\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\n bestDirectionFit = Math.max(bestDirectionFit, EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset));\n }\n\n const desiredFit = Math.random() * (0.25 - (1 - bestDirectionFit)) + 0.75;\n let bestFit = 1;\n let bestLocator = -1;\n for (let index = 0; index < locators.length; index++)\n {\n this.#GetLocatorInObjectSpace(EveSpaceObject2.#locatorPosition, EveSpaceObject2.#locatorDirection, locators[index]);\n if (!EveSpaceObject2.#IsLocatorFacingPosition(EveSpaceObject2.#locatorDirection, objectPosition)) continue;\n vec3.subtract(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorPosition, objectPosition);\n const distance = vec3.length(EveSpaceObject2.#locatorOffset);\n const range = maxDistance - minDistance;\n let scale = range > 0 ? 1 - (distance - minDistance) / range : 1;\n let value = 2 * scale - 1;\n value = value < 0 ? 1 - Math.sqrt(Math.abs(value)) : Math.sqrt(Math.abs(value)) + 1;\n value *= 0.5;\n if (distance) vec3.scale(EveSpaceObject2.#locatorOffset, EveSpaceObject2.#locatorOffset, 1 / distance);\n value *= EveSpaceObject2.#GetDirectionFit(EveSpaceObject2.#locatorDirection, EveSpaceObject2.#locatorOffset);\n const fit = Math.abs(value - desiredFit);\n if (fit < bestFit)\n {\n bestFit = fit;\n bestLocator = index;\n }\n }\n return bestLocator < 0 ? this.#GetClosestLocatorIndex(position, EveSpaceObject2.#damageLocatorSetName) : bestLocator;\n }\n\n /** Gets the model-scaled target radius. */\n @carbon.method\n @impl.implemented\n GetRadius()\n {\n return this.GetBoundingSphereRadius();\n }\n\n /** Computes a miss point just outside the model silhouette. */\n @carbon.method\n @impl.implemented\n GetMissPosition(hit, source, out = vec3.create())\n {\n if (this.boundingSphereRadius > 0)\n {\n vec3.copy(out, this.modelWorldPosition);\n if (hit && source)\n {\n vec3.subtract(EveSpaceObject2.#missOffset, hit, out);\n vec3.subtract(EveSpaceObject2.#missDirection, hit, source);\n const directionLength = vec3.length(EveSpaceObject2.#missDirection);\n if (directionLength) vec3.scale(EveSpaceObject2.#missDirection, EveSpaceObject2.#missDirection, 1 / directionLength);\n vec3.scaleAndAdd(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, EveSpaceObject2.#missDirection, -vec3.dot(EveSpaceObject2.#missDirection, EveSpaceObject2.#missOffset));\n const offsetLength = vec3.length(EveSpaceObject2.#missOffset);\n if (offsetLength) vec3.scale(EveSpaceObject2.#missOffset, EveSpaceObject2.#missOffset, 1 / offsetLength);\n vec3.scaleAndAdd(out, out, EveSpaceObject2.#missOffset, this.GetBoundingSphereRadius() * 1.125);\n }\n }\n else\n {\n this.GetDamageLocatorPosition(-1, true, out);\n }\n return out;\n }\n\n /** Gets the current target impact material. */\n @carbon.method\n @impl.implemented\n GetImpactConfiguration()\n {\n return this.impactOverlay?.GetImpactConfiguration?.() ?? ImpactConfiguration.IMPACT_INVALID;\n }\n\n /** Reports whether impacts currently use the authored shield ellipsoid. */\n @carbon.method\n @impl.implemented\n HasImpactConfigurationShield()\n {\n return !!this.impactOverlay?.HasShieldEllipsoid?.()\n && this.GetImpactConfiguration() === ImpactConfiguration.IMPACT_SHIELD;\n }\n\n /** Resolves a shield-ray or damage-locator collision point. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"CarbonEngineJS uses an out-last signature; the ellipsoid intersection is otherwise source-faithful CPU math.\")\n GetImpactPosition(locator, posPrev, posNow, epsilon, out = vec3.create())\n {\n if (!this.HasImpactConfigurationShield())\n {\n this.GetDamageLocatorPosition(locator, true, out);\n return vec3.squaredDistance(posNow, out) < Number(epsilon);\n }\n\n vec3.transformMat4(EveSpaceObject2.#rayOrigin, posPrev, this.inverseWorldTransform);\n vec3.transformMat4(EveSpaceObject2.#rayEnd, posNow, this.inverseWorldTransform);\n vec3.subtract(EveSpaceObject2.#rayDirection, EveSpaceObject2.#rayEnd, EveSpaceObject2.#rayOrigin);\n this.GetShapeEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii);\n const t = EveSpaceObject2.#IntersectEllipsoidRay(out, EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayOrigin, EveSpaceObject2.#rayDirection);\n if (t !== null && t >= -1 && t <= 1)\n {\n vec3.transformMat4(out, out, this.worldTransform);\n return true;\n }\n if (EveSpaceObject2.#IsPointInsideEllipsoid(EveSpaceObject2.#ellipsoidCenter, EveSpaceObject2.#ellipsoidRadii, EveSpaceObject2.#rayEnd))\n {\n vec3.copy(out, posNow);\n return true;\n }\n return false;\n }\n\n /** Updates an existing impact overlay entry. */\n @carbon.method\n @impl.implemented\n UpdateImpact(out, direction, impactIndex)\n {\n return this.impactOverlay?.UpdateImpact?.(out, direction, impactIndex) ?? false;\n }\n\n /**\n * Gets the local position of an indexed damage locator, (0,0,0) for\n * indices out of range.\n */\n @carbon.method\n @impl.implemented\n GetDamageLocator(index, out = vec3.create())\n {\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\n if (!locators || !(index >= 0 && index < locators.length))\n {\n return vec3.set(out, 0, 0, 0);\n }\n const direction = vec3.create();\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\n return out;\n }\n\n /**\n * Gets the world-space position of an indexed damage locator, (0,0,0) for\n * indices out of range (returned untransformed, as Carbon does).\n */\n @carbon.method\n @impl.implemented\n GetTransformedDamageLocator(index, out = vec3.create())\n {\n const locators = this.#GetLocatorsForSet(EveSpaceObject2.#damageLocatorSetName);\n if (!locators || !(index >= 0 && index < locators.length))\n {\n return vec3.set(out, 0, 0, 0);\n }\n const direction = vec3.create();\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\n return vec3.transformMat4(out, out, this.worldTransform);\n }\n\n /**\n * Checks whether this object is in impostor mode. The impostor system that\n * raises the flag is unported, so this reports the default until then.\n */\n @carbon.method\n @impl.adapted\n IsImpostor()\n {\n return this.#impostorMode;\n }\n\n /**\n * Gets a locator position from a named set. Out-of-range or missing-set\n * queries return the world translation in world space and (0,0,0) in\n * object space, as Carbon does.\n */\n @carbon.method\n @impl.implemented\n GetLocatorPositionFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\n {\n const locators = this.#GetLocatorsForSet(locatorSetName);\n if (index < 0 || !locators || index >= locators.length)\n {\n if (inWorldSpace)\n {\n return vec3.set(out, this.worldTransform[12], this.worldTransform[13], this.worldTransform[14]);\n }\n return vec3.set(out, 0, 0, 0);\n }\n const direction = vec3.create();\n this.#GetLocatorInObjectSpace(out, direction, locators[index]);\n if (inWorldSpace)\n {\n vec3.transformMat4(out, out, this.worldTransform);\n }\n return out;\n }\n\n /**\n * Gets a locator direction from a named set. Out-of-range or missing-set\n * queries return (0,1,0), as Carbon does.\n */\n @carbon.method\n @impl.implemented\n GetLocatorRotationFromSet(index, inWorldSpace, locatorSetName, out = vec3.create())\n {\n const locators = this.#GetLocatorsForSet(locatorSetName);\n if (index < 0 || !locators || index >= locators.length)\n {\n return vec3.set(out, 0, 1, 0);\n }\n const position = vec3.create();\n this.#GetLocatorInObjectSpace(position, out, locators[index]);\n if (inWorldSpace)\n {\n EveSpaceObject2.#TransformNormal(out, out, this.worldTransform);\n }\n return out;\n }\n\n /**\n * Raises a named controller event on this hull's controllers and forwards it\n * to the effect children and overlay effects.\n */\n @carbon.method\n @impl.implemented\n HandleControllerEvent(name)\n {\n const eventName = String(name ?? \"\");\n for (const controller of this.controllers)\n {\n controller?.HandleEvent?.(eventName);\n }\n for (const child of this.effectChildren)\n {\n child?.HandleControllerEvent?.(eventName);\n }\n for (const overlay of this.overlayEffects)\n {\n overlay?.HandleControllerEvent?.(eventName);\n }\n }\n\n /**\n * Plays an animation once, replacing the current one\n * (Carbon script PlayAnimation maps to PlayAnimationOnce).\n */\n @carbon.method\n @impl.adapted\n PlayAnimation(animName)\n {\n this.#PlayAnimation(animName, true, 1, 0, 1, true);\n }\n\n /**\n * Chains an animation once after the current one (Carbon ChainAnimation).\n */\n @carbon.method\n @impl.implemented\n ChainAnimation(animName)\n {\n this.#PlayAnimation(animName, false, 1, 0, 1, true);\n }\n\n /**\n * Chains an animation with explicit loop, start, and speed settings\n * (Carbon ChainAnimationEx).\n */\n @carbon.method\n @impl.implemented\n ChainAnimationEx(animName, loopCount, start, speed)\n {\n this.#PlayAnimation(animName, false, loopCount, start, speed, true);\n }\n\n // Carbon EveSpaceObject2::PlayAnimation: every playback wrapper funnels\n // into the animation updater, which owns playback state; a missing updater\n // is a Carbon-faithful no-op.\n\n /**\n * Forwards a playback request to the animation updater, which owns all\n * animation state; a hull without an updater does nothing, as in Carbon.\n */\n #PlayAnimation(animName, replace, loopCount, delay, speed, clearWhenDone)\n {\n this.animationUpdater?.PlayAnimation?.(String(animName ?? \"\"), replace, loopCount, delay, speed, clearWhenDone);\n }\n\n /**\n * Recalculates the authored bounding sphere from the mesh geometry\n * resource. Fails when no mesh or ready geometry resource is attached.\n */\n @carbon.method\n @impl.adapted\n RebuildBoundingSphereInformation()\n {\n const mesh = this.mesh;\n if (!mesh)\n {\n return false;\n }\n const geometryRes = mesh.GetGeometryResource?.();\n if (!geometryRes || !geometryRes.IsGood?.())\n {\n return false;\n }\n geometryRes.RecalculateBoundingSphere?.();\n const sphere = vec4.create();\n geometryRes.GetBoundingSphere?.(mesh.GetMeshIndex?.() ?? 0, sphere);\n vec3.set(this.boundingSphereCenter, sphere[0], sphere[1], sphere[2]);\n this.boundingSphereRadius = sphere[3];\n return true;\n }\n\n /** Sets Carbon's authored local bounding sphere from a sph3-compatible value. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's CcpMath::Sphere is represented by core-math sph3; object-shaped center/radius input is accepted at adapter boundaries.\")\n SetBoundingSphereInformation(sphere)\n {\n if (sphere?.center)\n {\n vec3.copy(this.boundingSphereCenter, sphere.center);\n this.boundingSphereRadius = Number(sphere.radius);\n }\n else\n {\n this.boundingSphereRadius = sph3.extract(sphere, this.boundingSphereCenter);\n }\n this.UpdateWorldBounds();\n return this;\n }\n\n /**\n * Returns a plain-object snapshot of the controller variables currently\n * stamped on this hull.\n */\n @carbon.method\n @impl.implemented\n GetControllerVariables()\n {\n return Object.fromEntries(this.#controllerVariables);\n }\n\n /** Gets Carbon's most recently selected geometry LOD. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Geometry resources without multi-LOD support expose their sole browser LOD as index zero.\")\n GetLastUsedMeshLod()\n {\n const geometryResource = this.mesh?.GetGeometryResource?.();\n if (!geometryResource) return -1;\n if (!this.#allowLodSelection) return 0;\n return geometryResource.GetLodIndexForScreenSize?.(this.mesh?.GetMeshIndex?.() ?? 0, this.#meshScreenSize) ?? 0;\n }\n\n /**\n * Gets a named locator's transform (Carbon script GetLocatorTransform maps\n * to GetEveLocatorTransform): the identity for unknown names, the animated\n * bone world transform when the animation updater resolves the name, else\n * the authored locator transform.\n */\n @carbon.method\n @impl.adapted\n GetLocatorTransform(name, out = mat4.create())\n {\n const target = String(name ?? \"\");\n let locator = null;\n for (const candidate of this.locators)\n {\n if (candidate?.GetName?.() === target)\n {\n locator = candidate;\n break;\n }\n }\n if (!locator)\n {\n return mat4.identity(out);\n }\n if (this.animationUpdater?.GetBoneWorldTransform?.(target, out))\n {\n return out;\n }\n return mat4.copy(out, locator.GetTransform());\n }\n\n /**\n * Gets the local axis-aligned bounding box: dynamic skinned bounds when\n * enabled, else the mesh box, else the cached box (at worst it lags one\n * frame). With out arguments it fills them and returns true; without, it\n * returns { min, max }.\n */\n @carbon.method\n @impl.adapted\n GetLocalBoundingBox(minBounds, maxBounds)\n {\n const min = vec3.create();\n const max = vec3.create();\n const updater = this.animationUpdater;\n if (this.dynamicBoundingSphereEnabled && updater?.IsInitialized?.())\n {\n const sphere = vec4.create();\n updater.GetDynamicBounds?.(sphere, min, max);\n vec3.copy(this.#localAabbMin, min);\n vec3.copy(this.#localAabbMax, max);\n }\n else if (this.mesh?.GetBoundingBox?.(min, max))\n {\n vec3.copy(this.#localAabbMin, min);\n vec3.copy(this.#localAabbMax, max);\n }\n else\n {\n vec3.copy(min, this.#localAabbMin);\n vec3.copy(max, this.#localAabbMax);\n }\n if (minBounds && maxBounds)\n {\n vec3.copy(minBounds, min);\n vec3.copy(maxBounds, max);\n return true;\n }\n return { min, max };\n }\n\n /** Gets Carbon's cached local box transformed into a world-axis-aligned box. */\n @carbon.method\n @impl.adapted\n GetWorldBoundingBox(minBounds, maxBounds)\n {\n box3.fromBounds(EveSpaceObject2.#localBox, this.#localAabbMin, this.#localAabbMax);\n box3.transformMat4(EveSpaceObject2.#worldBox, EveSpaceObject2.#localBox, this.worldTransform);\n const min = minBounds ?? vec3.create();\n const max = maxBounds ?? vec3.create();\n vec3.set(min, EveSpaceObject2.#worldBox[0], EveSpaceObject2.#worldBox[1], EveSpaceObject2.#worldBox[2]);\n vec3.set(max, EveSpaceObject2.#worldBox[3], EveSpaceObject2.#worldBox[4], EveSpaceObject2.#worldBox[5]);\n return minBounds && maxBounds ? true : { min, max };\n }\n\n /** Reports whether the attached mesh has a ready geometry resource. */\n @carbon.method\n @impl.implemented\n IsBoundingBoxReady()\n {\n const geometryResource = this.mesh?.GetGeometryResource?.();\n return !!geometryResource?.IsGood?.();\n }\n\n /**\n * Gets Carbon's realized world sphere, optionally accumulated with transform\n * and effect children when query is EVE_BOUNDS_WITH_CHILDREN.\n */\n @carbon.method\n @impl.adapted\n GetBoundingSphere(out = sph3.create(), query = 0)\n {\n if (!this.UpdateWorldBounds()) return false;\n EveSpaceObject2.#SetSphere(out, this.modelWorldPosition, this.#boundingSphereWorldRadius);\n if (!query || !this.DisplayChildren()) return true;\n for (const child of this.children)\n {\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\n {\n sph3.union(out, out, EveSpaceObject2.#childSphere);\n }\n }\n for (const child of this.effectChildren)\n {\n if (child?.GetBoundingSphere?.(EveSpaceObject2.#childSphere, query))\n {\n sph3.union(out, out, EveSpaceObject2.#childSphere);\n }\n }\n return true;\n }\n\n /** Updates Carbon's geometry-derived on-screen pixel diameter. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"TriFrustum is supplied structurally by the active engine; both exact and estimated browser frustum methods are supported.\")\n EstimatePixelDiameter(frustum)\n {\n if (this.mesh?.GetBoundingBox?.(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax))\n {\n vec3.copy(this.#localAabbMin, EveSpaceObject2.#boundsMin);\n vec3.copy(this.#localAabbMax, EveSpaceObject2.#boundsMax);\n }\n sph3.fromBounds(EveSpaceObject2.#localSphere, this.#localAabbMin, this.#localAabbMax);\n sph3.transformMat4(EveSpaceObject2.#worldSphere, EveSpaceObject2.#localSphere, this.worldTransform);\n this.estimatedPixelDiameter = EveSpaceObject2.#GetPixelSize(frustum, EveSpaceObject2.#worldSphere);\n return this.estimatedPixelDiameter;\n }\n\n /** Reports the result of the latest Carbon visibility update. */\n @carbon.method\n @impl.implemented\n IsInFrustum()\n {\n return this.#isInFrustum;\n }\n\n /**\n * Gets the bounding sphere center, preferring the dynamic skinned sphere\n * when one is published.\n */\n @carbon.method\n @impl.implemented\n GetBoundingSphereCenter(out = vec3.create())\n {\n if (this.#dynamicBoundingSphere[3] !== -1)\n {\n return vec3.set(out, this.#dynamicBoundingSphere[0], this.#dynamicBoundingSphere[1], this.#dynamicBoundingSphere[2]);\n }\n return vec3.copy(out, this.boundingSphereCenter);\n }\n\n /**\n * Gets the model-scaled bounding sphere radius, preferring the dynamic\n * skinned sphere when one is published.\n */\n @carbon.method\n @impl.implemented\n GetBoundingSphereRadius()\n {\n if (this.#dynamicBoundingSphere[3] !== -1)\n {\n return this.modelScale * this.#dynamicBoundingSphere[3];\n }\n return this.modelScale * this.boundingSphereRadius;\n }\n\n /**\n * Gets the number of mesh-bound bones. Carbon dereferences the animation\n * updater unchecked; CarbonEngineJS reports 0 when none is attached.\n */\n @carbon.method\n @impl.adapted\n GetBoneCount()\n {\n const updater = this.animationUpdater;\n if (!updater)\n {\n return 0;\n }\n if (updater.IsUsingCMF?.())\n {\n if (!updater.HasMeshBinding?.())\n {\n return 0;\n }\n return updater.GetSkeletonBoneIndices?.().length ?? 0;\n }\n return updater.GetMeshBindingBoneCount?.() ?? 0;\n }\n\n /**\n * Pushes shield, armor and hull damage levels to the impact overlay and\n * mirrors them into the ShieldDamage, ArmorDamage and HullDamage controller\n * variables so bound effects follow.\n */\n @carbon.method\n @impl.adapted\n SetImpactDamageState(shield, armor, hull, doCreateArmorImpacts = true)\n {\n this.impactOverlay?.SetDamageState?.(shield, armor, hull, doCreateArmorImpacts);\n this.SetControllerVariable(\"ShieldDamage\", shield);\n this.SetControllerVariable(\"ArmorDamage\", armor);\n this.SetControllerVariable(\"HullDamage\", hull);\n }\n\n /**\n * Toggles a named impact-overlay animation (boosters, hardeners, ...).\n */\n @carbon.method\n @impl.implemented\n SetImpactAnimation(name, enable, duration)\n {\n this.impactOverlay?.ToggleEffect?.(name, enable, duration);\n }\n\n /**\n * Stores a controller variable on the hull and pushes it to the controllers,\n * effect children and overlay effects; the stored value is replayed onto\n * controllers and children added later.\n */\n @carbon.method\n @impl.implemented\n SetControllerVariable(name, value)\n {\n const key = String(name ?? \"\");\n const next = Number(value);\n this.#controllerVariables.set(key, next);\n for (const controller of this.controllers)\n {\n controller?.SetVariable?.(key, next);\n }\n for (const child of this.effectChildren)\n {\n child?.SetControllerVariable?.(key, next);\n }\n for (const overlay of this.overlayEffects)\n {\n overlay?.SetControllerVariable?.(key, next);\n }\n }\n\n /**\n * Forwards a procedural-container variable to every effect child; the hull\n * itself keeps no copy.\n */\n @carbon.method\n @impl.implemented\n SetProceduralContainerVariable(name, value)\n {\n for (const child of this.effectChildren)\n {\n child?.SetProceduralContainerVariable?.(name, value);\n }\n }\n\n /**\n * Starts this hull's controllers and those of its effect children and overlay\n * effects.\n */\n @carbon.method\n @impl.implemented\n StartControllers()\n {\n for (const controller of this.controllers)\n {\n controller?.Start?.();\n }\n for (const child of this.effectChildren)\n {\n child?.StartControllers?.();\n }\n for (const overlay of this.overlayEffects)\n {\n overlay?.StartControllers?.();\n }\n }\n\n /**\n * Applies bone and model transforms to locators and returns\n * [position, rotation, boneIndex] tuples, as the Carbon script surface\n * does (TransformLocators maps to PyTransformLocators). Accepts either\n * locator records ({ position, direction, boneIndex }, Carbon's\n * LocatorStructureList shape) or the same [position, rotation, boneIndex]\n * tuple shape it returns.\n */\n @carbon.method\n @impl.adapted\n TransformLocators(locators = [])\n {\n const result = [];\n for (const locator of locators ?? [])\n {\n const record = Array.isArray(locator)\n ? { position: locator[0], rotation: locator[1], boneIndex: locator[2] }\n : { position: locator?.position, rotation: locator?.direction ?? locator?.rotation, boneIndex: locator?.boneIndex };\n const position = vec3.clone(record.position ?? EveSpaceObject2.#zero);\n const rotation = quat.clone(record.rotation ?? EveSpaceObject2.#identityRotation);\n const boneIndex = Number(record.boneIndex ?? 0);\n this.#TransformLocator(position, rotation, boneIndex);\n if (this.modelTranslationCurve || this.modelRotationCurve)\n {\n this.#ApplyModelTransform(position, rotation);\n }\n result.push([position, rotation, boneIndex]);\n }\n return result;\n }\n\n // Carbon Blue TransformLocator: bone-attached records pick up the mesh\n // bone matrix; without bone data the authored values pass through.\n\n /**\n * Applies the mesh bone matrix to a locator position and rotation for\n * bone-attached locators; the authored values pass through unchanged when\n * there is no usable bone data.\n */\n #TransformLocator(position, rotation, boneIndex)\n {\n const updater = this.animationUpdater;\n if (boneIndex <= 0 || !updater?.IsInitialized?.())\n {\n return;\n }\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, boneIndex);\n if (!bone)\n {\n return;\n }\n vec3.transformMat4(position, position, bone);\n const boneRotation = mat4.getRotation(quat.create(), bone);\n quat.multiply(rotation, boneRotation, rotation);\n }\n\n // Carbon Blue ApplyModelTransform samples both curves at the Be::Time()\n // origin (pure GetValueAt, no playback advance): translation adds, model\n // rotation rotates the position and pre-multiplies.\n\n /**\n * Applies the model translation and rotation curves sampled at time 0 to a\n * locator position and rotation, matching Carbon's Blue locator surface, which\n * reads the curves without advancing playback.\n */\n #ApplyModelTransform(position, rotation)\n {\n if (this.modelTranslationCurve)\n {\n const translation = vec3.create();\n this.modelTranslationCurve.GetValueAt?.(0, translation);\n vec3.add(position, position, translation);\n }\n if (this.modelRotationCurve)\n {\n const modelRotation = quat.create();\n this.modelRotationCurve.GetValueAt?.(0, modelRotation);\n vec3.transformQuat(position, position, modelRotation);\n quat.multiply(rotation, modelRotation, rotation);\n }\n }\n\n // Carbon GetLocatorsForSet: first set matching the name wins.\n\n /**\n * Returns the locator list of the first locator set carrying the name, or null\n * when no set matches; the list stays owned by the locator set.\n */\n #GetLocatorsForSet(locatorSetName)\n {\n const target = String(locatorSetName ?? \"\");\n for (const set of this.locatorSets)\n {\n if (set?.HasName?.(target))\n {\n return set.GetLocators();\n }\n }\n return null;\n }\n\n // Carbon GetLocatorInObjectSpace: the direction is +Y rotated by the\n // authored quaternion; bone-attached locators additionally apply the mesh\n // bone matrix. Carbon leaves the outputs untouched (caller-uninitialized)\n // when bone data is missing; CarbonEngineJS keeps the unskinned values.\n\n /**\n * Writes a locator's object-space position and its direction, which is +Y\n * rotated by the authored quaternion, applying the mesh bone matrix for\n * bone-attached locators; where Carbon leaves the outputs untouched when bone\n * data is missing, this keeps the unskinned values.\n */\n #GetLocatorInObjectSpace(outPosition, outDirection, locator)\n {\n vec3.transformQuat(outDirection, EveSpaceObject2.#unitY, locator.direction);\n vec3.copy(outPosition, locator.position);\n const updater = this.animationUpdater;\n if (locator.boneIndex > 0 && updater?.IsInitialized?.())\n {\n const boneCount = Number(updater.GetMeshBoneCount?.() ?? 0);\n if (locator.boneIndex < boneCount)\n {\n const bone = EveSpaceObject2.#GetBoneMatrix(updater, locator.boneIndex);\n if (bone)\n {\n vec3.transformMat4(outPosition, locator.position, bone);\n EveSpaceObject2.#TransformNormal(outDirection, outDirection, bone);\n }\n }\n }\n }\n\n // Carbon GetClosestLocatorIndex: facing-gated closest search; 0 when the\n // set is missing, -1 when no locator faces the position.\n\n /**\n * Returns the index of the nearest locator in a named set that faces the given\n * world position - 0 when the set is missing, -1 when no locator faces the\n * position.\n */\n #GetClosestLocatorIndex(position, locatorSetName)\n {\n const locators = this.#GetLocatorsForSet(locatorSetName);\n if (!locators)\n {\n return 0;\n }\n const posInObjectSpace = vec3.transformMat4(vec3.create(), position, this.inverseWorldTransform);\n const locatorPosition = vec3.create();\n const locatorDirection = vec3.create();\n let closestLength = Infinity;\n let closestIndex = -1;\n for (let index = 0; index < locators.length; index++)\n {\n this.#GetLocatorInObjectSpace(locatorPosition, locatorDirection, locators[index]);\n if (!EveSpaceObject2.#IsLocatorFacingPosition(locatorDirection, posInObjectSpace))\n {\n continue;\n }\n const distance = vec3.squaredDistance(locatorPosition, posInObjectSpace);\n if (distance < closestLength)\n {\n closestIndex = index;\n closestLength = distance;\n }\n }\n return closestIndex;\n }\n\n /**\n * Reports whether a locator faces a position, by testing that stepping the\n * object-space position back along the locator direction shortens it.\n */\n static #IsLocatorFacingPosition(locatorDirection, posInObjectSpace)\n {\n const moved = vec3.subtract(vec3.create(), posInObjectSpace, locatorDirection);\n return vec3.squaredLength(moved) < vec3.squaredLength(posInObjectSpace);\n }\n\n /** Rotates a direction by a matrix's rotation basis, ignoring its translation. */\n static #TransformNormal(out, direction, matrix)\n {\n const x = direction[0];\n const y = direction[1];\n const z = direction[2];\n out[0] = matrix[0] * x + matrix[4] * y + matrix[8] * z;\n out[1] = matrix[1] * x + matrix[5] * y + matrix[9] * z;\n out[2] = matrix[2] * x + matrix[6] * y + matrix[10] * z;\n return out;\n }\n\n /** Carbon's authored-or-derived local shape ellipsoid query. */\n @carbon.method\n @impl.implemented\n GetShapeEllipsoid(outCenter, outRadii)\n {\n if (this.shapeEllipsoidRadius[0] > 0)\n {\n vec3.copy(outCenter, this.shapeEllipsoidCenter);\n vec3.copy(outRadii, this.shapeEllipsoidRadius);\n }\n else\n {\n const bounds = this.GetLocalBoundingBox(EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax);\n if (bounds === false)\n {\n vec3.set(EveSpaceObject2.#boundsMin, -1, -1, -1);\n vec3.set(EveSpaceObject2.#boundsMax, 1, 1, 1);\n }\n vec3.subtract(outRadii, EveSpaceObject2.#boundsMax, EveSpaceObject2.#boundsMin);\n vec3.scale(outRadii, outRadii, Math.sqrt(3) * 0.5);\n vec3.lerp(outCenter, EveSpaceObject2.#boundsMin, EveSpaceObject2.#boundsMax, 0.5);\n }\n vec3.copy(this.generatedShapeEllipsoidCenter, outCenter);\n vec3.copy(this.generatedShapeEllipsoidRadius, outRadii);\n }\n\n /**\n * Maps the negated dot product of a locator direction and an offset direction\n * onto Carbon's square-root fit score, the ranking used to pick a varied\n * damage locator.\n */\n static #GetDirectionFit(v0, v1)\n {\n const direction = -vec3.dot(v0, v1);\n return direction < 0\n ? (1 - Math.sqrt(Math.abs(direction))) * 0.5\n : (Math.sqrt(Math.abs(direction)) + 1) * 0.5;\n }\n\n /**\n * Intersects a ray with an axis-aligned ellipsoid in the ellipsoid's own space and writes the hit point into out.\n * @returns {number|null} The ray parameter at the hit, or null when the ray is degenerate or misses.\n */\n static #IntersectEllipsoidRay(out, center, radii, origin, direction)\n {\n const vx = direction[0] / radii[0];\n const vy = direction[1] / radii[1];\n const vz = direction[2] / radii[2];\n const sx = (origin[0] - center[0]) / radii[0];\n const sy = (origin[1] - center[1]) / radii[1];\n const sz = (origin[2] - center[2]) / radii[2];\n const vv = vx * vx + vy * vy + vz * vz;\n if (!(vv > 0)) return null;\n const vs = vx * sx + vy * sy + vz * sz;\n const ss = sx * sx + sy * sy + sz * sz;\n let discriminant = (vs / vv) ** 2 - ss / vv + 1 / vv;\n if (discriminant < 0) return null;\n discriminant = Math.sqrt(discriminant);\n let t = -discriminant - vs / vv;\n if (t < 0) t = discriminant - vs / vv;\n vec3.scaleAndAdd(out, origin, direction, t);\n return t;\n }\n\n /** Reports whether a point lies inside an axis-aligned ellipsoid. */\n static #IsPointInsideEllipsoid(center, radii, point)\n {\n const x = (point[0] - center[0]) / radii[0];\n const y = (point[1] - center[1]) / radii[1];\n const z = (point[2] - center[2]) / radii[2];\n return x * x + y * y + z * z <= 1;\n }\n\n // Mesh bone matrices come from the animation updater; only mat4-shaped\n // entries are usable.\n\n /**\n * Unpacks one bone from the updater's palette into a mat4, or null when the\n * index is out of range.\n *\n * The palette is Carbon's storage - one contiguous Float4x3 buffer, stride\n * 12 - so a bone is expanded rather than borrowed. Carbon does the same at\n * every read site with TriMatrixCopyFrom3x4.\n */\n static #GetBoneMatrix(updater, boneIndex)\n {\n const bones = updater.GetMeshBoneMatrixList?.();\n\n if (!bones || boneIndex < 0 || (boneIndex + 1) * 12 > bones.length)\n {\n return null;\n }\n\n return MatrixCopyFrom3x4(mat4.create(), bones, boneIndex);\n }\n\n /**\n * Replays every stored controller variable onto a newly added controller or\n * effect child through the named setter, so late additions start with the same\n * state.\n */\n static #ApplyControllerVariables(target, variables, methodName)\n {\n const setter = target?.[methodName];\n if (typeof setter !== \"function\")\n {\n return;\n }\n for (const [name, value] of variables)\n {\n setter.call(target, name, value);\n }\n }\n\n /**\n * Samples a curve into out through whichever of Update or GetValueAt it\n * exposes, writing the fallback when there is no curve and copying back curves\n * that return a new array instead of filling out.\n */\n static #UpdateCurve(curve, time, out, fallback)\n {\n if (!curve)\n {\n for (let index = 0; index < out.length; index++)\n {\n out[index] = fallback[index];\n }\n return out;\n }\n\n let result;\n if (typeof curve.Update === \"function\")\n {\n result = curve.Update(time, out);\n }\n else if (typeof curve.GetValueAt === \"function\")\n {\n result = curve.GetValueAt(time, out);\n }\n if ((Array.isArray(result) || ArrayBuffer.isView(result)) && result !== out)\n {\n for (let index = 0; index < out.length; index++)\n {\n out[index] = result[index];\n }\n }\n return out;\n }\n\n /**\n * Reads a numeric value from the update context, preferring a getter method\n * and falling back to the named properties, and yields 0 when nothing supplies\n * it.\n */\n static #GetContextValue(context, methodName, ...propertyNames)\n {\n const method = context?.[methodName];\n if (typeof method === \"function\")\n {\n return Number(method.call(context)) || 0;\n }\n for (const propertyName of propertyNames)\n {\n if (context?.[propertyName] !== undefined && context?.[propertyName] !== null)\n {\n return Number(context[propertyName]) || 0;\n }\n }\n return 0;\n }\n\n /**\n * Returns a world sphere's on-screen diameter in pixels from the frustum's\n * exact query, or 0 when the frustum does not expose it.\n */\n static #GetPixelSize(frustum, sphere)\n {\n const method = frustum?.GetPixelSizeAccross;\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\n }\n\n /**\n * Returns a world sphere's on-screen diameter in pixels, preferring the\n * frustum's cheaper estimated query and falling back to the exact one, or 0\n * when the frustum exposes neither.\n */\n static #GetEstimatedPixelSize(frustum, sphere)\n {\n const method = frustum?.GetPixelSizeAccrossEst ?? frustum?.GetPixelSizeAccross;\n return Number(typeof method === \"function\" ? method.call(frustum, sphere) : 0) || 0;\n }\n\n /** Writes a center and radius into a caller-owned sph3. */\n static #SetSphere(out, center, radius)\n {\n return sph3.set(out, center[0], center[1], center[2], radius);\n }\n\n static #zero = Object.freeze([0, 0, 0]);\n\n static #unitY = Object.freeze([0, 1, 0]);\n\n static #locatorDirection = vec3.create();\n static #locatorPosition = vec3.create();\n static #locatorOffset = vec3.create();\n static #objectPosition = vec3.create();\n static #missOffset = vec3.create();\n static #missDirection = vec3.create();\n static #rayOrigin = vec3.create();\n static #rayEnd = vec3.create();\n static #rayDirection = vec3.create();\n static #ellipsoidCenter = vec3.create();\n static #ellipsoidRadii = vec3.create();\n static #boundsMin = vec3.create();\n static #boundsMax = vec3.create();\n static #childSphere = sph3.create();\n static #localSphere = sph3.create();\n static #worldSphere = sph3.create();\n static #localBox = box3.create();\n static #worldBox = box3.create();\n\n static #identityRotation = Object.freeze([0, 0, 0, 1]);\n\n static #identityTransform = mat4.create();\n\n static #damageLocatorSetName = \"damage\";\n\n static ReflectionMode = ReflectionMode;\n\n static Tr2Lod = Tr2Lod;\n\n static ImpactConfiguration = ImpactConfiguration;\n\n}\n"],"names":["TRANSPARENT_AABB_MIN","vec3","create","TRANSPARENT_AABB_MAX","TRANSPARENT_CENTER","OVERLAY_TYPE_OPAQUEONLY","OVERLAY_TYPE_ALL","_EveSpaceObject","_identity","EveSpaceObject2","EveEntity","e","_init_reflectionMode","_init_extra_reflectionMode","_init_effectChildren","_init_extra_effectChildren","_init_children","_init_extra_children","_init_name","_init_extra_name","_init_mute","_init_extra_mute","_init_inheritProperties","_init_extra_inheritProperties","_init_customMasks","_init_extra_customMasks","_init_overlayEffects","_init_extra_overlayEffects","_init_positionDelta","_init_extra_positionDelta","_init_lodLevel","_init_extra_lodLevel","_init_curveSets","_init_extra_curveSets","_init_isPickable","_init_extra_isPickable","_init_estimatedPixelDiameter","_init_extra_estimatedPixelDiameter","_init_estimatedPixelDiameterWithChildren","_init_extra_estimatedPixelDiameterWithChildren","_init_generatedShapeEllipsoidCenter","_init_extra_generatedShapeEllipsoidCenter","_init_generatedShapeEllipsoidRadius","_init_extra_generatedShapeEllipsoidRadius","_init_animationUpdater","_init_extra_animationUpdater","_init_dna","_init_extra_dna","_init_castShadow","_init_extra_castShadow","_init_isAnimated","_init_extra_isAnimated","_init_dynamicBoundingSphereEnabled","_init_extra_dynamicBoundingSphereEnabled","_init_attachments","_init_extra_attachments","_init_decals","_init_extra_decals","_init_lights","_init_extra_lights","_init_externalParameters","_init_extra_externalParameters","_init_controllers","_init_extra_controllers","_init_locators","_init_extra_locators","_init_mesh","_init_extra_mesh","_init_impactOverlay","_init_extra_impactOverlay","_init_clipSphereCenter","_init_extra_clipSphereCenter","_init_clipSphereFactor","_init_extra_clipSphereFactor","_init_clipSphereFactor2","_init_extra_clipSphereFactor2","_init_observers","_init_extra_observers","_init_worldPosition","_init_extra_worldPosition","_init_rotationCurve","_init_extra_rotationCurve","_init_worldRotation","_init_extra_worldRotation","_init_modelScale","_init_extra_modelScale","_init_locatorSets","_init_extra_locatorSets","_init_activationStrength","_init_extra_activationStrength","_init_albedoColor","_init_extra_albedoColor","_init_display","_init_extra_display","_init_update","_init_extra_update","_init_secondaryLightingSphereRadius","_init_extra_secondaryLightingSphereRadius","_init_boundingSphereCenter","_init_extra_boundingSphereCenter","_init_dirtLevel","_init_extra_dirtLevel","_init_customShaderData","_init_extra_customShaderData","_init_spaceObjectShipData","_init_extra_spaceObjectShipData","_init_lastDamageLocatorHit","_init_extra_lastDamageLocatorHit","_init_boundingSphereRadius","_init_extra_boundingSphereRadius","_init_modelWorldPosition","_init_extra_modelWorldPosition","_init_modelTranslationCurve","_init_extra_modelTranslationCurve","_init_modelRotationCurve","_init_extra_modelRotationCurve","_init_shapeEllipsoidCenter","_init_extra_shapeEllipsoidCenter","_init_shapeEllipsoidRadius","_init_extra_shapeEllipsoidRadius","_init_translationCurve","_init_extra_translationCurve","_init_worldTransform","_init_extra_worldTransform","_init_inverseWorldTransform","_init_extra_inverseWorldTransform","_init_lastWorldTransform","_init_extra_lastWorldTransform","_init_worldVelocity","_init_extra_worldVelocity","_init_audioGeometry","_init_extra_audioGeometry","_init_isVisible","_init_extra_isVisible","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","schema","enum","list","string","readwrite","boolean","objectRef","read","float32","quat","color","vec4","mat4","carbon","method","impl","adapted","implemented","reason","notImplemented","reflectionMode","effectChildren","children","name","mute","inheritProperties","customMasks","overlayEffects","positionDelta","lodLevel","curveSets","isPickable","estimatedPixelDiameter","estimatedPixelDiameterWithChildren","generatedShapeEllipsoidCenter","generatedShapeEllipsoidRadius","fromValues","animationUpdater","dna","castShadow","isAnimated","dynamicBoundingSphereEnabled","attachments","decals","lights","externalParameters","controllers","locators","mesh","impactOverlay","clipSphereCenter","clipSphereFactor2","clipSphereFactor","observers","worldPosition","rotationCurve","worldRotation","modelScale","locatorSets","activationStrength","albedoColor","createLinear","display","update","secondaryLightingSphereRadius","boundingSphereCenter","dirtLevel","customShaderData","spaceObjectShipData","lastDamageLocatorHit","boundingSphereRadius","modelWorldPosition","modelTranslationCurve","modelRotationCurve","shapeEllipsoidCenter","shapeEllipsoidRadius","translationCurve","worldTransform","inverseWorldTransform","lastWorldTransform","worldVelocity","audioGeometry","isVisible","Map","sph3","set","Tr2Lod","TR2_LOD_UNSPECIFIED","RawData","meshLod","Initialize","controller","IsLinked","Link","damageLocatorCount","HasName","length","SetDamageLocatorCount","GetMesh","SetMesh","AddController","push","AddObserver","observer","SetInheritProperties","colorSet","EveChildInheritProperties","SetProperties","#PropagateInheritProperties","properties","GetProperties","child","light","GetEffectChildByName","target","String","GetName","AddToEffectChildrenList","AddLight","ClearLights","RemoveFromEffectChildrenList","index","indexOf","splice","SetModelRotationCurve","curve","GetModelRotationCurve","SetModelTranslationCurve","GetModelTranslationCurve","UpdateWorldTransform","time","nextTime","Number","copy","SetAndTranspose","GetValueDotAt","rotation","clone","modelRotation","multiply","fromQuat","scale","modelTranslation","transformMat4","invert","identity","UpdateWorldBounds","updater","IsInitialized","GetDynamicBounds","PrepareShaderData","updateContext","GetActivationStrength","GetBoundingSphereRadius","normalizedBoundingRadius","clipOffset","insideSpherePercentage","Math","min","dissolveRadius","center","GetBoundingSphereCenter","add","clipRadiusSq","sign","Set","dissolveRadius2","UpdateShLighting","manager","coefficients","Get","fill","lowThreshold","GetLighting","mediumThreshold","intensityFadeRadius","intensity","max","SECONDARY_LIGHTING_RADIUS_CUTOFF_FACTOR","ClearShLighting","GetParentData","out","IEveSpaceObject2ParentData","transform","killCount","shipData","clipRadius2Sq","clipFactor","clipFactor2","shLighting","customData","GetPerObjectStructs","vsData","psData","CopyFrom","vs","ps","UpdateSyncronous","observerTransform","GetObserverTransform","Update","EveLODHelper","ShouldUpdate","overlay","params","EveChildUpdateParams","spaceObjectParent","ownerMaxSpeed","maxSpeed","localToWorldTransform","GetLocalToWorldTransform","DisplayChildren","IsAlwaysOn","UpdateAsyncronous","threshold","frequency","Invalidate","previousActivationStrength","SetControllerVariable","shapeCenter","shapeRadius","GetShapeEllipsoid","GetDataTextureOffset","slot","CUSTOM_MASK_MAX","FillPerObjectData","EveCustomMask","ZeroPerObjectData","curveSet","controllerUpdateFrequency","UpdateVisibility","_parentTransform","TR2_LOD_LOW","frustum","GetFrustum","visibilityThreshold","lodFactor","IsSphereVisible","EstimatePixelDiameter","bones","boneCount","getBoneList","attachment","GetBoundingSphere","TR2_LOD_HIGH","TR2_LOD_MEDIUM","GetObserver","SetVisibility","Infinity","UseWithScreenSize","GetRenderables","GetBoundingBox","IsLoading","geometryResource","GetGeometryResource","decal","GetBatches","batches","batchType","perObjectData","renderContext","committedBefore","GetBatchCount","areas","GetAreas","TriBatchType","TRIBATCHTYPE_TRANSPARENT","GetBatchesFromOverlayVector","#GetSortedTransparentBatches","geometry","viewPosition","GetViewPosition","meshIndex","sorted","area","GetDisplay","GetAreaBoundingBox","GetIndex","dx","dy","dz","distance","sort","a","b","entry","GetMaterialInterface","batch","CreateGeometryBatch","Commit","RebuildCachedData","ReleaseCachedData","all","CollectAreaBlocks","TRIBATCHTYPE_OPAQUE","TRIBATCHTYPE_DECAL","blocks","TriRenderBatchAreaBlock","Optimize","CollectAreaBlocksWithSharedMaterials","collector","#EnsureCachedAreaBlocks","GetPickingBatches","pickTypes","TR2_PICK_TYPE_DEFAULT","Tr2PickType","PICK_TYPE_PICKING","TRIBATCHTYPE_PICKING","PICK_TYPE_OPAQUE","TRIBATCHTYPE_ADDITIVE","PICK_TYPE_TRANSPARENT","GetID","_areaID","GetShadowBatches","_shadowPixelSize","committed","material","shaderMaterial","block","areaBlockVector","Tr2RenderBatch","SetMaterial","IsValid","SetGeometrySource","startIndex","count","SetPerObjectData","impactEffect","GetArmorDamageShader","effects","overlayType","GetType","effect","#CommitBlockBatch","priority","SetPriority","#OverlayEffectsFor","GetEffects","HasTransparentBatches","HasTransparentArea","GetSortValue","x","y","z","hypot","GetPerObjectData","_accumulator","GetMeshBoneCount","SetIndex","GetShadowPerObjectData","accumulator","GetLights","lightManager","SetBrightnessMultiplier","IsCastingShadow","_args","Error","RegisterComponents","registry","GetComponentRegistry","RegisterComponent","EveComponentType","LightOwner","ShouldReflect","ReflectionRenderable","ShadowCaster","Register","UnRegisterComponents","UnRegister","GetModelCenterWorldPosition","GetWorldPosition","GetWorldRotation","FindSoundEmitter","emitter","SetMute","PlayAnimationEx","animName","loopCount","start","speed","clearWhenDone","CalculateSkinnedBoundingBoxFromTransform","IsUsingCMF","localMin","localMax","GetLocalBoundingBox","corner","CalculateSkinnedBoundingSphere","ClearImpactDamage","Clear","ClearAnimations","CreateImpactFromPosition","position","direction","lifeTime","size","closestDamageLocator","CreateImpact","damageLocatorIndex","EndAnimation","FreezeHighDetailMesh","SetHighDetailDecalState","GetDamageLocatorCount","GetLocatorCount","locatorSetName","GetLocatorsForSet","GetCloseLocatorIndex","posInObjectSpace","locatorPosition","locatorDirection","closestLength","closestIndex","squaredDistance","GetGoodLocatorIndex","GetDamageLocatorDirection","inWorldSpaceOrOut","targetableCall","inWorldSpace","GetDamageLocatorPosition","GetClosestDamageLocatorIndex","GetGoodDamageLocatorIndex","objectPosition","minDistance","maxDistance","MIN_VALUE","bestDirectionFit","locator","subtract","desiredFit","random","bestFit","bestLocator","range","value","sqrt","abs","fit","GetRadius","GetMissPosition","hit","source","directionLength","scaleAndAdd","dot","offsetLength","GetImpactConfiguration","ImpactConfiguration","IMPACT_INVALID","HasImpactConfigurationShield","HasShieldEllipsoid","IMPACT_SHIELD","GetImpactPosition","posPrev","posNow","epsilon","t","UpdateImpact","impactIndex","GetDamageLocator","GetTransformedDamageLocator","IsImpostor","GetLocatorPositionFromSet","GetLocatorRotationFromSet","HandleControllerEvent","eventName","HandleEvent","PlayAnimation","ChainAnimation","ChainAnimationEx","#PlayAnimation","replace","delay","RebuildBoundingSphereInformation","geometryRes","IsGood","RecalculateBoundingSphere","sphere","GetMeshIndex","SetBoundingSphereInformation","radius","extract","GetControllerVariables","Object","fromEntries","GetLastUsedMeshLod","GetLodIndexForScreenSize","GetLocatorTransform","candidate","GetBoneWorldTransform","GetTransform","minBounds","maxBounds","GetWorldBoundingBox","box3","fromBounds","IsBoundingBoxReady","query","union","IsInFrustum","GetBoneCount","HasMeshBinding","GetSkeletonBoneIndices","GetMeshBindingBoneCount","SetImpactDamageState","shield","armor","hull","doCreateArmorImpacts","SetDamageState","SetImpactAnimation","enable","duration","ToggleEffect","key","next","SetVariable","SetProceduralContainerVariable","StartControllers","Start","TransformLocators","result","record","Array","isArray","boneIndex","#TransformLocator","bone","boneRotation","getRotation","#ApplyModelTransform","translation","GetValueAt","transformQuat","#GetLocatorsForSet","GetLocators","#GetLocatorInObjectSpace","outPosition","outDirection","#GetClosestLocatorIndex","outCenter","outRadii","bounds","lerp","CUSTOM_MASK_COUNT","#IsLocatorFacingPosition","moved","squaredLength","#TransformNormal","matrix","#GetDirectionFit","v0","v1","#IntersectEllipsoidRay","radii","origin","vx","vy","vz","sx","sy","sz","vv","ss","discriminant","#IsPointInsideEllipsoid","point","#GetBoneMatrix","GetMeshBoneMatrixList","MatrixCopyFrom3x4","#ApplyControllerVariables","variables","methodName","setter","call","#UpdateCurve","fallback","ArrayBuffer","isView","#GetContextValue","context","propertyNames","propertyName","undefined","#GetPixelSize","GetPixelSizeAccross","#GetEstimatedPixelSize","GetPixelSizeAccrossEst","#SetSphere","freeze","ReflectionMode","constructor"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA;AACA;AACA,MAAMA,oBAAoB,GAAGC,IAAI,CAACC,MAAM,EAAE;AAC1C,MAAMC,oBAAoB,GAAGF,IAAI,CAACC,MAAM,EAAE;AAC1C,MAAME,kBAAkB,GAAGH,IAAI,CAACC,MAAM,EAAE;;AAExC;AACA,MAAMG,uBAAuB,GAAG,CAAC;AACjC,MAAMC,gBAAgB,GAAG,CAAC;;AAE1B;AACA;AACA;AACA;AACA;AACA;AALA,IAAAC;AAAA,IAAA,cAAAC,SAAA,CAAA;AAAA,EAAA,QAMA,MAAAC,eAAA,SACqCC,UAAS,CAC9C;AAAA,IAAA;AAAA,MAAA,CAAA;QAAAC,CAAA,EAAA,CAAAC,oBAAA,EAAAC,0BAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,uBAAA,EAAAC,6BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,kCAAA,EAAAC,wCAAA,EAAAC,8CAAA,EAAAC,mCAAA,EAAAC,yCAAA,EAAAC,mCAAA,EAAAC,yCAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,SAAA,EAAAC,eAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,kCAAA,EAAAC,wCAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,cAAA,EAAAC,oBAAA,EAAAC,UAAA,EAAAC,gBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,uBAAA,EAAAC,6BAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,gBAAA,EAAAC,sBAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,iBAAA,EAAAC,uBAAA,EAAAC,aAAA,EAAAC,mBAAA,EAAAC,YAAA,EAAAC,kBAAA,EAAAC,mCAAA,EAAAC,yCAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,yBAAA,EAAAC,+BAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,2BAAA,EAAAC,iCAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,0BAAA,EAAAC,gCAAA,EAAAC,sBAAA,EAAAC,4BAAA,EAAAC,oBAAA,EAAAC,0BAAA,EAAAC,2BAAA,EAAAC,iCAAA,EAAAC,wBAAA,EAAAC,8BAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,mBAAA,EAAAC,yBAAA,EAAAC,eAAA,EAAAC,qBAAA,EAAAC,UAAA,CAAA;QAAAC,CAAA,EAAA,CAAAhI,eAAA,EAAAiI,UAAA;AAAA,OAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,QAAAA,SAAS,EAAE,iBAAiB;AAAEC,QAAAA,MAAM,EAAE;AAAkB,OAAC,CAAC,CAAA,EAAA,CAAA,CAAA,CAKtEC,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACO,KAAK,EAAA,MAAA,EACVC,MAAM,CAACC,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAI7BL,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,sBAAsB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAIjCN,EAAE,EAAFA,EAAE,CAACE,OAAO,UACVN,IAAI,CAACU,IAAI,CAAC,eAAe,CAAC,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAI1BN,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACW,MAAM,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIXP,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACQ,SAAS,EAAA,MAAA,EACZZ,IAAI,CAACc,SAAS,CAAC,2BAA2B,CAAC,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAI3CV,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,eAAe,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAI1BN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,sBAAsB,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAIjCN,EAAE,EAAFA,EAAE,CAACW,IAAI,EAAA,MAAA,EACPf,IAAI,CAACc,SAAS,CAAC,mBAAmB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAInCV,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACO,KAAK,EAAA,MAAA,EACVC,MAAM,CAACC,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAIrBL,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAIxBN,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,oCAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACzI,IAAI,2CAIT6I,EAAE,EAAFA,EAAE,CAACW,IAAI,EAAA,MAAA,EACPf,IAAI,CAACc,SAAS,CAAC,oBAAoB,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAIpCV,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACW,MAAM,CAAA,EAAA,EAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAIXP,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,OAAO,0CAIZT,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,2BAA2B,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAItCN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,qBAAqB,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIhCN,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIrBN,EAAE,EAAFA,EAAE,CAACE,OAAO,UACVN,IAAI,CAACU,IAAI,CAAC,sBAAsB,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAIjCN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAI3BN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAIxBN,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,aAAa,CAAC,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAI7BV,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAIlCV,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,kBAAkB,CAAC,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAI7BN,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,wBAAwB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAIxCV,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACiB,IAAI,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAITb,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACU,IAAI,CAAC,gBAAgB,CAAC,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAI3BN,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACkB,KAAK,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAIVd,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAIZT,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,+BAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACC,MAAM,EACTD,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACQ,SAAS,EACZZ,IAAI,EAAJA,IAAI,CAACmB,IAAI,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAQTf,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACmB,IAAI,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAITf,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACO,KAAK,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAIVH,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACgB,OAAO,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAIZZ,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,oBAAoB,CAAC,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAIpCV,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,wBAAwB,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAIxCV,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACE,OAAO,EACVN,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAIT6I,EAAE,EAAFA,EAAE,CAACE,OAAO,EAAA,MAAA,EACVN,IAAI,CAACc,SAAS,CAAC,oBAAoB,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAGpCV,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACoB,IAAI,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAGThB,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACoB,IAAI,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAGThB,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACoB,IAAI,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAGThB,EAAE,EAAFA,EAAE,CAACW,IAAI,EACPf,IAAI,EAAJA,IAAI,CAACzI,IAAI,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAGT6I,EAAE,EAAFA,EAAE,CAACQ,SAAS,EAAA,MAAA,EACZZ,IAAI,CAACc,SAAS,CAAC,iBAAiB,CAAC,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAGjCd,IAAI,EAAJA,IAAI,CAACa,OAAO,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAoGZQ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAiCZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,qBAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAUZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAiBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAYhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CA6BhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAmBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAaZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,UAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAgBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CA0EZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,gIAAgI,CAAC,+BA4B7IL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CA4ChBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAgChBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAehBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CAwBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAahBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAoDZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,+BAyGZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,+HAA+H,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAsG5IL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,mHAAmH,CAAC,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAuChIL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,kJAAkJ,CAAC,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CA6F/JL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,6IAA6I,CAAC,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CA8B1JL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAgChBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CA8ChBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,gIAAgI,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAgC7IL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,2GAA2G,CAAC,CAAA,EAAA,EAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,CAwExHL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,uEAAuE,CAAC,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAiBpFL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,wHAAwH,CAAC,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAcrIL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,2HAA2H,CAAC,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAqBxIL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAsBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACI,cAAc,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAUnBN,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,gCAsChBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAsBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,6BAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CA4BhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAkBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAYZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,0CAAA,CAAA,EAAA,CAAA,CA8BZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,CAcZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAShBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAShBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAaZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,0BAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAahBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAShBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CA+BhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAWZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,uCAmBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,iGAAiG,CAAC,CAAA,EAAA,EAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,CAgB9GL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,qFAAqF,CAAC,CAAA,EAAA,EAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAkDlGL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CA0BhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAQhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,8GAA8G,CAAC,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CA4B3HL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAiBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,yCAiBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAWZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAyBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,2BAAA,CAAA,EAAA,CAAA,CAqBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAsBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,eAAA,CAAA,EAAA,CAAA,CASZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAuBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,CAsBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,iIAAiI,CAAC,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,EAAA,CAAA,CAoB9IL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,2FAA2F,CAAC,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAexGL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CA8BZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,iCAiCZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAaZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAwBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACG,MAAM,CAAC,2HAA2H,CAAC,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAexIL,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAUhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAchBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAwBZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,sBAAA,CAAA,EAAA,CAAA,CAYZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAWhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,CAwBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,gCAAA,CAAA,EAAA,CAAA,CAahBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,CAyBhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAuLZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,yCAp1FkBzJ,UAAS,CAAA;AAAA;AAG5C;AAKA4J,IAAAA,cAAc,IAAAhC,UAAA,CAAA,IAAA,CAAA,EAAA1H,oBAAA,OAAG,CAAC,CAAA;;AAElB;AAGA2J,IAAAA,cAAc,IAAA1J,0BAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,EAAE,CAAA;;AAEnB;AAGA0J,IAAAA,QAAQ,IAAAzJ,0BAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAG,EAAE,CAAA;;AAEb;AAIAyJ,IAAAA,IAAI,IAAAxJ,oBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,EAAE,CAAA;;AAET;AAIAwJ,IAAAA,IAAI,IAAAvJ,gBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,KAAK,CAAA;;AAEZ;AAGAuJ,IAAAA,iBAAiB,IAAAtJ,gBAAA,CAAA,IAAA,CAAA,EAAAC,uBAAA,OAAG,IAAI,CAAA;;AAExB;AAGAsJ,IAAAA,WAAW,IAAArJ,6BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,EAAE,CAAA;;AAEhB;AAGAqJ,IAAAA,cAAc,IAAApJ,uBAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAG,EAAE,CAAA;;AAEnB;AAGAoJ,IAAAA,aAAa,IAAAnJ,0BAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;;AAEpB;AAIAmJ,IAAAA,QAAQ,IAAAlJ,yBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,CAAA,IAAA,EAAG,EAAE,CAAA;;AAEb;AAGAkJ,IAAAA,SAAS,IAAAjJ,oBAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAG,EAAE,CAAA;;AAEd;AAGAiJ,IAAAA,UAAU,IAAAhJ,qBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,IAAI,CAAA;;AAEjB;AAGAgJ,IAAAA,sBAAsB,IAAA/I,sBAAA,CAAA,IAAA,CAAA,EAAAC,4BAAA,OAAG,CAAC,CAAA;;AAE1B;AAGA+I,IAAAA,kCAAkC,IAAA9I,kCAAA,CAAA,IAAA,CAAA,EAAAC,wCAAA,OAAG,CAAC,CAAA;;AAEtC;IAGA8I,6BAA6B,IAAA7I,8CAAA,CAAA,IAAA,CAAA,EAAAC,mCAAA,OAAGvC,IAAI,CAACC,MAAM,EAAE,CAAA;;AAE7C;AAGAmL,IAAAA,6BAA6B,IAAA5I,yCAAA,CAAA,IAAA,CAAA,EAAAC,mCAAA,CAAA,IAAA,EAAGzC,IAAI,CAACqL,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;;AAE3D;AAGAC,IAAAA,gBAAgB,IAAA5I,yCAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,IAAI,CAAA;;AAEvB;AAGA4I,IAAAA,GAAG,IAAA3I,4BAAA,CAAA,IAAA,CAAA,EAAAC,SAAA,OAAG,EAAE,CAAA;;AAER;AAIA2I,IAAAA,UAAU,IAAA1I,eAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,KAAK,CAAA;;AAElB;AAGA0I,IAAAA,UAAU,IAAAzI,sBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,KAAK,CAAA;;AAElB;AAGAyI,IAAAA,4BAA4B,IAAAxI,sBAAA,CAAA,IAAA,CAAA,EAAAC,kCAAA,OAAG,KAAK,CAAA;;AAEpC;AAGAwI,IAAAA,WAAW,IAAAvI,wCAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,EAAE,CAAA;;AAEhB;AAGAuI,IAAAA,MAAM,IAAAtI,uBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;;AAEX;AAIAsI,IAAAA,MAAM,IAAArI,kBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,EAAE,CAAA;;AAEX;AAGAqI,IAAAA,kBAAkB,IAAApI,kBAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,EAAE,CAAA;;AAEvB;AAGAoI,IAAAA,WAAW,IAAAnI,8BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,EAAE,CAAA;;AAEhB;AAGAmI,IAAAA,QAAQ,IAAAlI,uBAAA,CAAA,IAAA,CAAA,EAAAC,cAAA,OAAG,EAAE,CAAA;;AAEb;AAGAkI,IAAAA,IAAI,IAAAjI,oBAAA,CAAA,IAAA,CAAA,EAAAC,UAAA,OAAG,IAAI,CAAA;;AAEX;AAGAiI,IAAAA,aAAa,IAAAhI,gBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;;AAEpB;IAGAgI,gBAAgB,IAAA/H,yBAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAGrE,IAAI,CAACC,MAAM,EAAE,CAAA;;AAEhC;AAIAmM,IAAAA,iBAAiB,IAAA9H,4BAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,CAAC,CAAA;;AAErB;AAIA8H,IAAAA,gBAAgB,IAAA7H,4BAAA,CAAA,IAAA,CAAA,EAAAC,uBAAA,OAAG,CAAC,CAAA;;AAEpB;AAGA6H,IAAAA,SAAS,IAAA5H,6BAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAG,EAAE,CAAA;;AAEd;IAGA4H,aAAa,IAAA3H,qBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG7E,IAAI,CAACC,MAAM,EAAE,CAAA;;AAE7B;AAGAuM,IAAAA,aAAa,IAAA1H,yBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;;AAEpB;IAGA0H,aAAa,IAAAzH,yBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAGyE,IAAI,CAACzJ,MAAM,EAAE,CAAA;;AAE7B;AAGAyM,IAAAA,UAAU,IAAAxH,yBAAA,CAAA,IAAA,CAAA,EAAAC,gBAAA,OAAG,CAAC,CAAA;;AAEd;AAGAwH,IAAAA,WAAW,IAAAvH,sBAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAG,EAAE,CAAA;;AAEhB;AAGAuH,IAAAA,kBAAkB,IAAAtH,uBAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,CAAC,CAAA;;AAEtB;IAGAsH,WAAW,IAAArH,8BAAA,CAAA,IAAA,CAAA,EAAAC,iBAAA,OAAGmE,IAAI,CAACkD,YAAY,EAAE,CAAA;;AAEjC;AAIAC,IAAAA,OAAO,IAAArH,uBAAA,CAAA,IAAA,CAAA,EAAAC,aAAA,OAAG,IAAI,CAAA;;AAEd;AAGAqH,IAAAA,MAAM,IAAApH,mBAAA,CAAA,IAAA,CAAA,EAAAC,YAAA,OAAG,IAAI,CAAA;;AAEb;AAGAoH,IAAAA,6BAA6B,IAAAnH,kBAAA,CAAA,IAAA,CAAA,EAAAC,mCAAA,OAAG,CAAC,CAAA;;AAEjC;IAGAmH,oBAAoB,IAAAlH,yCAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,OAAGjG,IAAI,CAACC,MAAM,EAAE,CAAA;;AAEpC;AAIAkN,IAAAA,SAAS,IAAAjH,gCAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAG,CAAC,CAAA;;AAEb;IAGAiH,gBAAgB,IAAAhH,qBAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAGuD,IAAI,CAAC3J,MAAM,EAAE,CAAA;;AAEhC;AACF;AACA;AACA;AACA;IAGEoN,mBAAmB,IAAA/G,4BAAA,CAAA,IAAA,CAAA,EAAAC,yBAAA,OAAGqD,IAAI,CAAC3J,MAAM,EAAE,CAAA;;AAEnC;AAGAqN,IAAAA,oBAAoB,IAAA9G,+BAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,CAAA,IAAA,EAAG,EAAE,CAAA;;AAEzB;AAGA8G,IAAAA,oBAAoB,IAAA7G,gCAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,CAAA,IAAA,EAAG,EAAE,CAAA;;AAEzB;IAGA6G,kBAAkB,IAAA5G,gCAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG7G,IAAI,CAACC,MAAM,EAAE,CAAA;;AAElC;AAGAwN,IAAAA,qBAAqB,IAAA3G,8BAAA,CAAA,IAAA,CAAA,EAAAC,2BAAA,OAAG,IAAI,CAAA;;AAE5B;AAGA2G,IAAAA,kBAAkB,IAAA1G,iCAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAG,IAAI,CAAA;;AAEzB;IAGA0G,oBAAoB,IAAAzG,8BAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,OAAGnH,IAAI,CAACC,MAAM,EAAE,CAAA;;AAEpC;AAGA2N,IAAAA,oBAAoB,IAAAxG,gCAAA,CAAA,IAAA,CAAA,EAAAC,0BAAA,CAAA,IAAA,EAAGrH,IAAI,CAACqL,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;;AAElD;AAGAwC,IAAAA,gBAAgB,IAAAvG,gCAAA,CAAA,IAAA,CAAA,EAAAC,sBAAA,OAAG,IAAI,CAAA;IAIvBuG,cAAc,IAAAtG,4BAAA,CAAA,IAAA,CAAA,EAAAC,oBAAA,OAAGoC,IAAI,CAAC5J,MAAM,EAAE,CAAA;IAI9B8N,qBAAqB,IAAArG,0BAAA,CAAA,IAAA,CAAA,EAAAC,2BAAA,OAAGkC,IAAI,CAAC5J,MAAM,EAAE,CAAA;IAIrC+N,kBAAkB,IAAApG,iCAAA,CAAA,IAAA,CAAA,EAAAC,wBAAA,OAAGgC,IAAI,CAAC5J,MAAM,EAAE,CAAA;IAIlCgO,aAAa,IAAAnG,8BAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG/H,IAAI,CAACC,MAAM,EAAE,CAAA;AAI7BiO,IAAAA,aAAa,IAAAlG,yBAAA,CAAA,IAAA,CAAA,EAAAC,mBAAA,OAAG,IAAI,CAAA;AAGpBkG,IAAAA,SAAS,IAAAjG,yBAAA,CAAA,IAAA,CAAA,EAAAC,eAAA,OAAG,KAAK,CAAA;IAEjB,oBAAoB,IAAAC,qBAAA,CAAA,IAAA,CAAA,EAAG,IAAIgG,GAAG,CAAC,CAC7B,CAAC,WAAW,EAAE,CAAC,CAAC,EAChB,CAAC,oBAAoB,EAAE,CAAC,CAAC,EACzB,CAAC,cAAc,EAAE,CAAC,CAAC,EACnB,CAAC,aAAa,EAAE,CAAC,CAAC,EAClB,CAAC,YAAY,EAAE,CAAC,CAAC,EACjB,CAAC,kBAAkB,EAAE,CAAC,CAAC,EACvB,CAAC,mBAAmB,EAAE,CAAC,CAAC,CACzB,CAAC;IAEF,wBAAwB,GAAG,IAAI;;AAE/B;AACA;IACA,oBAAoB,GAAG,CAAC;;AAExB;AACA;IACA,sBAAsB,GAAGC,IAAI,CAACC,GAAG,CAACD,IAAI,CAACpO,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;;AAE7D;AACA;IACA,0BAA0B,GAAG,EAAE;;AAE/B;IACA,YAAY,GAAG,KAAK;IAEpB,cAAc,GAAG,KAAK;AAEtB,IAAA,qBAAqB,GAAGsO,MAAM,CAACC,mBAAmB;IAElD,eAAe,GAAG,CAAC;AAEnB,IAAA,sBAAsB,GAAG,CAAE,EAAE,EAAE,EAAE,CAAE;IAEnC,sBAAsB,GAAG,EAAE;IAE3B,sBAAsB,GAAG,KAAK;;AAE9B;AACA;AACA,IAAA,aAAa,GAAGxO,IAAI,CAACC,MAAM,EAAE;AAE7B,IAAA,aAAa,GAAGD,IAAI,CAACC,MAAM,EAAE;;AAE7B;IACA,kBAAkB,GAAG,IAAI;;AAEzB;IACA,aAAa,GAAG,KAAK;;AAErB;;AAGA;AACF;AACA;AACA;AACA;;AAGE;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,IAAA,OAAO,GAAGwO,OAAO,CAACxO,MAAM,CAAC,sBAAsB,CAAC;AAEhD,IAAA,OAAO,GAAGwO,OAAO,CAACxO,MAAM,CAAC,sBAAsB,CAAC;;AAEhD;IACA,IAAIyO,OAAOA,GACX;MACE,OAAO,IAAI,CAACzC,IAAI;AAClB,IAAA;;AAEA;IACA,IAAIyC,OAAOA,CAACzC,IAAI,EAChB;AACE,MAAA,IAAI,CAACA,IAAI,GAAGA,IAAI,IAAI,IAAI;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AAGE0C,IAAAA,UAAUA,GACV;AACE,MAAA,KAAK,MAAMC,UAAU,IAAI,IAAI,CAAC7C,WAAW,EACzC;AACE,QAAA,IAAI,CAAC6C,UAAU,EAAEC,QAAQ,IAAI,EAC7B;AACED,UAAAA,UAAU,EAAEE,IAAI,GAAG,IAAI,CAAC;AAC1B,QAAA;AACF,MAAA;AACA;AACA;AACA;MACA,IAAI,IAAI,CAACpE,iBAAiB,EAC1B;AACE,QAAA,IAAI,CAAC,2BAA2B,EAAE;AACpC,MAAA;AACA;AACA;AACA;MACA,IAAI,IAAI,CAACwB,aAAa,EACtB;QACE,IAAI6C,kBAAkB,GAAG,CAAC;AAC1B,QAAA,KAAK,MAAMT,GAAG,IAAI,IAAI,CAAC3B,WAAW,EAClC;AACE,UAAA,IAAI2B,GAAG,EAAEU,OAAO,GAAG,QAAQ,CAAC,EAAED,kBAAkB,IAAIT,GAAG,CAACtC,QAAQ,CAACiD,MAAM;AACzE,QAAA;AACA,QAAA,IAAI,CAAC/C,aAAa,CAACgD,qBAAqB,CAACH,kBAAkB,CAAC;AAC9D,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AAGAI,IAAAA,OAAOA,GACP;MACE,OAAO,IAAI,CAAClD,IAAI;AAClB,IAAA;;AAEA;AACF;AACA;AACA;IAGEmD,OAAOA,CAACnD,IAAI,EACZ;AACE,MAAA,IAAI,CAACA,IAAI,GAAGA,IAAI,IAAI,IAAI;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;IAGEoD,aAAaA,CAACT,UAAU,EACxB;AACE,MAAA,IAAI,CAAC7C,WAAW,CAACuD,IAAI,CAACV,UAAU,CAAC;AACjC,MAAA,IAAI,CAACA,UAAU,EAAEC,QAAQ,IAAI,EAC7B;AACED,QAAAA,UAAU,EAAEE,IAAI,GAAG,IAAI,CAAC;AAC1B,MAAA;AACAtO,MAAAA,eAAe,CAAC,yBAAyB,CAACoO,UAAU,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC;AAC/F,MAAA,OAAOA,UAAU;AACnB,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEW,WAAWA,CAACC,QAAQ,EACpB;AACE,MAAA,IAAI,CAAClD,SAAS,CAACgD,IAAI,CAACE,QAAQ,CAAC;AAC7B,MAAA,OAAOA,QAAQ;AACjB,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEC,oBAAoBA,CAACC,QAAQ,EAC7B;AACE,MAAA,IAAI,CAAC,IAAI,CAAChF,iBAAiB,EAC3B;AACE,QAAA,IAAI,CAACA,iBAAiB,GAAG,IAAIiF,qBAAyB,EAAE;AAC1D,MAAA;AACA,MAAA,IAAI,CAACjF,iBAAiB,CAACkF,aAAa,CAACF,QAAQ,CAAC;AAC9C,MAAA,IAAI,CAAC,2BAA2B,EAAE;AACpC,IAAA;;AAEA;IACA,2BAA2BG,GAC3B;MACE,MAAMC,UAAU,GAAG,IAAI,CAACpF,iBAAiB,CAACqF,aAAa,EAAE;AACzD,MAAA,KAAK,MAAMC,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAEP,oBAAoB,GAAGK,UAAU,CAAC;AAC3C,MAAA;AACA,MAAA,KAAK,MAAMG,KAAK,IAAI,IAAI,CAACpE,MAAM,EAC/B;AACEoE,QAAAA,KAAK,EAAER,oBAAoB,GAAGK,UAAU,CAAC;AAC3C,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;IAGEI,oBAAoBA,CAAC1F,IAAI,EACzB;AACE,MAAA,MAAM2F,MAAM,GAAGC,MAAM,CAAC5F,IAAI,IAAI,EAAE,CAAC;AACjC,MAAA,KAAK,MAAMwF,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE,QAAA,IAAI,CAAC0F,KAAK,EAAEK,OAAO,IAAI,IAAIL,KAAK,EAAExF,IAAI,IAAI,EAAE,MAAM2F,MAAM,EACxD;AACE,UAAA,OAAOH,KAAK;AACd,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEM,uBAAuBA,CAACN,KAAK,EAC7B;MACE,IAAI,IAAI,CAACtF,iBAAiB,EAC1B;QACEsF,KAAK,EAAEP,oBAAoB,GAAG,IAAI,CAAC/E,iBAAiB,CAACqF,aAAa,EAAE,CAAC;AACvE,MAAA;AACA,MAAA,IAAI,CAACzF,cAAc,CAACgF,IAAI,CAACU,KAAK,CAAC;AAC/BxP,MAAAA,eAAe,CAAC,yBAAyB,CAACwP,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;AACpG,MAAA,OAAOA,KAAK;AACd,IAAA;;AAEA;IAGAO,QAAQA,CAACN,KAAK,EACd;MACE,IAAI,IAAI,CAACvF,iBAAiB,EAC1B;QACEuF,KAAK,EAAER,oBAAoB,GAAG,IAAI,CAAC/E,iBAAiB,CAACqF,aAAa,EAAE,CAAC;AACvE,MAAA;AACA,MAAA,IAAI,CAAClE,MAAM,CAACyD,IAAI,CAACW,KAAK,CAAC;AACzB,IAAA;;AAEA;AACF;AACA;AACA;AAGEO,IAAAA,WAAWA,GACX;AACE,MAAA,IAAI,CAAC3E,MAAM,CAACoD,MAAM,GAAG,CAAC;AACxB,IAAA;;AAEA;AACF;AACA;AACA;IAGEwB,4BAA4BA,CAACT,KAAK,EAClC;MACE,MAAMU,KAAK,GAAG,IAAI,CAACpG,cAAc,CAACqG,OAAO,CAACX,KAAK,CAAC;AAChD,MAAA,IAAIU,KAAK,KAAK,EAAE,EAChB;AACE,QAAA,OAAO,KAAK;AACd,MAAA;MACA,IAAI,CAACpG,cAAc,CAACsG,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;AACpC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;IAGEG,qBAAqBA,CAACC,KAAK,EAC3B;AACE,MAAA,IAAI,CAACpD,kBAAkB,GAAGoD,KAAK,IAAI,IAAI;AACzC,IAAA;;AAEA;AAGAC,IAAAA,qBAAqBA,GACrB;MACE,OAAO,IAAI,CAACrD,kBAAkB;AAChC,IAAA;;AAEA;AACF;AACA;AACA;IAGEsD,wBAAwBA,CAACF,KAAK,EAC9B;AACE,MAAA,IAAI,CAACrD,qBAAqB,GAAGqD,KAAK,IAAI,IAAI;AAC5C,IAAA;;AAEA;AAGAG,IAAAA,wBAAwBA,GACxB;MACE,OAAO,IAAI,CAACxD,qBAAqB;AACnC,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEyD,oBAAoBA,CAACC,IAAI,EACzB;AACE,MAAA,MAAMC,QAAQ,GAAGC,MAAM,CAACF,IAAI,CAAC,IAAI,CAAC;AAClC,MAAA,IAAI,IAAI,CAAC,wBAAwB,KAAKC,QAAQ,EAC9C;AACE,QAAA,OAAO,KAAK;AACd,MAAA;AACA,MAAA,IAAI,CAAC,wBAAwB,GAAGA,QAAQ;MACxCvH,IAAI,CAACyH,IAAI,CAAC,IAAI,CAACtD,kBAAkB,EAAE,IAAI,CAACF,cAAc,CAAC;AACvD;AACA;MACA,IAAI,CAAC,OAAO,CAACyD,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAACvD,kBAAkB,CAAC;MAC3E,IAAI,CAAC,OAAO,CAACuD,eAAe,CAAC,oBAAoB,EAAE,IAAI,CAACvD,kBAAkB,CAAC;AAE3ExN,MAAAA,eAAe,CAAC,YAAY,CAAC,IAAI,CAACqN,gBAAgB,EAAEuD,QAAQ,EAAE,IAAI,CAAC7E,aAAa,EAAE/L,eAAe,CAAC,KAAK,CAAC;AACxG,MAAA,IAAI,IAAI,CAACqN,gBAAgB,EAAE2D,aAAa,EACxC;QACE,IAAI,CAAC3D,gBAAgB,CAAC2D,aAAa,CAACJ,QAAQ,EAAE,IAAI,CAACnD,aAAa,CAAC;AACnE,MAAA,CAAC,MAED;AACEjO,QAAAA,IAAI,CAACsO,GAAG,CAAC,IAAI,CAACL,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACvC,MAAA;AAEAzN,MAAAA,eAAe,CAAC,YAAY,CAAC,IAAI,CAACgM,aAAa,EAAE4E,QAAQ,EAAE,IAAI,CAAC3E,aAAa,EAAEjM,eAAe,CAAC,iBAAiB,CAAC;MACjH,MAAMiR,QAAQ,GAAG/H,IAAI,CAACgI,KAAK,CAAC,IAAI,CAACjF,aAAa,CAAC;MAC/C,IAAI,IAAI,CAACiB,kBAAkB,EAC3B;AACE,QAAA,MAAMiE,aAAa,GAAGjI,IAAI,CAACzJ,MAAM,EAAE;AACnCO,QAAAA,eAAe,CAAC,YAAY,CAAC,IAAI,CAACkN,kBAAkB,EAAE0D,QAAQ,EAAEO,aAAa,EAAEnR,eAAe,CAAC,iBAAiB,CAAC;AACjH;QACAkJ,IAAI,CAACkI,QAAQ,CAACH,QAAQ,EAAEA,QAAQ,EAAEE,aAAa,CAAC;AAClD,MAAA;MAEA9H,IAAI,CAACgI,QAAQ,CAAC,IAAI,CAAC/D,cAAc,EAAE2D,QAAQ,CAAC;AAC5C,MAAA,IAAI,IAAI,CAAC/E,UAAU,KAAK,CAAC,EACzB;AACE;AACA;AACA;AACA;AACA;QACA7C,IAAI,CAACiI,KAAK,CAAC,IAAI,CAAChE,cAAc,EAAE,IAAI,CAACA,cAAc,EAAE,CAAC,IAAI,CAACpB,UAAU,EAAE,IAAI,CAACA,UAAU,EAAE,IAAI,CAACA,UAAU,CAAC,CAAC;AAC3G,MAAA;MAEA,IAAI,IAAI,CAACe,qBAAqB,EAC9B;AACE,QAAA,MAAMsE,gBAAgB,GAAG/R,IAAI,CAACC,MAAM,EAAE;AACtCO,QAAAA,eAAe,CAAC,YAAY,CAAC,IAAI,CAACiN,qBAAqB,EAAE2D,QAAQ,EAAEW,gBAAgB,EAAEvR,eAAe,CAAC,KAAK,CAAC;QAC3GR,IAAI,CAACgS,aAAa,CAACD,gBAAgB,EAAEA,gBAAgB,EAAE,IAAI,CAACjE,cAAc,CAAC;AAC3E,QAAA,IAAI,CAACA,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC,GAAGwF,gBAAgB,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAACjE,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC,GAAGwF,gBAAgB,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAACjE,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC,GAAGwF,gBAAgB,CAAC,CAAC,CAAC;AACvE,MAAA,CAAC,MAED;QACE,IAAI,CAACjE,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC;QAC/C,IAAI,CAACuB,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC;QAC/C,IAAI,CAACuB,cAAc,CAAC,EAAE,CAAC,GAAG,IAAI,CAACvB,aAAa,CAAC,CAAC,CAAC;AACjD,MAAA;AAEA,MAAA,IAAI,CAAC1C,IAAI,CAACoI,MAAM,CAAC,IAAI,CAAClE,qBAAqB,EAAE,IAAI,CAACD,cAAc,CAAC,EACjE;AACEjE,QAAAA,IAAI,CAACqI,QAAQ,CAAC,IAAI,CAACnE,qBAAqB,CAAC;AAC3C,MAAA;MACA,IAAI,CAACoE,iBAAiB,EAAE;AACxB,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAIEA,IAAAA,iBAAiBA,GACjB;AACE,MAAA,MAAMC,OAAO,GAAG,IAAI,CAAC9G,gBAAgB;MACrC,IAAI,IAAI,CAACI,4BAA4B,IAAI0G,OAAO,EAAEC,aAAa,IAAI,EACnE;AACED,QAAAA,OAAO,CAACE,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;QAC/F,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,EACtC;AACEtS,UAAAA,IAAI,CAACgS,aAAa,CAAC,IAAI,CAACxE,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAACM,cAAc,CAAC;AAC7F,UAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAACpB,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAClF,UAAA,OAAO,IAAI;AACb,QAAA;AACF,MAAA;AACA,MAAA,IAAI,IAAI,CAACa,oBAAoB,GAAG,CAAC,EACjC;AACEvN,QAAAA,IAAI,CAACgS,aAAa,CAAC,IAAI,CAACxE,kBAAkB,EAAE,IAAI,CAACN,oBAAoB,EAAE,IAAI,CAACY,cAAc,CAAC;QAC3F,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAACpB,UAAU,GAAG,IAAI,CAACa,oBAAoB;AAC7E,QAAA,OAAO,IAAI;AACb,MAAA;AACA,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGEgF,IAAAA,iBAAiBA,CAACC,aAAa,GAAG,IAAI,EACtC;MACE,IAAI,CAACL,iBAAiB,EAAE;;AAExB;MACA,IAAI,CAAC9E,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAACnB,aAAa,GAC3C,IAAI,CAACA,aAAa,CAACuG,qBAAqB,GAAGD,aAAa,CAAC,IAAI,CAAC,GAC/D,CAAC;MACL,IAAI,CAACnF,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAACqF,uBAAuB,EAAE;MAC5D,IAAI,CAACrF,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAACF,SAAS;;AAE5C;AACA;AACA,MAAA,IAAIwF,wBAAwB,GAAG,IAAI,CAACD,uBAAuB,EAAE,IAAI,IAAI,CAAChG,UAAU,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAACA,UAAU,CAAC;MAC7G,MAAMkG,UAAU,GAAG5S,IAAI,CAACiP,MAAM,CAAC,IAAI,CAAC9C,gBAAgB,CAAC;AACrDwG,MAAAA,wBAAwB,IAAIC,UAAU;MACtC,MAAMC,sBAAsB,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,UAAU,GAAGD,wBAAwB,CAAC;MACjF,MAAMK,cAAc,GAAG,IAAI,CAAC3G,gBAAgB,GAAGsG,wBAAwB,IAAI,CAAC,GAAGE,sBAAsB,CAAC;AAEtG,MAAA,MAAMI,MAAM,GAAG,IAAI,CAACC,uBAAuB,EAAE;AAC7C,MAAA,MAAM/G,gBAAgB,GAAG3L,eAAe,CAAC,wBAAwB;MACjER,IAAI,CAACmT,GAAG,CAAChH,gBAAgB,EAAE,IAAI,CAACA,gBAAgB,EAAE8G,MAAM,CAAC;MACzD,MAAMG,YAAY,GAAGN,IAAI,CAACO,IAAI,CAACL,cAAc,CAAC,GAAGA,cAAc,GAAGA,cAAc;MAEhF,IAAI,CAAC,OAAO,CAACM,GAAG,CAAC,kBAAkB,EAAEnH,gBAAgB,CAAC;MACtD,IAAI,CAAC,OAAO,CAACmH,GAAG,CAAC,cAAc,EAAE,CAACF,YAAY,CAAC,CAAC;MAChD,IAAI,CAAC,OAAO,CAACE,GAAG,CAAC,UAAU,EAAE,CAACnH,gBAAgB,CAAC,CAAC,CAAC,EAAEA,gBAAgB,CAAC,CAAC,CAAC,EAAEA,gBAAgB,CAAC,CAAC,CAAC,EAAEiH,YAAY,CAAC,CAAC;MAE3G,MAAMG,eAAe,GAAG,IAAI,CAACnH,iBAAiB,GAAGuG,wBAAwB,IAAI,CAAC,GAAGE,sBAAsB,CAAC;MACxG,IAAI,CAAC,OAAO,CAACS,GAAG,CAAC,eAAe,EAAE,CAACR,IAAI,CAACO,IAAI,CAACE,eAAe,CAAC,GAAGA,eAAe,GAAGA,eAAe,CAAC,CAAC;AACnG,MAAA,IAAI,CAAC,OAAO,CAACD,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAACjH,gBAAgB,CAAC,CAAC;AAC7D,MAAA,IAAI,CAAC,OAAO,CAACiH,GAAG,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAClH,iBAAiB,CAAC,CAAC;AACjE,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGEoH,IAAAA,gBAAgBA,CAACC,OAAO,EAAEjB,aAAa,GAAG,IAAI,EAC9C;MACE,MAAMkB,YAAY,GAAG,IAAI,CAAC,OAAO,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAE/DD,MAAAA,YAAY,CAACE,IAAI,CAAC,CAAC,CAAC;AAEpB,MAAA,MAAMC,YAAY,GAAGrT,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,CAAC;AAEnH,MAAA,IAAI,EAAE,IAAI,CAACtH,kCAAkC,GAAG2I,YAAY,CAAC,IAAI,OAAOJ,OAAO,EAAEK,WAAW,KAAK,UAAU,EAC3G;AACE,QAAA,OAAO,KAAK;AACd,MAAA;AAEA,MAAA,MAAMC,eAAe,GAAGvT,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,0BAA0B,EAAE,uBAAuB,CAAC;AAC5H,MAAA,MAAMwB,mBAAmB,GAAG,CAACD,eAAe,GAAGF,YAAY,IAAI,IAAI;MACnE,MAAMI,SAAS,GAAGnB,IAAI,CAACC,GAAG,CAACD,IAAI,CAACoB,GAAG,CAAC,CAAC,IAAI,CAAChJ,kCAAkC,GAAG2I,YAAY,IAAIG,mBAAmB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAE1HP,MAAAA,OAAO,CAACK,WAAW,CACjB,IAAI,CAACvH,aAAa,EAClB0H,SAAS,EACT,IAAI,CAAC1G,oBAAoB,GAAG/M,eAAe,CAAC2T,uCAAuC,EACnFT,YACF,CAAC;AAED,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGEU,IAAAA,eAAeA,GACf;AACE,MAAA,IAAI,CAAC,OAAO,CAACT,GAAG,CAAC,wBAAwB,CAAC,CAACC,IAAI,CAAC,CAAC,CAAC;AAElD,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AAGES,IAAAA,aAAaA,CAACC,GAAG,GAAG,IAAIC,qBAA0B,EAAE,EACpD;MACE1K,IAAI,CAACyH,IAAI,CAACgD,GAAG,CAACE,SAAS,EAAE,IAAI,CAAC1G,cAAc,CAAC;AAC7C;MACAwG,GAAG,CAACG,SAAS,GAAG,CAAC;MACjB7K,IAAI,CAAC0H,IAAI,CAACgD,GAAG,CAACI,QAAQ,EAAE,IAAI,CAACrH,mBAAmB,CAAC;AACjDrN,MAAAA,IAAI,CAACsR,IAAI,CAACgD,GAAG,CAACnI,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAACwH,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACrEW,MAAAA,GAAG,CAAClB,YAAY,GAAG,IAAI,CAAC,OAAO,CAACO,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AACtDW,MAAAA,GAAG,CAACK,aAAa,GAAG,IAAI,CAAC,OAAO,CAAChB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AACxDW,MAAAA,GAAG,CAACM,UAAU,GAAG,IAAI,CAAC,OAAO,CAACjB,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;AACxDW,MAAAA,GAAG,CAACO,WAAW,GAAG,IAAI,CAAC,OAAO,CAAClB,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;MAC1DW,GAAG,CAACQ,UAAU,GAAG,IAAI,CAAC,OAAO,CAACnB,GAAG,CAAC,wBAAwB,CAAC;AAC3D/J,MAAAA,IAAI,CAAC0H,IAAI,CAACgD,GAAG,CAACS,UAAU,EAAE,IAAI,CAAC,OAAO,CAACpB,GAAG,CAAC,YAAY,CAAC,CAAC;AAEzD,MAAA,OAAOW,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAGEU,IAAAA,mBAAmBA,CAACC,MAAM,GAAGxG,OAAO,CAACxO,MAAM,CAAC,sBAAsB,CAAC,EAAEiV,MAAM,GAAGzG,OAAO,CAACxO,MAAM,CAAC,sBAAsB,CAAC,EACpH;AACEgV,MAAAA,MAAM,CAACE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7BD,MAAAA,MAAM,CAACC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC7BF,MAAAA,MAAM,CAAC3B,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAACK,GAAG,CAAC,YAAY,CAAC,CAAC;MACxD,OAAO;AAAEyB,QAAAA,EAAE,EAAEH,MAAM;AAAEI,QAAAA,EAAE,EAAEH;OAAQ;AACnC,IAAA;;AAEA;AACF;AACA;AACA;AAGEI,IAAAA,gBAAgBA,CAAC9C,aAAa,GAAG,IAAI,EACrC;AACE,MAAA,MAAMrB,IAAI,GAAG3Q,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9F,MAAA,IAAI,CAACtB,oBAAoB,CAACC,IAAI,CAAC;AAC/B,MAAA,IAAI,CAAC,IAAI,CAACnE,MAAM,EAChB;AACE,QAAA,OAAO,KAAK;AACd,MAAA;AAEA,MAAA,MAAMuI,iBAAiB,GAAG,IAAI,CAACC,oBAAoB,EAAE;AACrD,MAAA,KAAK,MAAMhG,QAAQ,IAAI,IAAI,CAAClD,SAAS,EACrC;AACEkD,QAAAA,QAAQ,EAAEiG,MAAM,GAAGF,iBAAiB,CAAC;AACvC,MAAA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAA,IAAIG,YAAY,CAACC,YAAY,CAAC,IAAI,CAAC7K,QAAQ,EAAEqG,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAC9E;AACE,QAAA,IAAI,CAAC,oBAAoB,GAAGA,IAAI;AAChC,QAAA,KAAK,MAAMyE,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;AACEgL,UAAAA,OAAO,EAAEH,MAAM,GAAGtE,IAAI,EAAEA,IAAI,CAAC;AAC/B,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,IAAI,CAAC7G,cAAc,CAAC2E,MAAM,EAC9B;AACE,QAAA,MAAM4G,MAAM,GAAG,IAAIC,qBAAoB,EAAE;QACzCD,MAAM,CAACE,iBAAiB,GAAG,IAAI;QAC/BF,MAAM,CAACG,aAAa,GAAG3E,MAAM,CAAC,IAAI,CAAC4E,QAAQ,CAAC,IAAI,CAAC;AACjDJ,QAAAA,MAAM,CAACjJ,kBAAkB,GAAG,IAAI,CAACA,kBAAkB;AACnD/C,QAAAA,IAAI,CAACyH,IAAI,CAACuE,MAAM,CAACK,qBAAqB,EAAE,IAAI,CAACC,wBAAwB,EAAE,CAAC;AACxE,QAAA,KAAK,MAAMnG,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;UACEuL,MAAM,CAAC1H,SAAS,GAAG,IAAI,CAACpB,OAAO,KAAK,IAAI,CAACqJ,eAAe,EAAE,IAAI,CAAC,CAACpG,KAAK,EAAEqG,UAAU,IAAI,CAAC;AACtFrG,UAAAA,KAAK,EAAEsF,gBAAgB,GAAG9C,aAAa,EAAEqD,MAAM,CAAC;AAClD,QAAA;AACF,MAAA;MAEA,IAAI,CAAC3J,aAAa,EAAEoJ,gBAAgB,GAAG9C,aAAa,EAAE,IAAI,CAAC;AAC3D,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGE8D,IAAAA,iBAAiBA,CAAC9D,aAAa,GAAG,IAAI,EACtC;AACE,MAAA,IAAI,CAAC,IAAI,CAACxF,MAAM,EAChB;AACE,QAAA,OAAO,CAAC;AACV,MAAA;AAEA,MAAA,MAAMuJ,SAAS,GAAG/V,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,wBAAwB,EAAE,qBAAqB,CAAC;MAClH,MAAMgE,SAAS,GAAG,IAAI,CAACrI,SAAS,IAAIoI,SAAS,GAAG,CAAC,GAC7CzD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC9H,sBAAsB,GAAGsL,SAAS,CAAC,GACpD,CAAC;AACL,MAAA,KAAK,MAAM3H,UAAU,IAAI,IAAI,CAAC7C,WAAW,EACzC;AACE6C,QAAAA,UAAU,EAAE6G,MAAM,GAAGe,SAAS,CAAC;AACjC,MAAA;;AAEA;AACA;AACA,MAAA,IAAI,CAAC,OAAO,CAACC,UAAU,EAAE;AACzB,MAAA,IAAI,CAAC,OAAO,CAACA,UAAU,EAAE;AAEzB,MAAA,MAAMC,0BAA0B,GAAG,IAAI,CAACrJ,mBAAmB,CAAC,CAAC,CAAC;AAC9D,MAAA,IAAI,CAACkF,iBAAiB,CAACC,aAAa,CAAC;MACrC,IAAIkE,0BAA0B,KAAK,IAAI,CAACrJ,mBAAmB,CAAC,CAAC,CAAC,EAC9D;QACE,IAAI,CAACsJ,qBAAqB,GAAG,oBAAoB,EAAE,IAAI,CAACtJ,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACjF,MAAA;MAEA,IAAI,CAAC,OAAO,CAACiG,GAAG,CAAC,UAAU,EAAE,IAAI,CAACjG,mBAAmB,CAAC;MACtD,IAAI,CAAC,OAAO,CAACiG,GAAG,CAAC,UAAU,EAAE,IAAI,CAACjG,mBAAmB,CAAC;AACtD;MACA,IAAI,CAAC,OAAO,CAACiG,GAAG,CAAC,YAAY,EAAE,IAAI,CAAClG,gBAAgB,CAAC;AACrD;AACA;AACA;MACA,IAAI,CAAC,OAAO,CAACmE,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAACzD,cAAc,CAAC;MACnE,IAAI,CAAC,OAAO,CAACyD,eAAe,CAAC,mBAAmB,EAAE,IAAI,CAACxD,qBAAqB,CAAC;MAC7E,IAAI,CAAC,OAAO,CAACwD,eAAe,CAAC,gBAAgB,EAAE,IAAI,CAACzD,cAAc,CAAC;MACnE,IAAI,CAAC,OAAO,CAACyD,eAAe,CAAC,mBAAmB,EAAE,IAAI,CAACxD,qBAAqB,CAAC;AAE7E,MAAA,MAAM6I,WAAW,GAAGpW,eAAe,CAAC,mBAAmB;AACvD,MAAA,MAAMqW,WAAW,GAAGrW,eAAe,CAAC,mBAAmB;AACvD,MAAA,IAAI,CAACsW,iBAAiB,CAACF,WAAW,EAAEC,WAAW,CAAC;MAChD,IAAI,CAAC,OAAO,CAACvD,GAAG,CAAC,eAAe,EAAE,CAAEuD,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC;MACxF,IAAI,CAAC,OAAO,CAACvD,GAAG,CAAC,gBAAgB,EAAE,CAAEsD,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,EAAEA,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,CAAC;MAEzF,IAAI,IAAI,CAAC1K,aAAa,EACtB;AACE,QAAA,IAAI,CAAC,OAAO,CAACoH,GAAG,CAAC,kBAAkB,EAAE,CAAE,IAAI,CAACpH,aAAa,CAAC6K,oBAAoB,IAAI,IAAI,CAAC,CAAE,CAAC;AAC5F,MAAA;AAEA,MAAA,KAAK,IAAIC,IAAI,GAAG,CAAC,EAAEA,IAAI,GAAGxW,eAAe,CAACyW,eAAe,EAAED,IAAI,EAAE,EACjE;AACE,QAAA,IAAI,IAAI,CAACrM,WAAW,CAACsE,MAAM,GAAG+H,IAAI,EAClC;AACE,UAAA,IAAI,CAACrM,WAAW,CAACqM,IAAI,CAAC,EAAEE,iBAAiB,GAAGF,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;AAC/E,QAAA,CAAC,MAED;AACEG,UAAAA,cAAa,CAACC,iBAAiB,CAACJ,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;AACnE,QAAA;AACF,MAAA;;AAEA;AACA;AACA;AACA;AACA,MAAA,MAAM7F,IAAI,GAAG3Q,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC;AAC9F,MAAA,IAAI,IAAI,CAAC,oBAAoB,KAAKrB,IAAI,EACtC;AACE,QAAA,KAAK,MAAMkG,QAAQ,IAAI,IAAI,CAACtM,SAAS,EACrC;AACEsM,UAAAA,QAAQ,EAAE5B,MAAM,GAAGtE,IAAI,EAAEA,IAAI,CAAC;AAChC,QAAA;AACF,MAAA;AAEA,MAAA,KAAK,MAAMnB,KAAK,IAAI,IAAI,CAACzF,QAAQ,EACjC;AACEyF,QAAAA,KAAK,EAAEyF,MAAM,GAAGjD,aAAa,CAAC;AAChC,MAAA;AAEA,MAAA,IAAI,IAAI,CAAClI,cAAc,CAAC2E,MAAM,EAC9B;AACE,QAAA,MAAM4G,MAAM,GAAG,IAAIC,qBAAoB,EAAE;QACzCD,MAAM,CAACE,iBAAiB,GAAG,IAAI;QAC/BF,MAAM,CAACG,aAAa,GAAG3E,MAAM,CAAC,IAAI,CAAC4E,QAAQ,CAAC,IAAI,CAAC;AACjDJ,QAAAA,MAAM,CAACjJ,kBAAkB,GAAG,IAAI,CAACA,kBAAkB;QACnDiJ,MAAM,CAACyB,yBAAyB,GAAGd,SAAS;AAC5C3M,QAAAA,IAAI,CAACyH,IAAI,CAACuE,MAAM,CAACK,qBAAqB,EAAE,IAAI,CAACC,wBAAwB,EAAE,CAAC;AACxE,QAAA,KAAK,MAAMnG,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;UACEuL,MAAM,CAAC1H,SAAS,GAAG,IAAI,CAACpB,OAAO,KAAK,IAAI,CAACqJ,eAAe,EAAE,IAAI,CAAC,CAACpG,KAAK,EAAEqG,UAAU,IAAI,CAAC;AACtFrG,UAAAA,KAAK,EAAEsG,iBAAiB,GAAG9D,aAAa,EAAEqD,MAAM,CAAC;AACnD,QAAA;AACF,MAAA;MAEA,IAAI,CAAC3J,aAAa,EAAEoK,iBAAiB,GAAG9D,aAAa,EAAE,IAAI,CAAC;AAC5D,MAAA,OAAOgE,SAAS;AAClB,IAAA;;AAEA;AACF;AACA;AACA;IAIEe,gBAAgBA,CAAC/E,aAAa,GAAG,IAAI,EAAEgF,gBAAgB,GAAGhX,eAAe,CAAC,kBAAkB,EAC5F;MACE,IAAI,CAAC2N,SAAS,GAAG,KAAK;AACtB,MAAA,IAAI,CAAC,cAAc,GAAG,KAAK;AAC3B,MAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,MAAA,IAAI,CAAC,IAAI,CAACpB,OAAO,EACjB;AACE,QAAA,OAAO,KAAK;AACd,MAAA;MAEA,IAAI,CAACoF,iBAAiB,EAAE;AACxB,MAAA,IAAI,CAACrH,QAAQ,GAAGyD,MAAM,CAACkJ,WAAW;AAClC,MAAA,IAAI,CAAC,qBAAqB,GAAGlJ,MAAM,CAACkJ,WAAW;AAC/C,MAAA,IAAI,CAAC,aAAa,GAAG,KAAK;MAE1B,MAAMC,OAAO,GAAGlF,aAAa,EAAEmF,UAAU,IAAI,IAAInF,aAAa,EAAEkF,OAAO;AACvE,MAAA,MAAM7D,YAAY,GAAGrT,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,uBAAuB,EAAE,oBAAoB,CAAC;AACnH,MAAA,MAAMuB,eAAe,GAAGvT,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,0BAA0B,EAAE,uBAAuB,CAAC;AAC5H,MAAA,MAAMoF,mBAAmB,GAAGpX,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,wBAAwB,EAAE,qBAAqB,CAAC;AAC5H,MAAA,MAAMqF,SAAS,GAAGrX,eAAe,CAAC,gBAAgB,CAACgS,aAAa,EAAE,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC;AAEnG,MAAA,IAAI,IAAI,CAACjF,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,0BAA0B,GAAG,CAAC,EACxE;AACE/M,QAAAA,eAAe,CAAC,UAAU,CACxBA,eAAe,CAAC,YAAY,EAC5B,IAAI,CAACgN,kBAAkB,EACvB,IAAI,CAAC,0BACP,CAAC;QACD,IAAIkK,OAAO,EAAEI,eAAe,GAAGtX,eAAe,CAAC,YAAY,CAAC,KAAK,KAAK,EACtE;AACE,UAAA,IAAI,CAACuX,qBAAqB,CAACL,OAAO,CAAC;AACnC,UAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC5B,QAAA;AACF,MAAA;;AAEA;AACA;MACA,MAAM;QAAEM,KAAK;AAAEC,QAAAA;AAAU,OAAC,GAAGC,WAAW,CAAC,IAAI,CAAC5M,gBAAgB,CAAC;AAE/D,MAAA,KAAK,MAAM6M,UAAU,IAAI,IAAI,CAACxM,WAAW,EACzC;AACE,QAAA,IAAIwM,UAAU,EAAEZ,gBAAgB,GAAG/E,aAAa,EAAE,IAAI,CAAC1E,cAAc,EAAEkK,KAAK,EAAEC,SAAS,CAAC,EACxF;AACE,UAAA,IAAI,CAAC,cAAc,GAAG,IAAI;UAC1B,IAAI,CAAC9J,SAAS,GAAG,IAAI;AACvB,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,IAAI,CAACiI,eAAe,EAAE,EAC1B;AACE,QAAA,KAAK,MAAMpG,KAAK,IAAI,IAAI,CAACzF,QAAQ,EACjC;UACEyF,KAAK,EAAEuH,gBAAgB,GAAG/E,aAAa,EAAE,IAAI,CAAC1E,cAAc,CAAC;AAC/D,QAAA;AACF,MAAA;MAEA,IAAI,IAAI,CAACsK,iBAAiB,CAAC5X,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,EAC3D;AACE,QAAA,IAAI,CAAC,YAAY,GAAGkX,OAAO,EAAEI,eAAe,GAAGtX,eAAe,CAAC,YAAY,CAAC,KAAK,KAAK;AACtF,QAAA,IAAI,CAAC0K,kCAAkC,GAAG1K,eAAe,CAAC,aAAa,CAACkX,OAAO,EAAElX,eAAe,CAAC,YAAY,CAAC;QAC9G,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC0K,kCAAkC,IAAI0M,mBAAmB,EACvF;UACE,IAAI,CAACzJ,SAAS,GAAG,IAAI;AACvB,QAAA;AACF,MAAA;MAEA,IAAI,IAAI,CAACA,SAAS,EAClB;AACE,QAAA,IAAI,IAAI,CAAClD,sBAAsB,GAAG8I,eAAe,EAAE,IAAI,CAACjJ,QAAQ,GAAGyD,MAAM,CAAC8J,YAAY,CAAC,KAClF,IAAI,IAAI,CAACpN,sBAAsB,GAAG4I,YAAY,EAAE,IAAI,CAAC/I,QAAQ,GAAGyD,MAAM,CAAC+J,cAAc;AAE1F,QAAA,IAAI,IAAI,CAACpN,kCAAkC,GAAG6I,eAAe,EAAE,IAAI,CAAC,qBAAqB,GAAGxF,MAAM,CAAC8J,YAAY,CAAC,KAC3G,IAAI,IAAI,CAACnN,kCAAkC,GAAG2I,YAAY,EAAE,IAAI,CAAC,qBAAqB,GAAGtF,MAAM,CAAC+J,cAAc,CAAC,KAC/G,IAAI,CAAC,qBAAqB,GAAG/J,MAAM,CAACkJ,WAAW;AACtD,MAAA;AAEA,MAAA,KAAK,MAAMjI,QAAQ,IAAI,IAAI,CAAClD,SAAS,EACrC;QACE,MAAM6D,MAAM,GAAGX,QAAQ,EAAE+I,WAAW,IAAI,IAAI/I,QAAQ,EAAEA,QAAQ;AAC9DW,QAAAA,MAAM,EAAEqI,aAAa,GAAG,IAAI,CAACrK,SAAS,CAAC;AACzC,MAAA;AACA,MAAA,KAAK,MAAM6B,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAEuH,gBAAgB,GAAG/E,aAAa,EAAE,IAAI,CAAC1E,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC;AAC3F,MAAA;MAEA,IAAI,IAAI,CAAC7B,IAAI,IAAI,IAAI,CAAC,0BAA0B,GAAG,CAAC,EACpD;AACEzL,QAAAA,eAAe,CAAC,UAAU,CACxBA,eAAe,CAAC,YAAY,EAC5B,IAAI,CAACgN,kBAAkB,EACvB,IAAI,CAAC,0BACP,CAAC;AACD,QAAA,IAAI,CAAC,eAAe,GAAGhN,eAAe,CAAC,sBAAsB,CAACkX,OAAO,EAAElX,eAAe,CAAC,YAAY,CAAC,GAAGqX,SAAS;QAChH,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,GAAGY,QAAQ;AAC7D,QAAA,IAAI,CAACxM,IAAI,CAACyM,iBAAiB,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,0BAA0B,CAAC;AACtF,MAAA;MACA,OAAO,IAAI,CAACvK,SAAS;AACvB,IAAA;;AAEA;AAIAwK,IAAAA,cAAcA,CAACrE,GAAG,GAAG,EAAE,EACvB;MACE,IAAI,CAAC,IAAI,CAACvH,OAAO,IAAI,CAAC,IAAI,CAACoB,SAAS,EAAE,OAAOmG,GAAG;MAChD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,cAAc,EAClD;AACE,QAAA,IAAI,CAACrI,IAAI,EAAE2M,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;AACrE,MAAA;AACA,MAAA,IAAI,IAAI,CAAC3M,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAACA,IAAI,CAAC4M,SAAS,IAAI,KAAK,IAAI,EACxE;AACEvE,QAAAA,GAAG,CAAChF,IAAI,CAAC,IAAI,CAAC;AAChB,MAAA;AACA,MAAA,IAAI,IAAI,CAAC8G,eAAe,EAAE,EAC1B;AACE,QAAA,KAAK,MAAMpG,KAAK,IAAI,IAAI,CAACzF,QAAQ,EAAEyF,KAAK,EAAE2I,cAAc,GAAGrE,GAAG,CAAC;AACjE,MAAA;AACA,MAAA,KAAK,MAAMtE,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE,QAAA,IAAI,IAAI,CAAC8L,eAAe,EAAE,IAAIpG,KAAK,EAAEqG,UAAU,IAAI,EAAErG,KAAK,EAAE2I,cAAc,GAAGrE,GAAG,CAAC;AACnF,MAAA;MACA,IAAI,IAAI,CAACrI,IAAI,IAAI,IAAI,CAAC,cAAc,EACpC;QACE,MAAM6M,gBAAgB,GAAG,IAAI,CAAC7M,IAAI,CAAC8M,mBAAmB,IAAI;AAC1D,QAAA,IAAID,gBAAgB,EACpB;AACE,UAAA,KAAK,MAAME,KAAK,IAAI,IAAI,CAACpN,MAAM,EAC/B;AACEoN,YAAAA,KAAK,EAAEL,cAAc,GAAGrE,GAAG,EAAE,IAAI,EAAEwE,gBAAgB,EAAE,IAAI,CAAC,eAAe,CAAC;AAC5E,UAAA;AACF,QAAA;AACF,MAAA;AACA,MAAA,OAAOxE,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIE2E,IAAAA,UAAUA,CAACC,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAEjP,MAAM,EAAEkP,aAAa,GAAG,IAAI,EAC1E;AACE,MAAA,IAAI,CAAC,IAAI,CAACpN,IAAI,EAAE,OAAO,KAAK;MAC5B,IAAI,IAAI,CAACA,IAAI,CAACc,OAAO,KAAK,KAAK,EAAE,OAAO,KAAK;;AAE7C;AACA;MACA,MAAMuM,eAAe,GAAGJ,OAAO,CAACK,aAAa,IAAI,IAAI,CAAC;AAEtD,MAAA,IAAI,IAAI,CAAC3M,kBAAkB,KAAK,CAAC,EACjC;AACE,QAAA,KAAK,MAAMuL,UAAU,IAAI,IAAI,CAACxM,WAAW,EACzC;UACEwM,UAAU,EAAEc,UAAU,GAAGC,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAEjP,MAAM,CAAC;AACrE,QAAA;AACF,MAAA;AAEA,MAAA,IAAI,CAAC+B,aAAa,EAAE+M,UAAU,GAAGC,OAAO,EAAEC,SAAS,EAAEC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC;MAEzF,MAAMI,KAAK,GAAG,IAAI,CAACvN,IAAI,CAACwN,QAAQ,GAAGN,SAAS,CAAC;AAC7C,MAAA,IAAIK,KAAK,EACT;AACE,QAAA,IAAIL,SAAS,KAAKO,YAAY,CAACC,wBAAwB,EACvD;UACE,IAAI,CAAC1N,IAAI,CAACgN,UAAU,CAACC,OAAO,EAAEM,KAAK,EAAEJ,aAAa,CAAC;AACrD,QAAA,CAAC,MAED;UACE,IAAI,CAAC,4BAA4B,CAACI,KAAK,EAAEN,OAAO,EAAEE,aAAa,EAAEC,aAAa,CAAC;AACjF,QAAA;AACF,MAAA;;AAEA;AACA,MAAA,IAAI,CAACO,2BAA2B,CAACV,OAAO,EAAEE,aAAa,EAAED,SAAS,EAAE,IAAI,CAAClN,IAAI,CAAC;MAE9E,OAAO,CAACiN,OAAO,CAACK,aAAa,IAAI,IAAI,CAAC,IAAID,eAAe;AAC3D,IAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACA;IACE,4BAA4BO,CAACL,KAAK,EAAEN,OAAO,EAAEE,aAAa,EAAEC,aAAa,EACzE;MACE,MAAMS,QAAQ,GAAG,IAAI,CAAC7N,IAAI,CAAC8M,mBAAmB,IAAI,IAAI,IAAI;AAC1D,MAAA,MAAMgB,YAAY,GAAGV,aAAa,EAAEW,eAAe,IAAI;MACvD,MAAMC,SAAS,GAAG,IAAI,CAAChO,IAAI,CAACgO,SAAS,IAAI,CAAC;MAE1C,MAAMC,MAAM,GAAG,EAAE;AACjB,MAAA,KAAK,MAAMC,IAAI,IAAIX,KAAK,EACxB;QACE,IAAI,CAACW,IAAI,IAAIA,IAAI,CAACC,UAAU,IAAI,KAAK,KAAK,EAAE;QAE5Cpa,IAAI,CAACsO,GAAG,CAACnO,kBAAkB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrC,QAAA,IAAI2Z,QAAQ,EAAEO,kBAAkB,GAAGJ,SAAS,EAAEE,IAAI,CAACG,QAAQ,EAAE,EAAEva,oBAAoB,EAAEG,oBAAoB,CAAC,EAC1G;UACEF,IAAI,CAACmT,GAAG,CAAChT,kBAAkB,EAAEJ,oBAAoB,EAAEG,oBAAoB,CAAC;UACxEF,IAAI,CAAC8R,KAAK,CAAC3R,kBAAkB,EAAEA,kBAAkB,EAAE,GAAG,CAAC;AACzD,QAAA;QACAH,IAAI,CAACgS,aAAa,CAAC7R,kBAAkB,EAAEA,kBAAkB,EAAE,IAAI,CAAC2N,cAAc,CAAC;AAE/E,QAAA,MAAMyM,EAAE,GAAG,CAACR,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI5Z,kBAAkB,CAAC,CAAC,CAAC;AAC3D,QAAA,MAAMqa,EAAE,GAAG,CAACT,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI5Z,kBAAkB,CAAC,CAAC,CAAC;AAC3D,QAAA,MAAMsa,EAAE,GAAG,CAACV,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI5Z,kBAAkB,CAAC,CAAC,CAAC;QAC3D+Z,MAAM,CAAC5K,IAAI,CAAC;UAAE6K,IAAI;UAAEO,QAAQ,EAAEH,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA;AAAG,SAAC,CAAC;AAC9D,MAAA;AAEAP,MAAAA,MAAM,CAACS,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAACH,QAAQ,GAAGE,CAAC,CAACF,QAAQ,CAAC;AAE9C,MAAA,KAAK,MAAMI,KAAK,IAAIZ,MAAM,EAC1B;AACE,QAAA,MAAMC,IAAI,GAAGW,KAAK,CAACX,IAAI;AACvB,QAAA,IAAI,CAACA,IAAI,CAACY,oBAAoB,IAAI,EAAE;AACpC,QAAA,MAAMC,KAAK,GAAG,IAAI,CAAC/O,IAAI,CAACgP,mBAAmB,CAACnB,QAAQ,EAAEK,IAAI,EAAEf,aAAa,CAAC;AAC1E,QAAA,IAAI4B,KAAK,EAAE9B,OAAO,CAACgC,MAAM,CAACF,KAAK,CAAC;AAClC,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIEG,IAAAA,iBAAiBA,GACjB;MACE,IAAI,CAACC,iBAAiB,EAAE;AACxB,MAAA,IAAI,CAAC,IAAI,CAACnP,IAAI,EAAE;MAEhB,MAAMoP,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAChb,gBAAgB,CAAC;MACzD,IAAI,CAAC4L,IAAI,CAACqP,iBAAiB,CAACD,GAAG,EAAE3B,YAAY,CAAC6B,mBAAmB,CAAC;MAClE,IAAI,CAACtP,IAAI,CAACqP,iBAAiB,CAACD,GAAG,EAAE3B,YAAY,CAACC,wBAAwB,CAAC;MACvE,IAAI,CAAC1N,IAAI,CAACqP,iBAAiB,CAACD,GAAG,EAAE3B,YAAY,CAAC8B,kBAAkB,CAAC;AACjE,MAAA,IAAI,CAACvP,IAAI,CAACqP,iBAAiB,CACzB,IAAI,CAAC,sBAAsB,CAAClb,uBAAuB,CAAC,EAAEsZ,YAAY,CAAC6B,mBAAmB,CAAC;AACzF,MAAA,KAAK,MAAME,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAChD;AACEC,QAAAA,uBAAuB,CAACC,QAAQ,CAACF,MAAM,CAAC;AAC1C,MAAA;AAEA,MAAA,IAAI,CAACxP,IAAI,CAAC2P,oCAAoC,CAC5C,IAAI,CAAC,sBAAsB,EAAElC,YAAY,CAAC6B,mBAAmB,CAAC;AAChE,MAAA,KAAK,MAAMM,SAAS,IAAI,IAAI,CAAC,sBAAsB,EACnD;QACEA,SAAS,CAACF,QAAQ,EAAE;AACtB,MAAA;AACA,MAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;AACpC,IAAA;;AAEA;AACF;AACA;AACA;AAGEP,IAAAA,iBAAiBA,GACjB;AACE,MAAA,KAAK,MAAMK,MAAM,IAAI,IAAI,CAAC,sBAAsB,EAChD;QACEA,MAAM,CAACxM,MAAM,GAAG,CAAC;AACnB,MAAA;AACA,MAAA,IAAI,CAAC,sBAAsB,CAACA,MAAM,GAAG,CAAC;AACtC,MAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK;AACrC,IAAA;;AAEA;AACF;AACA;AACA;IACE,uBAAuB6M,GACvB;AACE,MAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC7P,IAAI,EAAE,IAAI,CAACkP,iBAAiB,EAAE;AACzE,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAGEY,iBAAiBA,CAAC7C,OAAO,EAAE8C,SAAS,GAAGC,qBAAqB,EAAE7C,aAAa,GAAG,IAAI,EAClF;AACE,MAAA,IAAI4C,SAAS,GAAGE,WAAW,CAACC,iBAAiB,EAC7C;QACE,IAAI,CAAClD,UAAU,CAACC,OAAO,EAAEQ,YAAY,CAAC0C,oBAAoB,EAAEhD,aAAa,CAAC;AAC5E,MAAA;AAEA,MAAA,IAAI4C,SAAS,GAAGE,WAAW,CAACG,gBAAgB,EAC5C;QACE,IAAI,CAACpD,UAAU,CAACC,OAAO,EAAEQ,YAAY,CAAC6B,mBAAmB,EAAEnC,aAAa,CAAC;QACzE,IAAI,CAACH,UAAU,CAACC,OAAO,EAAEQ,YAAY,CAAC8B,kBAAkB,EAAEpC,aAAa,CAAC;AACxE,QAAA,IAAI,CAACQ,2BAA2B,CAACV,OAAO,EAAEE,aAAa,EAAEM,YAAY,CAACC,wBAAwB,EAAE,IAAI,CAAC1N,IAAI,CAAC;AAC1G,QAAA,IAAI,CAAC2N,2BAA2B,CAACV,OAAO,EAAEE,aAAa,EAAEM,YAAY,CAAC4C,qBAAqB,EAAE,IAAI,CAACrQ,IAAI,CAAC;AACzG,MAAA;AAEA,MAAA,IAAI+P,SAAS,GAAGE,WAAW,CAACK,qBAAqB,EACjD;AACE;AACA;AACA;AACA,QAAA,IAAI,CAAC,IAAI,CAACtQ,IAAI,IAAI,IAAI,CAACA,IAAI,CAACc,OAAO,KAAK,KAAK,EAC7C;AACE,UAAA,OAAO,IAAI;AACb,QAAA;AAEA,QAAA,KAAK,MAAMoM,SAAS,IAAI,CAAEO,YAAY,CAACC,wBAAwB,EAAED,YAAY,CAAC4C,qBAAqB,CAAE,EACrG;UACE,MAAM9C,KAAK,GAAG,IAAI,CAACvN,IAAI,CAACwN,QAAQ,GAAGN,SAAS,CAAC;AAE7C,UAAA,IAAIK,KAAK,EACT;YACE,IAAI,CAACvN,IAAI,CAACgN,UAAU,GAAGC,OAAO,EAAEM,KAAK,EAAEJ,aAAa,CAAC;AACvD,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAGEoD,IAAAA,KAAKA,CAACC,OAAO,GAAG,CAAC,EACjB;AACE,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIEC,IAAAA,gBAAgBA,CAACxD,OAAO,EAAEE,aAAa,EAAEuD,gBAAgB,EACzD;AACE,MAAA,IAAI,CAAC,IAAI,CAAC1Q,IAAI,IAAI,IAAI,CAACA,IAAI,CAACc,OAAO,KAAK,KAAK,EAAE,OAAO,KAAK;AAC3D,MAAA,IAAI,CAAC,uBAAuB,EAAE;MAE9B,MAAM+M,QAAQ,GAAG,IAAI,CAAC7N,IAAI,CAAC8M,mBAAmB,IAAI,IAAI,IAAI;MAC1D,MAAMkB,SAAS,GAAG,IAAI,CAAChO,IAAI,CAACgO,SAAS,IAAI,CAAC;MAE1C,IAAI2C,SAAS,GAAG,KAAK;AACrB,MAAA,KAAK,MAAMf,SAAS,IAAI,IAAI,CAAC,sBAAsB,EACnD;AACE,QAAA,MAAMgB,QAAQ,GAAGhB,SAAS,CAACiB,cAAc;QACzC,IAAI,CAACD,QAAQ,EAAE;AACf,QAAA,KAAK,MAAME,KAAK,IAAIlB,SAAS,CAACmB,eAAe,EAC7C;AACE,UAAA,MAAMhC,KAAK,GAAG,IAAIiC,cAAc,EAAE;AAClCjC,UAAAA,KAAK,CAACkC,WAAW,CAACL,QAAQ,CAAC;AAC3B,UAAA,IAAI,CAAC7B,KAAK,CAACmC,OAAO,EAAE,EAAE;AACtBnC,UAAAA,KAAK,CAACoC,iBAAiB,CAACtD,QAAQ,EAAEG,SAAS,EAAE8C,KAAK,CAACM,UAAU,EAAEN,KAAK,CAACO,KAAK,EAAE,KAAK,CAAC;AAClFtC,UAAAA,KAAK,CAACuC,gBAAgB,CAACnE,aAAa,IAAI,IAAI,CAAC;UAC7CwD,SAAS,GAAG1D,OAAO,CAACgC,MAAM,CAACF,KAAK,CAAC,IAAI4B,SAAS;AAChD,QAAA;AACF,MAAA;AACA,MAAA,OAAOA,SAAS;AAClB,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAIEhD,2BAA2BA,CAACV,OAAO,EAAEE,aAAa,EAAED,SAAS,EAAElN,IAAI,EACnE;MACE,MAAMuR,YAAY,GAAG,IAAI,CAACtR,aAAa,EAAEuR,oBAAoB,GAAGtE,SAAS,CAAC,IAAI,IAAI;MAClF,IAAI,CAACqE,YAAY,IAAI,CAAC,IAAI,CAAC5S,cAAc,CAACqE,MAAM,EAAE,OAAO,KAAK;AAC9D,MAAA,IAAI,CAAChD,IAAI,EAAE,OAAO,KAAK;AACvB,MAAA,IAAI,CAAC,uBAAuB,EAAE;MAE9B,MAAMqN,eAAe,GAAGJ,OAAO,CAACK,aAAa,IAAI,IAAI,CAAC;MAEtD,MAAMO,QAAQ,GAAG7N,IAAI,CAAC8M,mBAAmB,IAAI,IAAI,IAAI;AACrD,MAAA,MAAMkB,SAAS,GAAGhO,IAAI,CAACgO,SAAS,IAAI,CAAC;AAErC,MAAA,IAAIuD,YAAY,EAChB;QACE,KAAK,MAAMT,KAAK,IAAI,IAAI,CAAC,sBAAsB,CAAC1c,gBAAgB,CAAC,EACjE;AACE,UAAA,IAAI,CAAC,iBAAiB,CAAC6Y,OAAO,EAAEsE,YAAY,EAAE1D,QAAQ,EAAEG,SAAS,EAAE8C,KAAK,EAAE3D,aAAa,EAAE,UAAU,CAAC;AACtG,QAAA;AACF,MAAA;AAEA,MAAA,KAAK,MAAMxD,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;QACE,MAAM8S,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC9H,OAAO,EAAEuD,SAAS,CAAC;QAC3D,IAAI,CAACuE,OAAO,EAAE;AAEd,QAAA,MAAMC,WAAW,GAAG/H,OAAO,CAACgI,OAAO,CAACzE,SAAS,CAAC;QAC9C,MAAMsC,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAACkC,WAAW,CAAC;AACvD,QAAA,KAAK,MAAME,MAAM,IAAIH,OAAO,EAC5B;AACE,UAAA,KAAK,MAAMX,KAAK,IAAItB,MAAM,EAC1B;AACE,YAAA,IAAI,CAAC,iBAAiB,CAACvC,OAAO,EAAE2E,MAAM,EAAE/D,QAAQ,EAAEG,SAAS,EAAE8C,KAAK,EAAE3D,aAAa,EAAE,CAAC,CAAC;AACvF,UAAA;AACF,QAAA;AACF,MAAA;MAEA,OAAO,CAACF,OAAO,CAACK,aAAa,IAAI,IAAI,CAAC,IAAID,eAAe;AAC3D,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACE,IAAA,iBAAiBwE,CAAC5E,OAAO,EAAE2D,QAAQ,EAAE/C,QAAQ,EAAEG,SAAS,EAAE8C,KAAK,EAAE3D,aAAa,EAAE2E,QAAQ,EACxF;AACE,MAAA,MAAM/C,KAAK,GAAG,IAAIiC,cAAc,EAAE;AAClCjC,MAAAA,KAAK,CAACkC,WAAW,CAACL,QAAQ,CAAC;AAC3B,MAAA,IAAI,CAAC7B,KAAK,CAACmC,OAAO,EAAE,EAAE;MACtB,IAAIY,QAAQ,KAAK,CAAC,EAAE/C,KAAK,CAACgD,WAAW,CAACD,QAAQ,CAAC;AAC/C/C,MAAAA,KAAK,CAACoC,iBAAiB,CAACtD,QAAQ,EAAEG,SAAS,EAAE8C,KAAK,CAACM,UAAU,EAAEN,KAAK,CAACO,KAAK,EAAE,KAAK,CAAC;AAClFtC,MAAAA,KAAK,CAACuC,gBAAgB,CAACnE,aAAa,IAAI,IAAI,CAAC;AAC7CF,MAAAA,OAAO,CAACgC,MAAM,CAACF,KAAK,CAAC;AACvB,IAAA;;AAEA;;AAEA;AACF;AACA;AACA;AACE,IAAA,kBAAkBiD,CAACrI,OAAO,EAAEuD,SAAS,EACrC;AACE,MAAA,OAAOvD,OAAO,EAAEsI,UAAU,GAAG/E,SAAS,CAAC,IAAI,IAAI;AACjD,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAIEgF,IAAAA,qBAAqBA,GACrB;AACE,MAAA,IAAI,CAAC,IAAI,CAAClS,IAAI,EAAE,OAAO,KAAK;AAC5B,MAAA,IAAI,CAAC,IAAI,CAACA,IAAI,CAACwN,QAAQ,GAAGC,YAAY,CAACC,wBAAwB,CAAC,EAAE1K,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;AAE/F,MAAA,KAAK,MAAM2G,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;AACE,QAAA,IAAIgL,OAAO,EAAEwI,kBAAkB,IAAI,EAAE,OAAO,IAAI;AAClD,MAAA;AACA,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;AACF;AACA;AACA;AAIEC,IAAAA,YAAYA,CAAChF,aAAa,GAAG,IAAI,EACjC;AACE,MAAA,MAAMU,YAAY,GAAGV,aAAa,EAAEW,eAAe,IAAI;AACvD,MAAA,MAAMsE,CAAC,GAAG,CAACvE,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAACjM,cAAc,CAAC,EAAE,CAAC;AAC5D,MAAA,MAAMyQ,CAAC,GAAG,CAACxE,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAACjM,cAAc,CAAC,EAAE,CAAC;AAC5D,MAAA,MAAM0Q,CAAC,GAAG,CAACzE,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAACjM,cAAc,CAAC,EAAE,CAAC;MAC5D,OAAOgF,IAAI,CAAC2L,KAAK,CAACH,CAAC,EAAEC,CAAC,EAAEC,CAAC,CAAC;AAC5B,IAAA;;AAEA;AACF;AACA;AACA;AAIEE,IAAAA,gBAAgBA,CAACC,YAAY,GAAG,IAAI,EACpC;AACE;AACA;AACA;AACA;AACA;MACA,MAAM1G,SAAS,GAAG,IAAI,CAAC3M,gBAAgB,EAAE+G,aAAa,IAAI,GACrD,IAAI,CAAC/G,gBAAgB,CAACsT,gBAAgB,IAAI,IAAI,CAAC,GAChD,IAAI;MACR,IAAI3G,SAAS,KAAK,IAAI,EACtB;AACE,QAAA,IAAI,CAAC,OAAO,CAAC4G,QAAQ,CAAC,aAAa,EAAE,CAAC,EAAE,CAAE5G,SAAS,CAAE,CAAC;AACxD,MAAA;AACA,MAAA,IAAI,CAAC,OAAO,CAAC3E,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAACK,GAAG,CAAC,YAAY,CAAC,CAAC;MAE9D,OAAO;AAAEyB,QAAAA,EAAE,EAAE,IAAI,CAAC,OAAO;QAAEC,EAAE,EAAE,IAAI,CAAC;OAAS;AAC/C,IAAA;;AAEA;AAGAyJ,IAAAA,sBAAsBA,CAACC,WAAW,GAAG,IAAI,EACzC;AACE,MAAA,OAAO,IAAI,CAACL,gBAAgB,CAACK,WAAW,CAAC;AAC3C,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;IAGEC,SAASA,CAACC,YAAY,EACtB;AACE,MAAA,IAAI,CAAC,IAAI,CAAClS,OAAO,EACjB;AACE,QAAA;AACF,MAAA;;AAEA;AACA;MACA,MAAM;QAAEiL,KAAK;AAAEC,QAAAA;AAAU,OAAC,GAAGC,WAAW,CAAC,IAAI,CAAC5M,gBAAgB,CAAC;AAE/D,MAAA,KAAK,MAAM2E,KAAK,IAAI,IAAI,CAACpE,MAAM,EAC/B;AACEoE,QAAAA,KAAK,EAAEM,QAAQ,GAAG0O,YAAY,EAAE,IAAI,CAACnR,cAAc,EAAE,CAAC,EAAEkK,KAAK,EAAEC,SAAS,CAAC;AACzEhI,QAAAA,KAAK,EAAEiP,uBAAuB,GAAG,IAAI,CAACtS,kBAAkB,CAAC;AAC3D,MAAA;AACF,IAAA;;AAEA;AACF;AACA;IAGEuS,eAAeA,CAAC,GAAGC,KAAK,EACxB;AACE,MAAA,MAAM,IAAIC,KAAK,CAAC,uEAAuE,CAAC;AAC1F,IAAA;;AAEA;AACF;AACA;AACA;AAGEC,IAAAA,kBAAkBA,GAClB;AACE,MAAA,MAAMC,QAAQ,GAAG,IAAI,CAACC,oBAAoB,EAAE;AAC5C,MAAA,IAAID,QAAQ,IAAI,IAAI,CAACxS,OAAO,EAC5B;AACE,QAAA,IAAI,IAAI,CAAClB,MAAM,CAACoD,MAAM,EACtB;UACEsQ,QAAQ,CAACE,iBAAiB,CAACC,gBAAgB,CAACC,UAAU,EAAE,IAAI,CAAC;AAC/D,QAAA;AAEA,QAAA,IAAIC,aAAa,CAAC,IAAI,CAACvV,cAAc,CAAC,EACtC;UACEkV,QAAQ,CAACE,iBAAiB,CAACC,gBAAgB,CAACG,oBAAoB,EAAE,IAAI,CAAC;AACzE,QAAA;QAEA,IAAI,IAAI,CAACrU,UAAU,EACnB;UACE+T,QAAQ,CAACE,iBAAiB,CAACC,gBAAgB,CAACI,YAAY,EAAE,IAAI,CAAC;AACjE,QAAA;AAEA,QAAA,KAAK,MAAM9P,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,UAAAA,KAAK,EAAE+P,QAAQ,GAAGR,QAAQ,CAAC;AAC7B,QAAA;AAEA,QAAA,KAAK,MAAMpH,UAAU,IAAI,IAAI,CAACxM,WAAW,EACzC;AACEwM,UAAAA,UAAU,EAAE4H,QAAQ,GAAGR,QAAQ,CAAC;AAClC,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGES,IAAAA,oBAAoBA,GACpB;AACE,MAAA,MAAMT,QAAQ,GAAG,IAAI,CAACC,oBAAoB,EAAE;AAC5C,MAAA,IAAID,QAAQ,EACZ;AACE,QAAA,KAAK,MAAMvP,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,UAAAA,KAAK,EAAEiQ,UAAU,GAAGV,QAAQ,CAAC;AAC/B,QAAA;AAEA,QAAA,KAAK,MAAMpH,UAAU,IAAI,IAAI,CAACxM,WAAW,EACzC;AACEwM,UAAAA,UAAU,EAAE8H,UAAU,GAAGV,QAAQ,CAAC;AACpC,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAGEnJ,IAAAA,eAAeA,GACf;AACE,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGEZ,IAAAA,oBAAoBA,GACpB;MACE,OAAO,IAAI,CAAC1H,cAAc;AAC5B,IAAA;;AAEA;AACF;AACA;AACA;AAGEqI,IAAAA,wBAAwBA,GACxB;MACE,OAAO,IAAI,CAACrI,cAAc;AAC5B,IAAA;;AAEA;IAGAoS,2BAA2BA,CAAC5L,GAAG,EAC/B;AACEtU,MAAAA,IAAI,CAACgS,aAAa,CAACsC,GAAG,EAAE,IAAI,CAACpH,oBAAoB,EAAE,IAAI,CAACY,cAAc,CAAC;AACzE,IAAA;;AAEA;AACF;AACA;AACA;AAGEqS,IAAAA,gBAAgBA,GAChB;MACE,OAAO,IAAI,CAAC5T,aAAa;AAC3B,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGE6T,IAAAA,gBAAgBA,GAChB;MACE,OAAO,IAAI,CAAC3T,aAAa;AAC3B,IAAA;;AAEA;AACF;AACA;AACA;IAGE4T,gBAAgBA,CAAC7V,IAAI,EACrB;AACE,MAAA,MAAM2F,MAAM,GAAGC,MAAM,CAAC5F,IAAI,IAAI,EAAE,CAAC;AACjC,MAAA,KAAK,MAAMgF,QAAQ,IAAI,IAAI,CAAClD,SAAS,EACrC;AACE,QAAA,IAAIkD,QAAQ,EAAEhF,IAAI,KAAK2F,MAAM,EAC7B;AACE,UAAA,OAAO,OAAOX,QAAQ,CAAC+I,WAAW,KAAK,UAAU,GAC7C/I,QAAQ,CAAC+I,WAAW,EAAE,GACtB/I,QAAQ,CAACA,QAAQ,IAAI,IAAI;AAC/B,QAAA;AACF,MAAA;AACA,MAAA,KAAK,MAAMQ,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE,QAAA,MAAMgW,OAAO,GAAGtQ,KAAK,EAAEqQ,gBAAgB,GAAGlQ,MAAM,CAAC;AACjD,QAAA,IAAImQ,OAAO,EACX;AACE,UAAA,OAAOA,OAAO;AAChB,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;IAGEC,OAAOA,CAAC9V,IAAI,EACZ;AACE,MAAA,IAAI,CAACA,IAAI,GAAG,CAAC,CAACA,IAAI;AAClB,MAAA,KAAK,MAAMuF,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAEuQ,OAAO,GAAG,IAAI,CAAC9V,IAAI,CAAC;AAC7B,MAAA;AACA,MAAA,KAAK,MAAM+E,QAAQ,IAAI,IAAI,CAAClD,SAAS,EACrC;AACEkD,QAAAA,QAAQ,EAAE+Q,OAAO,GAAG,IAAI,CAAC9V,IAAI,CAAC;AAChC,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAGE+V,IAAAA,eAAeA,CAACC,QAAQ,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAEC,aAAa,GAAG,IAAI,EACvE;AACE,MAAA,IAAI,CAAC,cAAc,CAACJ,QAAQ,EAAE,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAEC,aAAa,CAAC;AAC7E,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;IAGEC,wCAAwCA,CAACtM,SAAS,EAClD;MACE,MAAMzB,GAAG,GAAG/S,IAAI,CAACqL,UAAU,CAACoN,QAAQ,EAAEA,QAAQ,EAAEA,QAAQ,CAAC;AACzD,MAAA,MAAMvE,GAAG,GAAGlU,IAAI,CAACqL,UAAU,CAAC,CAACoN,QAAQ,EAAE,CAACA,QAAQ,EAAE,CAACA,QAAQ,CAAC;AAC5D,MAAA,IAAI,IAAI,CAAC/M,4BAA4B,IAAI,IAAI,CAACO,IAAI,EAAE8M,mBAAmB,IAAI,EAAEgI,UAAU,IAAI,EAC3F;QACE,MAAM;AAAEhO,UAAAA,GAAG,EAAEiO,QAAQ;AAAE9M,UAAAA,GAAG,EAAE+M;AAAS,SAAC,GAAG,IAAI,CAACC,mBAAmB,EAAE;AACnE,QAAA,MAAMC,MAAM,GAAGnhB,IAAI,CAACC,MAAM,EAAE;QAC5B,KAAK,IAAIyQ,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG,CAAC,EAAEA,KAAK,EAAE,EACtC;UACE1Q,IAAI,CAACsO,GAAG,CACN6S,MAAM,EACNzQ,KAAK,GAAG,CAAC,GAAGuQ,QAAQ,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EACrCtQ,KAAK,GAAG,CAAC,GAAGuQ,QAAQ,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CAAC,EACrCtQ,KAAK,GAAG,CAAC,GAAGuQ,QAAQ,CAAC,CAAC,CAAC,GAAGD,QAAQ,CAAC,CAAC,CACtC,CAAC;UACDhhB,IAAI,CAACgS,aAAa,CAACmP,MAAM,EAAEA,MAAM,EAAE3M,SAAS,CAAC;UAC7CxU,IAAI,CAAC+S,GAAG,CAACA,GAAG,EAAEA,GAAG,EAAEoO,MAAM,CAAC;UAC1BnhB,IAAI,CAACkU,GAAG,CAACA,GAAG,EAAEA,GAAG,EAAEiN,MAAM,CAAC;AAC5B,QAAA;AACF,MAAA;MACA,OAAO;QAAEpO,GAAG;AAAEmB,QAAAA;OAAK;AACrB,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEkN,8BAA8BA,CAAC9M,GAAG,GAAG1K,IAAI,CAAC3J,MAAM,EAAE,EAClD;AACE,MAAA,IAAI,IAAI,CAACyL,4BAA4B,IAAI,IAAI,CAACO,IAAI,EAAE8M,mBAAmB,IAAI,EAAEgI,UAAU,IAAI,EAC3F;AACE,QAAA,MAAM9N,MAAM,GAAG,IAAI,CAACC,uBAAuB,EAAE;QAC7C,OAAOtJ,IAAI,CAAC0E,GAAG,CAACgG,GAAG,EAAErB,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAACP,uBAAuB,EAAE,CAAC;AACvF,MAAA;AACA,MAAA,OAAO9I,IAAI,CAAC0E,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACnC,IAAA;;AAEA;AACF;AACA;AAGE+M,IAAAA,iBAAiBA,GACjB;AACE,MAAA,IAAI,CAACnV,aAAa,EAAEoV,KAAK,IAAI;AAC/B,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,eAAeA,GACf;AACE,MAAA,IAAI,CAACjW,gBAAgB,EAAEiW,eAAe,IAAI;AAC5C,IAAA;;AAEA;AACF;AACA;IAGEC,wBAAwBA,CAACC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAC5D;AACE,MAAA,MAAMC,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAACJ,QAAQ,EAAEjhB,eAAe,CAAC,qBAAqB,CAAC;MAC1G,OAAO,IAAI,CAACshB,YAAY,CAACD,oBAAoB,EAAEH,SAAS,EAAEC,QAAQ,EAAEC,IAAI,CAAC;AAC3E,IAAA;;AAEA;AACF;AACA;IAGEE,YAAYA,CAACC,kBAAkB,EAAEL,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAC1D;MACE,IAAI,IAAI,CAAC1V,aAAa,EACtB;QACE,OAAO,IAAI,CAACA,aAAa,CAAC4V,YAAY,GAAGC,kBAAkB,EAAEL,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC9W,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE;AACvH,MAAA;AACA,MAAA,OAAO,EAAE;AACX,IAAA;;AAEA;AACF;AACA;AAGEkX,IAAAA,YAAYA,GACZ;AACE,MAAA,IAAI,CAAC1W,gBAAgB,EAAE0W,YAAY,IAAI;AACzC,IAAA;;AAEA;AACF;AACA;AACA;AAGEC,IAAAA,oBAAoBA,GACpB;AACE,MAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK;AAC/B,MAAA,KAAK,MAAMjJ,KAAK,IAAI,IAAI,CAACpN,MAAM,EAC/B;AACEoN,QAAAA,KAAK,EAAEkJ,uBAAuB,GAAG,IAAI,CAAC;AACxC,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AAGEC,IAAAA,qBAAqBA,GACrB;MACE,OAAO,IAAI,CAACC,eAAe,CAAC5hB,eAAe,CAAC,qBAAqB,CAAC;AACpE,IAAA;;AAEA;AACF;AACA;IAGE4hB,eAAeA,CAACC,cAAc,EAC9B;MACE,OAAO,IAAI,CAAC,kBAAkB,CAACA,cAAc,CAAC,EAAEpT,MAAM,IAAI,CAAC;AAC7D,IAAA;;AAEA;AACF;AACA;AACA;IAGEqT,iBAAiBA,CAACD,cAAc,EAChC;AACE,MAAA,OAAO,IAAI,CAAC,kBAAkB,CAACA,cAAc,CAAC;AAChD,IAAA;;AAEA;AACF;AACA;AACA;AAGEE,IAAAA,oBAAoBA,CAACd,QAAQ,EAAEY,cAAc,EAC7C;MACE,MAAMrW,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACqW,cAAc,CAAC;MACxD,IAAI,CAACrW,QAAQ,EACb;AACE,QAAA,OAAO,EAAE;AACX,MAAA;AACA,MAAA,MAAMwW,gBAAgB,GAAGxiB,IAAI,CAACgS,aAAa,CAAChS,IAAI,CAACC,MAAM,EAAE,EAAEwhB,QAAQ,EAAE,IAAI,CAAC1T,qBAAqB,CAAC;AAChG,MAAA,MAAM0U,eAAe,GAAGziB,IAAI,CAACC,MAAM,EAAE;AACrC,MAAA,MAAMyiB,gBAAgB,GAAG1iB,IAAI,CAACC,MAAM,EAAE;MACtC,IAAI0iB,aAAa,GAAGlK,QAAQ;MAC5B,IAAImK,YAAY,GAAG,EAAE;AACrB,MAAA,KAAK,IAAIlS,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,EAAEyB,KAAK,EAAE,EACpD;AACE,QAAA,IAAI,CAAC,wBAAwB,CAAC+R,eAAe,EAAEC,gBAAgB,EAAE1W,QAAQ,CAAC0E,KAAK,CAAC,CAAC;QACjF,MAAMgK,QAAQ,GAAG1a,IAAI,CAAC6iB,eAAe,CAACJ,eAAe,EAAED,gBAAgB,CAAC;QACxE,IAAI9H,QAAQ,GAAGiI,aAAa,EAC5B;AACEC,UAAAA,YAAY,GAAGlS,KAAK;AACpBiS,UAAAA,aAAa,GAAGjI,QAAQ;AAC1B,QAAA;AACF,MAAA;AACA,MAAA,OAAOkI,YAAY;AACrB,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGEE,IAAAA,mBAAmBA,CAACrB,QAAQ,EAAEY,cAAc,EAC5C;AACE,MAAA,OAAO,IAAI,CAACE,oBAAoB,CAACd,QAAQ,EAAEY,cAAc,CAAC;AAC5D,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGEU,IAAAA,yBAAyBA,CAACrS,KAAK,EAAEsS,iBAAiB,GAAGhjB,IAAI,CAACC,MAAM,EAAE,EAAEqU,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EACvF;AACE,MAAA,MAAMgjB,cAAc,GAAG,OAAOD,iBAAiB,KAAK,SAAS;AAC7D,MAAA,MAAME,YAAY,GAAGD,cAAc,IAAID,iBAAiB;AACxD,MAAA,IAAI,CAACC,cAAc,EAAE3O,GAAG,GAAG0O,iBAAiB;MAC5C,MAAMhX,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACxL,eAAe,CAAC,qBAAqB,CAAC;AAC/E,MAAA,IAAI,CAACwL,QAAQ,IAAI,EAAE0E,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,CAAC,EACzD;AACEjP,QAAAA,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE2O,cAAc,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC3C,QAAA,OAAOA,cAAc,GAAG,KAAK,GAAG3O,GAAG;AACrC,MAAA;AACA,MAAA,MAAMmN,QAAQ,GAAGzhB,IAAI,CAACC,MAAM,EAAE;AAC9B,MAAA,IAAI,CAAC,wBAAwB,CAACwhB,QAAQ,EAAEnN,GAAG,EAAEtI,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AAC7D,MAAA,IAAIwS,YAAY,EAAE1iB,eAAe,CAAC,gBAAgB,CAAC8T,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AACjF,MAAA,OAAOmV,cAAc,GAAG,IAAI,GAAG3O,GAAG;AACpC,IAAA;;AAEA;AAIA6O,IAAAA,wBAAwBA,CAACzS,KAAK,EAAEwS,YAAY,EAAE5O,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EACjE;MACE,MAAM+L,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACxL,eAAe,CAAC,qBAAqB,CAAC;AAC/E,MAAA,IAAI,CAACwL,QAAQ,IAAI,EAAE0E,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,CAAC,EACzD;AACE,QAAA,IAAIiU,YAAY,EAAEljB,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAACA,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAACA,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,KACtG9N,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,QAAA,OAAO,KAAK;AACd,MAAA;AACA,MAAA,IAAI,CAAC,wBAAwB,CAACA,GAAG,EAAE9T,eAAe,CAAC,iBAAiB,EAAEwL,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AACtF,MAAA,IAAIwS,YAAY,EAAEljB,IAAI,CAACgS,aAAa,CAACsC,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AACnE,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAGAsV,4BAA4BA,CAAC3B,QAAQ,EACrC;MACE,OAAO,IAAI,CAAC,uBAAuB,CAACA,QAAQ,EAAEjhB,eAAe,CAAC,qBAAqB,CAAC;AACtF,IAAA;;AAEA;IAIA6iB,yBAAyBA,CAAC5B,QAAQ,EAClC;MACE,MAAMzV,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACxL,eAAe,CAAC,qBAAqB,CAAC;AAC/E,MAAA,IAAI,CAACwL,QAAQ,EAAE,OAAO,CAAC;AAEvB,MAAA,MAAMsX,cAAc,GAAGtjB,IAAI,CAACgS,aAAa,CAACxR,eAAe,CAAC,eAAe,EAAEihB,QAAQ,EAAE,IAAI,CAAC1T,qBAAqB,CAAC;MAChH,IAAIwV,WAAW,GAAG9K,QAAQ;AAC1B,MAAA,IAAI+K,WAAW,GAAGnS,MAAM,CAACoS,SAAS;MAClC,IAAIC,gBAAgB,GAAG,CAAC;AAExB,MAAA,KAAK,MAAMC,OAAO,IAAI3X,QAAQ,EAC9B;AACE,QAAA,IAAI,CAAC,wBAAwB,CAACxL,eAAe,CAAC,gBAAgB,EAAEA,eAAe,CAAC,iBAAiB,EAAEmjB,OAAO,CAAC;AAC3G,QAAA,IAAI,CAACnjB,eAAe,CAAC,wBAAwB,CAACA,eAAe,CAAC,iBAAiB,EAAE8iB,cAAc,CAAC,EAAE;AAClGtjB,QAAAA,IAAI,CAAC4jB,QAAQ,CAACpjB,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,gBAAgB,EAAE8iB,cAAc,CAAC;QAC/F,MAAM5I,QAAQ,GAAG1a,IAAI,CAACiP,MAAM,CAACzO,eAAe,CAAC,cAAc,CAAC;QAC5D+iB,WAAW,GAAGzQ,IAAI,CAACC,GAAG,CAACwQ,WAAW,EAAE7I,QAAQ,CAAC;QAC7C8I,WAAW,GAAG1Q,IAAI,CAACoB,GAAG,CAACsP,WAAW,EAAE9I,QAAQ,CAAC;AAC7C,QAAA,IAAIA,QAAQ,EAAE1a,IAAI,CAAC8R,KAAK,CAACtR,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,cAAc,EAAE,CAAC,GAAGka,QAAQ,CAAC;QACtGgJ,gBAAgB,GAAG5Q,IAAI,CAACoB,GAAG,CAACwP,gBAAgB,EAAEljB,eAAe,CAAC,gBAAgB,CAACA,eAAe,CAAC,iBAAiB,EAAEA,eAAe,CAAC,cAAc,CAAC,CAAC;AACpJ,MAAA;AAEA,MAAA,MAAMqjB,UAAU,GAAG/Q,IAAI,CAACgR,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC,GAAGJ,gBAAgB,CAAC,CAAC,GAAG,IAAI;MACzE,IAAIK,OAAO,GAAG,CAAC;MACf,IAAIC,WAAW,GAAG,EAAE;AACpB,MAAA,KAAK,IAAItT,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,EAAEyB,KAAK,EAAE,EACpD;AACE,QAAA,IAAI,CAAC,wBAAwB,CAAClQ,eAAe,CAAC,gBAAgB,EAAEA,eAAe,CAAC,iBAAiB,EAAEwL,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AACnH,QAAA,IAAI,CAAClQ,eAAe,CAAC,wBAAwB,CAACA,eAAe,CAAC,iBAAiB,EAAE8iB,cAAc,CAAC,EAAE;AAClGtjB,QAAAA,IAAI,CAAC4jB,QAAQ,CAACpjB,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,gBAAgB,EAAE8iB,cAAc,CAAC;QAC/F,MAAM5I,QAAQ,GAAG1a,IAAI,CAACiP,MAAM,CAACzO,eAAe,CAAC,cAAc,CAAC;AAC5D,QAAA,MAAMyjB,KAAK,GAAGT,WAAW,GAAGD,WAAW;AACvC,QAAA,IAAIzR,KAAK,GAAGmS,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAACvJ,QAAQ,GAAG6I,WAAW,IAAIU,KAAK,GAAG,CAAC;AAChE,QAAA,IAAIC,KAAK,GAAG,CAAC,GAAGpS,KAAK,GAAG,CAAC;AACzBoS,QAAAA,KAAK,GAAGA,KAAK,GAAG,CAAC,GAAG,CAAC,GAAGpR,IAAI,CAACqR,IAAI,CAACrR,IAAI,CAACsR,GAAG,CAACF,KAAK,CAAC,CAAC,GAAGpR,IAAI,CAACqR,IAAI,CAACrR,IAAI,CAACsR,GAAG,CAACF,KAAK,CAAC,CAAC,GAAG,CAAC;AACnFA,QAAAA,KAAK,IAAI,GAAG;AACZ,QAAA,IAAIxJ,QAAQ,EAAE1a,IAAI,CAAC8R,KAAK,CAACtR,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,cAAc,EAAE,CAAC,GAAGka,QAAQ,CAAC;AACtGwJ,QAAAA,KAAK,IAAI1jB,eAAe,CAAC,gBAAgB,CAACA,eAAe,CAAC,iBAAiB,EAAEA,eAAe,CAAC,cAAc,CAAC;QAC5G,MAAM6jB,GAAG,GAAGvR,IAAI,CAACsR,GAAG,CAACF,KAAK,GAAGL,UAAU,CAAC;QACxC,IAAIQ,GAAG,GAAGN,OAAO,EACjB;AACEA,UAAAA,OAAO,GAAGM,GAAG;AACbL,UAAAA,WAAW,GAAGtT,KAAK;AACrB,QAAA;AACF,MAAA;AACA,MAAA,OAAOsT,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAACvC,QAAQ,EAAEjhB,eAAe,CAAC,qBAAqB,CAAC,GAAGwjB,WAAW;AACtH,IAAA;;AAEA;AAGAM,IAAAA,SAASA,GACT;AACE,MAAA,OAAO,IAAI,CAAC5R,uBAAuB,EAAE;AACvC,IAAA;;AAEA;AAGA6R,IAAAA,eAAeA,CAACC,GAAG,EAAEC,MAAM,EAAEnQ,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EAChD;AACE,MAAA,IAAI,IAAI,CAACsN,oBAAoB,GAAG,CAAC,EACjC;QACEvN,IAAI,CAACsR,IAAI,CAACgD,GAAG,EAAE,IAAI,CAAC9G,kBAAkB,CAAC;QACvC,IAAIgX,GAAG,IAAIC,MAAM,EACjB;UACEzkB,IAAI,CAAC4jB,QAAQ,CAACpjB,eAAe,CAAC,WAAW,EAAEgkB,GAAG,EAAElQ,GAAG,CAAC;UACpDtU,IAAI,CAAC4jB,QAAQ,CAACpjB,eAAe,CAAC,cAAc,EAAEgkB,GAAG,EAAEC,MAAM,CAAC;UAC1D,MAAMC,eAAe,GAAG1kB,IAAI,CAACiP,MAAM,CAACzO,eAAe,CAAC,cAAc,CAAC;AACnE,UAAA,IAAIkkB,eAAe,EAAE1kB,IAAI,CAAC8R,KAAK,CAACtR,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,cAAc,EAAE,CAAC,GAAGkkB,eAAe,CAAC;AACpH1kB,UAAAA,IAAI,CAAC2kB,WAAW,CAACnkB,eAAe,CAAC,WAAW,EAAEA,eAAe,CAAC,WAAW,EAAEA,eAAe,CAAC,cAAc,EAAE,CAACR,IAAI,CAAC4kB,GAAG,CAACpkB,eAAe,CAAC,cAAc,EAAEA,eAAe,CAAC,WAAW,CAAC,CAAC;UAClL,MAAMqkB,YAAY,GAAG7kB,IAAI,CAACiP,MAAM,CAACzO,eAAe,CAAC,WAAW,CAAC;AAC7D,UAAA,IAAIqkB,YAAY,EAAE7kB,IAAI,CAAC8R,KAAK,CAACtR,eAAe,CAAC,WAAW,EAAEA,eAAe,CAAC,WAAW,EAAE,CAAC,GAAGqkB,YAAY,CAAC;AACxG7kB,UAAAA,IAAI,CAAC2kB,WAAW,CAACrQ,GAAG,EAAEA,GAAG,EAAE9T,eAAe,CAAC,WAAW,EAAE,IAAI,CAACkS,uBAAuB,EAAE,GAAG,KAAK,CAAC;AACjG,QAAA;AACF,MAAA,CAAC,MAED;QACE,IAAI,CAACyQ,wBAAwB,CAAC,EAAE,EAAE,IAAI,EAAE7O,GAAG,CAAC;AAC9C,MAAA;AACA,MAAA,OAAOA,GAAG;AACZ,IAAA;;AAEA;AAGAwQ,IAAAA,sBAAsBA,GACtB;MACE,OAAO,IAAI,CAAC5Y,aAAa,EAAE4Y,sBAAsB,IAAI,IAAIC,mBAAmB,CAACC,cAAc;AAC7F,IAAA;;AAEA;AAGAC,IAAAA,4BAA4BA,GAC5B;AACE,MAAA,OAAO,CAAC,CAAC,IAAI,CAAC/Y,aAAa,EAAEgZ,kBAAkB,IAAI,IAC9C,IAAI,CAACJ,sBAAsB,EAAE,KAAKC,mBAAmB,CAACI,aAAa;AAC1E,IAAA;;AAEA;AAIAC,IAAAA,iBAAiBA,CAACzB,OAAO,EAAE0B,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAEjR,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EACxE;AACE,MAAA,IAAI,CAAC,IAAI,CAACglB,4BAA4B,EAAE,EACxC;QACE,IAAI,CAAC9B,wBAAwB,CAACQ,OAAO,EAAE,IAAI,EAAErP,GAAG,CAAC;AACjD,QAAA,OAAOtU,IAAI,CAAC6iB,eAAe,CAACyC,MAAM,EAAEhR,GAAG,CAAC,GAAGjD,MAAM,CAACkU,OAAO,CAAC;AAC5D,MAAA;AAEAvlB,MAAAA,IAAI,CAACgS,aAAa,CAACxR,eAAe,CAAC,UAAU,EAAE6kB,OAAO,EAAE,IAAI,CAACtX,qBAAqB,CAAC;AACnF/N,MAAAA,IAAI,CAACgS,aAAa,CAACxR,eAAe,CAAC,OAAO,EAAE8kB,MAAM,EAAE,IAAI,CAACvX,qBAAqB,CAAC;AAC/E/N,MAAAA,IAAI,CAAC4jB,QAAQ,CAACpjB,eAAe,CAAC,aAAa,EAAEA,eAAe,CAAC,OAAO,EAAEA,eAAe,CAAC,UAAU,CAAC;AACjG,MAAA,IAAI,CAACsW,iBAAiB,CAACtW,eAAe,CAAC,gBAAgB,EAAEA,eAAe,CAAC,eAAe,CAAC;AACzF,MAAA,MAAMglB,CAAC,GAAGhlB,eAAe,CAAC,sBAAsB,CAAC8T,GAAG,EAAE9T,eAAe,CAAC,gBAAgB,EAAEA,eAAe,CAAC,eAAe,EAAEA,eAAe,CAAC,UAAU,EAAEA,eAAe,CAAC,aAAa,CAAC;AACnL,MAAA,IAAIglB,CAAC,KAAK,IAAI,IAAIA,CAAC,IAAI,EAAE,IAAIA,CAAC,IAAI,CAAC,EACnC;QACExlB,IAAI,CAACgS,aAAa,CAACsC,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AACjD,QAAA,OAAO,IAAI;AACb,MAAA;MACA,IAAItN,eAAe,CAAC,uBAAuB,CAACA,eAAe,CAAC,gBAAgB,EAAEA,eAAe,CAAC,eAAe,EAAEA,eAAe,CAAC,OAAO,CAAC,EACvI;AACER,QAAAA,IAAI,CAACsR,IAAI,CAACgD,GAAG,EAAEgR,MAAM,CAAC;AACtB,QAAA,OAAO,IAAI;AACb,MAAA;AACA,MAAA,OAAO,KAAK;AACd,IAAA;;AAEA;AAGAG,IAAAA,YAAYA,CAACnR,GAAG,EAAEoN,SAAS,EAAEgE,WAAW,EACxC;AACE,MAAA,OAAO,IAAI,CAACxZ,aAAa,EAAEuZ,YAAY,GAAGnR,GAAG,EAAEoN,SAAS,EAAEgE,WAAW,CAAC,IAAI,KAAK;AACjF,IAAA;;AAEA;AACF;AACA;AACA;IAGEC,gBAAgBA,CAACjV,KAAK,EAAE4D,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EAC3C;MACE,MAAM+L,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACxL,eAAe,CAAC,qBAAqB,CAAC;AAC/E,MAAA,IAAI,CAACwL,QAAQ,IAAI,EAAE0E,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,CAAC,EACzD;QACE,OAAOjP,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAA;AACA,MAAA,MAAMoN,SAAS,GAAG1hB,IAAI,CAACC,MAAM,EAAE;AAC/B,MAAA,IAAI,CAAC,wBAAwB,CAACqU,GAAG,EAAEoN,SAAS,EAAE1V,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AAC9D,MAAA,OAAO4D,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AACA;IAGEsR,2BAA2BA,CAAClV,KAAK,EAAE4D,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EACtD;MACE,MAAM+L,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACxL,eAAe,CAAC,qBAAqB,CAAC;AAC/E,MAAA,IAAI,CAACwL,QAAQ,IAAI,EAAE0E,KAAK,IAAI,CAAC,IAAIA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,CAAC,EACzD;QACE,OAAOjP,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAA;AACA,MAAA,MAAMoN,SAAS,GAAG1hB,IAAI,CAACC,MAAM,EAAE;AAC/B,MAAA,IAAI,CAAC,wBAAwB,CAACqU,GAAG,EAAEoN,SAAS,EAAE1V,QAAQ,CAAC0E,KAAK,CAAC,CAAC;MAC9D,OAAO1Q,IAAI,CAACgS,aAAa,CAACsC,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AAC1D,IAAA;;AAEA;AACF;AACA;AACA;AAGE+X,IAAAA,UAAUA,GACV;MACE,OAAO,IAAI,CAAC,aAAa;AAC3B,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGEC,IAAAA,yBAAyBA,CAACpV,KAAK,EAAEwS,YAAY,EAAEb,cAAc,EAAE/N,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EAClF;MACE,MAAM+L,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACqW,cAAc,CAAC;AACxD,MAAA,IAAI3R,KAAK,GAAG,CAAC,IAAI,CAAC1E,QAAQ,IAAI0E,KAAK,IAAI1E,QAAQ,CAACiD,MAAM,EACtD;AACE,QAAA,IAAIiU,YAAY,EAChB;UACE,OAAOljB,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAACA,cAAc,CAAC,EAAE,CAAC,EAAE,IAAI,CAACA,cAAc,CAAC,EAAE,CAAC,CAAC;AACjG,QAAA;QACA,OAAO9N,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAA;AACA,MAAA,MAAMoN,SAAS,GAAG1hB,IAAI,CAACC,MAAM,EAAE;AAC/B,MAAA,IAAI,CAAC,wBAAwB,CAACqU,GAAG,EAAEoN,SAAS,EAAE1V,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AAC9D,MAAA,IAAIwS,YAAY,EAChB;QACEljB,IAAI,CAACgS,aAAa,CAACsC,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AACnD,MAAA;AACA,MAAA,OAAOwG,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AACA;AAGEyR,IAAAA,yBAAyBA,CAACrV,KAAK,EAAEwS,YAAY,EAAEb,cAAc,EAAE/N,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EAClF;MACE,MAAM+L,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACqW,cAAc,CAAC;AACxD,MAAA,IAAI3R,KAAK,GAAG,CAAC,IAAI,CAAC1E,QAAQ,IAAI0E,KAAK,IAAI1E,QAAQ,CAACiD,MAAM,EACtD;QACE,OAAOjP,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/B,MAAA;AACA,MAAA,MAAMmN,QAAQ,GAAGzhB,IAAI,CAACC,MAAM,EAAE;AAC9B,MAAA,IAAI,CAAC,wBAAwB,CAACwhB,QAAQ,EAAEnN,GAAG,EAAEtI,QAAQ,CAAC0E,KAAK,CAAC,CAAC;AAC7D,MAAA,IAAIwS,YAAY,EAChB;QACE1iB,eAAe,CAAC,gBAAgB,CAAC8T,GAAG,EAAEA,GAAG,EAAE,IAAI,CAACxG,cAAc,CAAC;AACjE,MAAA;AACA,MAAA,OAAOwG,GAAG;AACZ,IAAA;;AAEA;AACF;AACA;AACA;IAGE0R,qBAAqBA,CAACxb,IAAI,EAC1B;AACE,MAAA,MAAMyb,SAAS,GAAG7V,MAAM,CAAC5F,IAAI,IAAI,EAAE,CAAC;AACpC,MAAA,KAAK,MAAMoE,UAAU,IAAI,IAAI,CAAC7C,WAAW,EACzC;AACE6C,QAAAA,UAAU,EAAEsX,WAAW,GAAGD,SAAS,CAAC;AACtC,MAAA;AACA,MAAA,KAAK,MAAMjW,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAEgW,qBAAqB,GAAGC,SAAS,CAAC;AAC3C,MAAA;AACA,MAAA,KAAK,MAAMrQ,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;AACEgL,QAAAA,OAAO,EAAEoQ,qBAAqB,GAAGC,SAAS,CAAC;AAC7C,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;IAGEE,aAAaA,CAAC1F,QAAQ,EACtB;AACE,MAAA,IAAI,CAAC,cAAc,CAACA,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACpD,IAAA;;AAEA;AACF;AACA;IAGE2F,cAAcA,CAAC3F,QAAQ,EACvB;AACE,MAAA,IAAI,CAAC,cAAc,CAACA,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;AACrD,IAAA;;AAEA;AACF;AACA;AACA;IAGE4F,gBAAgBA,CAAC5F,QAAQ,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAClD;AACE,MAAA,IAAI,CAAC,cAAc,CAACH,QAAQ,EAAE,KAAK,EAAEC,SAAS,EAAEC,KAAK,EAAEC,KAAK,EAAE,IAAI,CAAC;AACrE,IAAA;;AAEA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACE,IAAA,cAAc0F,CAAC7F,QAAQ,EAAE8F,OAAO,EAAE7F,SAAS,EAAE8F,KAAK,EAAE5F,KAAK,EAAEC,aAAa,EACxE;MACE,IAAI,CAACvV,gBAAgB,EAAE6a,aAAa,GAAG/V,MAAM,CAACqQ,QAAQ,IAAI,EAAE,CAAC,EAAE8F,OAAO,EAAE7F,SAAS,EAAE8F,KAAK,EAAE5F,KAAK,EAAEC,aAAa,CAAC;AACjH,IAAA;;AAEA;AACF;AACA;AACA;AAGE4F,IAAAA,gCAAgCA,GAChC;AACE,MAAA,MAAMxa,IAAI,GAAG,IAAI,CAACA,IAAI;MACtB,IAAI,CAACA,IAAI,EACT;AACE,QAAA,OAAO,KAAK;AACd,MAAA;AACA,MAAA,MAAMya,WAAW,GAAGza,IAAI,CAAC8M,mBAAmB,IAAI;MAChD,IAAI,CAAC2N,WAAW,IAAI,CAACA,WAAW,CAACC,MAAM,IAAI,EAC3C;AACE,QAAA,OAAO,KAAK;AACd,MAAA;MACAD,WAAW,CAACE,yBAAyB,IAAI;AACzC,MAAA,MAAMC,MAAM,GAAGjd,IAAI,CAAC3J,MAAM,EAAE;AAC5BymB,MAAAA,WAAW,CAACtO,iBAAiB,GAAGnM,IAAI,CAAC6a,YAAY,IAAI,IAAI,CAAC,EAAED,MAAM,CAAC;MACnE7mB,IAAI,CAACsO,GAAG,CAAC,IAAI,CAACpB,oBAAoB,EAAE2Z,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,CAAC;AACpE,MAAA,IAAI,CAACtZ,oBAAoB,GAAGsZ,MAAM,CAAC,CAAC,CAAC;AACrC,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAIAE,4BAA4BA,CAACF,MAAM,EACnC;MACE,IAAIA,MAAM,EAAE5T,MAAM,EAClB;QACEjT,IAAI,CAACsR,IAAI,CAAC,IAAI,CAACpE,oBAAoB,EAAE2Z,MAAM,CAAC5T,MAAM,CAAC;QACnD,IAAI,CAAC1F,oBAAoB,GAAG8D,MAAM,CAACwV,MAAM,CAACG,MAAM,CAAC;AACnD,MAAA,CAAC,MAED;AACE,QAAA,IAAI,CAACzZ,oBAAoB,GAAGc,IAAI,CAAC4Y,OAAO,CAACJ,MAAM,EAAE,IAAI,CAAC3Z,oBAAoB,CAAC;AAC7E,MAAA;MACA,IAAI,CAACiF,iBAAiB,EAAE;AACxB,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACF;AACA;AACA;AAGE+U,IAAAA,sBAAsBA,GACtB;MACE,OAAOC,MAAM,CAACC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC;AACtD,IAAA;;AAEA;AAIAC,IAAAA,kBAAkBA,GAClB;MACE,MAAMvO,gBAAgB,GAAG,IAAI,CAAC7M,IAAI,EAAE8M,mBAAmB,IAAI;AAC3D,MAAA,IAAI,CAACD,gBAAgB,EAAE,OAAO,EAAE;AAChC,MAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;MACtC,OAAOA,gBAAgB,CAACwO,wBAAwB,GAAG,IAAI,CAACrb,IAAI,EAAE6a,YAAY,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACjH,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;IAGES,mBAAmBA,CAAC/c,IAAI,EAAE8J,GAAG,GAAGzK,IAAI,CAAC5J,MAAM,EAAE,EAC7C;AACE,MAAA,MAAMkQ,MAAM,GAAGC,MAAM,CAAC5F,IAAI,IAAI,EAAE,CAAC;MACjC,IAAImZ,OAAO,GAAG,IAAI;AAClB,MAAA,KAAK,MAAM6D,SAAS,IAAI,IAAI,CAACxb,QAAQ,EACrC;AACE,QAAA,IAAIwb,SAAS,EAAEnX,OAAO,IAAI,KAAKF,MAAM,EACrC;AACEwT,UAAAA,OAAO,GAAG6D,SAAS;AACnB,UAAA;AACF,QAAA;AACF,MAAA;MACA,IAAI,CAAC7D,OAAO,EACZ;AACE,QAAA,OAAO9Z,IAAI,CAACqI,QAAQ,CAACoC,GAAG,CAAC;AAC3B,MAAA;MACA,IAAI,IAAI,CAAChJ,gBAAgB,EAAEmc,qBAAqB,GAAGtX,MAAM,EAAEmE,GAAG,CAAC,EAC/D;AACE,QAAA,OAAOA,GAAG;AACZ,MAAA;MACA,OAAOzK,IAAI,CAACyH,IAAI,CAACgD,GAAG,EAAEqP,OAAO,CAAC+D,YAAY,EAAE,CAAC;AAC/C,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AAGExG,IAAAA,mBAAmBA,CAACyG,SAAS,EAAEC,SAAS,EACxC;AACE,MAAA,MAAM7U,GAAG,GAAG/S,IAAI,CAACC,MAAM,EAAE;AACzB,MAAA,MAAMiU,GAAG,GAAGlU,IAAI,CAACC,MAAM,EAAE;AACzB,MAAA,MAAMmS,OAAO,GAAG,IAAI,CAAC9G,gBAAgB;MACrC,IAAI,IAAI,CAACI,4BAA4B,IAAI0G,OAAO,EAAEC,aAAa,IAAI,EACnE;AACE,QAAA,MAAMwU,MAAM,GAAGjd,IAAI,CAAC3J,MAAM,EAAE;QAC5BmS,OAAO,CAACE,gBAAgB,GAAGuU,MAAM,EAAE9T,GAAG,EAAEmB,GAAG,CAAC;QAC5ClU,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAEyB,GAAG,CAAC;QAClC/S,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE4C,GAAG,CAAC;AACpC,MAAA,CAAC,MACI,IAAI,IAAI,CAACjI,IAAI,EAAE2M,cAAc,GAAG7F,GAAG,EAAEmB,GAAG,CAAC,EAC9C;QACElU,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAEyB,GAAG,CAAC;QAClC/S,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE4C,GAAG,CAAC;AACpC,MAAA,CAAC,MAED;QACElU,IAAI,CAACsR,IAAI,CAACyB,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;QAClC/S,IAAI,CAACsR,IAAI,CAAC4C,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC;AACpC,MAAA;MACA,IAAIyT,SAAS,IAAIC,SAAS,EAC1B;AACE5nB,QAAAA,IAAI,CAACsR,IAAI,CAACqW,SAAS,EAAE5U,GAAG,CAAC;AACzB/S,QAAAA,IAAI,CAACsR,IAAI,CAACsW,SAAS,EAAE1T,GAAG,CAAC;AACzB,QAAA,OAAO,IAAI;AACb,MAAA;MACA,OAAO;QAAEnB,GAAG;AAAEmB,QAAAA;OAAK;AACrB,IAAA;;AAEA;AAGA2T,IAAAA,mBAAmBA,CAACF,SAAS,EAAEC,SAAS,EACxC;AACEE,MAAAA,IAAI,CAACC,UAAU,CAACvnB,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;AAClFsnB,MAAAA,IAAI,CAAC9V,aAAa,CAACxR,eAAe,CAAC,SAAS,EAAEA,eAAe,CAAC,SAAS,EAAE,IAAI,CAACsN,cAAc,CAAC;MAC7F,MAAMiF,GAAG,GAAG4U,SAAS,IAAI3nB,IAAI,CAACC,MAAM,EAAE;MACtC,MAAMiU,GAAG,GAAG0T,SAAS,IAAI5nB,IAAI,CAACC,MAAM,EAAE;AACtCD,MAAAA,IAAI,CAACsO,GAAG,CAACyE,GAAG,EAAEvS,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvGR,MAAAA,IAAI,CAACsO,GAAG,CAAC4F,GAAG,EAAE1T,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAEA,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACvG,MAAA,OAAOmnB,SAAS,IAAIC,SAAS,GAAG,IAAI,GAAG;QAAE7U,GAAG;AAAEmB,QAAAA;OAAK;AACrD,IAAA;;AAEA;AAGA8T,IAAAA,kBAAkBA,GAClB;MACE,MAAMlP,gBAAgB,GAAG,IAAI,CAAC7M,IAAI,EAAE8M,mBAAmB,IAAI;AAC3D,MAAA,OAAO,CAAC,CAACD,gBAAgB,EAAE6N,MAAM,IAAI;AACvC,IAAA;;AAEA;AACF;AACA;AACA;AAGEvO,IAAAA,iBAAiBA,CAAC9D,GAAG,GAAGjG,IAAI,CAACpO,MAAM,EAAE,EAAEgoB,KAAK,GAAG,CAAC,EAChD;MACE,IAAI,CAAC,IAAI,CAAC9V,iBAAiB,EAAE,EAAE,OAAO,KAAK;AAC3C3R,MAAAA,eAAe,CAAC,UAAU,CAAC8T,GAAG,EAAE,IAAI,CAAC9G,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC;MACzF,IAAI,CAACya,KAAK,IAAI,CAAC,IAAI,CAAC7R,eAAe,EAAE,EAAE,OAAO,IAAI;AAClD,MAAA,KAAK,MAAMpG,KAAK,IAAI,IAAI,CAACzF,QAAQ,EACjC;QACE,IAAIyF,KAAK,EAAEoI,iBAAiB,GAAG5X,eAAe,CAAC,YAAY,EAAEynB,KAAK,CAAC,EACnE;UACE5Z,IAAI,CAAC6Z,KAAK,CAAC5T,GAAG,EAAEA,GAAG,EAAE9T,eAAe,CAAC,YAAY,CAAC;AACpD,QAAA;AACF,MAAA;AACA,MAAA,KAAK,MAAMwP,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;QACE,IAAI0F,KAAK,EAAEoI,iBAAiB,GAAG5X,eAAe,CAAC,YAAY,EAAEynB,KAAK,CAAC,EACnE;UACE5Z,IAAI,CAAC6Z,KAAK,CAAC5T,GAAG,EAAEA,GAAG,EAAE9T,eAAe,CAAC,YAAY,CAAC;AACpD,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;IAIAuX,qBAAqBA,CAACL,OAAO,EAC7B;AACE,MAAA,IAAI,IAAI,CAACzL,IAAI,EAAE2M,cAAc,GAAGpY,eAAe,CAAC,UAAU,EAAEA,eAAe,CAAC,UAAU,CAAC,EACvF;AACER,QAAAA,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE9Q,eAAe,CAAC,UAAU,CAAC;AACzDR,QAAAA,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE9Q,eAAe,CAAC,UAAU,CAAC;AAC3D,MAAA;AACA6N,MAAAA,IAAI,CAAC0Z,UAAU,CAACvnB,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC;AACrF6N,MAAAA,IAAI,CAAC2D,aAAa,CAACxR,eAAe,CAAC,YAAY,EAAEA,eAAe,CAAC,YAAY,EAAE,IAAI,CAACsN,cAAc,CAAC;AACnG,MAAA,IAAI,CAAC7C,sBAAsB,GAAGzK,eAAe,CAAC,aAAa,CAACkX,OAAO,EAAElX,eAAe,CAAC,YAAY,CAAC;MAClG,OAAO,IAAI,CAACyK,sBAAsB;AACpC,IAAA;;AAEA;AAGAkd,IAAAA,WAAWA,GACX;MACE,OAAO,IAAI,CAAC,YAAY;AAC1B,IAAA;;AAEA;AACF;AACA;AACA;IAGEjV,uBAAuBA,CAACoB,GAAG,GAAGtU,IAAI,CAACC,MAAM,EAAE,EAC3C;MACE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,EACzC;AACE,QAAA,OAAOD,IAAI,CAACsO,GAAG,CAACgG,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACtH,MAAA;MACA,OAAOtU,IAAI,CAACsR,IAAI,CAACgD,GAAG,EAAE,IAAI,CAACpH,oBAAoB,CAAC;AAClD,IAAA;;AAEA;AACF;AACA;AACA;AAGEwF,IAAAA,uBAAuBA,GACvB;MACE,IAAI,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,EACzC;QACE,OAAO,IAAI,CAAChG,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;AACzD,MAAA;AACA,MAAA,OAAO,IAAI,CAACA,UAAU,GAAG,IAAI,CAACa,oBAAoB;AACpD,IAAA;;AAEA;AACF;AACA;AACA;AAGE6a,IAAAA,YAAYA,GACZ;AACE,MAAA,MAAMhW,OAAO,GAAG,IAAI,CAAC9G,gBAAgB;MACrC,IAAI,CAAC8G,OAAO,EACZ;AACE,QAAA,OAAO,CAAC;AACV,MAAA;AACA,MAAA,IAAIA,OAAO,CAAC2O,UAAU,IAAI,EAC1B;AACE,QAAA,IAAI,CAAC3O,OAAO,CAACiW,cAAc,IAAI,EAC/B;AACE,UAAA,OAAO,CAAC;AACV,QAAA;QACA,OAAOjW,OAAO,CAACkW,sBAAsB,IAAI,CAACrZ,MAAM,IAAI,CAAC;AACvD,MAAA;AACA,MAAA,OAAOmD,OAAO,CAACmW,uBAAuB,IAAI,IAAI,CAAC;AACjD,IAAA;;AAEA;AACF;AACA;AACA;AACA;IAGEC,oBAAoBA,CAACC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,oBAAoB,GAAG,IAAI,EACrE;AACE,MAAA,IAAI,CAAC1c,aAAa,EAAE2c,cAAc,GAAGJ,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,oBAAoB,CAAC;AAC/E,MAAA,IAAI,CAACjS,qBAAqB,CAAC,cAAc,EAAE8R,MAAM,CAAC;AAClD,MAAA,IAAI,CAAC9R,qBAAqB,CAAC,aAAa,EAAE+R,KAAK,CAAC;AAChD,MAAA,IAAI,CAAC/R,qBAAqB,CAAC,YAAY,EAAEgS,IAAI,CAAC;AAChD,IAAA;;AAEA;AACF;AACA;AAGEG,IAAAA,kBAAkBA,CAACte,IAAI,EAAEue,MAAM,EAAEC,QAAQ,EACzC;MACE,IAAI,CAAC9c,aAAa,EAAE+c,YAAY,GAAGze,IAAI,EAAEue,MAAM,EAAEC,QAAQ,CAAC;AAC5D,IAAA;;AAEA;AACF;AACA;AACA;AACA;AAGErS,IAAAA,qBAAqBA,CAACnM,IAAI,EAAE0Z,KAAK,EACjC;AACE,MAAA,MAAMgF,GAAG,GAAG9Y,MAAM,CAAC5F,IAAI,IAAI,EAAE,CAAC;AAC9B,MAAA,MAAM2e,IAAI,GAAG9X,MAAM,CAAC6S,KAAK,CAAC;MAC1B,IAAI,CAAC,oBAAoB,CAAC5V,GAAG,CAAC4a,GAAG,EAAEC,IAAI,CAAC;AACxC,MAAA,KAAK,MAAMva,UAAU,IAAI,IAAI,CAAC7C,WAAW,EACzC;AACE6C,QAAAA,UAAU,EAAEwa,WAAW,GAAGF,GAAG,EAAEC,IAAI,CAAC;AACtC,MAAA;AACA,MAAA,KAAK,MAAMnZ,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAE2G,qBAAqB,GAAGuS,GAAG,EAAEC,IAAI,CAAC;AAC3C,MAAA;AACA,MAAA,KAAK,MAAMvT,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;AACEgL,QAAAA,OAAO,EAAEe,qBAAqB,GAAGuS,GAAG,EAAEC,IAAI,CAAC;AAC7C,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAGEE,IAAAA,8BAA8BA,CAAC7e,IAAI,EAAE0Z,KAAK,EAC1C;AACE,MAAA,KAAK,MAAMlU,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;AACE0F,QAAAA,KAAK,EAAEqZ,8BAA8B,GAAG7e,IAAI,EAAE0Z,KAAK,CAAC;AACtD,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AAGEoF,IAAAA,gBAAgBA,GAChB;AACE,MAAA,KAAK,MAAM1a,UAAU,IAAI,IAAI,CAAC7C,WAAW,EACzC;QACE6C,UAAU,EAAE2a,KAAK,IAAI;AACvB,MAAA;AACA,MAAA,KAAK,MAAMvZ,KAAK,IAAI,IAAI,CAAC1F,cAAc,EACvC;QACE0F,KAAK,EAAEsZ,gBAAgB,IAAI;AAC7B,MAAA;AACA,MAAA,KAAK,MAAM1T,OAAO,IAAI,IAAI,CAAChL,cAAc,EACzC;QACEgL,OAAO,EAAE0T,gBAAgB,IAAI;AAC/B,MAAA;AACF,IAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AAGEE,IAAAA,iBAAiBA,CAACxd,QAAQ,GAAG,EAAE,EAC/B;MACE,MAAMyd,MAAM,GAAG,EAAE;AACjB,MAAA,KAAK,MAAM9F,OAAO,IAAI3X,QAAQ,IAAI,EAAE,EACpC;QACE,MAAM0d,MAAM,GAAGC,KAAK,CAACC,OAAO,CAACjG,OAAO,CAAC,GACjC;AAAElC,UAAAA,QAAQ,EAAEkC,OAAO,CAAC,CAAC,CAAC;AAAElS,UAAAA,QAAQ,EAAEkS,OAAO,CAAC,CAAC,CAAC;UAAEkG,SAAS,EAAElG,OAAO,CAAC,CAAC;AAAE,SAAC,GACrE;UAAElC,QAAQ,EAAEkC,OAAO,EAAElC,QAAQ;AAAEhQ,UAAAA,QAAQ,EAAEkS,OAAO,EAAEjC,SAAS,IAAIiC,OAAO,EAAElS,QAAQ;UAAEoY,SAAS,EAAElG,OAAO,EAAEkG;SAAW;AACrH,QAAA,MAAMpI,QAAQ,GAAGzhB,IAAI,CAAC0R,KAAK,CAACgY,MAAM,CAACjI,QAAQ,IAAIjhB,eAAe,CAAC,KAAK,CAAC;AACrE,QAAA,MAAMiR,QAAQ,GAAG/H,IAAI,CAACgI,KAAK,CAACgY,MAAM,CAACjY,QAAQ,IAAIjR,eAAe,CAAC,iBAAiB,CAAC;QACjF,MAAMqpB,SAAS,GAAGxY,MAAM,CAACqY,MAAM,CAACG,SAAS,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,iBAAiB,CAACpI,QAAQ,EAAEhQ,QAAQ,EAAEoY,SAAS,CAAC;AACrD,QAAA,IAAI,IAAI,CAACpc,qBAAqB,IAAI,IAAI,CAACC,kBAAkB,EACzD;AACE,UAAA,IAAI,CAAC,oBAAoB,CAAC+T,QAAQ,EAAEhQ,QAAQ,CAAC;AAC/C,QAAA;QACAgY,MAAM,CAACna,IAAI,CAAC,CAACmS,QAAQ,EAAEhQ,QAAQ,EAAEoY,SAAS,CAAC,CAAC;AAC9C,MAAA;AACA,MAAA,OAAOJ,MAAM;AACf,IAAA;;AAEA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACE,IAAA,iBAAiBK,CAACrI,QAAQ,EAAEhQ,QAAQ,EAAEoY,SAAS,EAC/C;AACE,MAAA,MAAMzX,OAAO,GAAG,IAAI,CAAC9G,gBAAgB;MACrC,IAAIue,SAAS,IAAI,CAAC,IAAI,CAACzX,OAAO,EAAEC,aAAa,IAAI,EACjD;AACE,QAAA;AACF,MAAA;MACA,MAAM0X,IAAI,GAAGvpB,eAAe,CAAC,cAAc,CAAC4R,OAAO,EAAEyX,SAAS,CAAC;MAC/D,IAAI,CAACE,IAAI,EACT;AACE,QAAA;AACF,MAAA;MACA/pB,IAAI,CAACgS,aAAa,CAACyP,QAAQ,EAAEA,QAAQ,EAAEsI,IAAI,CAAC;AAC5C,MAAA,MAAMC,YAAY,GAAGngB,IAAI,CAACogB,WAAW,CAACvgB,IAAI,CAACzJ,MAAM,EAAE,EAAE8pB,IAAI,CAAC;MAC1DrgB,IAAI,CAACkI,QAAQ,CAACH,QAAQ,EAAEuY,YAAY,EAAEvY,QAAQ,CAAC;AACjD,IAAA;;AAEA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACE,IAAA,oBAAoByY,CAACzI,QAAQ,EAAEhQ,QAAQ,EACvC;MACE,IAAI,IAAI,CAAChE,qBAAqB,EAC9B;AACE,QAAA,MAAM0c,WAAW,GAAGnqB,IAAI,CAACC,MAAM,EAAE;QACjC,IAAI,CAACwN,qBAAqB,CAAC2c,UAAU,GAAG,CAAC,EAAED,WAAW,CAAC;QACvDnqB,IAAI,CAACmT,GAAG,CAACsO,QAAQ,EAAEA,QAAQ,EAAE0I,WAAW,CAAC;AAC3C,MAAA;MACA,IAAI,IAAI,CAACzc,kBAAkB,EAC3B;AACE,QAAA,MAAMiE,aAAa,GAAGjI,IAAI,CAACzJ,MAAM,EAAE;QACnC,IAAI,CAACyN,kBAAkB,CAAC0c,UAAU,GAAG,CAAC,EAAEzY,aAAa,CAAC;QACtD3R,IAAI,CAACqqB,aAAa,CAAC5I,QAAQ,EAAEA,QAAQ,EAAE9P,aAAa,CAAC;QACrDjI,IAAI,CAACkI,QAAQ,CAACH,QAAQ,EAAEE,aAAa,EAAEF,QAAQ,CAAC;AAClD,MAAA;AACF,IAAA;;AAEA;;AAEA;AACF;AACA;AACA;IACE,kBAAkB6Y,CAACjI,cAAc,EACjC;AACE,MAAA,MAAMlS,MAAM,GAAGC,MAAM,CAACiS,cAAc,IAAI,EAAE,CAAC;AAC3C,MAAA,KAAK,MAAM/T,GAAG,IAAI,IAAI,CAAC3B,WAAW,EAClC;AACE,QAAA,IAAI2B,GAAG,EAAEU,OAAO,GAAGmB,MAAM,CAAC,EAC1B;AACE,UAAA,OAAO7B,GAAG,CAACic,WAAW,EAAE;AAC1B,QAAA;AACF,MAAA;AACA,MAAA,OAAO,IAAI;AACb,IAAA;;AAEA;AACA;AACA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACE,IAAA,wBAAwBC,CAACC,WAAW,EAAEC,YAAY,EAAE/G,OAAO,EAC3D;AACE3jB,MAAAA,IAAI,CAACqqB,aAAa,CAACK,YAAY,EAAElqB,eAAe,CAAC,MAAM,EAAEmjB,OAAO,CAACjC,SAAS,CAAC;MAC3E1hB,IAAI,CAACsR,IAAI,CAACmZ,WAAW,EAAE9G,OAAO,CAAClC,QAAQ,CAAC;AACxC,MAAA,MAAMrP,OAAO,GAAG,IAAI,CAAC9G,gBAAgB;MACrC,IAAIqY,OAAO,CAACkG,SAAS,GAAG,CAAC,IAAIzX,OAAO,EAAEC,aAAa,IAAI,EACvD;QACE,MAAM4F,SAAS,GAAG5G,MAAM,CAACe,OAAO,CAACwM,gBAAgB,IAAI,IAAI,CAAC,CAAC;AAC3D,QAAA,IAAI+E,OAAO,CAACkG,SAAS,GAAG5R,SAAS,EACjC;AACE,UAAA,MAAM8R,IAAI,GAAGvpB,eAAe,CAAC,cAAc,CAAC4R,OAAO,EAAEuR,OAAO,CAACkG,SAAS,CAAC;AACvE,UAAA,IAAIE,IAAI,EACR;YACE/pB,IAAI,CAACgS,aAAa,CAACyY,WAAW,EAAE9G,OAAO,CAAClC,QAAQ,EAAEsI,IAAI,CAAC;YACvDvpB,eAAe,CAAC,gBAAgB,CAACkqB,YAAY,EAAEA,YAAY,EAAEX,IAAI,CAAC;AACpE,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;;AAEA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACE,IAAA,uBAAuBY,CAAClJ,QAAQ,EAAEY,cAAc,EAChD;MACE,MAAMrW,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAACqW,cAAc,CAAC;MACxD,IAAI,CAACrW,QAAQ,EACb;AACE,QAAA,OAAO,CAAC;AACV,MAAA;AACA,MAAA,MAAMwW,gBAAgB,GAAGxiB,IAAI,CAACgS,aAAa,CAAChS,IAAI,CAACC,MAAM,EAAE,EAAEwhB,QAAQ,EAAE,IAAI,CAAC1T,qBAAqB,CAAC;AAChG,MAAA,MAAM0U,eAAe,GAAGziB,IAAI,CAACC,MAAM,EAAE;AACrC,MAAA,MAAMyiB,gBAAgB,GAAG1iB,IAAI,CAACC,MAAM,EAAE;MACtC,IAAI0iB,aAAa,GAAGlK,QAAQ;MAC5B,IAAImK,YAAY,GAAG,EAAE;AACrB,MAAA,KAAK,IAAIlS,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG1E,QAAQ,CAACiD,MAAM,EAAEyB,KAAK,EAAE,EACpD;AACE,QAAA,IAAI,CAAC,wBAAwB,CAAC+R,eAAe,EAAEC,gBAAgB,EAAE1W,QAAQ,CAAC0E,KAAK,CAAC,CAAC;QACjF,IAAI,CAAClQ,eAAe,CAAC,wBAAwB,CAACkiB,gBAAgB,EAAEF,gBAAgB,CAAC,EACjF;AACE,UAAA;AACF,QAAA;QACA,MAAM9H,QAAQ,GAAG1a,IAAI,CAAC6iB,eAAe,CAACJ,eAAe,EAAED,gBAAgB,CAAC;QACxE,IAAI9H,QAAQ,GAAGiI,aAAa,EAC5B;AACEC,UAAAA,YAAY,GAAGlS,KAAK;AACpBiS,UAAAA,aAAa,GAAGjI,QAAQ;AAC1B,QAAA;AACF,MAAA;AACA,MAAA,OAAOkI,YAAY;AACrB,IAAA;;AAEA;AACF;AACA;AACA;;AAOE;;AAYA;AAGA9L,IAAAA,iBAAiBA,CAAC8T,SAAS,EAAEC,QAAQ,EACrC;MACE,IAAI,IAAI,CAACjd,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,EACpC;QACE5N,IAAI,CAACsR,IAAI,CAACsZ,SAAS,EAAE,IAAI,CAACjd,oBAAoB,CAAC;QAC/C3N,IAAI,CAACsR,IAAI,CAACuZ,QAAQ,EAAE,IAAI,CAACjd,oBAAoB,CAAC;AAChD,MAAA,CAAC,MAED;AACE,QAAA,MAAMkd,MAAM,GAAG,IAAI,CAAC5J,mBAAmB,CAAC1gB,eAAe,CAAC,UAAU,EAAEA,eAAe,CAAC,UAAU,CAAC;QAC/F,IAAIsqB,MAAM,KAAK,KAAK,EACpB;AACE9qB,UAAAA,IAAI,CAACsO,GAAG,CAAC9N,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAChDR,UAAAA,IAAI,CAACsO,GAAG,CAAC9N,eAAe,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/C,QAAA;AACAR,QAAAA,IAAI,CAAC4jB,QAAQ,CAACiH,QAAQ,EAAErqB,eAAe,CAAC,UAAU,EAAEA,eAAe,CAAC,UAAU,CAAC;AAC/ER,QAAAA,IAAI,CAAC8R,KAAK,CAAC+Y,QAAQ,EAAEA,QAAQ,EAAE/X,IAAI,CAACqR,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAClDnkB,QAAAA,IAAI,CAAC+qB,IAAI,CAACH,SAAS,EAAEpqB,eAAe,CAAC,UAAU,EAAEA,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC;AACnF,MAAA;MACAR,IAAI,CAACsR,IAAI,CAAC,IAAI,CAACnG,6BAA6B,EAAEyf,SAAS,CAAC;MACxD5qB,IAAI,CAACsR,IAAI,CAAC,IAAI,CAAClG,6BAA6B,EAAEyf,QAAQ,CAAC;AACzD,IAAA;;AAEA;AACF;AACA;AACA;AACA;;AASE;AACF;AACA;AACA;;AAsBE;;AASA;AACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAaE;AACF;AACA;AACA;AACA;;AAcE;AACF;AACA;AACA;AACA;;AA+BE;AACF;AACA;AACA;AACA;;AAkBE;AACF;AACA;AACA;;AAOE;AACF;AACA;AACA;AACA;;AAOE;GAyCD;EA3sFQ5T,eAAe,GAAGE,cAAa,CAAC6T,iBAAiB;AAOjD7W,EAAAA,uCAAuC,GAAG,GAAG;AAG7C,EAAA,wBAAwB,GAAGnU,IAAI,CAACC,MAAM,EAAE;AAExC,EAAA,mBAAmB,GAAGD,IAAI,CAACC,MAAM,EAAE;AAEnC,EAAA,mBAAmB,GAAGD,IAAI,CAACC,MAAM,EAAE;AAk8EnC,EAAA,wBAAwBgrB,CAACvI,gBAAgB,EAAEF,gBAAgB,EAClE;AACE,IAAA,MAAM0I,KAAK,GAAGlrB,IAAI,CAAC4jB,QAAQ,CAAC5jB,IAAI,CAACC,MAAM,EAAE,EAAEuiB,gBAAgB,EAAEE,gBAAgB,CAAC;AAC9E,IAAA,OAAO1iB,IAAI,CAACmrB,aAAa,CAACD,KAAK,CAAC,GAAGlrB,IAAI,CAACmrB,aAAa,CAAC3I,gBAAgB,CAAC;AACzE,EAAA;AAGO,EAAA,gBAAgB4I,CAAC9W,GAAG,EAAEoN,SAAS,EAAE2J,MAAM,EAC9C;AACE,IAAA,MAAM/M,CAAC,GAAGoD,SAAS,CAAC,CAAC,CAAC;AACtB,IAAA,MAAMnD,CAAC,GAAGmD,SAAS,CAAC,CAAC,CAAC;AACtB,IAAA,MAAMlD,CAAC,GAAGkD,SAAS,CAAC,CAAC,CAAC;IACtBpN,GAAG,CAAC,CAAC,CAAC,GAAG+W,MAAM,CAAC,CAAC,CAAC,GAAG/M,CAAC,GAAG+M,MAAM,CAAC,CAAC,CAAC,GAAG9M,CAAC,GAAG8M,MAAM,CAAC,CAAC,CAAC,GAAG7M,CAAC;IACtDlK,GAAG,CAAC,CAAC,CAAC,GAAG+W,MAAM,CAAC,CAAC,CAAC,GAAG/M,CAAC,GAAG+M,MAAM,CAAC,CAAC,CAAC,GAAG9M,CAAC,GAAG8M,MAAM,CAAC,CAAC,CAAC,GAAG7M,CAAC;IACtDlK,GAAG,CAAC,CAAC,CAAC,GAAG+W,MAAM,CAAC,CAAC,CAAC,GAAG/M,CAAC,GAAG+M,MAAM,CAAC,CAAC,CAAC,GAAG9M,CAAC,GAAG8M,MAAM,CAAC,EAAE,CAAC,GAAG7M,CAAC;AACvD,IAAA,OAAOlK,GAAG;AACZ,EAAA;AAiCO,EAAA,gBAAgBgX,CAACC,EAAE,EAAEC,EAAE,EAC9B;IACE,MAAM9J,SAAS,GAAG,CAAC1hB,IAAI,CAAC4kB,GAAG,CAAC2G,EAAE,EAAEC,EAAE,CAAC;AACnC,IAAA,OAAO9J,SAAS,GAAG,CAAC,GAChB,CAAC,CAAC,GAAG5O,IAAI,CAACqR,IAAI,CAACrR,IAAI,CAACsR,GAAG,CAAC1C,SAAS,CAAC,CAAC,IAAI,GAAG,GAC1C,CAAC5O,IAAI,CAACqR,IAAI,CAACrR,IAAI,CAACsR,GAAG,CAAC1C,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG;AAChD,EAAA;EAMO,sBAAsB+J,CAACnX,GAAG,EAAErB,MAAM,EAAEyY,KAAK,EAAEC,MAAM,EAAEjK,SAAS,EACnE;IACE,MAAMkK,EAAE,GAAGlK,SAAS,CAAC,CAAC,CAAC,GAAGgK,KAAK,CAAC,CAAC,CAAC;IAClC,MAAMG,EAAE,GAAGnK,SAAS,CAAC,CAAC,CAAC,GAAGgK,KAAK,CAAC,CAAC,CAAC;IAClC,MAAMI,EAAE,GAAGpK,SAAS,CAAC,CAAC,CAAC,GAAGgK,KAAK,CAAC,CAAC,CAAC;AAClC,IAAA,MAAMK,EAAE,GAAG,CAACJ,MAAM,CAAC,CAAC,CAAC,GAAG1Y,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC7C,IAAA,MAAMM,EAAE,GAAG,CAACL,MAAM,CAAC,CAAC,CAAC,GAAG1Y,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC7C,IAAA,MAAMO,EAAE,GAAG,CAACN,MAAM,CAAC,CAAC,CAAC,GAAG1Y,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC7C,IAAA,MAAMQ,EAAE,GAAGN,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE;AACtC,IAAA,IAAI,EAAEI,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,IAAI;AAC1B,IAAA,MAAM9W,EAAE,GAAGwW,EAAE,GAAGG,EAAE,GAAGF,EAAE,GAAGG,EAAE,GAAGF,EAAE,GAAGG,EAAE;AACtC,IAAA,MAAME,EAAE,GAAGJ,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE,GAAGC,EAAE,GAAGA,EAAE;AACtC,IAAA,IAAIG,YAAY,GAAG,CAAChX,EAAE,GAAG8W,EAAE,KAAK,CAAC,GAAGC,EAAE,GAAGD,EAAE,GAAG,CAAC,GAAGA,EAAE;AACpD,IAAA,IAAIE,YAAY,GAAG,CAAC,EAAE,OAAO,IAAI;AACjCA,IAAAA,YAAY,GAAGtZ,IAAI,CAACqR,IAAI,CAACiI,YAAY,CAAC;AACtC,IAAA,IAAI5G,CAAC,GAAG,CAAC4G,YAAY,GAAGhX,EAAE,GAAG8W,EAAE;IAC/B,IAAI1G,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG4G,YAAY,GAAGhX,EAAE,GAAG8W,EAAE;IACrClsB,IAAI,CAAC2kB,WAAW,CAACrQ,GAAG,EAAEqX,MAAM,EAAEjK,SAAS,EAAE8D,CAAC,CAAC;AAC3C,IAAA,OAAOA,CAAC;AACV,EAAA;AAGO,EAAA,uBAAuB6G,CAACpZ,MAAM,EAAEyY,KAAK,EAAEY,KAAK,EACnD;AACE,IAAA,MAAMhO,CAAC,GAAG,CAACgO,KAAK,CAAC,CAAC,CAAC,GAAGrZ,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC3C,IAAA,MAAMnN,CAAC,GAAG,CAAC+N,KAAK,CAAC,CAAC,CAAC,GAAGrZ,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC3C,IAAA,MAAMlN,CAAC,GAAG,CAAC8N,KAAK,CAAC,CAAC,CAAC,GAAGrZ,MAAM,CAAC,CAAC,CAAC,IAAIyY,KAAK,CAAC,CAAC,CAAC;AAC3C,IAAA,OAAOpN,CAAC,GAAGA,CAAC,GAAGC,CAAC,GAAGA,CAAC,GAAGC,CAAC,GAAGA,CAAC,IAAI,CAAC;AACnC,EAAA;AAaO,EAAA,cAAc+N,CAACna,OAAO,EAAEyX,SAAS,EACxC;AACE,IAAA,MAAM7R,KAAK,GAAG5F,OAAO,CAACoa,qBAAqB,IAAI;AAE/C,IAAA,IAAI,CAACxU,KAAK,IAAI6R,SAAS,GAAG,CAAC,IAAI,CAACA,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG7R,KAAK,CAAC/I,MAAM,EAClE;AACE,MAAA,OAAO,IAAI;AACb,IAAA;IAEA,OAAOwd,iBAAiB,CAAC5iB,IAAI,CAAC5J,MAAM,EAAE,EAAE+X,KAAK,EAAE6R,SAAS,CAAC;AAC3D,EAAA;AAOO,EAAA,yBAAyB6C,CAACvc,MAAM,EAAEwc,SAAS,EAAEC,UAAU,EAC9D;AACE,IAAA,MAAMC,MAAM,GAAG1c,MAAM,GAAGyc,UAAU,CAAC;AACnC,IAAA,IAAI,OAAOC,MAAM,KAAK,UAAU,EAChC;AACE,MAAA;AACF,IAAA;IACA,KAAK,MAAM,CAACriB,IAAI,EAAE0Z,KAAK,CAAC,IAAIyI,SAAS,EACrC;MACEE,MAAM,CAACC,IAAI,CAAC3c,MAAM,EAAE3F,IAAI,EAAE0Z,KAAK,CAAC;AAClC,IAAA;AACF,EAAA;EAOO,YAAY6I,CAACjc,KAAK,EAAEK,IAAI,EAAEmD,GAAG,EAAE0Y,QAAQ,EAC9C;IACE,IAAI,CAAClc,KAAK,EACV;AACE,MAAA,KAAK,IAAIJ,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG4D,GAAG,CAACrF,MAAM,EAAEyB,KAAK,EAAE,EAC/C;AACE4D,QAAAA,GAAG,CAAC5D,KAAK,CAAC,GAAGsc,QAAQ,CAACtc,KAAK,CAAC;AAC9B,MAAA;AACA,MAAA,OAAO4D,GAAG;AACZ,IAAA;AAEA,IAAA,IAAImV,MAAM;AACV,IAAA,IAAI,OAAO3Y,KAAK,CAAC2E,MAAM,KAAK,UAAU,EACtC;MACEgU,MAAM,GAAG3Y,KAAK,CAAC2E,MAAM,CAACtE,IAAI,EAAEmD,GAAG,CAAC;IAClC,CAAC,MACI,IAAI,OAAOxD,KAAK,CAACsZ,UAAU,KAAK,UAAU,EAC/C;MACEX,MAAM,GAAG3Y,KAAK,CAACsZ,UAAU,CAACjZ,IAAI,EAAEmD,GAAG,CAAC;AACtC,IAAA;AACA,IAAA,IAAI,CAACqV,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,IAAIwD,WAAW,CAACC,MAAM,CAACzD,MAAM,CAAC,KAAKA,MAAM,KAAKnV,GAAG,EAC3E;AACE,MAAA,KAAK,IAAI5D,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG4D,GAAG,CAACrF,MAAM,EAAEyB,KAAK,EAAE,EAC/C;AACE4D,QAAAA,GAAG,CAAC5D,KAAK,CAAC,GAAG+Y,MAAM,CAAC/Y,KAAK,CAAC;AAC5B,MAAA;AACF,IAAA;AACA,IAAA,OAAO4D,GAAG;AACZ,EAAA;EAOO,gBAAgB6Y,CAACC,OAAO,EAAER,UAAU,EAAE,GAAGS,aAAa,EAC7D;AACE,IAAA,MAAMtjB,MAAM,GAAGqjB,OAAO,GAAGR,UAAU,CAAC;AACpC,IAAA,IAAI,OAAO7iB,MAAM,KAAK,UAAU,EAChC;MACE,OAAOsH,MAAM,CAACtH,MAAM,CAAC+iB,IAAI,CAACM,OAAO,CAAC,CAAC,IAAI,CAAC;AAC1C,IAAA;AACA,IAAA,KAAK,MAAME,YAAY,IAAID,aAAa,EACxC;AACE,MAAA,IAAID,OAAO,GAAGE,YAAY,CAAC,KAAKC,SAAS,IAAIH,OAAO,GAAGE,YAAY,CAAC,KAAK,IAAI,EAC7E;QACE,OAAOjc,MAAM,CAAC+b,OAAO,CAACE,YAAY,CAAC,CAAC,IAAI,CAAC;AAC3C,MAAA;AACF,IAAA;AACA,IAAA,OAAO,CAAC;AACV,EAAA;AAMO,EAAA,aAAaE,CAAC9V,OAAO,EAAEmP,MAAM,EACpC;AACE,IAAA,MAAM9c,MAAM,GAAG2N,OAAO,EAAE+V,mBAAmB;AAC3C,IAAA,OAAOpc,MAAM,CAAC,OAAOtH,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC+iB,IAAI,CAACpV,OAAO,EAAEmP,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACrF,EAAA;AAOO,EAAA,sBAAsB6G,CAAChW,OAAO,EAAEmP,MAAM,EAC7C;IACE,MAAM9c,MAAM,GAAG2N,OAAO,EAAEiW,sBAAsB,IAAIjW,OAAO,EAAE+V,mBAAmB;AAC9E,IAAA,OAAOpc,MAAM,CAAC,OAAOtH,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC+iB,IAAI,CAACpV,OAAO,EAAEmP,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACrF,EAAA;AAGO,EAAA,UAAU+G,CAACtZ,GAAG,EAAErB,MAAM,EAAE+T,MAAM,EACrC;IACE,OAAO3Y,IAAI,CAACC,GAAG,CAACgG,GAAG,EAAErB,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAEA,MAAM,CAAC,CAAC,CAAC,EAAE+T,MAAM,CAAC;AAC/D,EAAA;AAEO,EAAA,KAAK,GAAGG,MAAM,CAAC0G,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEhC,EAAA,MAAM,GAAG1G,MAAM,CAAC0G,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjC,EAAA,iBAAiB,GAAG7tB,IAAI,CAACC,MAAM,EAAE;AACjC,EAAA,gBAAgB,GAAGD,IAAI,CAACC,MAAM,EAAE;AAChC,EAAA,cAAc,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC9B,EAAA,eAAe,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC/B,EAAA,WAAW,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC3B,EAAA,cAAc,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC9B,EAAA,UAAU,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC1B,EAAA,OAAO,GAAGD,IAAI,CAACC,MAAM,EAAE;AACvB,EAAA,aAAa,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC7B,EAAA,gBAAgB,GAAGD,IAAI,CAACC,MAAM,EAAE;AAChC,EAAA,eAAe,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC/B,EAAA,UAAU,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC1B,EAAA,UAAU,GAAGD,IAAI,CAACC,MAAM,EAAE;AAC1B,EAAA,YAAY,GAAGoO,IAAI,CAACpO,MAAM,EAAE;AAC5B,EAAA,YAAY,GAAGoO,IAAI,CAACpO,MAAM,EAAE;AAC5B,EAAA,YAAY,GAAGoO,IAAI,CAACpO,MAAM,EAAE;AAC5B,EAAA,SAAS,GAAG6nB,IAAI,CAAC7nB,MAAM,EAAE;AACzB,EAAA,SAAS,GAAG6nB,IAAI,CAAC7nB,MAAM,EAAE;AAEzB,EAAA,iBAAiB,GAAGknB,MAAM,CAAC0G,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/C,EAAA,kBAAkB,GAAGhkB,IAAI,CAAC5J,MAAM,EAAE;EAElC,qBAAqB,GAAG,QAAQ;AAEhC6tB,EAAAA,cAAc,GAAGA,cAAc;AAE/Bvf,EAAAA,MAAM,GAAGA,MAAM;AAEfwW,EAAAA,mBAAmB,GAAGA,mBAAmB;EAACgJ,WAAAA,GAAA;IAAA,KAAA,CAAAztB,eAAA,GAAAiI,UAAA,EAAA;AAAA,EAAA;AAAA,CAAA,EAAA;;;;"}