@hellpig/anarchy-engine 21.4.1 → 22.0.1

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 (1558) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +9 -0
  3. package/dist/Abstract/Entities/AbstractEntity.js +1 -1
  4. package/dist/Abstract/Entities/AbstractEntity.js.map +1 -1
  5. package/dist/Abstract/Factories/AbstractFactory.js +1 -1
  6. package/dist/Abstract/Factories/AbstractFactory.js.map +1 -1
  7. package/dist/Abstract/Factories/ReactiveFactory.js +1 -1
  8. package/dist/Abstract/Factories/ReactiveFactory.js.map +1 -1
  9. package/dist/Abstract/Loaders/AbstractLoader.js +1 -1
  10. package/dist/Abstract/Loaders/AbstractLoader.js.map +1 -1
  11. package/dist/Abstract/Mixins/WithWrapperIdMixin.js +1 -1
  12. package/dist/Abstract/Mixins/WithWrapperIdMixin.js.map +1 -1
  13. package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js +1 -1
  14. package/dist/Abstract/Registries/AbstractEntityAsyncRegistry.js.map +1 -1
  15. package/dist/Abstract/Registries/AbstractEntityRegistry.js +1 -1
  16. package/dist/Abstract/Registries/AbstractEntityRegistry.js.map +1 -1
  17. package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js +1 -1
  18. package/dist/Abstract/Registries/AbstractResourceAsyncRegistry.js.map +1 -1
  19. package/dist/Abstract/Registries/AbstractSimpleRegistry.js +1 -1
  20. package/dist/Abstract/Registries/AbstractSimpleRegistry.js.map +1 -1
  21. package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js +1 -1
  22. package/dist/Abstract/Registries/Mixin/Registry/WithBaseAccessorsRegistry.js.map +1 -1
  23. package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js +1 -1
  24. package/dist/Abstract/Registries/Mixin/Registry/WithReactiveRegistry.js.map +1 -1
  25. package/dist/Abstract/Watchers/AbstractWatcher.js +1 -1
  26. package/dist/Abstract/Watchers/AbstractWatcher.js.map +1 -1
  27. package/dist/Abstract/Watchers/AbstractWatcherWithState.js +1 -1
  28. package/dist/Abstract/Watchers/AbstractWatcherWithState.js.map +1 -1
  29. package/dist/Abstract/Wrappers/AbstractWrapper.js +1 -1
  30. package/dist/Abstract/Wrappers/AbstractWrapper.js.map +1 -1
  31. package/dist/Actor/Adapters/ConfigToParams.d.ts +1 -1
  32. package/dist/Actor/Adapters/ConfigToParams.js +1 -1
  33. package/dist/Actor/Adapters/ConfigToParams.js.map +1 -1
  34. package/dist/Actor/Adapters/EntityToConfig.d.ts +1 -1
  35. package/dist/Actor/Adapters/EntityToConfig.js +1 -1
  36. package/dist/Actor/Adapters/EntityToConfig.js.map +1 -1
  37. package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js +1 -1
  38. package/dist/Actor/Adapters/Helpers/ActorStatesConfigToParams.js.map +1 -1
  39. package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js +1 -1
  40. package/dist/Actor/Adapters/Helpers/Model3dSettingsConfigToParams.js.map +1 -1
  41. package/dist/Actor/Entities/Actor/Actor.js +1 -1
  42. package/dist/Actor/Entities/Actor/Actor.js.map +1 -1
  43. package/dist/Actor/Factories/ActorFactory.js +1 -1
  44. package/dist/Actor/Factories/ActorFactory.js.map +1 -1
  45. package/dist/Actor/Mixins/WithActorStates.js +1 -1
  46. package/dist/Actor/Mixins/WithActorStates.js.map +1 -1
  47. package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js +1 -1
  48. package/dist/Actor/Registries/Model3dToActorConnectionRegistry.js.map +1 -1
  49. package/dist/Actor/Utils/ActorUtils.js +1 -1
  50. package/dist/Actor/Utils/ActorUtils.js.map +1 -1
  51. package/dist/Actor/index.d.ts +1 -0
  52. package/dist/Animations/Adapters/EntityToConfig.js +1 -1
  53. package/dist/Animations/Adapters/EntityToConfig.js.map +1 -1
  54. package/dist/Animations/Loader/AnimationsLoader.js +1 -1
  55. package/dist/Animations/Loader/AnimationsLoader.js.map +1 -1
  56. package/dist/Animations/Services/AnimationsService.js +1 -1
  57. package/dist/Animations/Services/AnimationsService.js.map +1 -1
  58. package/dist/Animations/Utils/SerializationUtils.js +1 -1
  59. package/dist/Animations/Utils/SerializationUtils.js.map +1 -1
  60. package/dist/Audio/Adapters/AudioConfigToParams.d.ts +2 -0
  61. package/dist/Audio/Adapters/AudioConfigToParams.js +2 -0
  62. package/dist/Audio/Adapters/AudioConfigToParams.js.map +1 -0
  63. package/dist/Audio/Adapters/EntityToConfig.d.ts +1 -1
  64. package/dist/Audio/Adapters/EntityToConfig.js +1 -1
  65. package/dist/Audio/Adapters/EntityToConfig.js.map +1 -1
  66. package/dist/Audio/Adapters/index.d.ts +1 -1
  67. package/dist/Audio/Factories/AudioFactory.js +1 -1
  68. package/dist/Audio/Factories/AudioFactory.js.map +1 -1
  69. package/dist/Audio/Loader/AudioLoader.js +1 -1
  70. package/dist/Audio/Loader/AudioLoader.js.map +1 -1
  71. package/dist/Audio/Services/AudioService.js +1 -1
  72. package/dist/Audio/Services/AudioService.js.map +1 -1
  73. package/dist/Audio/Utils/AudioUtils.js +1 -1
  74. package/dist/Audio/Utils/AudioUtils.js.map +1 -1
  75. package/dist/Audio/Utils/DebugAudioRenderer.js +1 -1
  76. package/dist/Audio/Utils/DebugAudioRenderer.js.map +1 -1
  77. package/dist/Audio/Wrappers/AbstractAudioWrapper.js +1 -1
  78. package/dist/Audio/Wrappers/AbstractAudioWrapper.js.map +1 -1
  79. package/dist/Audio/Wrappers/Audio3dWrapper.js +1 -1
  80. package/dist/Audio/Wrappers/Audio3dWrapper.js.map +1 -1
  81. package/dist/Camera/Adapters/ConfigToParams.d.ts +1 -1
  82. package/dist/Camera/Adapters/ConfigToParams.js +1 -1
  83. package/dist/Camera/Adapters/ConfigToParams.js.map +1 -1
  84. package/dist/Camera/Adapters/EntityToConfig.d.ts +1 -1
  85. package/dist/Camera/Adapters/EntityToConfig.js +1 -1
  86. package/dist/Camera/Adapters/EntityToConfig.js.map +1 -1
  87. package/dist/Camera/Adapters/index.d.ts +1 -1
  88. package/dist/Camera/Factories/CameraFactory.js +1 -1
  89. package/dist/Camera/Factories/CameraFactory.js.map +1 -1
  90. package/dist/Camera/Services/CameraService.js +1 -1
  91. package/dist/Camera/Services/CameraService.js.map +1 -1
  92. package/dist/Camera/Utils/CameraUtils.js +1 -1
  93. package/dist/Camera/Utils/CameraUtils.js.map +1 -1
  94. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js +1 -1
  95. package/dist/Camera/Wrappers/OrthographicCameraWrapper.js.map +1 -1
  96. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js +1 -1
  97. package/dist/Camera/Wrappers/PerspectiveCameraWrapper.js.map +1 -1
  98. package/dist/Collisions/Mixins/WithCollisions.js +1 -1
  99. package/dist/Collisions/Mixins/WithCollisions.js.map +1 -1
  100. package/dist/Collisions/Services/BvhService.js +1 -1
  101. package/dist/Collisions/Services/BvhService.js.map +1 -1
  102. package/dist/Collisions/Services/CollisionsService.js +1 -1
  103. package/dist/Collisions/Services/CollisionsService.js.map +1 -1
  104. package/dist/Color/Adapters/EntityToConfig.d.ts +1 -1
  105. package/dist/Color/Adapters/EntityToConfig.js +1 -1
  106. package/dist/Color/Adapters/EntityToConfig.js.map +1 -1
  107. package/dist/Color/Wrappers/ColorWrapper.js +1 -1
  108. package/dist/Color/Wrappers/ColorWrapper.js.map +1 -1
  109. package/dist/Controls/Adapters/ConfigToParams.d.ts +1 -1
  110. package/dist/Controls/Adapters/ConfigToParams.js +1 -1
  111. package/dist/Controls/Adapters/ConfigToParams.js.map +1 -1
  112. package/dist/Controls/Adapters/EntityToConfig.js +1 -1
  113. package/dist/Controls/Adapters/EntityToConfig.js.map +1 -1
  114. package/dist/Controls/Factories/ControlsFactory.js +1 -1
  115. package/dist/Controls/Factories/ControlsFactory.js.map +1 -1
  116. package/dist/Controls/Utils/ControlsUtils.js +1 -1
  117. package/dist/Controls/Utils/ControlsUtils.js.map +1 -1
  118. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js +1 -1
  119. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapper.js.map +1 -1
  120. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js +1 -1
  121. package/dist/Controls/Wrappers/FpsControls/FpsControlsWrapperHelper.js.map +1 -1
  122. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js +1 -1
  123. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapper.js.map +1 -1
  124. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js +1 -1
  125. package/dist/Controls/Wrappers/OrbitControls/OrbitControlsWrapperHelper.js.map +1 -1
  126. package/dist/Controls/index.d.ts +1 -0
  127. package/dist/EnvMap/Adapters/ConfigToParams.d.ts +1 -1
  128. package/dist/EnvMap/Adapters/ConfigToParams.js +1 -1
  129. package/dist/EnvMap/Adapters/ConfigToParams.js.map +1 -1
  130. package/dist/EnvMap/Adapters/EntityToConfig.d.ts +1 -1
  131. package/dist/EnvMap/Adapters/EntityToConfig.js +1 -1
  132. package/dist/EnvMap/Adapters/EntityToConfig.js.map +1 -1
  133. package/dist/EnvMap/Constants/EnvMapMappingTypesMap.js +1 -1
  134. package/dist/EnvMap/Constants/EnvMapMappingTypesMap.js.map +1 -1
  135. package/dist/EnvMap/Factories/EnvMapFactory.js +1 -1
  136. package/dist/EnvMap/Factories/EnvMapFactory.js.map +1 -1
  137. package/dist/EnvMap/Loader/EnvMapLoader.js +1 -1
  138. package/dist/EnvMap/Loader/EnvMapLoader.js.map +1 -1
  139. package/dist/EnvMap/Services/EnvMapService.js +1 -1
  140. package/dist/EnvMap/Services/EnvMapService.js.map +1 -1
  141. package/dist/EnvMap/Wrappers/EnvMapWrapper.js +1 -1
  142. package/dist/EnvMap/Wrappers/EnvMapWrapper.js.map +1 -1
  143. package/dist/EnvMap/index.d.ts +1 -1
  144. package/dist/Fog/Adapters/ConfigToParams.d.ts +1 -1
  145. package/dist/Fog/Adapters/ConfigToParams.js +1 -1
  146. package/dist/Fog/Adapters/ConfigToParams.js.map +1 -1
  147. package/dist/Fog/Adapters/EntityToConfig.d.ts +1 -1
  148. package/dist/Fog/Adapters/EntityToConfig.js +1 -1
  149. package/dist/Fog/Adapters/EntityToConfig.js.map +1 -1
  150. package/dist/Fog/Factories/FogFactory.js +1 -1
  151. package/dist/Fog/Factories/FogFactory.js.map +1 -1
  152. package/dist/Fog/Wrappers/FogWrapper.js +1 -1
  153. package/dist/Fog/Wrappers/FogWrapper.js.map +1 -1
  154. package/dist/Fog/index.d.ts +1 -0
  155. package/dist/Fsm/Adapters/ConfigToParams.d.ts +1 -1
  156. package/dist/Fsm/Adapters/ConfigToParams.js +1 -1
  157. package/dist/Fsm/Adapters/ConfigToParams.js.map +1 -1
  158. package/dist/Fsm/Adapters/EntityToConfig.d.ts +1 -1
  159. package/dist/Fsm/Adapters/EntityToConfig.js +1 -1
  160. package/dist/Fsm/Adapters/EntityToConfig.js.map +1 -1
  161. package/dist/Fsm/Entities/FsmSource.js +1 -1
  162. package/dist/Fsm/Entities/FsmSource.js.map +1 -1
  163. package/dist/Fsm/Factories/FsmInstanceFactory.js +1 -1
  164. package/dist/Fsm/Factories/FsmInstanceFactory.js.map +1 -1
  165. package/dist/Fsm/Factories/FsmSourceFactory.js +1 -1
  166. package/dist/Fsm/Factories/FsmSourceFactory.js.map +1 -1
  167. package/dist/Fsm/Services/FsmService.js +1 -1
  168. package/dist/Fsm/Services/FsmService.js.map +1 -1
  169. package/dist/Fsm/Wrappers/FsmWrapper.js +1 -1
  170. package/dist/Fsm/Wrappers/FsmWrapper.js.map +1 -1
  171. package/dist/Global/Decorators/ContainerDecorator.js +1 -1
  172. package/dist/Global/Decorators/ContainerDecorator.js.map +1 -1
  173. package/dist/Global/Utils/ContainerUtils.js +1 -1
  174. package/dist/Global/Utils/ContainerUtils.js.map +1 -1
  175. package/dist/Intersections/Adapters/ConfigToParams.d.ts +1 -1
  176. package/dist/Intersections/Adapters/ConfigToParams.js +1 -1
  177. package/dist/Intersections/Adapters/ConfigToParams.js.map +1 -1
  178. package/dist/Intersections/Adapters/EntityToConfig.d.ts +1 -1
  179. package/dist/Intersections/Adapters/EntityToConfig.js +1 -1
  180. package/dist/Intersections/Adapters/EntityToConfig.js.map +1 -1
  181. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js +1 -1
  182. package/dist/Intersections/Factories/IntersectionsWatcherFactory.js.map +1 -1
  183. package/dist/Intersections/Services/IntersectionsWatcherService.js +1 -1
  184. package/dist/Intersections/Services/IntersectionsWatcherService.js.map +1 -1
  185. package/dist/Intersections/Utils/IntersectionsWatcherUtils.js +1 -1
  186. package/dist/Intersections/Utils/IntersectionsWatcherUtils.js.map +1 -1
  187. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js +1 -1
  188. package/dist/Intersections/Watchers/AbstractIntersectionsWatcher.js.map +1 -1
  189. package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js +1 -1
  190. package/dist/Intersections/Watchers/IntersectionsCameraWatcher.js.map +1 -1
  191. package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js +1 -1
  192. package/dist/Intersections/Watchers/IntersectionsDirectionWatcher.js.map +1 -1
  193. package/dist/Intersections/index.d.ts +1 -1
  194. package/dist/Keyboard/Services/KeyboardService.js +1 -1
  195. package/dist/Keyboard/Services/KeyboardService.js.map +1 -1
  196. package/dist/Keyboard/Utils/KeysRxJsUtils.js +1 -1
  197. package/dist/Keyboard/Utils/KeysRxJsUtils.js.map +1 -1
  198. package/dist/Keyboard/Utils/KeysUtils.js +1 -1
  199. package/dist/Keyboard/Utils/KeysUtils.js.map +1 -1
  200. package/dist/Keyboard/Watchers/KeyComboWatcher.js +1 -1
  201. package/dist/Keyboard/Watchers/KeyComboWatcher.js.map +1 -1
  202. package/dist/Keyboard/Watchers/KeyPressWatcher.js +1 -1
  203. package/dist/Keyboard/Watchers/KeyPressWatcher.js.map +1 -1
  204. package/dist/Keyboard/Watchers/KeyReleaseWatcher.js +1 -1
  205. package/dist/Keyboard/Watchers/KeyReleaseWatcher.js.map +1 -1
  206. package/dist/Kinematic/Adapters/ConfigToParams.d.ts +1 -1
  207. package/dist/Kinematic/Adapters/ConfigToParams.js +1 -1
  208. package/dist/Kinematic/Adapters/ConfigToParams.js.map +1 -1
  209. package/dist/Kinematic/Adapters/EntityToConfig.d.ts +1 -1
  210. package/dist/Kinematic/Adapters/EntityToConfig.js +1 -1
  211. package/dist/Kinematic/Adapters/EntityToConfig.js.map +1 -1
  212. package/dist/Kinematic/Adapters/index.d.ts +1 -1
  213. package/dist/Kinematic/Constants/KinematicConstants.js +1 -1
  214. package/dist/Kinematic/Constants/KinematicConstants.js.map +1 -1
  215. package/dist/Kinematic/Utils/KinematicUtils.js +1 -1
  216. package/dist/Kinematic/Utils/KinematicUtils.js.map +1 -1
  217. package/dist/Light/Adapters/ConfigToParams.d.ts +1 -1
  218. package/dist/Light/Adapters/ConfigToParams.js +1 -1
  219. package/dist/Light/Adapters/ConfigToParams.js.map +1 -1
  220. package/dist/Light/Adapters/EntityToConfig.d.ts +1 -1
  221. package/dist/Light/Adapters/EntityToConfig.js +1 -1
  222. package/dist/Light/Adapters/EntityToConfig.js.map +1 -1
  223. package/dist/Light/Factories/LightFactory.js +1 -1
  224. package/dist/Light/Factories/LightFactory.js.map +1 -1
  225. package/dist/Light/Utils/Utils.js +1 -1
  226. package/dist/Light/Utils/Utils.js.map +1 -1
  227. package/dist/Light/Wrappers/AbstractLightWrapper.js +1 -1
  228. package/dist/Light/Wrappers/AbstractLightWrapper.js.map +1 -1
  229. package/dist/Light/Wrappers/AmbientLightWrapper.js +1 -1
  230. package/dist/Light/Wrappers/AmbientLightWrapper.js.map +1 -1
  231. package/dist/Light/Wrappers/DirectionalLightWrapper.js +1 -1
  232. package/dist/Light/Wrappers/DirectionalLightWrapper.js.map +1 -1
  233. package/dist/Light/Wrappers/HemisphereLightWrapper.js +1 -1
  234. package/dist/Light/Wrappers/HemisphereLightWrapper.js.map +1 -1
  235. package/dist/Light/Wrappers/LightWrapperHelper.js +1 -1
  236. package/dist/Light/Wrappers/LightWrapperHelper.js.map +1 -1
  237. package/dist/Light/Wrappers/PointLightWrapper.js +1 -1
  238. package/dist/Light/Wrappers/PointLightWrapper.js.map +1 -1
  239. package/dist/Light/Wrappers/RectAreaLightWrapper.js +1 -1
  240. package/dist/Light/Wrappers/RectAreaLightWrapper.js.map +1 -1
  241. package/dist/Light/Wrappers/SpotLightWrapper.js +1 -1
  242. package/dist/Light/Wrappers/SpotLightWrapper.js.map +1 -1
  243. package/dist/Light/index.d.ts +1 -0
  244. package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js +1 -1
  245. package/dist/LoadingManager/Wrappers/LoadingManagerWrapper.js.map +1 -1
  246. package/dist/Loop/Entities/DeltaCalculator.js +1 -1
  247. package/dist/Loop/Entities/DeltaCalculator.js.map +1 -1
  248. package/dist/Loop/Entities/Loop.js +1 -1
  249. package/dist/Loop/Entities/Loop.js.map +1 -1
  250. package/dist/Material/Adapters/ConfigToParams.d.ts +1 -1
  251. package/dist/Material/Adapters/ConfigToParams.js +1 -1
  252. package/dist/Material/Adapters/ConfigToParams.js.map +1 -1
  253. package/dist/Material/Adapters/EntityToConfig.d.ts +1 -1
  254. package/dist/Material/Adapters/EntityToConfig.js +1 -1
  255. package/dist/Material/Adapters/EntityToConfig.js.map +1 -1
  256. package/dist/Material/Constants/BlendEquation/BlendEquationMap.js +1 -1
  257. package/dist/Material/Constants/BlendEquation/BlendEquationMap.js.map +1 -1
  258. package/dist/Material/Constants/Blending/BlendingMap.js +1 -1
  259. package/dist/Material/Constants/Blending/BlendingMap.js.map +1 -1
  260. package/dist/Material/Constants/BlendingDstFactor/BlendingDstFactorMap.js +1 -1
  261. package/dist/Material/Constants/BlendingDstFactor/BlendingDstFactorMap.js.map +1 -1
  262. package/dist/Material/Constants/BlendingSrcFactorName/BlendingSrcFactorMap.js +1 -1
  263. package/dist/Material/Constants/BlendingSrcFactorName/BlendingSrcFactorMap.js.map +1 -1
  264. package/dist/Material/Constants/Combine/CombineMap.js +1 -1
  265. package/dist/Material/Constants/Combine/CombineMap.js.map +1 -1
  266. package/dist/Material/Constants/DepthPacking/DepthPackingStrategiesMap.js +1 -1
  267. package/dist/Material/Constants/DepthPacking/DepthPackingStrategiesMap.js.map +1 -1
  268. package/dist/Material/Constants/Format/PixelFormatMap.js +1 -1
  269. package/dist/Material/Constants/Format/PixelFormatMap.js.map +1 -1
  270. package/dist/Material/Constants/Material/MaterialMap.js +1 -1
  271. package/dist/Material/Constants/Material/MaterialMap.js.map +1 -1
  272. package/dist/Material/Constants/NormalMapTypes/NormalMapTypesMap.js +1 -1
  273. package/dist/Material/Constants/NormalMapTypes/NormalMapTypesMap.js.map +1 -1
  274. package/dist/Material/Constants/Side/SideMap.js +1 -1
  275. package/dist/Material/Constants/Side/SideMap.js.map +1 -1
  276. package/dist/Material/Constants/StencilFail/StencilFailMap.js +1 -1
  277. package/dist/Material/Constants/StencilFail/StencilFailMap.js.map +1 -1
  278. package/dist/Material/Constants/StencilFuncName/StencilFuncMap.js +1 -1
  279. package/dist/Material/Constants/StencilFuncName/StencilFuncMap.js.map +1 -1
  280. package/dist/Material/Constants/StencilOpName/StencilOpMap.js +1 -1
  281. package/dist/Material/Constants/StencilOpName/StencilOpMap.js.map +1 -1
  282. package/dist/Material/Factories/MaterialFactory.js +1 -1
  283. package/dist/Material/Factories/MaterialFactory.js.map +1 -1
  284. package/dist/Material/Mixins/WithMaterial.js +1 -1
  285. package/dist/Material/Mixins/WithMaterial.js.map +1 -1
  286. package/dist/Material/Utils/MaterialUtils.js +1 -1
  287. package/dist/Material/Utils/MaterialUtils.js.map +1 -1
  288. package/dist/Material/Wrappers/MaterialWrapper.js +1 -1
  289. package/dist/Material/Wrappers/MaterialWrapper.js.map +1 -1
  290. package/dist/Material/index.d.ts +1 -0
  291. package/dist/Math/Utils/AnglesUtils.js +1 -1
  292. package/dist/Math/Utils/AnglesUtils.js.map +1 -1
  293. package/dist/Measurements/Utils/MeasurementsUtils.js +1 -1
  294. package/dist/Measurements/Utils/MeasurementsUtils.js.map +1 -1
  295. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js +1 -1
  296. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition2dMixin.js.map +1 -1
  297. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js +1 -1
  298. package/dist/Mixins/GameObjects/Mixins/Position/WithPosition4dMixin.js.map +1 -1
  299. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js +1 -1
  300. package/dist/Mixins/GameObjects/Mixins/Rotatable/WithRotationMixin.js.map +1 -1
  301. package/dist/Mixins/Generics/DestroyableMixin.js +1 -1
  302. package/dist/Mixins/Generics/DestroyableMixin.js.map +1 -1
  303. package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js +1 -1
  304. package/dist/Mixins/Generics/ExtractSerializableRegistrableFields.js.map +1 -1
  305. package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js +1 -1
  306. package/dist/Mixins/Generics/WithActiveEntityServiceMixin.js.map +1 -1
  307. package/dist/Models3d/Adapters/ConfigToParams.d.ts +1 -1
  308. package/dist/Models3d/Adapters/ConfigToParams.js +1 -1
  309. package/dist/Models3d/Adapters/ConfigToParams.js.map +1 -1
  310. package/dist/Models3d/Adapters/EntityToConfig.d.ts +1 -1
  311. package/dist/Models3d/Adapters/EntityToConfig.js +1 -1
  312. package/dist/Models3d/Adapters/EntityToConfig.js.map +1 -1
  313. package/dist/Models3d/Entities/Model3d.js +1 -1
  314. package/dist/Models3d/Entities/Model3d.js.map +1 -1
  315. package/dist/Models3d/Factories/Models3dFactory.js +1 -1
  316. package/dist/Models3d/Factories/Models3dFactory.js.map +1 -1
  317. package/dist/Models3d/Loaders/Loader3dCore.js +1 -1
  318. package/dist/Models3d/Loaders/Loader3dCore.js.map +1 -1
  319. package/dist/Models3d/Loaders/Models3dLoader.js +1 -1
  320. package/dist/Models3d/Loaders/Models3dLoader.js.map +1 -1
  321. package/dist/Models3d/Mixins/WithModel3dEntities.js +1 -1
  322. package/dist/Models3d/Mixins/WithModel3dEntities.js.map +1 -1
  323. package/dist/Models3d/Utils/SerializationUtils.js +1 -1
  324. package/dist/Models3d/Utils/SerializationUtils.js.map +1 -1
  325. package/dist/Models3d/Utils/UtilsModel3d.js +1 -1
  326. package/dist/Models3d/Utils/UtilsModel3d.js.map +1 -1
  327. package/dist/Models3d/Utils/UtilsModels3dService.js +1 -1
  328. package/dist/Models3d/Utils/UtilsModels3dService.js.map +1 -1
  329. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js +1 -1
  330. package/dist/Models3d/Utils/UtilsPrimitiveModels3d.js.map +1 -1
  331. package/dist/Models3d/index.d.ts +1 -1
  332. package/dist/Mouse/Services/MouseService.js +1 -1
  333. package/dist/Mouse/Services/MouseService.js.map +1 -1
  334. package/dist/Mouse/Utils/MouseUtils.js +1 -1
  335. package/dist/Mouse/Utils/MouseUtils.js.map +1 -1
  336. package/dist/Mouse/Watchers/MouseClickWatcher.js +1 -1
  337. package/dist/Mouse/Watchers/MouseClickWatcher.js.map +1 -1
  338. package/dist/Mouse/Watchers/MousePositionWatcher.js +1 -1
  339. package/dist/Mouse/Watchers/MousePositionWatcher.js.map +1 -1
  340. package/dist/Particles/Adapters/ConfigToParams.d.ts +1 -1
  341. package/dist/Particles/Adapters/ConfigToParams.js +1 -1
  342. package/dist/Particles/Adapters/ConfigToParams.js.map +1 -1
  343. package/dist/Particles/Adapters/EntityToConfig.d.ts +1 -1
  344. package/dist/Particles/Adapters/EntityToConfig.js +1 -1
  345. package/dist/Particles/Adapters/EntityToConfig.js.map +1 -1
  346. package/dist/Particles/Factories/ParticlesFactory.js +1 -1
  347. package/dist/Particles/Factories/ParticlesFactory.js.map +1 -1
  348. package/dist/Particles/Wrappers/ParticlesWrapper.js +1 -1
  349. package/dist/Particles/Wrappers/ParticlesWrapper.js.map +1 -1
  350. package/dist/Particles/index.d.ts +1 -1
  351. package/dist/Physics/Adapters/EntityToConfig.d.ts +1 -1
  352. package/dist/Physics/Adapters/EntityToConfig.js +1 -1
  353. package/dist/Physics/Adapters/EntityToConfig.js.map +1 -1
  354. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.d.ts +1 -1
  355. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js +1 -1
  356. package/dist/Physics/Adapters/PhysicsBodyConfigToParams.js.map +1 -1
  357. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.d.ts +1 -1
  358. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js +1 -1
  359. package/dist/Physics/Adapters/PhysicsWorldConfigToParams.js.map +1 -1
  360. package/dist/Physics/Constants/PhysicsConstants.js +1 -1
  361. package/dist/Physics/Constants/PhysicsConstants.js.map +1 -1
  362. package/dist/Physics/Constants/RigidBodyTypesMap.js +1 -1
  363. package/dist/Physics/Constants/RigidBodyTypesMap.js.map +1 -1
  364. package/dist/Physics/Entities/PhysicsBody.js +1 -1
  365. package/dist/Physics/Entities/PhysicsBody.js.map +1 -1
  366. package/dist/Physics/Entities/PhysicsBodyUtils.js +1 -1
  367. package/dist/Physics/Entities/PhysicsBodyUtils.js.map +1 -1
  368. package/dist/Physics/Factories/PhysicsBodyFactory.js +1 -1
  369. package/dist/Physics/Factories/PhysicsBodyFactory.js.map +1 -1
  370. package/dist/Physics/Renderers/PhysicsDebugRenderer.js +1 -1
  371. package/dist/Physics/Renderers/PhysicsDebugRenderer.js.map +1 -1
  372. package/dist/Physics/Services/PhysicsWorldService.js +1 -1
  373. package/dist/Physics/Services/PhysicsWorldService.js.map +1 -1
  374. package/dist/Physics/Utils/ParamsUtils.js +1 -1
  375. package/dist/Physics/Utils/ParamsUtils.js.map +1 -1
  376. package/dist/Physics/Utils/PhysicsMovementUtils.js +1 -1
  377. package/dist/Physics/Utils/PhysicsMovementUtils.js.map +1 -1
  378. package/dist/Renderer/Adapters/ConfigToParams.d.ts +1 -1
  379. package/dist/Renderer/Adapters/ConfigToParams.js +1 -1
  380. package/dist/Renderer/Adapters/ConfigToParams.js.map +1 -1
  381. package/dist/Renderer/Adapters/EntityToConfig.d.ts +1 -1
  382. package/dist/Renderer/Adapters/EntityToConfig.js +1 -1
  383. package/dist/Renderer/Adapters/EntityToConfig.js.map +1 -1
  384. package/dist/Renderer/Factories/RendererFactory.js +1 -1
  385. package/dist/Renderer/Factories/RendererFactory.js.map +1 -1
  386. package/dist/Renderer/Loop/RendererLoopEffect.js +1 -1
  387. package/dist/Renderer/Loop/RendererLoopEffect.js.map +1 -1
  388. package/dist/Renderer/Wrappers/RendererWrapper.js +1 -1
  389. package/dist/Renderer/Wrappers/RendererWrapper.js.map +1 -1
  390. package/dist/Renderer/index.d.ts +1 -1
  391. package/dist/Scene/Adapters/ConfigToParams.d.ts +1 -1
  392. package/dist/Scene/Adapters/ConfigToParams.js +1 -1
  393. package/dist/Scene/Adapters/ConfigToParams.js.map +1 -1
  394. package/dist/Scene/Adapters/EntityToConfig.d.ts +1 -1
  395. package/dist/Scene/Adapters/EntityToConfig.js +1 -1
  396. package/dist/Scene/Adapters/EntityToConfig.js.map +1 -1
  397. package/dist/Scene/Factories/SceneFactory.js +1 -1
  398. package/dist/Scene/Factories/SceneFactory.js.map +1 -1
  399. package/dist/Scene/Wrappers/SceneWrapper.js +1 -1
  400. package/dist/Scene/Wrappers/SceneWrapper.js.map +1 -1
  401. package/dist/Scene/index.d.ts +1 -0
  402. package/dist/Space/Adapters/ConfigToParams.d.ts +1 -1
  403. package/dist/Space/Adapters/ConfigToParams.js +1 -1
  404. package/dist/Space/Adapters/ConfigToParams.js.map +1 -1
  405. package/dist/Space/Adapters/EntityToConfig.d.ts +1 -1
  406. package/dist/Space/Adapters/EntityToConfig.js +1 -1
  407. package/dist/Space/Adapters/EntityToConfig.js.map +1 -1
  408. package/dist/Space/Entities/Space.js +1 -1
  409. package/dist/Space/Entities/Space.js.map +1 -1
  410. package/dist/Space/Entities/SpaceFromConfig.js +1 -1
  411. package/dist/Space/Entities/SpaceFromConfig.js.map +1 -1
  412. package/dist/Space/Factories/SpaceFactory.js +1 -1
  413. package/dist/Space/Factories/SpaceFactory.js.map +1 -1
  414. package/dist/Space/Utils/CanvasUtils.js +1 -1
  415. package/dist/Space/Utils/CanvasUtils.js.map +1 -1
  416. package/dist/Space/Utils/CreateEntitiesUtils.js +1 -1
  417. package/dist/Space/Utils/CreateEntitiesUtils.js.map +1 -1
  418. package/dist/Space/Utils/SchemaValidationUtils.js +1 -1
  419. package/dist/Space/Utils/SchemaValidationUtils.js.map +1 -1
  420. package/dist/Space/Validators/SchemasValidator.js +1 -1
  421. package/dist/Space/Validators/SchemasValidator.js.map +1 -1
  422. package/dist/Space/Validators/ValidateSpace.js +1 -1
  423. package/dist/Space/Validators/ValidateSpace.js.map +1 -1
  424. package/dist/Space/index.d.ts +1 -1
  425. package/dist/Spatial/Adapters/ConfigToParams.d.ts +1 -1
  426. package/dist/Spatial/Adapters/ConfigToParams.js +1 -1
  427. package/dist/Spatial/Adapters/ConfigToParams.js.map +1 -1
  428. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.d.ts +1 -1
  429. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js +1 -1
  430. package/dist/Spatial/Adapters/ConfigToParamsSpatialData.js.map +1 -1
  431. package/dist/Spatial/Adapters/EntityToConfig.d.ts +1 -1
  432. package/dist/Spatial/Adapters/EntityToConfig.js +1 -1
  433. package/dist/Spatial/Adapters/EntityToConfig.js.map +1 -1
  434. package/dist/Spatial/Factories/SpatialGridFactory.js +1 -1
  435. package/dist/Spatial/Factories/SpatialGridFactory.js.map +1 -1
  436. package/dist/Spatial/Mixins/WithReactivePosition.js +1 -1
  437. package/dist/Spatial/Mixins/WithReactivePosition.js.map +1 -1
  438. package/dist/Spatial/Mixins/WithReactiveRotation.js +1 -1
  439. package/dist/Spatial/Mixins/WithReactiveRotation.js.map +1 -1
  440. package/dist/Spatial/Mixins/WithSpatial.js +1 -1
  441. package/dist/Spatial/Mixins/WithSpatial.js.map +1 -1
  442. package/dist/Spatial/Mixins/WithUpdateSpatialCell.js +1 -1
  443. package/dist/Spatial/Mixins/WithUpdateSpatialCell.js.map +1 -1
  444. package/dist/Spatial/Services/SpatialHelper.js +1 -1
  445. package/dist/Spatial/Services/SpatialHelper.js.map +1 -1
  446. package/dist/Spatial/Wrappers/SpatialCellWrapper.js +1 -1
  447. package/dist/Spatial/Wrappers/SpatialCellWrapper.js.map +1 -1
  448. package/dist/Spatial/Wrappers/SpatialGridWrapper.js +1 -1
  449. package/dist/Spatial/Wrappers/SpatialGridWrapper.js.map +1 -1
  450. package/dist/Text/Adapters/ConfigToParams.d.ts +1 -1
  451. package/dist/Text/Adapters/ConfigToParams.js +1 -1
  452. package/dist/Text/Adapters/ConfigToParams.js.map +1 -1
  453. package/dist/Text/Adapters/EntityToConfig.d.ts +1 -1
  454. package/dist/Text/Adapters/EntityToConfig.js +1 -1
  455. package/dist/Text/Adapters/EntityToConfig.js.map +1 -1
  456. package/dist/Text/Factories/TextFactory.js +1 -1
  457. package/dist/Text/Factories/TextFactory.js.map +1 -1
  458. package/dist/Text/Loop/TextLoopEffect.js +1 -1
  459. package/dist/Text/Loop/TextLoopEffect.js.map +1 -1
  460. package/dist/Text/Renderers/Text2dRenderer.js +1 -1
  461. package/dist/Text/Renderers/Text2dRenderer.js.map +1 -1
  462. package/dist/Text/Renderers/Text3dRenderer.js +1 -1
  463. package/dist/Text/Renderers/Text3dRenderer.js.map +1 -1
  464. package/dist/Text/Renderers/TextRendererBuilder.js +1 -1
  465. package/dist/Text/Renderers/TextRendererBuilder.js.map +1 -1
  466. package/dist/Text/Services/TextService.js +1 -1
  467. package/dist/Text/Services/TextService.js.map +1 -1
  468. package/dist/Text/Wrappers/Accessors.js +1 -1
  469. package/dist/Text/Wrappers/Accessors.js.map +1 -1
  470. package/dist/Text/Wrappers/TextTextureWrapper.js +1 -1
  471. package/dist/Text/Wrappers/TextTextureWrapper.js.map +1 -1
  472. package/dist/Text/Wrappers/TextWrapper.js +1 -1
  473. package/dist/Text/Wrappers/TextWrapper.js.map +1 -1
  474. package/dist/Text/Wrappers/TextWrapperHelper.js +1 -1
  475. package/dist/Text/Wrappers/TextWrapperHelper.js.map +1 -1
  476. package/dist/Text/index.d.ts +1 -0
  477. package/dist/Texture/Loaders/TexturesLoader.js +1 -1
  478. package/dist/Texture/Loaders/TexturesLoader.js.map +1 -1
  479. package/dist/Texture/Utils/TextureServiceHelper.js +1 -1
  480. package/dist/Texture/Utils/TextureServiceHelper.js.map +1 -1
  481. package/dist/ThreeLib/Utils/Object3dUtils.d.ts +1 -1
  482. package/dist/ThreeLib/Utils/Object3dUtils.js +1 -1
  483. package/dist/ThreeLib/Utils/Object3dUtils.js.map +1 -1
  484. package/dist/TransformDrive/Adapters/EntityToConfig.js +1 -1
  485. package/dist/TransformDrive/Adapters/EntityToConfig.js.map +1 -1
  486. package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js +1 -1
  487. package/dist/TransformDrive/Entities/Agents/AbstractTransformAgent.js.map +1 -1
  488. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js +1 -1
  489. package/dist/TransformDrive/Entities/Agents/KinematicTransformAgent.js.map +1 -1
  490. package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js +1 -1
  491. package/dist/TransformDrive/Entities/Agents/PhysicsTransformAgent.js.map +1 -1
  492. package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js +1 -1
  493. package/dist/TransformDrive/Entities/Connectors/DriveToTargetConnector.js.map +1 -1
  494. package/dist/TransformDrive/Entities/Drive/TransformDrive.js +1 -1
  495. package/dist/TransformDrive/Entities/Drive/TransformDrive.js.map +1 -1
  496. package/dist/TransformDrive/Services/TransformDriveService.js +1 -1
  497. package/dist/TransformDrive/Services/TransformDriveService.js.map +1 -1
  498. package/dist/TransformDrive/Utils/AgentUtils.js +1 -1
  499. package/dist/TransformDrive/Utils/AgentUtils.js.map +1 -1
  500. package/dist/TransformDrive/Utils/KinematicAgentUtils.js +1 -1
  501. package/dist/TransformDrive/Utils/KinematicAgentUtils.js.map +1 -1
  502. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js +1 -1
  503. package/dist/TransformDrive/Utils/PhysicsTransformAgentUtils.js.map +1 -1
  504. package/dist/TransformDrive/Utils/TransformDriveUtils.js +1 -1
  505. package/dist/TransformDrive/Utils/TransformDriveUtils.js.map +1 -1
  506. package/dist/Utils/CheckUtils.js +1 -1
  507. package/dist/Utils/CheckUtils.js.map +1 -1
  508. package/dist/Utils/CoordsUtils.js +1 -1
  509. package/dist/Utils/CoordsUtils.js.map +1 -1
  510. package/dist/Utils/DateTimeUtils.js +1 -1
  511. package/dist/Utils/DateTimeUtils.js.map +1 -1
  512. package/dist/Utils/DestroyUtils.js +1 -1
  513. package/dist/Utils/DestroyUtils.js.map +1 -1
  514. package/dist/Utils/DomUtils.js +1 -1
  515. package/dist/Utils/DomUtils.js.map +1 -1
  516. package/dist/Utils/RegistryAsyncUtils.js +1 -1
  517. package/dist/Utils/RegistryAsyncUtils.js.map +1 -1
  518. package/dist/Utils/RegistryUtils.js +1 -1
  519. package/dist/Utils/RegistryUtils.js.map +1 -1
  520. package/dist/Utils/RotationUtils.js +1 -1
  521. package/dist/Utils/RotationUtils.js.map +1 -1
  522. package/dist/Utils/RxJsUtils.js +1 -1
  523. package/dist/Utils/RxJsUtils.js.map +1 -1
  524. package/dist/Utils/ScreenUtils.js +1 -1
  525. package/dist/Utils/ScreenUtils.js.map +1 -1
  526. package/dist/Utils/TagsUtils.js +1 -1
  527. package/dist/Utils/TagsUtils.js.map +1 -1
  528. package/dist/Utils/WrapperHelpers.js +1 -1
  529. package/dist/Utils/WrapperHelpers.js.map +1 -1
  530. package/dist/_virtual/stateMachine.js +1 -1
  531. package/dist/index.js +1 -1
  532. package/dist/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js.map +1 -0
  533. package/dist/node_modules/@cfworker/json-schema/dist/esm/dereference.js.map +1 -0
  534. package/dist/node_modules/@cfworker/json-schema/dist/esm/format.js.map +1 -0
  535. package/dist/node_modules/@cfworker/json-schema/dist/esm/pointer.js.map +1 -0
  536. package/dist/node_modules/@cfworker/json-schema/dist/esm/ucs2-length.js.map +1 -0
  537. package/dist/node_modules/@cfworker/json-schema/dist/esm/validate.js.map +1 -0
  538. package/dist/node_modules/@cfworker/json-schema/dist/esm/validator.js.map +1 -0
  539. package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +1 -0
  540. package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +1 -0
  541. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -0
  542. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -0
  543. package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +1 -0
  544. package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +1 -0
  545. package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +1 -0
  546. package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +1 -0
  547. package/dist/node_modules/date-fns/constants.js.map +1 -0
  548. package/dist/node_modules/date-fns/constructFrom.js.map +1 -0
  549. package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +1 -0
  550. package/dist/node_modules/date-fns/format.js.map +1 -0
  551. package/dist/node_modules/date-fns/getDayOfYear.js.map +1 -0
  552. package/dist/node_modules/date-fns/getISOWeek.js.map +1 -0
  553. package/dist/node_modules/date-fns/getISOWeekYear.js.map +1 -0
  554. package/dist/node_modules/date-fns/getWeek.js.map +1 -0
  555. package/dist/node_modules/date-fns/getWeekYear.js.map +1 -0
  556. package/dist/node_modules/date-fns/isDate.js.map +1 -0
  557. package/dist/node_modules/date-fns/isValid.js.map +1 -0
  558. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -0
  559. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -0
  560. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -0
  561. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -0
  562. package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +1 -0
  563. package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +1 -0
  564. package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +1 -0
  565. package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +1 -0
  566. package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +1 -0
  567. package/dist/node_modules/date-fns/locale/en-US.js.map +1 -0
  568. package/dist/node_modules/date-fns/parseISO.js.map +1 -0
  569. package/dist/node_modules/date-fns/startOfDay.js.map +1 -0
  570. package/dist/node_modules/date-fns/startOfISOWeek.js.map +1 -0
  571. package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +1 -0
  572. package/dist/node_modules/date-fns/startOfWeek.js.map +1 -0
  573. package/dist/node_modules/date-fns/startOfWeekYear.js.map +1 -0
  574. package/dist/node_modules/date-fns/startOfYear.js.map +1 -0
  575. package/dist/node_modules/date-fns/toDate.js.map +1 -0
  576. package/dist/node_modules/lodash-es/_DataView.js.map +1 -0
  577. package/dist/node_modules/lodash-es/_Hash.js.map +1 -0
  578. package/dist/node_modules/lodash-es/_ListCache.js.map +1 -0
  579. package/dist/node_modules/lodash-es/_Map.js.map +1 -0
  580. package/dist/node_modules/lodash-es/_MapCache.js.map +1 -0
  581. package/dist/node_modules/lodash-es/_Promise.js.map +1 -0
  582. package/dist/node_modules/lodash-es/_Set.js.map +1 -0
  583. package/dist/node_modules/lodash-es/_SetCache.js.map +1 -0
  584. package/dist/node_modules/lodash-es/_Stack.js.map +1 -0
  585. package/dist/node_modules/lodash-es/_Symbol.js.map +1 -0
  586. package/dist/node_modules/lodash-es/_Uint8Array.js.map +1 -0
  587. package/dist/node_modules/lodash-es/_WeakMap.js.map +1 -0
  588. package/dist/node_modules/lodash-es/_arrayEach.js.map +1 -0
  589. package/dist/node_modules/lodash-es/_arrayFilter.js.map +1 -0
  590. package/dist/node_modules/lodash-es/_arrayLikeKeys.js.map +1 -0
  591. package/dist/node_modules/lodash-es/_arrayPush.js.map +1 -0
  592. package/dist/node_modules/lodash-es/_arraySome.js.map +1 -0
  593. package/dist/node_modules/lodash-es/_assignValue.js.map +1 -0
  594. package/dist/node_modules/lodash-es/_assocIndexOf.js.map +1 -0
  595. package/dist/node_modules/lodash-es/_baseAssignValue.js.map +1 -0
  596. package/dist/node_modules/lodash-es/_baseClone.js.map +1 -0
  597. package/dist/node_modules/lodash-es/_baseCreate.js.map +1 -0
  598. package/dist/node_modules/lodash-es/_baseGetAllKeys.js.map +1 -0
  599. package/dist/node_modules/lodash-es/_baseGetTag.js.map +1 -0
  600. package/dist/node_modules/lodash-es/_baseIsArguments.js.map +1 -0
  601. package/dist/node_modules/lodash-es/_baseIsEqual.js.map +1 -0
  602. package/dist/node_modules/lodash-es/_baseIsEqualDeep.js.map +1 -0
  603. package/dist/node_modules/lodash-es/_baseIsMap.js.map +1 -0
  604. package/dist/node_modules/lodash-es/_baseIsNative.js.map +1 -0
  605. package/dist/node_modules/lodash-es/_baseIsSet.js.map +1 -0
  606. package/dist/node_modules/lodash-es/_baseIsTypedArray.js.map +1 -0
  607. package/dist/node_modules/lodash-es/_baseKeys.js.map +1 -0
  608. package/dist/node_modules/lodash-es/_baseTimes.js.map +1 -0
  609. package/dist/node_modules/lodash-es/_baseUnary.js.map +1 -0
  610. package/dist/node_modules/lodash-es/_cacheHas.js.map +1 -0
  611. package/dist/node_modules/lodash-es/_cloneArrayBuffer.js.map +1 -0
  612. package/dist/node_modules/lodash-es/_cloneBuffer.js.map +1 -0
  613. package/dist/node_modules/lodash-es/_cloneDataView.js.map +1 -0
  614. package/dist/node_modules/lodash-es/_cloneRegExp.js.map +1 -0
  615. package/dist/node_modules/lodash-es/_cloneSymbol.js.map +1 -0
  616. package/dist/node_modules/lodash-es/_cloneTypedArray.js.map +1 -0
  617. package/dist/node_modules/lodash-es/_coreJsData.js.map +1 -0
  618. package/dist/node_modules/lodash-es/_defineProperty.js.map +1 -0
  619. package/dist/node_modules/lodash-es/_equalArrays.js.map +1 -0
  620. package/dist/node_modules/lodash-es/_equalByTag.js.map +1 -0
  621. package/dist/node_modules/lodash-es/_equalObjects.js.map +1 -0
  622. package/dist/node_modules/lodash-es/_freeGlobal.js.map +1 -0
  623. package/dist/node_modules/lodash-es/_getAllKeys.js.map +1 -0
  624. package/dist/node_modules/lodash-es/_getMapData.js.map +1 -0
  625. package/dist/node_modules/lodash-es/_getNative.js.map +1 -0
  626. package/dist/node_modules/lodash-es/_getPrototype.js.map +1 -0
  627. package/dist/node_modules/lodash-es/_getRawTag.js.map +1 -0
  628. package/dist/node_modules/lodash-es/_getSymbols.js.map +1 -0
  629. package/dist/node_modules/lodash-es/_getTag.js.map +1 -0
  630. package/dist/node_modules/lodash-es/_getValue.js.map +1 -0
  631. package/dist/node_modules/lodash-es/_hashClear.js.map +1 -0
  632. package/dist/node_modules/lodash-es/_hashDelete.js.map +1 -0
  633. package/dist/node_modules/lodash-es/_hashGet.js.map +1 -0
  634. package/dist/node_modules/lodash-es/_hashHas.js.map +1 -0
  635. package/dist/node_modules/lodash-es/_hashSet.js.map +1 -0
  636. package/dist/node_modules/lodash-es/_initCloneArray.js.map +1 -0
  637. package/dist/node_modules/lodash-es/_initCloneByTag.js.map +1 -0
  638. package/dist/node_modules/lodash-es/_initCloneObject.js.map +1 -0
  639. package/dist/node_modules/lodash-es/_isIndex.js.map +1 -0
  640. package/dist/node_modules/lodash-es/_isKeyable.js.map +1 -0
  641. package/dist/node_modules/lodash-es/_isMasked.js.map +1 -0
  642. package/dist/node_modules/lodash-es/_isPrototype.js.map +1 -0
  643. package/dist/node_modules/lodash-es/_listCacheClear.js.map +1 -0
  644. package/dist/node_modules/lodash-es/_listCacheDelete.js.map +1 -0
  645. package/dist/node_modules/lodash-es/_listCacheGet.js.map +1 -0
  646. package/dist/node_modules/lodash-es/_listCacheHas.js.map +1 -0
  647. package/dist/node_modules/lodash-es/_listCacheSet.js.map +1 -0
  648. package/dist/node_modules/lodash-es/_mapCacheClear.js.map +1 -0
  649. package/dist/node_modules/lodash-es/_mapCacheDelete.js.map +1 -0
  650. package/dist/node_modules/lodash-es/_mapCacheGet.js.map +1 -0
  651. package/dist/node_modules/lodash-es/_mapCacheHas.js.map +1 -0
  652. package/dist/node_modules/lodash-es/_mapCacheSet.js.map +1 -0
  653. package/dist/node_modules/lodash-es/_mapToArray.js.map +1 -0
  654. package/dist/node_modules/lodash-es/_nativeCreate.js.map +1 -0
  655. package/dist/node_modules/lodash-es/_nativeKeys.js.map +1 -0
  656. package/dist/node_modules/lodash-es/_nodeUtil.js.map +1 -0
  657. package/dist/node_modules/lodash-es/_objectToString.js.map +1 -0
  658. package/dist/node_modules/lodash-es/_overArg.js.map +1 -0
  659. package/dist/node_modules/lodash-es/_root.js.map +1 -0
  660. package/dist/node_modules/lodash-es/_setCacheAdd.js.map +1 -0
  661. package/dist/node_modules/lodash-es/_setCacheHas.js.map +1 -0
  662. package/dist/node_modules/lodash-es/_setToArray.js.map +1 -0
  663. package/dist/node_modules/lodash-es/_stackClear.js.map +1 -0
  664. package/dist/node_modules/lodash-es/_stackDelete.js.map +1 -0
  665. package/dist/node_modules/lodash-es/_stackGet.js.map +1 -0
  666. package/dist/node_modules/lodash-es/_stackHas.js.map +1 -0
  667. package/dist/node_modules/lodash-es/_stackSet.js.map +1 -0
  668. package/dist/node_modules/lodash-es/_toSource.js.map +1 -0
  669. package/dist/node_modules/lodash-es/cloneDeepWith.js.map +1 -0
  670. package/dist/node_modules/lodash-es/eq.js.map +1 -0
  671. package/dist/node_modules/lodash-es/isArguments.js.map +1 -0
  672. package/dist/node_modules/lodash-es/isArray.js.map +1 -0
  673. package/dist/node_modules/lodash-es/isArrayLike.js.map +1 -0
  674. package/dist/node_modules/lodash-es/isBuffer.js.map +1 -0
  675. package/dist/node_modules/lodash-es/isEmpty.js.map +1 -0
  676. package/dist/node_modules/lodash-es/isEqual.js.map +1 -0
  677. package/dist/node_modules/lodash-es/isFunction.js.map +1 -0
  678. package/dist/node_modules/lodash-es/isLength.js.map +1 -0
  679. package/dist/node_modules/lodash-es/isMap.js.map +1 -0
  680. package/dist/node_modules/lodash-es/isObject.js.map +1 -0
  681. package/dist/node_modules/lodash-es/isObjectLike.js.map +1 -0
  682. package/dist/node_modules/lodash-es/isPlainObject.js.map +1 -0
  683. package/dist/node_modules/lodash-es/isSet.js.map +1 -0
  684. package/dist/node_modules/lodash-es/isTypedArray.js.map +1 -0
  685. package/dist/node_modules/lodash-es/keys.js.map +1 -0
  686. package/dist/node_modules/lodash-es/stubArray.js.map +1 -0
  687. package/dist/node_modules/lodash-es/stubFalse.js.map +1 -0
  688. package/dist/node_modules/quickselect/index.js.map +1 -0
  689. package/dist/node_modules/rbush/index.js.map +1 -0
  690. package/dist/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js.map +1 -0
  691. package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +1 -0
  692. package/dist/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js.map +1 -0
  693. package/dist/node_modules/rxjs/dist/esm5/internal/Scheduler.js.map +1 -0
  694. package/dist/node_modules/rxjs/dist/esm5/internal/Subject.js.map +1 -0
  695. package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +1 -0
  696. package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +1 -0
  697. package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +1 -0
  698. package/dist/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js.map +1 -0
  699. package/dist/node_modules/rxjs/dist/esm5/internal/observable/concat.js.map +1 -0
  700. package/dist/node_modules/rxjs/dist/esm5/internal/observable/defer.js.map +1 -0
  701. package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +1 -0
  702. package/dist/node_modules/rxjs/dist/esm5/internal/observable/from.js.map +1 -0
  703. package/dist/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js.map +1 -0
  704. package/dist/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js.map +1 -0
  705. package/dist/node_modules/rxjs/dist/esm5/internal/observable/merge.js.map +1 -0
  706. package/dist/node_modules/rxjs/dist/esm5/internal/observable/of.js.map +1 -0
  707. package/dist/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js.map +1 -0
  708. package/dist/node_modules/rxjs/dist/esm5/internal/operators/catchError.js.map +1 -0
  709. package/dist/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js.map +1 -0
  710. package/dist/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js.map +1 -0
  711. package/dist/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js.map +1 -0
  712. package/dist/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js.map +1 -0
  713. package/dist/node_modules/rxjs/dist/esm5/internal/operators/filter.js.map +1 -0
  714. package/dist/node_modules/rxjs/dist/esm5/internal/operators/finalize.js.map +1 -0
  715. package/dist/node_modules/rxjs/dist/esm5/internal/operators/map.js.map +1 -0
  716. package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js.map +1 -0
  717. package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js.map +1 -0
  718. package/dist/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js.map +1 -0
  719. package/dist/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js.map +1 -0
  720. package/dist/node_modules/rxjs/dist/esm5/internal/operators/sample.js.map +1 -0
  721. package/dist/node_modules/rxjs/dist/esm5/internal/operators/skip.js.map +1 -0
  722. package/dist/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js.map +1 -0
  723. package/dist/node_modules/rxjs/dist/esm5/internal/operators/startWith.js.map +1 -0
  724. package/dist/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js.map +1 -0
  725. package/dist/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js.map +1 -0
  726. package/dist/node_modules/rxjs/dist/esm5/internal/operators/take.js.map +1 -0
  727. package/dist/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js.map +1 -0
  728. package/dist/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js.map +1 -0
  729. package/dist/node_modules/rxjs/dist/esm5/internal/operators/tap.js.map +1 -0
  730. package/dist/node_modules/rxjs/dist/esm5/internal/operators/timeout.js.map +1 -0
  731. package/dist/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js.map +1 -0
  732. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js.map +1 -0
  733. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js.map +1 -0
  734. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js.map +1 -0
  735. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js.map +1 -0
  736. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js.map +1 -0
  737. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js.map +1 -0
  738. package/dist/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js.map +1 -0
  739. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js.map +1 -0
  740. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js.map +1 -0
  741. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js.map +1 -0
  742. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/async.js.map +1 -0
  743. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js.map +1 -0
  744. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js.map +1 -0
  745. package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +1 -0
  746. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js.map +1 -0
  747. package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +1 -0
  748. package/dist/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js.map +1 -0
  749. package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +1 -0
  750. package/dist/node_modules/rxjs/dist/esm5/internal/util/args.js.map +1 -0
  751. package/dist/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js.map +1 -0
  752. package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +1 -0
  753. package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +1 -0
  754. package/dist/node_modules/rxjs/dist/esm5/internal/util/createObject.js.map +1 -0
  755. package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +1 -0
  756. package/dist/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js.map +1 -0
  757. package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +1 -0
  758. package/dist/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js.map +1 -0
  759. package/dist/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js.map +1 -0
  760. package/dist/node_modules/rxjs/dist/esm5/internal/util/isDate.js.map +1 -0
  761. package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +1 -0
  762. package/dist/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js.map +1 -0
  763. package/dist/node_modules/rxjs/dist/esm5/internal/util/isIterable.js.map +1 -0
  764. package/dist/node_modules/rxjs/dist/esm5/internal/util/isPromise.js.map +1 -0
  765. package/dist/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js.map +1 -0
  766. package/dist/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js.map +1 -0
  767. package/dist/node_modules/rxjs/dist/esm5/internal/util/lift.js.map +1 -0
  768. package/dist/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js.map +1 -0
  769. package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +1 -0
  770. package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +1 -0
  771. package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +1 -0
  772. package/dist/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js.map +1 -0
  773. package/dist/node_modules/three-mesh-bvh/src/core/Constants.js.map +1 -0
  774. package/dist/node_modules/three-mesh-bvh/src/core/MeshBVH.js +2 -0
  775. package/dist/node_modules/three-mesh-bvh/src/core/MeshBVH.js.map +1 -0
  776. package/dist/node_modules/three-mesh-bvh/src/core/MeshBVHNode.js.map +1 -0
  777. package/dist/node_modules/three-mesh-bvh/src/core/build/buildTree.js.map +1 -0
  778. package/dist/node_modules/three-mesh-bvh/src/core/build/buildUtils.js.map +1 -0
  779. package/dist/node_modules/three-mesh-bvh/src/core/build/computeBoundsUtils.js.map +1 -0
  780. package/dist/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js +2 -0
  781. package/dist/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js.map +1 -0
  782. package/dist/node_modules/three-mesh-bvh/src/core/build/sortUtils.generated.js.map +1 -0
  783. package/dist/node_modules/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js.map +1 -0
  784. package/dist/node_modules/three-mesh-bvh/src/core/build/splitUtils.js.map +1 -0
  785. package/dist/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js +2 -0
  786. package/dist/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js.map +1 -0
  787. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js +2 -0
  788. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js.map +1 -0
  789. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js +2 -0
  790. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js.map +1 -0
  791. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js +2 -0
  792. package/dist/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js.map +1 -0
  793. package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js +2 -0
  794. package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js.map +1 -0
  795. package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js +2 -0
  796. package/dist/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js.map +1 -0
  797. package/dist/node_modules/three-mesh-bvh/src/core/cast/raycast.generated.js.map +1 -0
  798. package/dist/node_modules/three-mesh-bvh/src/core/cast/raycastFirst.generated.js.map +1 -0
  799. package/dist/node_modules/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js.map +1 -0
  800. package/dist/node_modules/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js.map +1 -0
  801. package/dist/node_modules/three-mesh-bvh/src/core/cast/refit.generated.js.map +1 -0
  802. package/dist/node_modules/three-mesh-bvh/src/core/cast/refit_indirect.generated.js.map +1 -0
  803. package/dist/node_modules/three-mesh-bvh/src/core/cast/shapecast.js +2 -0
  804. package/dist/node_modules/three-mesh-bvh/src/core/cast/shapecast.js.map +1 -0
  805. package/dist/node_modules/three-mesh-bvh/src/core/utils/BufferStack.js.map +1 -0
  806. package/dist/node_modules/three-mesh-bvh/src/core/utils/intersectUtils.js.map +1 -0
  807. package/dist/node_modules/three-mesh-bvh/src/core/utils/iterationUtils.generated.js.map +1 -0
  808. package/dist/node_modules/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js.map +1 -0
  809. package/dist/node_modules/three-mesh-bvh/src/core/utils/nodeBufferUtils.js.map +1 -0
  810. package/dist/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js +2 -0
  811. package/dist/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js.map +1 -0
  812. package/dist/node_modules/three-mesh-bvh/src/math/MathUtilities.js +2 -0
  813. package/dist/node_modules/three-mesh-bvh/src/math/MathUtilities.js.map +1 -0
  814. package/dist/node_modules/three-mesh-bvh/src/math/OrientedBox.js +2 -0
  815. package/dist/node_modules/three-mesh-bvh/src/math/OrientedBox.js.map +1 -0
  816. package/dist/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js +2 -0
  817. package/dist/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js.map +1 -0
  818. package/dist/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js +2 -0
  819. package/dist/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js.map +1 -0
  820. package/dist/node_modules/three-mesh-bvh/src/utils/ArrayBoxUtilities.js.map +1 -0
  821. package/dist/node_modules/three-mesh-bvh/src/utils/BufferUtils.js.map +1 -0
  822. package/dist/node_modules/three-mesh-bvh/src/utils/ExtendedTrianglePool.js.map +1 -0
  823. package/dist/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js +2 -0
  824. package/dist/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js.map +1 -0
  825. package/dist/node_modules/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js.map +1 -0
  826. package/dist/node_modules/three-mesh-bvh/src/utils/PrimitivePool.js.map +1 -0
  827. package/dist/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js +2 -0
  828. package/dist/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js.map +1 -0
  829. package/dist/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js +2 -0
  830. package/dist/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js.map +1 -0
  831. package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
  832. package/dist/node_modules/typescript-fsm/dist/stateMachine.js +2 -0
  833. package/dist/node_modules/typescript-fsm/dist/stateMachine.js.map +1 -0
  834. package/dist/packages/anarchy-engine/node_modules/nanoid/index.browser.js.map +1 -0
  835. package/dist/packages/anarchy-engine/node_modules/nanoid/url-alphabet/index.js.map +1 -0
  836. package/dist/packages/anarchy-shared/src/Constants/CssUnits.js.map +1 -0
  837. package/dist/packages/anarchy-shared/src/Constants/FallBackFonts.js.map +1 -0
  838. package/dist/packages/anarchy-shared/src/Utils/ArrayUtils.js.map +1 -0
  839. package/dist/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +1 -0
  840. package/dist/packages/anarchy-shared/src/Utils/CheckUtils.js.map +1 -0
  841. package/dist/packages/anarchy-shared/src/Utils/CssUtils.js.map +1 -0
  842. package/dist/packages/anarchy-shared/src/Utils/MapUtils.js.map +1 -0
  843. package/dist/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +1 -0
  844. package/dist/packages/anarchy-shared/src/Utils/StringUtils.js.map +1 -0
  845. package/dist/packages/anarchy-shared/src/Utils/TypesUtils.js.map +1 -0
  846. package/dist/packages/anarchy-shared/src/Utils/WebGlUtils.js.map +1 -0
  847. package/legal/NOTICE.md +2 -14
  848. package/legal/THIRD_PARTY_LICENSES.md +2 -214
  849. package/package.json +15 -3
  850. package/dist/Audio/Adapters/ConfigToParams.d.ts +0 -2
  851. package/dist/Audio/Adapters/ConfigToParams.js +0 -2
  852. package/dist/Audio/Adapters/ConfigToParams.js.map +0 -1
  853. package/dist/__vite-plugin-wasm-helper.js +0 -2
  854. package/dist/__vite-plugin-wasm-helper.js.map +0 -1
  855. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/deep-compare-strict.js.map +0 -1
  856. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/dereference.js.map +0 -1
  857. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/format.js.map +0 -1
  858. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/pointer.js.map +0 -1
  859. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/ucs2-length.js.map +0 -1
  860. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/validate.js.map +0 -1
  861. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@cfworker/json-schema/dist/esm/validator.js.map +0 -1
  862. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/coarena.js +0 -2
  863. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/coarena.js.map +0 -1
  864. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/character_controller.js +0 -2
  865. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/character_controller.js.map +0 -1
  866. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/pid_controller.js +0 -2
  867. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/pid_controller.js.map +0 -1
  868. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js +0 -2
  869. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/control/ray_cast_vehicle_controller.js.map +0 -1
  870. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/ccd_solver.js +0 -2
  871. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/ccd_solver.js.map +0 -1
  872. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js +0 -2
  873. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/coefficient_combine_rule.js.map +0 -1
  874. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint.js +0 -2
  875. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint.js.map +0 -1
  876. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint_set.js +0 -2
  877. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/impulse_joint_set.js.map +0 -1
  878. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/integration_parameters.js +0 -2
  879. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/integration_parameters.js.map +0 -1
  880. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/island_manager.js +0 -2
  881. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/island_manager.js.map +0 -1
  882. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint.js +0 -2
  883. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint.js.map +0 -1
  884. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint_set.js +0 -2
  885. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/multibody_joint_set.js.map +0 -1
  886. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body.js +0 -2
  887. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body.js.map +0 -1
  888. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body_set.js +0 -2
  889. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/dynamics/rigid_body_set.js.map +0 -1
  890. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/broad_phase.js +0 -2
  891. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/broad_phase.js.map +0 -1
  892. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider.js +0 -2
  893. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider.js.map +0 -1
  894. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider_set.js +0 -2
  895. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/collider_set.js.map +0 -1
  896. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/contact.js +0 -2
  897. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/contact.js.map +0 -1
  898. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/feature.js +0 -2
  899. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/feature.js.map +0 -1
  900. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/narrow_phase.js +0 -2
  901. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/narrow_phase.js.map +0 -1
  902. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/point.js +0 -2
  903. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/point.js.map +0 -1
  904. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/ray.js +0 -2
  905. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/ray.js.map +0 -1
  906. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/shape.js +0 -2
  907. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/shape.js.map +0 -1
  908. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/toi.js +0 -2
  909. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/geometry/toi.js.map +0 -1
  910. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/math.js +0 -2
  911. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/math.js.map +0 -1
  912. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/debug_render_pipeline.js +0 -2
  913. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/debug_render_pipeline.js.map +0 -1
  914. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/event_queue.js +0 -2
  915. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/event_queue.js.map +0 -1
  916. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_hooks.js +0 -2
  917. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_hooks.js.map +0 -1
  918. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_pipeline.js +0 -2
  919. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/physics_pipeline.js.map +0 -1
  920. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/serialization_pipeline.js +0 -2
  921. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/serialization_pipeline.js.map +0 -1
  922. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/world.js +0 -2
  923. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/pipeline/world.js.map +0 -1
  924. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d.js +0 -2
  925. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d.js.map +0 -1
  926. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.js +0 -2
  927. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.js.map +0 -1
  928. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm.js +0 -2
  929. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm.js.map +0 -1
  930. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm2.js +0 -2
  931. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/@dimforge/rapier3d/rapier_wasm3d_bg.wasm2.js.map +0 -1
  932. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/addLeadingZeros.js.map +0 -1
  933. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/defaultOptions.js.map +0 -1
  934. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/formatters.js.map +0 -1
  935. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/lightFormatters.js.map +0 -1
  936. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/format/longFormatters.js.map +0 -1
  937. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +0 -1
  938. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/normalizeDates.js.map +0 -1
  939. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/_lib/protectedTokens.js.map +0 -1
  940. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/constants.js.map +0 -1
  941. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/constructFrom.js.map +0 -1
  942. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/differenceInCalendarDays.js.map +0 -1
  943. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/format.js.map +0 -1
  944. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getDayOfYear.js.map +0 -1
  945. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getISOWeek.js.map +0 -1
  946. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getISOWeekYear.js.map +0 -1
  947. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getWeek.js.map +0 -1
  948. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/getWeekYear.js.map +0 -1
  949. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/isDate.js.map +0 -1
  950. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/isValid.js.map +0 -1
  951. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +0 -1
  952. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +0 -1
  953. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +0 -1
  954. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +0 -1
  955. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +0 -1
  956. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +0 -1
  957. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +0 -1
  958. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/localize.js.map +0 -1
  959. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US/_lib/match.js.map +0 -1
  960. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/locale/en-US.js.map +0 -1
  961. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/parseISO.js.map +0 -1
  962. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfDay.js.map +0 -1
  963. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfISOWeek.js.map +0 -1
  964. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfISOWeekYear.js.map +0 -1
  965. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfWeek.js.map +0 -1
  966. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfWeekYear.js.map +0 -1
  967. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/startOfYear.js.map +0 -1
  968. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/date-fns/toDate.js.map +0 -1
  969. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_DataView.js.map +0 -1
  970. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Hash.js.map +0 -1
  971. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_ListCache.js.map +0 -1
  972. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Map.js.map +0 -1
  973. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_MapCache.js.map +0 -1
  974. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Promise.js.map +0 -1
  975. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Set.js.map +0 -1
  976. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_SetCache.js.map +0 -1
  977. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Stack.js.map +0 -1
  978. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Symbol.js.map +0 -1
  979. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_Uint8Array.js.map +0 -1
  980. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_WeakMap.js.map +0 -1
  981. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayEach.js.map +0 -1
  982. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayFilter.js.map +0 -1
  983. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayLikeKeys.js.map +0 -1
  984. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arrayPush.js.map +0 -1
  985. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_arraySome.js.map +0 -1
  986. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_assignValue.js.map +0 -1
  987. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_assocIndexOf.js.map +0 -1
  988. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseAssignValue.js.map +0 -1
  989. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseClone.js.map +0 -1
  990. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseCreate.js.map +0 -1
  991. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseGetAllKeys.js.map +0 -1
  992. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseGetTag.js.map +0 -1
  993. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsArguments.js.map +0 -1
  994. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsEqual.js.map +0 -1
  995. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsEqualDeep.js.map +0 -1
  996. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsMap.js.map +0 -1
  997. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsNative.js.map +0 -1
  998. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsSet.js.map +0 -1
  999. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseIsTypedArray.js.map +0 -1
  1000. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseKeys.js.map +0 -1
  1001. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseTimes.js.map +0 -1
  1002. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_baseUnary.js.map +0 -1
  1003. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cacheHas.js.map +0 -1
  1004. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneArrayBuffer.js.map +0 -1
  1005. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneBuffer.js.map +0 -1
  1006. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneDataView.js.map +0 -1
  1007. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneRegExp.js.map +0 -1
  1008. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneSymbol.js.map +0 -1
  1009. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_cloneTypedArray.js.map +0 -1
  1010. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_coreJsData.js.map +0 -1
  1011. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_defineProperty.js.map +0 -1
  1012. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalArrays.js.map +0 -1
  1013. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalByTag.js.map +0 -1
  1014. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_equalObjects.js.map +0 -1
  1015. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_freeGlobal.js.map +0 -1
  1016. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getAllKeys.js.map +0 -1
  1017. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getMapData.js.map +0 -1
  1018. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getNative.js.map +0 -1
  1019. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getPrototype.js.map +0 -1
  1020. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getRawTag.js.map +0 -1
  1021. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getSymbols.js.map +0 -1
  1022. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getTag.js.map +0 -1
  1023. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_getValue.js.map +0 -1
  1024. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashClear.js.map +0 -1
  1025. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashDelete.js.map +0 -1
  1026. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashGet.js.map +0 -1
  1027. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashHas.js.map +0 -1
  1028. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_hashSet.js.map +0 -1
  1029. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneArray.js.map +0 -1
  1030. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneByTag.js.map +0 -1
  1031. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_initCloneObject.js.map +0 -1
  1032. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isIndex.js.map +0 -1
  1033. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isKeyable.js.map +0 -1
  1034. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isMasked.js.map +0 -1
  1035. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_isPrototype.js.map +0 -1
  1036. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheClear.js.map +0 -1
  1037. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheDelete.js.map +0 -1
  1038. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheGet.js.map +0 -1
  1039. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheHas.js.map +0 -1
  1040. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_listCacheSet.js.map +0 -1
  1041. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheClear.js.map +0 -1
  1042. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheDelete.js.map +0 -1
  1043. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheGet.js.map +0 -1
  1044. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheHas.js.map +0 -1
  1045. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapCacheSet.js.map +0 -1
  1046. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_mapToArray.js.map +0 -1
  1047. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nativeCreate.js.map +0 -1
  1048. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nativeKeys.js.map +0 -1
  1049. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_nodeUtil.js.map +0 -1
  1050. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_objectToString.js.map +0 -1
  1051. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_overArg.js.map +0 -1
  1052. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_root.js.map +0 -1
  1053. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setCacheAdd.js.map +0 -1
  1054. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setCacheHas.js.map +0 -1
  1055. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_setToArray.js.map +0 -1
  1056. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackClear.js.map +0 -1
  1057. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackDelete.js.map +0 -1
  1058. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackGet.js.map +0 -1
  1059. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackHas.js.map +0 -1
  1060. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_stackSet.js.map +0 -1
  1061. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/_toSource.js.map +0 -1
  1062. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/cloneDeepWith.js.map +0 -1
  1063. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/eq.js.map +0 -1
  1064. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArguments.js.map +0 -1
  1065. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArray.js.map +0 -1
  1066. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isArrayLike.js.map +0 -1
  1067. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isBuffer.js.map +0 -1
  1068. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isEmpty.js.map +0 -1
  1069. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isEqual.js.map +0 -1
  1070. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isFunction.js.map +0 -1
  1071. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isLength.js.map +0 -1
  1072. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isMap.js.map +0 -1
  1073. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isObject.js.map +0 -1
  1074. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isObjectLike.js.map +0 -1
  1075. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isPlainObject.js.map +0 -1
  1076. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isSet.js.map +0 -1
  1077. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/isTypedArray.js.map +0 -1
  1078. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/keys.js.map +0 -1
  1079. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/stubArray.js.map +0 -1
  1080. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/lodash-es/stubFalse.js.map +0 -1
  1081. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/quickselect/index.js.map +0 -1
  1082. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rbush/index.js.map +0 -1
  1083. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js.map +0 -1
  1084. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
  1085. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/ReplaySubject.js.map +0 -1
  1086. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Scheduler.js.map +0 -1
  1087. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subject.js.map +0 -1
  1088. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
  1089. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
  1090. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
  1091. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/combineLatest.js.map +0 -1
  1092. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/concat.js.map +0 -1
  1093. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/defer.js.map +0 -1
  1094. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
  1095. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/from.js.map +0 -1
  1096. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/fromEvent.js.map +0 -1
  1097. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js.map +0 -1
  1098. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/merge.js.map +0 -1
  1099. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/observable/of.js.map +0 -1
  1100. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js.map +0 -1
  1101. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/catchError.js.map +0 -1
  1102. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/concatAll.js.map +0 -1
  1103. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/concatMap.js.map +0 -1
  1104. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js.map +0 -1
  1105. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/exhaustMap.js.map +0 -1
  1106. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/filter.js.map +0 -1
  1107. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/finalize.js.map +0 -1
  1108. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/map.js.map +0 -1
  1109. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeAll.js.map +0 -1
  1110. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeInternals.js.map +0 -1
  1111. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/mergeMap.js.map +0 -1
  1112. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/observeOn.js.map +0 -1
  1113. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/sample.js.map +0 -1
  1114. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/skip.js.map +0 -1
  1115. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/skipWhile.js.map +0 -1
  1116. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/startWith.js.map +0 -1
  1117. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/subscribeOn.js.map +0 -1
  1118. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/switchMap.js.map +0 -1
  1119. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/take.js.map +0 -1
  1120. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js.map +0 -1
  1121. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/takeWhile.js.map +0 -1
  1122. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/tap.js.map +0 -1
  1123. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/timeout.js.map +0 -1
  1124. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/operators/withLatestFrom.js.map +0 -1
  1125. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleArray.js.map +0 -1
  1126. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js.map +0 -1
  1127. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js.map +0 -1
  1128. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js.map +0 -1
  1129. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/schedulePromise.js.map +0 -1
  1130. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js.map +0 -1
  1131. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduled/scheduled.js.map +0 -1
  1132. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/Action.js.map +0 -1
  1133. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncAction.js.map +0 -1
  1134. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js.map +0 -1
  1135. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/async.js.map +0 -1
  1136. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js.map +0 -1
  1137. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/intervalProvider.js.map +0 -1
  1138. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
  1139. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/symbol/iterator.js.map +0 -1
  1140. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
  1141. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js.map +0 -1
  1142. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
  1143. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/args.js.map +0 -1
  1144. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js.map +0 -1
  1145. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
  1146. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
  1147. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/createObject.js.map +0 -1
  1148. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
  1149. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/executeSchedule.js.map +0 -1
  1150. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
  1151. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js.map +0 -1
  1152. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js.map +0 -1
  1153. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isDate.js.map +0 -1
  1154. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
  1155. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js.map +0 -1
  1156. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isIterable.js.map +0 -1
  1157. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isPromise.js.map +0 -1
  1158. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js.map +0 -1
  1159. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/isScheduler.js.map +0 -1
  1160. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/lift.js.map +0 -1
  1161. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js.map +0 -1
  1162. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
  1163. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
  1164. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
  1165. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js.map +0 -1
  1166. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.core.js +0 -2
  1167. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.core.js.map +0 -1
  1168. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.module.js +0 -2
  1169. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/build/three.module.js.map +0 -1
  1170. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/FirstPersonControls.js +0 -2
  1171. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/FirstPersonControls.js.map +0 -1
  1172. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/OrbitControls.js +0 -2
  1173. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/controls/OrbitControls.js.map +0 -1
  1174. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/Line2.js +0 -2
  1175. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/Line2.js.map +0 -1
  1176. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineGeometry.js +0 -2
  1177. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineGeometry.js.map +0 -1
  1178. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineMaterial.js +0 -2
  1179. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineMaterial.js.map +0 -1
  1180. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegments2.js +0 -2
  1181. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegments2.js.map +0 -1
  1182. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js +0 -2
  1183. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/lines/LineSegmentsGeometry.js.map +0 -1
  1184. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/DRACOLoader.js +0 -2
  1185. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/DRACOLoader.js.map +0 -1
  1186. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/GLTFLoader.js +0 -2
  1187. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/GLTFLoader.js.map +0 -1
  1188. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/HDRLoader.js +0 -2
  1189. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/loaders/HDRLoader.js.map +0 -1
  1190. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +0 -2
  1191. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js.map +0 -1
  1192. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS3DRenderer.js +0 -2
  1193. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/renderers/CSS3DRenderer.js.map +0 -1
  1194. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +0 -2
  1195. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js.map +0 -1
  1196. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/SkeletonUtils.js +0 -2
  1197. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/examples/jsm/utils/SkeletonUtils.js.map +0 -1
  1198. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/MathUtils.js +0 -2
  1199. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/MathUtils.js.map +0 -1
  1200. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Quaternion.js +0 -2
  1201. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Quaternion.js.map +0 -1
  1202. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Vector3.js +0 -2
  1203. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/math/Vector3.js.map +0 -1
  1204. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/utils.js +0 -2
  1205. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three/src/utils.js.map +0 -1
  1206. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/Constants.js.map +0 -1
  1207. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVH.js +0 -2
  1208. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVH.js.map +0 -1
  1209. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/MeshBVHNode.js.map +0 -1
  1210. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/buildTree.js.map +0 -1
  1211. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/buildUtils.js.map +0 -1
  1212. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/computeBoundsUtils.js.map +0 -1
  1213. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js +0 -2
  1214. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/geometryUtils.js.map +0 -1
  1215. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/sortUtils.generated.js.map +0 -1
  1216. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js.map +0 -1
  1217. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/build/splitUtils.js.map +0 -1
  1218. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js +0 -2
  1219. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/bvhcast.js.map +0 -1
  1220. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js +0 -2
  1221. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry.generated.js.map +0 -1
  1222. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js +0 -2
  1223. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToGeometry_indirect.generated.js.map +0 -1
  1224. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js +0 -2
  1225. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/closestPointToPoint.js.map +0 -1
  1226. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js +0 -2
  1227. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry.generated.js.map +0 -1
  1228. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js +0 -2
  1229. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/intersectsGeometry_indirect.generated.js.map +0 -1
  1230. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycast.generated.js.map +0 -1
  1231. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycastFirst.generated.js.map +0 -1
  1232. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js.map +0 -1
  1233. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js.map +0 -1
  1234. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/refit.generated.js.map +0 -1
  1235. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/refit_indirect.generated.js.map +0 -1
  1236. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/shapecast.js +0 -2
  1237. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/cast/shapecast.js.map +0 -1
  1238. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/BufferStack.js.map +0 -1
  1239. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/intersectUtils.js.map +0 -1
  1240. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/iterationUtils.generated.js.map +0 -1
  1241. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js.map +0 -1
  1242. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/core/utils/nodeBufferUtils.js.map +0 -1
  1243. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js +0 -2
  1244. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/ExtendedTriangle.js.map +0 -1
  1245. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/MathUtilities.js +0 -2
  1246. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/MathUtilities.js.map +0 -1
  1247. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/OrientedBox.js +0 -2
  1248. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/OrientedBox.js.map +0 -1
  1249. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js +0 -2
  1250. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/math/SeparatingAxisBounds.js.map +0 -1
  1251. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js +0 -2
  1252. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/objects/MeshBVHHelper.js.map +0 -1
  1253. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ArrayBoxUtilities.js.map +0 -1
  1254. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/BufferUtils.js.map +0 -1
  1255. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtendedTrianglePool.js.map +0 -1
  1256. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js +0 -2
  1257. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ExtensionUtilities.js.map +0 -1
  1258. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js.map +0 -1
  1259. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/PrimitivePool.js.map +0 -1
  1260. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js +0 -2
  1261. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/ThreeRayIntersectUtilities.js.map +0 -1
  1262. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js +0 -2
  1263. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/three-mesh-bvh/src/utils/TriangleUtilities.js.map +0 -1
  1264. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/tslib/tslib.es6.js.map +0 -1
  1265. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/typescript-fsm/dist/stateMachine.js +0 -2
  1266. package/dist/home/runner/work/anarchy-engine/anarchy-engine/node_modules/typescript-fsm/dist/stateMachine.js.map +0 -1
  1267. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-engine/node_modules/nanoid/index.browser.js.map +0 -1
  1268. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-engine/node_modules/nanoid/url-alphabet/index.js.map +0 -1
  1269. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Constants/CssUnits.js.map +0 -1
  1270. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Constants/FallBackFonts.js.map +0 -1
  1271. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/ArrayUtils.js.map +0 -1
  1272. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/AsyncUtils.js.map +0 -1
  1273. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/CheckUtils.js.map +0 -1
  1274. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/CssUtils.js.map +0 -1
  1275. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/MapUtils.js.map +0 -1
  1276. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/ObjectUtils.js.map +0 -1
  1277. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/StringUtils.js.map +0 -1
  1278. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/TypesUtils.js.map +0 -1
  1279. package/dist/home/runner/work/anarchy-engine/anarchy-engine/packages/anarchy-shared/src/Utils/WebGlUtils.js.map +0 -1
  1280. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/deep-compare-strict.js +0 -0
  1281. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/dereference.js +0 -0
  1282. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/format.js +0 -0
  1283. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/pointer.js +0 -0
  1284. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/ucs2-length.js +0 -0
  1285. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/validate.js +0 -0
  1286. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/@cfworker/json-schema/dist/esm/validator.js +0 -0
  1287. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/addLeadingZeros.js +0 -0
  1288. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/defaultOptions.js +0 -0
  1289. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/formatters.js +0 -0
  1290. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/lightFormatters.js +0 -0
  1291. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/format/longFormatters.js +0 -0
  1292. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +0 -0
  1293. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/normalizeDates.js +0 -0
  1294. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/_lib/protectedTokens.js +0 -0
  1295. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/constants.js +0 -0
  1296. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/constructFrom.js +0 -0
  1297. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/differenceInCalendarDays.js +0 -0
  1298. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/format.js +0 -0
  1299. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getDayOfYear.js +0 -0
  1300. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getISOWeek.js +0 -0
  1301. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getISOWeekYear.js +0 -0
  1302. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getWeek.js +0 -0
  1303. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/getWeekYear.js +0 -0
  1304. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/isDate.js +0 -0
  1305. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/isValid.js +0 -0
  1306. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildFormatLongFn.js +0 -0
  1307. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildLocalizeFn.js +0 -0
  1308. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildMatchFn.js +0 -0
  1309. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/_lib/buildMatchPatternFn.js +0 -0
  1310. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatDistance.js +0 -0
  1311. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatLong.js +0 -0
  1312. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/formatRelative.js +0 -0
  1313. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/localize.js +0 -0
  1314. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US/_lib/match.js +0 -0
  1315. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/locale/en-US.js +0 -0
  1316. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/parseISO.js +0 -0
  1317. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfDay.js +0 -0
  1318. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfISOWeek.js +0 -0
  1319. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfISOWeekYear.js +0 -0
  1320. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfWeek.js +0 -0
  1321. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfWeekYear.js +0 -0
  1322. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/startOfYear.js +0 -0
  1323. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/date-fns/toDate.js +0 -0
  1324. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_DataView.js +0 -0
  1325. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Hash.js +0 -0
  1326. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_ListCache.js +0 -0
  1327. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Map.js +0 -0
  1328. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_MapCache.js +0 -0
  1329. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Promise.js +0 -0
  1330. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Set.js +0 -0
  1331. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_SetCache.js +0 -0
  1332. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Stack.js +0 -0
  1333. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Symbol.js +0 -0
  1334. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_Uint8Array.js +0 -0
  1335. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_WeakMap.js +0 -0
  1336. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayEach.js +0 -0
  1337. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayFilter.js +0 -0
  1338. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayLikeKeys.js +0 -0
  1339. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arrayPush.js +0 -0
  1340. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_arraySome.js +0 -0
  1341. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_assignValue.js +0 -0
  1342. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_assocIndexOf.js +0 -0
  1343. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseAssignValue.js +0 -0
  1344. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseClone.js +0 -0
  1345. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseCreate.js +0 -0
  1346. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseGetAllKeys.js +0 -0
  1347. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseGetTag.js +0 -0
  1348. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsArguments.js +0 -0
  1349. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsEqual.js +0 -0
  1350. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsEqualDeep.js +0 -0
  1351. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsMap.js +0 -0
  1352. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsNative.js +0 -0
  1353. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsSet.js +0 -0
  1354. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseIsTypedArray.js +0 -0
  1355. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseKeys.js +0 -0
  1356. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseTimes.js +0 -0
  1357. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_baseUnary.js +0 -0
  1358. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cacheHas.js +0 -0
  1359. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneArrayBuffer.js +0 -0
  1360. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneBuffer.js +0 -0
  1361. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneDataView.js +0 -0
  1362. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneRegExp.js +0 -0
  1363. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneSymbol.js +0 -0
  1364. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_cloneTypedArray.js +0 -0
  1365. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_coreJsData.js +0 -0
  1366. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_defineProperty.js +0 -0
  1367. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalArrays.js +0 -0
  1368. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalByTag.js +0 -0
  1369. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_equalObjects.js +0 -0
  1370. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_freeGlobal.js +0 -0
  1371. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getAllKeys.js +0 -0
  1372. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getMapData.js +0 -0
  1373. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getNative.js +0 -0
  1374. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getPrototype.js +0 -0
  1375. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getRawTag.js +0 -0
  1376. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getSymbols.js +0 -0
  1377. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getTag.js +0 -0
  1378. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_getValue.js +0 -0
  1379. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashClear.js +0 -0
  1380. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashDelete.js +0 -0
  1381. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashGet.js +0 -0
  1382. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashHas.js +0 -0
  1383. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_hashSet.js +0 -0
  1384. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneArray.js +0 -0
  1385. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneByTag.js +0 -0
  1386. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_initCloneObject.js +0 -0
  1387. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isIndex.js +0 -0
  1388. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isKeyable.js +0 -0
  1389. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isMasked.js +0 -0
  1390. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_isPrototype.js +0 -0
  1391. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheClear.js +0 -0
  1392. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheDelete.js +0 -0
  1393. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheGet.js +0 -0
  1394. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheHas.js +0 -0
  1395. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_listCacheSet.js +0 -0
  1396. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheClear.js +0 -0
  1397. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheDelete.js +0 -0
  1398. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheGet.js +0 -0
  1399. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheHas.js +0 -0
  1400. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapCacheSet.js +0 -0
  1401. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_mapToArray.js +0 -0
  1402. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nativeCreate.js +0 -0
  1403. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nativeKeys.js +0 -0
  1404. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_nodeUtil.js +0 -0
  1405. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_objectToString.js +0 -0
  1406. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_overArg.js +0 -0
  1407. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_root.js +0 -0
  1408. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setCacheAdd.js +0 -0
  1409. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setCacheHas.js +0 -0
  1410. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_setToArray.js +0 -0
  1411. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackClear.js +0 -0
  1412. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackDelete.js +0 -0
  1413. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackGet.js +0 -0
  1414. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackHas.js +0 -0
  1415. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_stackSet.js +0 -0
  1416. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/_toSource.js +0 -0
  1417. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/cloneDeepWith.js +0 -0
  1418. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/eq.js +0 -0
  1419. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArguments.js +0 -0
  1420. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArray.js +0 -0
  1421. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isArrayLike.js +0 -0
  1422. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isBuffer.js +0 -0
  1423. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isEmpty.js +0 -0
  1424. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isEqual.js +0 -0
  1425. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isFunction.js +0 -0
  1426. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isLength.js +0 -0
  1427. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isMap.js +0 -0
  1428. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isObject.js +0 -0
  1429. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isObjectLike.js +0 -0
  1430. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isPlainObject.js +0 -0
  1431. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isSet.js +0 -0
  1432. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/isTypedArray.js +0 -0
  1433. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/keys.js +0 -0
  1434. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/stubArray.js +0 -0
  1435. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/lodash-es/stubFalse.js +0 -0
  1436. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/quickselect/index.js +0 -0
  1437. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rbush/index.js +0 -0
  1438. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/BehaviorSubject.js +0 -0
  1439. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Observable.js +0 -0
  1440. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/ReplaySubject.js +0 -0
  1441. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Scheduler.js +0 -0
  1442. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subject.js +0 -0
  1443. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subscriber.js +0 -0
  1444. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/Subscription.js +0 -0
  1445. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/config.js +0 -0
  1446. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/combineLatest.js +0 -0
  1447. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/concat.js +0 -0
  1448. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/defer.js +0 -0
  1449. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/empty.js +0 -0
  1450. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/from.js +0 -0
  1451. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/fromEvent.js +0 -0
  1452. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/innerFrom.js +0 -0
  1453. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/merge.js +0 -0
  1454. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/observable/of.js +0 -0
  1455. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js +0 -0
  1456. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/catchError.js +0 -0
  1457. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/concatAll.js +0 -0
  1458. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/concatMap.js +0 -0
  1459. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/distinctUntilChanged.js +0 -0
  1460. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/exhaustMap.js +0 -0
  1461. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/filter.js +0 -0
  1462. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/finalize.js +0 -0
  1463. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/map.js +0 -0
  1464. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeAll.js +0 -0
  1465. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeInternals.js +0 -0
  1466. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/mergeMap.js +0 -0
  1467. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/observeOn.js +0 -0
  1468. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/sample.js +0 -0
  1469. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/skip.js +0 -0
  1470. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/skipWhile.js +0 -0
  1471. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/startWith.js +0 -0
  1472. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/subscribeOn.js +0 -0
  1473. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/switchMap.js +0 -0
  1474. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/take.js +0 -0
  1475. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/takeUntil.js +0 -0
  1476. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/takeWhile.js +0 -0
  1477. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/tap.js +0 -0
  1478. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/timeout.js +0 -0
  1479. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/operators/withLatestFrom.js +0 -0
  1480. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleArray.js +0 -0
  1481. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleAsyncIterable.js +0 -0
  1482. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleIterable.js +0 -0
  1483. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleObservable.js +0 -0
  1484. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/schedulePromise.js +0 -0
  1485. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduleReadableStreamLike.js +0 -0
  1486. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduled/scheduled.js +0 -0
  1487. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/Action.js +0 -0
  1488. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/AsyncAction.js +0 -0
  1489. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/AsyncScheduler.js +0 -0
  1490. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/async.js +0 -0
  1491. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/dateTimestampProvider.js +0 -0
  1492. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/intervalProvider.js +0 -0
  1493. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -0
  1494. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/symbol/iterator.js +0 -0
  1495. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/symbol/observable.js +0 -0
  1496. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/ObjectUnsubscribedError.js +0 -0
  1497. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -0
  1498. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/args.js +0 -0
  1499. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/argsArgArrayOrObject.js +0 -0
  1500. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/arrRemove.js +0 -0
  1501. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -0
  1502. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/createObject.js +0 -0
  1503. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/errorContext.js +0 -0
  1504. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/executeSchedule.js +0 -0
  1505. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/identity.js +0 -0
  1506. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isArrayLike.js +0 -0
  1507. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isAsyncIterable.js +0 -0
  1508. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isDate.js +0 -0
  1509. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isFunction.js +0 -0
  1510. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isInteropObservable.js +0 -0
  1511. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isIterable.js +0 -0
  1512. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isPromise.js +0 -0
  1513. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isReadableStreamLike.js +0 -0
  1514. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/isScheduler.js +0 -0
  1515. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/lift.js +0 -0
  1516. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/mapOneOrManyArgs.js +0 -0
  1517. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/noop.js +0 -0
  1518. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/pipe.js +0 -0
  1519. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -0
  1520. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/rxjs/dist/esm5/internal/util/throwUnobservableError.js +0 -0
  1521. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/Constants.js +0 -0
  1522. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/MeshBVHNode.js +0 -0
  1523. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/buildTree.js +0 -0
  1524. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/buildUtils.js +0 -0
  1525. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/computeBoundsUtils.js +0 -0
  1526. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/sortUtils.generated.js +0 -0
  1527. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/sortUtils_indirect.generated.js +0 -0
  1528. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/build/splitUtils.js +0 -0
  1529. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycast.generated.js +0 -0
  1530. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycastFirst.generated.js +0 -0
  1531. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycastFirst_indirect.generated.js +0 -0
  1532. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/raycast_indirect.generated.js +0 -0
  1533. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/refit.generated.js +0 -0
  1534. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/cast/refit_indirect.generated.js +0 -0
  1535. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/BufferStack.js +0 -0
  1536. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/intersectUtils.js +0 -0
  1537. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/iterationUtils.generated.js +0 -0
  1538. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/iterationUtils_indirect.generated.js +0 -0
  1539. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/core/utils/nodeBufferUtils.js +0 -0
  1540. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/ArrayBoxUtilities.js +0 -0
  1541. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/BufferUtils.js +0 -0
  1542. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/ExtendedTrianglePool.js +0 -0
  1543. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/GeometryRayIntersectUtilities.js +0 -0
  1544. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/three-mesh-bvh/src/utils/PrimitivePool.js +0 -0
  1545. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/node_modules → node_modules}/tslib/tslib.es6.js +0 -0
  1546. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-engine/node_modules/nanoid/index.browser.js +0 -0
  1547. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-engine/node_modules/nanoid/url-alphabet/index.js +0 -0
  1548. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Constants/CssUnits.js +0 -0
  1549. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Constants/FallBackFonts.js +0 -0
  1550. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/ArrayUtils.js +0 -0
  1551. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/AsyncUtils.js +0 -0
  1552. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/CheckUtils.js +0 -0
  1553. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/CssUtils.js +0 -0
  1554. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/MapUtils.js +0 -0
  1555. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/ObjectUtils.js +0 -0
  1556. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/StringUtils.js +0 -0
  1557. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/TypesUtils.js +0 -0
  1558. /package/dist/{home/runner/work/anarchy-engine/anarchy-engine/packages → packages}/anarchy-shared/src/Utils/WebGlUtils.js +0 -0
@@ -1,2 +0,0 @@
1
- const REVISION="182",MOUSE={ROTATE:0,DOLLY:1,PAN:2},TOUCH={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},CullFaceNone=0,CullFaceBack=1,CullFaceFront=2,PCFShadowMap=1,PCFSoftShadowMap=2,VSMShadowMap=3,FrontSide=0,BackSide=1,DoubleSide=2,NoBlending=0,NormalBlending=1,AdditiveBlending=2,SubtractiveBlending=3,MultiplyBlending=4,CustomBlending=5,AddEquation=100,SubtractEquation=101,ReverseSubtractEquation=102,MinEquation=103,MaxEquation=104,ZeroFactor=200,OneFactor=201,SrcColorFactor=202,OneMinusSrcColorFactor=203,SrcAlphaFactor=204,OneMinusSrcAlphaFactor=205,DstAlphaFactor=206,OneMinusDstAlphaFactor=207,DstColorFactor=208,OneMinusDstColorFactor=209,SrcAlphaSaturateFactor=210,ConstantColorFactor=211,OneMinusConstantColorFactor=212,ConstantAlphaFactor=213,OneMinusConstantAlphaFactor=214,NeverDepth=0,AlwaysDepth=1,LessDepth=2,LessEqualDepth=3,EqualDepth=4,GreaterEqualDepth=5,GreaterDepth=6,NotEqualDepth=7,MultiplyOperation=0,MixOperation=1,AddOperation=2,NoToneMapping=0,LinearToneMapping=1,ReinhardToneMapping=2,CineonToneMapping=3,ACESFilmicToneMapping=4,CustomToneMapping=5,AgXToneMapping=6,NeutralToneMapping=7,AttachedBindMode="attached",DetachedBindMode="detached",UVMapping=300,CubeReflectionMapping=301,CubeRefractionMapping=302,EquirectangularReflectionMapping=303,EquirectangularRefractionMapping=304,CubeUVReflectionMapping=306,RepeatWrapping=1e3,ClampToEdgeWrapping=1001,MirroredRepeatWrapping=1002,NearestFilter=1003,NearestMipmapNearestFilter=1004,NearestMipmapLinearFilter=1005,LinearFilter=1006,LinearMipmapNearestFilter=1007,LinearMipmapLinearFilter=1008,UnsignedByteType=1009,ByteType=1010,ShortType=1011,UnsignedShortType=1012,IntType=1013,UnsignedIntType=1014,FloatType=1015,HalfFloatType=1016,UnsignedShort4444Type=1017,UnsignedShort5551Type=1018,UnsignedInt248Type=1020,UnsignedInt5999Type=35902,UnsignedInt101111Type=35899,AlphaFormat=1021,RGBFormat=1022,RGBAFormat=1023,DepthFormat=1026,DepthStencilFormat=1027,RedFormat=1028,RedIntegerFormat=1029,RGFormat=1030,RGIntegerFormat=1031,RGBIntegerFormat=1032,RGBAIntegerFormat=1033,RGB_S3TC_DXT1_Format=33776,RGBA_S3TC_DXT1_Format=33777,RGBA_S3TC_DXT3_Format=33778,RGBA_S3TC_DXT5_Format=33779,RGB_PVRTC_4BPPV1_Format=35840,RGB_PVRTC_2BPPV1_Format=35841,RGBA_PVRTC_4BPPV1_Format=35842,RGBA_PVRTC_2BPPV1_Format=35843,RGB_ETC1_Format=36196,RGB_ETC2_Format=37492,RGBA_ETC2_EAC_Format=37496,R11_EAC_Format=37488,SIGNED_R11_EAC_Format=37489,RG11_EAC_Format=37490,SIGNED_RG11_EAC_Format=37491,RGBA_ASTC_4x4_Format=37808,RGBA_ASTC_5x4_Format=37809,RGBA_ASTC_5x5_Format=37810,RGBA_ASTC_6x5_Format=37811,RGBA_ASTC_6x6_Format=37812,RGBA_ASTC_8x5_Format=37813,RGBA_ASTC_8x6_Format=37814,RGBA_ASTC_8x8_Format=37815,RGBA_ASTC_10x5_Format=37816,RGBA_ASTC_10x6_Format=37817,RGBA_ASTC_10x8_Format=37818,RGBA_ASTC_10x10_Format=37819,RGBA_ASTC_12x10_Format=37820,RGBA_ASTC_12x12_Format=37821,RGBA_BPTC_Format=36492,RGB_BPTC_SIGNED_Format=36494,RGB_BPTC_UNSIGNED_Format=36495,RED_RGTC1_Format=36283,SIGNED_RED_RGTC1_Format=36284,RED_GREEN_RGTC2_Format=36285,SIGNED_RED_GREEN_RGTC2_Format=36286,LoopOnce=2200,LoopRepeat=2201,LoopPingPong=2202,InterpolateDiscrete=2300,InterpolateLinear=2301,InterpolateSmooth=2302,ZeroCurvatureEnding=2400,ZeroSlopeEnding=2401,WrapAroundEnding=2402,NormalAnimationBlendMode=2500,AdditiveAnimationBlendMode=2501,TrianglesDrawMode=0,TriangleStripDrawMode=1,TriangleFanDrawMode=2,BasicDepthPacking=3200,RGBADepthPacking=3201,TangentSpaceNormalMap=0,ObjectSpaceNormalMap=1,NoColorSpace="",SRGBColorSpace="srgb",LinearSRGBColorSpace="srgb-linear",LinearTransfer="linear",SRGBTransfer="srgb",ZeroStencilOp=0,KeepStencilOp=7680,ReplaceStencilOp=7681,IncrementStencilOp=7682,DecrementStencilOp=7683,IncrementWrapStencilOp=34055,DecrementWrapStencilOp=34056,InvertStencilOp=5386,NeverStencilFunc=512,LessStencilFunc=513,EqualStencilFunc=514,LessEqualStencilFunc=515,GreaterStencilFunc=516,NotEqualStencilFunc=517,GreaterEqualStencilFunc=518,AlwaysStencilFunc=519,NeverCompare=512,LessCompare=513,EqualCompare=514,LessEqualCompare=515,GreaterCompare=516,NotEqualCompare=517,GreaterEqualCompare=518,AlwaysCompare=519,StaticDrawUsage=35044,GLSL3="300 es",WebGLCoordinateSystem=2e3,WebGPUCoordinateSystem=2001;function arrayNeedsUint32(array){for(let i=array.length-1;i>=0;--i)if(array[i]>=65535)return!0;return!1}function isTypedArray(array){return ArrayBuffer.isView(array)&&!(array instanceof DataView)}function createElementNS(name){return document.createElementNS("http://www.w3.org/1999/xhtml",name)}function createCanvasElement(){const canvas=createElementNS("canvas");return canvas.style.display="block",canvas}const _cache={};function log(...params){const message="THREE."+params.shift();console.log(message,...params)}function warn(...params){const message="THREE."+params.shift();console.warn(message,...params)}function error(...params){const message="THREE."+params.shift();console.error(message,...params)}function warnOnce(...params){const message=params.join(" ");message in _cache||(_cache[message]=!0,warn(...params))}function probeAsync(gl,sync,interval){return new Promise(function(resolve,reject){setTimeout(function probe(){switch(gl.clientWaitSync(sync,gl.SYNC_FLUSH_COMMANDS_BIT,0)){case gl.WAIT_FAILED:reject();break;case gl.TIMEOUT_EXPIRED:setTimeout(probe,interval);break;default:resolve()}},interval)})}class EventDispatcher{addEventListener(type,listener){void 0===this._listeners&&(this._listeners={});const listeners=this._listeners;void 0===listeners[type]&&(listeners[type]=[]),-1===listeners[type].indexOf(listener)&&listeners[type].push(listener)}hasEventListener(type,listener){const listeners=this._listeners;return void 0!==listeners&&void 0!==listeners[type]&&-1!==listeners[type].indexOf(listener)}removeEventListener(type,listener){const listeners=this._listeners;if(void 0===listeners)return;const listenerArray=listeners[type];if(void 0!==listenerArray){const index=listenerArray.indexOf(listener);-1!==index&&listenerArray.splice(index,1)}}dispatchEvent(event){const listeners=this._listeners;if(void 0===listeners)return;const listenerArray=listeners[event.type];if(void 0!==listenerArray){event.target=this;const array=listenerArray.slice(0);for(let i=0,l=array.length;i<l;i++)array[i].call(this,event);event.target=null}}}const _lut=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let _seed=1234567;const DEG2RAD=Math.PI/180,RAD2DEG=180/Math.PI;function generateUUID(){const d0=4294967295*Math.random()|0,d1=4294967295*Math.random()|0,d2=4294967295*Math.random()|0,d3=4294967295*Math.random()|0;return(_lut[255&d0]+_lut[d0>>8&255]+_lut[d0>>16&255]+_lut[d0>>24&255]+"-"+_lut[255&d1]+_lut[d1>>8&255]+"-"+_lut[d1>>16&15|64]+_lut[d1>>24&255]+"-"+_lut[63&d2|128]+_lut[d2>>8&255]+"-"+_lut[d2>>16&255]+_lut[d2>>24&255]+_lut[255&d3]+_lut[d3>>8&255]+_lut[d3>>16&255]+_lut[d3>>24&255]).toLowerCase()}function clamp(value,min,max){return Math.max(min,Math.min(max,value))}function euclideanModulo(n,m){return(n%m+m)%m}function lerp(x,y,t){return(1-t)*x+t*y}function denormalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return value/4294967295;case Uint16Array:return value/65535;case Uint8Array:return value/255;case Int32Array:return Math.max(value/2147483647,-1);case Int16Array:return Math.max(value/32767,-1);case Int8Array:return Math.max(value/127,-1);default:throw new Error("Invalid component type.")}}function normalize(value,array){switch(array.constructor){case Float32Array:return value;case Uint32Array:return Math.round(4294967295*value);case Uint16Array:return Math.round(65535*value);case Uint8Array:return Math.round(255*value);case Int32Array:return Math.round(2147483647*value);case Int16Array:return Math.round(32767*value);case Int8Array:return Math.round(127*value);default:throw new Error("Invalid component type.")}}const MathUtils={DEG2RAD:DEG2RAD,RAD2DEG:RAD2DEG,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:function(x,a1,a2,b1,b2){return b1+(x-a1)*(b2-b1)/(a2-a1)},inverseLerp:function(x,y,value){return x!==y?(value-x)/(y-x):0},lerp:lerp,damp:function(x,y,lambda,dt){return lerp(x,y,1-Math.exp(-lambda*dt))},pingpong:function(x,length=1){return length-Math.abs(euclideanModulo(x,2*length)-length)},smoothstep:function(x,min,max){return x<=min?0:x>=max?1:(x=(x-min)/(max-min))*x*(3-2*x)},smootherstep:function(x,min,max){return x<=min?0:x>=max?1:(x=(x-min)/(max-min))*x*x*(x*(6*x-15)+10)},randInt:function(low,high){return low+Math.floor(Math.random()*(high-low+1))},randFloat:function(low,high){return low+Math.random()*(high-low)},randFloatSpread:function(range){return range*(.5-Math.random())},seededRandom:function(s){void 0!==s&&(_seed=s);let t=_seed+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function(degrees){return degrees*DEG2RAD},radToDeg:function(radians){return radians*RAD2DEG},isPowerOfTwo:function(value){return!(value&value-1)&&0!==value},ceilPowerOfTwo:function(value){return Math.pow(2,Math.ceil(Math.log(value)/Math.LN2))},floorPowerOfTwo:function(value){return Math.pow(2,Math.floor(Math.log(value)/Math.LN2))},setQuaternionFromProperEuler:function(q,a,b,c,order){const cos=Math.cos,sin=Math.sin,c2=cos(b/2),s2=sin(b/2),c13=cos((a+c)/2),s13=sin((a+c)/2),c1_3=cos((a-c)/2),s1_3=sin((a-c)/2),c3_1=cos((c-a)/2),s3_1=sin((c-a)/2);switch(order){case"XYX":q.set(c2*s13,s2*c1_3,s2*s1_3,c2*c13);break;case"YZY":q.set(s2*s1_3,c2*s13,s2*c1_3,c2*c13);break;case"ZXZ":q.set(s2*c1_3,s2*s1_3,c2*s13,c2*c13);break;case"XZX":q.set(c2*s13,s2*s3_1,s2*c3_1,c2*c13);break;case"YXY":q.set(s2*c3_1,c2*s13,s2*s3_1,c2*c13);break;case"ZYZ":q.set(s2*s3_1,s2*c3_1,c2*s13,c2*c13);break;default:warn("MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+order)}},normalize:normalize,denormalize:denormalize};class Vector2{constructor(x=0,y=0){Vector2.prototype.isVector2=!0,this.x=x,this.y=y}get width(){return this.x}set width(value){this.x=value}get height(){return this.y}set height(value){this.y=value}set(x,y){return this.x=x,this.y=y,this}setScalar(scalar){return this.x=scalar,this.y=scalar,this}setX(x){return this.x=x,this}setY(y){return this.y=y,this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;default:throw new Error("index is out of range: "+index)}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+index)}}clone(){return new this.constructor(this.x,this.y)}copy(v){return this.x=v.x,this.y=v.y,this}add(v){return this.x+=v.x,this.y+=v.y,this}addScalar(s){return this.x+=s,this.y+=s,this}addVectors(a,b){return this.x=a.x+b.x,this.y=a.y+b.y,this}addScaledVector(v,s){return this.x+=v.x*s,this.y+=v.y*s,this}sub(v){return this.x-=v.x,this.y-=v.y,this}subScalar(s){return this.x-=s,this.y-=s,this}subVectors(a,b){return this.x=a.x-b.x,this.y=a.y-b.y,this}multiply(v){return this.x*=v.x,this.y*=v.y,this}multiplyScalar(scalar){return this.x*=scalar,this.y*=scalar,this}divide(v){return this.x/=v.x,this.y/=v.y,this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}applyMatrix3(m){const x=this.x,y=this.y,e=m.elements;return this.x=e[0]*x+e[3]*y+e[6],this.y=e[1]*x+e[4]*y+e[7],this}min(v){return this.x=Math.min(this.x,v.x),this.y=Math.min(this.y,v.y),this}max(v){return this.x=Math.max(this.x,v.x),this.y=Math.max(this.y,v.y),this}clamp(min,max){return this.x=clamp(this.x,min.x,max.x),this.y=clamp(this.y,min.y,max.y),this}clampScalar(minVal,maxVal){return this.x=clamp(this.x,minVal,maxVal),this.y=clamp(this.y,minVal,maxVal),this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(v){return this.x*v.x+this.y*v.y}cross(v){return this.x*v.y-this.y*v.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(0===denominator)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y;return dx*dx+dy*dy}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){return this.x+=(v.x-this.x)*alpha,this.y+=(v.y-this.y)*alpha,this}lerpVectors(v1,v2,alpha){return this.x=v1.x+(v2.x-v1.x)*alpha,this.y=v1.y+(v2.y-v1.y)*alpha,this}equals(v){return v.x===this.x&&v.y===this.y}fromArray(array,offset=0){return this.x=array[offset],this.y=array[offset+1],this}toArray(array=[],offset=0){return array[offset]=this.x,array[offset+1]=this.y,array}fromBufferAttribute(attribute,index){return this.x=attribute.getX(index),this.y=attribute.getY(index),this}rotateAround(center,angle){const c=Math.cos(angle),s=Math.sin(angle),x=this.x-center.x,y=this.y-center.y;return this.x=x*c-y*s+center.x,this.y=x*s+y*c+center.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class Quaternion{constructor(x=0,y=0,z=0,w=1){this.isQuaternion=!0,this._x=x,this._y=y,this._z=z,this._w=w}static slerpFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1,t){let x0=src0[srcOffset0+0],y0=src0[srcOffset0+1],z0=src0[srcOffset0+2],w0=src0[srcOffset0+3],x1=src1[srcOffset1+0],y1=src1[srcOffset1+1],z1=src1[srcOffset1+2],w1=src1[srcOffset1+3];if(t<=0)return dst[dstOffset+0]=x0,dst[dstOffset+1]=y0,dst[dstOffset+2]=z0,void(dst[dstOffset+3]=w0);if(t>=1)return dst[dstOffset+0]=x1,dst[dstOffset+1]=y1,dst[dstOffset+2]=z1,void(dst[dstOffset+3]=w1);if(w0!==w1||x0!==x1||y0!==y1||z0!==z1){let dot=x0*x1+y0*y1+z0*z1+w0*w1;dot<0&&(x1=-x1,y1=-y1,z1=-z1,w1=-w1,dot=-dot);let s=1-t;if(dot<.9995){const theta=Math.acos(dot),sin=Math.sin(theta);s=Math.sin(s*theta)/sin,x0=x0*s+x1*(t=Math.sin(t*theta)/sin),y0=y0*s+y1*t,z0=z0*s+z1*t,w0=w0*s+w1*t}else{x0=x0*s+x1*t,y0=y0*s+y1*t,z0=z0*s+z1*t,w0=w0*s+w1*t;const f=1/Math.sqrt(x0*x0+y0*y0+z0*z0+w0*w0);x0*=f,y0*=f,z0*=f,w0*=f}}dst[dstOffset]=x0,dst[dstOffset+1]=y0,dst[dstOffset+2]=z0,dst[dstOffset+3]=w0}static multiplyQuaternionsFlat(dst,dstOffset,src0,srcOffset0,src1,srcOffset1){const x0=src0[srcOffset0],y0=src0[srcOffset0+1],z0=src0[srcOffset0+2],w0=src0[srcOffset0+3],x1=src1[srcOffset1],y1=src1[srcOffset1+1],z1=src1[srcOffset1+2],w1=src1[srcOffset1+3];return dst[dstOffset]=x0*w1+w0*x1+y0*z1-z0*y1,dst[dstOffset+1]=y0*w1+w0*y1+z0*x1-x0*z1,dst[dstOffset+2]=z0*w1+w0*z1+x0*y1-y0*x1,dst[dstOffset+3]=w0*w1-x0*x1-y0*y1-z0*z1,dst}get x(){return this._x}set x(value){this._x=value,this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value,this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value,this._onChangeCallback()}get w(){return this._w}set w(value){this._w=value,this._onChangeCallback()}set(x,y,z,w){return this._x=x,this._y=y,this._z=z,this._w=w,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(quaternion){return this._x=quaternion.x,this._y=quaternion.y,this._z=quaternion.z,this._w=quaternion.w,this._onChangeCallback(),this}setFromEuler(euler,update=!0){const x=euler._x,y=euler._y,z=euler._z,order=euler._order,cos=Math.cos,sin=Math.sin,c1=cos(x/2),c2=cos(y/2),c3=cos(z/2),s1=sin(x/2),s2=sin(y/2),s3=sin(z/2);switch(order){case"XYZ":this._x=s1*c2*c3+c1*s2*s3,this._y=c1*s2*c3-s1*c2*s3,this._z=c1*c2*s3+s1*s2*c3,this._w=c1*c2*c3-s1*s2*s3;break;case"YXZ":this._x=s1*c2*c3+c1*s2*s3,this._y=c1*s2*c3-s1*c2*s3,this._z=c1*c2*s3-s1*s2*c3,this._w=c1*c2*c3+s1*s2*s3;break;case"ZXY":this._x=s1*c2*c3-c1*s2*s3,this._y=c1*s2*c3+s1*c2*s3,this._z=c1*c2*s3+s1*s2*c3,this._w=c1*c2*c3-s1*s2*s3;break;case"ZYX":this._x=s1*c2*c3-c1*s2*s3,this._y=c1*s2*c3+s1*c2*s3,this._z=c1*c2*s3-s1*s2*c3,this._w=c1*c2*c3+s1*s2*s3;break;case"YZX":this._x=s1*c2*c3+c1*s2*s3,this._y=c1*s2*c3+s1*c2*s3,this._z=c1*c2*s3-s1*s2*c3,this._w=c1*c2*c3-s1*s2*s3;break;case"XZY":this._x=s1*c2*c3-c1*s2*s3,this._y=c1*s2*c3-s1*c2*s3,this._z=c1*c2*s3+s1*s2*c3,this._w=c1*c2*c3+s1*s2*s3;break;default:warn("Quaternion: .setFromEuler() encountered an unknown order: "+order)}return!0===update&&this._onChangeCallback(),this}setFromAxisAngle(axis,angle){const halfAngle=angle/2,s=Math.sin(halfAngle);return this._x=axis.x*s,this._y=axis.y*s,this._z=axis.z*s,this._w=Math.cos(halfAngle),this._onChangeCallback(),this}setFromRotationMatrix(m){const te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10],trace=m11+m22+m33;if(trace>0){const s=.5/Math.sqrt(trace+1);this._w=.25/s,this._x=(m32-m23)*s,this._y=(m13-m31)*s,this._z=(m21-m12)*s}else if(m11>m22&&m11>m33){const s=2*Math.sqrt(1+m11-m22-m33);this._w=(m32-m23)/s,this._x=.25*s,this._y=(m12+m21)/s,this._z=(m13+m31)/s}else if(m22>m33){const s=2*Math.sqrt(1+m22-m11-m33);this._w=(m13-m31)/s,this._x=(m12+m21)/s,this._y=.25*s,this._z=(m23+m32)/s}else{const s=2*Math.sqrt(1+m33-m11-m22);this._w=(m21-m12)/s,this._x=(m13+m31)/s,this._y=(m23+m32)/s,this._z=.25*s}return this._onChangeCallback(),this}setFromUnitVectors(vFrom,vTo){let r=vFrom.dot(vTo)+1;return r<1e-8?(r=0,Math.abs(vFrom.x)>Math.abs(vFrom.z)?(this._x=-vFrom.y,this._y=vFrom.x,this._z=0,this._w=r):(this._x=0,this._y=-vFrom.z,this._z=vFrom.y,this._w=r)):(this._x=vFrom.y*vTo.z-vFrom.z*vTo.y,this._y=vFrom.z*vTo.x-vFrom.x*vTo.z,this._z=vFrom.x*vTo.y-vFrom.y*vTo.x,this._w=r),this.normalize()}angleTo(q){return 2*Math.acos(Math.abs(clamp(this.dot(q),-1,1)))}rotateTowards(q,step){const angle=this.angleTo(q);if(0===angle)return this;const t=Math.min(1,step/angle);return this.slerp(q,t),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(v){return this._x*v._x+this._y*v._y+this._z*v._z+this._w*v._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let l=this.length();return 0===l?(this._x=0,this._y=0,this._z=0,this._w=1):(l=1/l,this._x=this._x*l,this._y=this._y*l,this._z=this._z*l,this._w=this._w*l),this._onChangeCallback(),this}multiply(q){return this.multiplyQuaternions(this,q)}premultiply(q){return this.multiplyQuaternions(q,this)}multiplyQuaternions(a,b){const qax=a._x,qay=a._y,qaz=a._z,qaw=a._w,qbx=b._x,qby=b._y,qbz=b._z,qbw=b._w;return this._x=qax*qbw+qaw*qbx+qay*qbz-qaz*qby,this._y=qay*qbw+qaw*qby+qaz*qbx-qax*qbz,this._z=qaz*qbw+qaw*qbz+qax*qby-qay*qbx,this._w=qaw*qbw-qax*qbx-qay*qby-qaz*qbz,this._onChangeCallback(),this}slerp(qb,t){if(t<=0)return this;if(t>=1)return this.copy(qb);let x=qb._x,y=qb._y,z=qb._z,w=qb._w,dot=this.dot(qb);dot<0&&(x=-x,y=-y,z=-z,w=-w,dot=-dot);let s=1-t;if(dot<.9995){const theta=Math.acos(dot),sin=Math.sin(theta);s=Math.sin(s*theta)/sin,t=Math.sin(t*theta)/sin,this._x=this._x*s+x*t,this._y=this._y*s+y*t,this._z=this._z*s+z*t,this._w=this._w*s+w*t,this._onChangeCallback()}else this._x=this._x*s+x*t,this._y=this._y*s+y*t,this._z=this._z*s+z*t,this._w=this._w*s+w*t,this.normalize();return this}slerpQuaternions(qa,qb,t){return this.copy(qa).slerp(qb,t)}random(){const theta1=2*Math.PI*Math.random(),theta2=2*Math.PI*Math.random(),x0=Math.random(),r1=Math.sqrt(1-x0),r2=Math.sqrt(x0);return this.set(r1*Math.sin(theta1),r1*Math.cos(theta1),r2*Math.sin(theta2),r2*Math.cos(theta2))}equals(quaternion){return quaternion._x===this._x&&quaternion._y===this._y&&quaternion._z===this._z&&quaternion._w===this._w}fromArray(array,offset=0){return this._x=array[offset],this._y=array[offset+1],this._z=array[offset+2],this._w=array[offset+3],this._onChangeCallback(),this}toArray(array=[],offset=0){return array[offset]=this._x,array[offset+1]=this._y,array[offset+2]=this._z,array[offset+3]=this._w,array}fromBufferAttribute(attribute,index){return this._x=attribute.getX(index),this._y=attribute.getY(index),this._z=attribute.getZ(index),this._w=attribute.getW(index),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(callback){return this._onChangeCallback=callback,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(x=0,y=0,z=0){Vector3.prototype.isVector3=!0,this.x=x,this.y=y,this.z=z}set(x,y,z){return void 0===z&&(z=this.z),this.x=x,this.y=y,this.z=z,this}setScalar(scalar){return this.x=scalar,this.y=scalar,this.z=scalar,this}setX(x){return this.x=x,this}setY(y){return this.y=y,this}setZ(z){return this.z=z,this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;default:throw new Error("index is out of range: "+index)}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+index)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(v){return this.x=v.x,this.y=v.y,this.z=v.z,this}add(v){return this.x+=v.x,this.y+=v.y,this.z+=v.z,this}addScalar(s){return this.x+=s,this.y+=s,this.z+=s,this}addVectors(a,b){return this.x=a.x+b.x,this.y=a.y+b.y,this.z=a.z+b.z,this}addScaledVector(v,s){return this.x+=v.x*s,this.y+=v.y*s,this.z+=v.z*s,this}sub(v){return this.x-=v.x,this.y-=v.y,this.z-=v.z,this}subScalar(s){return this.x-=s,this.y-=s,this.z-=s,this}subVectors(a,b){return this.x=a.x-b.x,this.y=a.y-b.y,this.z=a.z-b.z,this}multiply(v){return this.x*=v.x,this.y*=v.y,this.z*=v.z,this}multiplyScalar(scalar){return this.x*=scalar,this.y*=scalar,this.z*=scalar,this}multiplyVectors(a,b){return this.x=a.x*b.x,this.y=a.y*b.y,this.z=a.z*b.z,this}applyEuler(euler){return this.applyQuaternion(_quaternion$4.setFromEuler(euler))}applyAxisAngle(axis,angle){return this.applyQuaternion(_quaternion$4.setFromAxisAngle(axis,angle))}applyMatrix3(m){const x=this.x,y=this.y,z=this.z,e=m.elements;return this.x=e[0]*x+e[3]*y+e[6]*z,this.y=e[1]*x+e[4]*y+e[7]*z,this.z=e[2]*x+e[5]*y+e[8]*z,this}applyNormalMatrix(m){return this.applyMatrix3(m).normalize()}applyMatrix4(m){const x=this.x,y=this.y,z=this.z,e=m.elements,w=1/(e[3]*x+e[7]*y+e[11]*z+e[15]);return this.x=(e[0]*x+e[4]*y+e[8]*z+e[12])*w,this.y=(e[1]*x+e[5]*y+e[9]*z+e[13])*w,this.z=(e[2]*x+e[6]*y+e[10]*z+e[14])*w,this}applyQuaternion(q){const vx=this.x,vy=this.y,vz=this.z,qx=q.x,qy=q.y,qz=q.z,qw=q.w,tx=2*(qy*vz-qz*vy),ty=2*(qz*vx-qx*vz),tz=2*(qx*vy-qy*vx);return this.x=vx+qw*tx+qy*tz-qz*ty,this.y=vy+qw*ty+qz*tx-qx*tz,this.z=vz+qw*tz+qx*ty-qy*tx,this}project(camera){return this.applyMatrix4(camera.matrixWorldInverse).applyMatrix4(camera.projectionMatrix)}unproject(camera){return this.applyMatrix4(camera.projectionMatrixInverse).applyMatrix4(camera.matrixWorld)}transformDirection(m){const x=this.x,y=this.y,z=this.z,e=m.elements;return this.x=e[0]*x+e[4]*y+e[8]*z,this.y=e[1]*x+e[5]*y+e[9]*z,this.z=e[2]*x+e[6]*y+e[10]*z,this.normalize()}divide(v){return this.x/=v.x,this.y/=v.y,this.z/=v.z,this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}min(v){return this.x=Math.min(this.x,v.x),this.y=Math.min(this.y,v.y),this.z=Math.min(this.z,v.z),this}max(v){return this.x=Math.max(this.x,v.x),this.y=Math.max(this.y,v.y),this.z=Math.max(this.z,v.z),this}clamp(min,max){return this.x=clamp(this.x,min.x,max.x),this.y=clamp(this.y,min.y,max.y),this.z=clamp(this.z,min.z,max.z),this}clampScalar(minVal,maxVal){return this.x=clamp(this.x,minVal,maxVal),this.y=clamp(this.y,minVal,maxVal),this.z=clamp(this.z,minVal,maxVal),this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(v){return this.x*v.x+this.y*v.y+this.z*v.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){return this.x+=(v.x-this.x)*alpha,this.y+=(v.y-this.y)*alpha,this.z+=(v.z-this.z)*alpha,this}lerpVectors(v1,v2,alpha){return this.x=v1.x+(v2.x-v1.x)*alpha,this.y=v1.y+(v2.y-v1.y)*alpha,this.z=v1.z+(v2.z-v1.z)*alpha,this}cross(v){return this.crossVectors(this,v)}crossVectors(a,b){const ax=a.x,ay=a.y,az=a.z,bx=b.x,by=b.y,bz=b.z;return this.x=ay*bz-az*by,this.y=az*bx-ax*bz,this.z=ax*by-ay*bx,this}projectOnVector(v){const denominator=v.lengthSq();if(0===denominator)return this.set(0,0,0);const scalar=v.dot(this)/denominator;return this.copy(v).multiplyScalar(scalar)}projectOnPlane(planeNormal){return _vector$c.copy(this).projectOnVector(planeNormal),this.sub(_vector$c)}reflect(normal){return this.sub(_vector$c.copy(normal).multiplyScalar(2*this.dot(normal)))}angleTo(v){const denominator=Math.sqrt(this.lengthSq()*v.lengthSq());if(0===denominator)return Math.PI/2;const theta=this.dot(v)/denominator;return Math.acos(clamp(theta,-1,1))}distanceTo(v){return Math.sqrt(this.distanceToSquared(v))}distanceToSquared(v){const dx=this.x-v.x,dy=this.y-v.y,dz=this.z-v.z;return dx*dx+dy*dy+dz*dz}manhattanDistanceTo(v){return Math.abs(this.x-v.x)+Math.abs(this.y-v.y)+Math.abs(this.z-v.z)}setFromSpherical(s){return this.setFromSphericalCoords(s.radius,s.phi,s.theta)}setFromSphericalCoords(radius,phi,theta){const sinPhiRadius=Math.sin(phi)*radius;return this.x=sinPhiRadius*Math.sin(theta),this.y=Math.cos(phi)*radius,this.z=sinPhiRadius*Math.cos(theta),this}setFromCylindrical(c){return this.setFromCylindricalCoords(c.radius,c.theta,c.y)}setFromCylindricalCoords(radius,theta,y){return this.x=radius*Math.sin(theta),this.y=y,this.z=radius*Math.cos(theta),this}setFromMatrixPosition(m){const e=m.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(m){const sx=this.setFromMatrixColumn(m,0).length(),sy=this.setFromMatrixColumn(m,1).length(),sz=this.setFromMatrixColumn(m,2).length();return this.x=sx,this.y=sy,this.z=sz,this}setFromMatrixColumn(m,index){return this.fromArray(m.elements,4*index)}setFromMatrix3Column(m,index){return this.fromArray(m.elements,3*index)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(c){return this.x=c.r,this.y=c.g,this.z=c.b,this}equals(v){return v.x===this.x&&v.y===this.y&&v.z===this.z}fromArray(array,offset=0){return this.x=array[offset],this.y=array[offset+1],this.z=array[offset+2],this}toArray(array=[],offset=0){return array[offset]=this.x,array[offset+1]=this.y,array[offset+2]=this.z,array}fromBufferAttribute(attribute,index){return this.x=attribute.getX(index),this.y=attribute.getY(index),this.z=attribute.getZ(index),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const theta=Math.random()*Math.PI*2,u=2*Math.random()-1,c=Math.sqrt(1-u*u);return this.x=c*Math.cos(theta),this.y=u,this.z=c*Math.sin(theta),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _vector$c=new Vector3,_quaternion$4=new Quaternion;class Matrix3{constructor(n11,n12,n13,n21,n22,n23,n31,n32,n33){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],void 0!==n11&&this.set(n11,n12,n13,n21,n22,n23,n31,n32,n33)}set(n11,n12,n13,n21,n22,n23,n31,n32,n33){const te=this.elements;return te[0]=n11,te[1]=n21,te[2]=n31,te[3]=n12,te[4]=n22,te[5]=n32,te[6]=n13,te[7]=n23,te[8]=n33,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(m){const te=this.elements,me=m.elements;return te[0]=me[0],te[1]=me[1],te[2]=me[2],te[3]=me[3],te[4]=me[4],te[5]=me[5],te[6]=me[6],te[7]=me[7],te[8]=me[8],this}extractBasis(xAxis,yAxis,zAxis){return xAxis.setFromMatrix3Column(this,0),yAxis.setFromMatrix3Column(this,1),zAxis.setFromMatrix3Column(this,2),this}setFromMatrix4(m){const me=m.elements;return this.set(me[0],me[4],me[8],me[1],me[5],me[9],me[2],me[6],me[10]),this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements,be=b.elements,te=this.elements,a11=ae[0],a12=ae[3],a13=ae[6],a21=ae[1],a22=ae[4],a23=ae[7],a31=ae[2],a32=ae[5],a33=ae[8],b11=be[0],b12=be[3],b13=be[6],b21=be[1],b22=be[4],b23=be[7],b31=be[2],b32=be[5],b33=be[8];return te[0]=a11*b11+a12*b21+a13*b31,te[3]=a11*b12+a12*b22+a13*b32,te[6]=a11*b13+a12*b23+a13*b33,te[1]=a21*b11+a22*b21+a23*b31,te[4]=a21*b12+a22*b22+a23*b32,te[7]=a21*b13+a22*b23+a23*b33,te[2]=a31*b11+a32*b21+a33*b31,te[5]=a31*b12+a32*b22+a33*b32,te[8]=a31*b13+a32*b23+a33*b33,this}multiplyScalar(s){const te=this.elements;return te[0]*=s,te[3]*=s,te[6]*=s,te[1]*=s,te[4]*=s,te[7]*=s,te[2]*=s,te[5]*=s,te[8]*=s,this}determinant(){const te=this.elements,a=te[0],b=te[1],c=te[2],d=te[3],e=te[4],f=te[5],g=te[6],h=te[7],i=te[8];return a*e*i-a*f*h-b*d*i+b*f*g+c*d*h-c*e*g}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n12=te[3],n22=te[4],n32=te[5],n13=te[6],n23=te[7],n33=te[8],t11=n33*n22-n32*n23,t12=n32*n13-n33*n12,t13=n23*n12-n22*n13,det=n11*t11+n21*t12+n31*t13;if(0===det)return this.set(0,0,0,0,0,0,0,0,0);const detInv=1/det;return te[0]=t11*detInv,te[1]=(n31*n23-n33*n21)*detInv,te[2]=(n32*n21-n31*n22)*detInv,te[3]=t12*detInv,te[4]=(n33*n11-n31*n13)*detInv,te[5]=(n31*n12-n32*n11)*detInv,te[6]=t13*detInv,te[7]=(n21*n13-n23*n11)*detInv,te[8]=(n22*n11-n21*n12)*detInv,this}transpose(){let tmp;const m=this.elements;return tmp=m[1],m[1]=m[3],m[3]=tmp,tmp=m[2],m[2]=m[6],m[6]=tmp,tmp=m[5],m[5]=m[7],m[7]=tmp,this}getNormalMatrix(matrix4){return this.setFromMatrix4(matrix4).invert().transpose()}transposeIntoArray(r){const m=this.elements;return r[0]=m[0],r[1]=m[3],r[2]=m[6],r[3]=m[1],r[4]=m[4],r[5]=m[7],r[6]=m[2],r[7]=m[5],r[8]=m[8],this}setUvTransform(tx,ty,sx,sy,rotation,cx,cy){const c=Math.cos(rotation),s=Math.sin(rotation);return this.set(sx*c,sx*s,-sx*(c*cx+s*cy)+cx+tx,-sy*s,sy*c,-sy*(-s*cx+c*cy)+cy+ty,0,0,1),this}scale(sx,sy){return this.premultiply(_m3.makeScale(sx,sy)),this}rotate(theta){return this.premultiply(_m3.makeRotation(-theta)),this}translate(tx,ty){return this.premultiply(_m3.makeTranslation(tx,ty)),this}makeTranslation(x,y){return x.isVector2?this.set(1,0,x.x,0,1,x.y,0,0,1):this.set(1,0,x,0,1,y,0,0,1),this}makeRotation(theta){const c=Math.cos(theta),s=Math.sin(theta);return this.set(c,-s,0,s,c,0,0,0,1),this}makeScale(x,y){return this.set(x,0,0,0,y,0,0,0,1),this}equals(matrix){const te=this.elements,me=matrix.elements;for(let i=0;i<9;i++)if(te[i]!==me[i])return!1;return!0}fromArray(array,offset=0){for(let i=0;i<9;i++)this.elements[i]=array[i+offset];return this}toArray(array=[],offset=0){const te=this.elements;return array[offset]=te[0],array[offset+1]=te[1],array[offset+2]=te[2],array[offset+3]=te[3],array[offset+4]=te[4],array[offset+5]=te[5],array[offset+6]=te[6],array[offset+7]=te[7],array[offset+8]=te[8],array}clone(){return(new this.constructor).fromArray(this.elements)}}const _m3=new Matrix3,LINEAR_REC709_TO_XYZ=(new Matrix3).set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),XYZ_TO_LINEAR_REC709=(new Matrix3).set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function createColorManagement(){const ColorManagement={enabled:!0,workingColorSpace:"srgb-linear",spaces:{},convert:function(color,sourceColorSpace,targetColorSpace){return!1!==this.enabled&&sourceColorSpace!==targetColorSpace&&sourceColorSpace&&targetColorSpace?("srgb"===this.spaces[sourceColorSpace].transfer&&(color.r=SRGBToLinear(color.r),color.g=SRGBToLinear(color.g),color.b=SRGBToLinear(color.b)),this.spaces[sourceColorSpace].primaries!==this.spaces[targetColorSpace].primaries&&(color.applyMatrix3(this.spaces[sourceColorSpace].toXYZ),color.applyMatrix3(this.spaces[targetColorSpace].fromXYZ)),"srgb"===this.spaces[targetColorSpace].transfer&&(color.r=LinearToSRGB(color.r),color.g=LinearToSRGB(color.g),color.b=LinearToSRGB(color.b)),color):color},workingToColorSpace:function(color,targetColorSpace){return this.convert(color,this.workingColorSpace,targetColorSpace)},colorSpaceToWorking:function(color,sourceColorSpace){return this.convert(color,sourceColorSpace,this.workingColorSpace)},getPrimaries:function(colorSpace){return this.spaces[colorSpace].primaries},getTransfer:function(colorSpace){return""===colorSpace?"linear":this.spaces[colorSpace].transfer},getToneMappingMode:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(target,colorSpace=this.workingColorSpace){return target.fromArray(this.spaces[colorSpace].luminanceCoefficients)},define:function(colorSpaces){Object.assign(this.spaces,colorSpaces)},_getMatrix:function(targetMatrix,sourceColorSpace,targetColorSpace){return targetMatrix.copy(this.spaces[sourceColorSpace].toXYZ).multiply(this.spaces[targetColorSpace].fromXYZ)},_getDrawingBufferColorSpace:function(colorSpace){return this.spaces[colorSpace].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(colorSpace=this.workingColorSpace){return this.spaces[colorSpace].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(color,targetColorSpace){return warnOnce("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),ColorManagement.workingToColorSpace(color,targetColorSpace)},toWorkingColorSpace:function(color,sourceColorSpace){return warnOnce("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),ColorManagement.colorSpaceToWorking(color,sourceColorSpace)}},REC709_PRIMARIES=[.64,.33,.3,.6,.15,.06],REC709_LUMINANCE_COEFFICIENTS=[.2126,.7152,.0722],D65=[.3127,.329];return ColorManagement.define({[LinearSRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:"linear",toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,workingColorSpaceConfig:{unpackColorSpace:"srgb"},outputColorSpaceConfig:{drawingBufferColorSpace:"srgb"}},[SRGBColorSpace]:{primaries:REC709_PRIMARIES,whitePoint:D65,transfer:"srgb",toXYZ:LINEAR_REC709_TO_XYZ,fromXYZ:XYZ_TO_LINEAR_REC709,luminanceCoefficients:REC709_LUMINANCE_COEFFICIENTS,outputColorSpaceConfig:{drawingBufferColorSpace:"srgb"}}}),ColorManagement}const ColorManagement=createColorManagement();function SRGBToLinear(c){return c<.04045?.0773993808*c:Math.pow(.9478672986*c+.0521327014,2.4)}function LinearToSRGB(c){return c<.0031308?12.92*c:1.055*Math.pow(c,.41666)-.055}let _canvas;class ImageUtils{static getDataURL(image,type="image/png"){if(/^data:/i.test(image.src))return image.src;if("undefined"==typeof HTMLCanvasElement)return image.src;let canvas;if(image instanceof HTMLCanvasElement)canvas=image;else{void 0===_canvas&&(_canvas=createElementNS("canvas")),_canvas.width=image.width,_canvas.height=image.height;const context=_canvas.getContext("2d");image instanceof ImageData?context.putImageData(image,0,0):context.drawImage(image,0,0,image.width,image.height),canvas=_canvas}return canvas.toDataURL(type)}static sRGBToLinear(image){if("undefined"!=typeof HTMLImageElement&&image instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&image instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&image instanceof ImageBitmap){const canvas=createElementNS("canvas");canvas.width=image.width,canvas.height=image.height;const context=canvas.getContext("2d");context.drawImage(image,0,0,image.width,image.height);const imageData=context.getImageData(0,0,image.width,image.height),data=imageData.data;for(let i=0;i<data.length;i++)data[i]=255*SRGBToLinear(data[i]/255);return context.putImageData(imageData,0,0),canvas}if(image.data){const data=image.data.slice(0);for(let i=0;i<data.length;i++)data[i]=data instanceof Uint8Array||data instanceof Uint8ClampedArray?Math.floor(255*SRGBToLinear(data[i]/255)):SRGBToLinear(data[i]);return{data:data,width:image.width,height:image.height}}return warn("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),image}}let _sourceId=0;class Source{constructor(data=null){this.isSource=!0,Object.defineProperty(this,"id",{value:_sourceId++}),this.uuid=generateUUID(),this.data=data,this.dataReady=!0,this.version=0}getSize(target){const data=this.data;return"undefined"!=typeof HTMLVideoElement&&data instanceof HTMLVideoElement?target.set(data.videoWidth,data.videoHeight,0):"undefined"!=typeof VideoFrame&&data instanceof VideoFrame?target.set(data.displayHeight,data.displayWidth,0):null!==data?target.set(data.width,data.height,data.depth||0):target.set(0,0,0),target}set needsUpdate(value){!0===value&&this.version++}toJSON(meta){const isRootObject=void 0===meta||"string"==typeof meta;if(!isRootObject&&void 0!==meta.images[this.uuid])return meta.images[this.uuid];const output={uuid:this.uuid,url:""},data=this.data;if(null!==data){let url;if(Array.isArray(data)){url=[];for(let i=0,l=data.length;i<l;i++)url.push(serializeImage(data[i].isDataTexture?data[i].image:data[i]))}else url=serializeImage(data);output.url=url}return isRootObject||(meta.images[this.uuid]=output),output}}function serializeImage(image){return"undefined"!=typeof HTMLImageElement&&image instanceof HTMLImageElement||"undefined"!=typeof HTMLCanvasElement&&image instanceof HTMLCanvasElement||"undefined"!=typeof ImageBitmap&&image instanceof ImageBitmap?ImageUtils.getDataURL(image):image.data?{data:Array.from(image.data),width:image.width,height:image.height,type:image.data.constructor.name}:(warn("Texture: Unable to serialize Texture."),{})}let _textureId=0;const _tempVec3=new Vector3;class Texture extends EventDispatcher{constructor(image=Texture.DEFAULT_IMAGE,mapping=Texture.DEFAULT_MAPPING,wrapS=1001,wrapT=1001,magFilter=1006,minFilter=1008,format=1023,type=1009,anisotropy=Texture.DEFAULT_ANISOTROPY,colorSpace=""){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:_textureId++}),this.uuid=generateUUID(),this.name="",this.source=new Source(image),this.mipmaps=[],this.mapping=mapping,this.channel=0,this.wrapS=wrapS,this.wrapT=wrapT,this.magFilter=magFilter,this.minFilter=minFilter,this.anisotropy=anisotropy,this.format=format,this.internalFormat=null,this.type=type,this.offset=new Vector2(0,0),this.repeat=new Vector2(1,1),this.center=new Vector2(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Matrix3,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=colorSpace,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(image&&image.depth&&image.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(_tempVec3).x}get height(){return this.source.getSize(_tempVec3).y}get depth(){return this.source.getSize(_tempVec3).z}get image(){return this.source.data}set image(value=null){this.source.data=value}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(start,count){this.updateRanges.push({start:start,count:count})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return(new this.constructor).copy(this)}copy(source){return this.name=source.name,this.source=source.source,this.mipmaps=source.mipmaps.slice(0),this.mapping=source.mapping,this.channel=source.channel,this.wrapS=source.wrapS,this.wrapT=source.wrapT,this.magFilter=source.magFilter,this.minFilter=source.minFilter,this.anisotropy=source.anisotropy,this.format=source.format,this.internalFormat=source.internalFormat,this.type=source.type,this.offset.copy(source.offset),this.repeat.copy(source.repeat),this.center.copy(source.center),this.rotation=source.rotation,this.matrixAutoUpdate=source.matrixAutoUpdate,this.matrix.copy(source.matrix),this.generateMipmaps=source.generateMipmaps,this.premultiplyAlpha=source.premultiplyAlpha,this.flipY=source.flipY,this.unpackAlignment=source.unpackAlignment,this.colorSpace=source.colorSpace,this.renderTarget=source.renderTarget,this.isRenderTargetTexture=source.isRenderTargetTexture,this.isArrayTexture=source.isArrayTexture,this.userData=JSON.parse(JSON.stringify(source.userData)),this.needsUpdate=!0,this}setValues(values){for(const key in values){const newValue=values[key];if(void 0===newValue){warn(`Texture.setValues(): parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];void 0!==currentValue?currentValue&&newValue&&currentValue.isVector2&&newValue.isVector2||currentValue&&newValue&&currentValue.isVector3&&newValue.isVector3||currentValue&&newValue&&currentValue.isMatrix3&&newValue.isMatrix3?currentValue.copy(newValue):this[key]=newValue:warn(`Texture.setValues(): property '${key}' does not exist.`)}}toJSON(meta){const isRootObject=void 0===meta||"string"==typeof meta;if(!isRootObject&&void 0!==meta.textures[this.uuid])return meta.textures[this.uuid];const output={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(meta).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(output.userData=this.userData),isRootObject||(meta.textures[this.uuid]=output),output}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(uv){if(300!==this.mapping)return uv;if(uv.applyMatrix3(this.matrix),uv.x<0||uv.x>1)switch(this.wrapS){case 1e3:uv.x=uv.x-Math.floor(uv.x);break;case 1001:uv.x=uv.x<0?0:1;break;case 1002:uv.x=1===Math.abs(Math.floor(uv.x)%2)?Math.ceil(uv.x)-uv.x:uv.x-Math.floor(uv.x)}if(uv.y<0||uv.y>1)switch(this.wrapT){case 1e3:uv.y=uv.y-Math.floor(uv.y);break;case 1001:uv.y=uv.y<0?0:1;break;case 1002:uv.y=1===Math.abs(Math.floor(uv.y)%2)?Math.ceil(uv.y)-uv.y:uv.y-Math.floor(uv.y)}return this.flipY&&(uv.y=1-uv.y),uv}set needsUpdate(value){!0===value&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(value){!0===value&&this.pmremVersion++}}Texture.DEFAULT_IMAGE=null,Texture.DEFAULT_MAPPING=300,Texture.DEFAULT_ANISOTROPY=1;class Vector4{constructor(x=0,y=0,z=0,w=1){Vector4.prototype.isVector4=!0,this.x=x,this.y=y,this.z=z,this.w=w}get width(){return this.z}set width(value){this.z=value}get height(){return this.w}set height(value){this.w=value}set(x,y,z,w){return this.x=x,this.y=y,this.z=z,this.w=w,this}setScalar(scalar){return this.x=scalar,this.y=scalar,this.z=scalar,this.w=scalar,this}setX(x){return this.x=x,this}setY(y){return this.y=y,this}setZ(z){return this.z=z,this}setW(w){return this.w=w,this}setComponent(index,value){switch(index){case 0:this.x=value;break;case 1:this.y=value;break;case 2:this.z=value;break;case 3:this.w=value;break;default:throw new Error("index is out of range: "+index)}return this}getComponent(index){switch(index){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+index)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(v){return this.x=v.x,this.y=v.y,this.z=v.z,this.w=void 0!==v.w?v.w:1,this}add(v){return this.x+=v.x,this.y+=v.y,this.z+=v.z,this.w+=v.w,this}addScalar(s){return this.x+=s,this.y+=s,this.z+=s,this.w+=s,this}addVectors(a,b){return this.x=a.x+b.x,this.y=a.y+b.y,this.z=a.z+b.z,this.w=a.w+b.w,this}addScaledVector(v,s){return this.x+=v.x*s,this.y+=v.y*s,this.z+=v.z*s,this.w+=v.w*s,this}sub(v){return this.x-=v.x,this.y-=v.y,this.z-=v.z,this.w-=v.w,this}subScalar(s){return this.x-=s,this.y-=s,this.z-=s,this.w-=s,this}subVectors(a,b){return this.x=a.x-b.x,this.y=a.y-b.y,this.z=a.z-b.z,this.w=a.w-b.w,this}multiply(v){return this.x*=v.x,this.y*=v.y,this.z*=v.z,this.w*=v.w,this}multiplyScalar(scalar){return this.x*=scalar,this.y*=scalar,this.z*=scalar,this.w*=scalar,this}applyMatrix4(m){const x=this.x,y=this.y,z=this.z,w=this.w,e=m.elements;return this.x=e[0]*x+e[4]*y+e[8]*z+e[12]*w,this.y=e[1]*x+e[5]*y+e[9]*z+e[13]*w,this.z=e[2]*x+e[6]*y+e[10]*z+e[14]*w,this.w=e[3]*x+e[7]*y+e[11]*z+e[15]*w,this}divide(v){return this.x/=v.x,this.y/=v.y,this.z/=v.z,this.w/=v.w,this}divideScalar(scalar){return this.multiplyScalar(1/scalar)}setAxisAngleFromQuaternion(q){this.w=2*Math.acos(q.w);const s=Math.sqrt(1-q.w*q.w);return s<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=q.x/s,this.y=q.y/s,this.z=q.z/s),this}setAxisAngleFromRotationMatrix(m){let angle,x,y,z;const te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10];if(Math.abs(m12-m21)<.01&&Math.abs(m13-m31)<.01&&Math.abs(m23-m32)<.01){if(Math.abs(m12+m21)<.1&&Math.abs(m13+m31)<.1&&Math.abs(m23+m32)<.1&&Math.abs(m11+m22+m33-3)<.1)return this.set(1,0,0,0),this;angle=Math.PI;const xx=(m11+1)/2,yy=(m22+1)/2,zz=(m33+1)/2,xy=(m12+m21)/4,xz=(m13+m31)/4,yz=(m23+m32)/4;return xx>yy&&xx>zz?xx<.01?(x=0,y=.707106781,z=.707106781):(x=Math.sqrt(xx),y=xy/x,z=xz/x):yy>zz?yy<.01?(x=.707106781,y=0,z=.707106781):(y=Math.sqrt(yy),x=xy/y,z=yz/y):zz<.01?(x=.707106781,y=.707106781,z=0):(z=Math.sqrt(zz),x=xz/z,y=yz/z),this.set(x,y,z,angle),this}let s=Math.sqrt((m32-m23)*(m32-m23)+(m13-m31)*(m13-m31)+(m21-m12)*(m21-m12));return Math.abs(s)<.001&&(s=1),this.x=(m32-m23)/s,this.y=(m13-m31)/s,this.z=(m21-m12)/s,this.w=Math.acos((m11+m22+m33-1)/2),this}setFromMatrixPosition(m){const e=m.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(v){return this.x=Math.min(this.x,v.x),this.y=Math.min(this.y,v.y),this.z=Math.min(this.z,v.z),this.w=Math.min(this.w,v.w),this}max(v){return this.x=Math.max(this.x,v.x),this.y=Math.max(this.y,v.y),this.z=Math.max(this.z,v.z),this.w=Math.max(this.w,v.w),this}clamp(min,max){return this.x=clamp(this.x,min.x,max.x),this.y=clamp(this.y,min.y,max.y),this.z=clamp(this.z,min.z,max.z),this.w=clamp(this.w,min.w,max.w),this}clampScalar(minVal,maxVal){return this.x=clamp(this.x,minVal,maxVal),this.y=clamp(this.y,minVal,maxVal),this.z=clamp(this.z,minVal,maxVal),this.w=clamp(this.w,minVal,maxVal),this}clampLength(min,max){const length=this.length();return this.divideScalar(length||1).multiplyScalar(clamp(length,min,max))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(v){return this.x*v.x+this.y*v.y+this.z*v.z+this.w*v.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(length){return this.normalize().multiplyScalar(length)}lerp(v,alpha){return this.x+=(v.x-this.x)*alpha,this.y+=(v.y-this.y)*alpha,this.z+=(v.z-this.z)*alpha,this.w+=(v.w-this.w)*alpha,this}lerpVectors(v1,v2,alpha){return this.x=v1.x+(v2.x-v1.x)*alpha,this.y=v1.y+(v2.y-v1.y)*alpha,this.z=v1.z+(v2.z-v1.z)*alpha,this.w=v1.w+(v2.w-v1.w)*alpha,this}equals(v){return v.x===this.x&&v.y===this.y&&v.z===this.z&&v.w===this.w}fromArray(array,offset=0){return this.x=array[offset],this.y=array[offset+1],this.z=array[offset+2],this.w=array[offset+3],this}toArray(array=[],offset=0){return array[offset]=this.x,array[offset+1]=this.y,array[offset+2]=this.z,array[offset+3]=this.w,array}fromBufferAttribute(attribute,index){return this.x=attribute.getX(index),this.y=attribute.getY(index),this.z=attribute.getZ(index),this.w=attribute.getW(index),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class RenderTarget extends EventDispatcher{constructor(width=1,height=1,options={}){super(),options=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:1006,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},options),this.isRenderTarget=!0,this.width=width,this.height=height,this.depth=options.depth,this.scissor=new Vector4(0,0,width,height),this.scissorTest=!1,this.viewport=new Vector4(0,0,width,height);const texture=new Texture({width:width,height:height,depth:options.depth});this.textures=[];const count=options.count;for(let i=0;i<count;i++)this.textures[i]=texture.clone(),this.textures[i].isRenderTargetTexture=!0,this.textures[i].renderTarget=this;this._setTextureOptions(options),this.depthBuffer=options.depthBuffer,this.stencilBuffer=options.stencilBuffer,this.resolveDepthBuffer=options.resolveDepthBuffer,this.resolveStencilBuffer=options.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=options.depthTexture,this.samples=options.samples,this.multiview=options.multiview}_setTextureOptions(options={}){const values={minFilter:1006,generateMipmaps:!1,flipY:!1,internalFormat:null};void 0!==options.mapping&&(values.mapping=options.mapping),void 0!==options.wrapS&&(values.wrapS=options.wrapS),void 0!==options.wrapT&&(values.wrapT=options.wrapT),void 0!==options.wrapR&&(values.wrapR=options.wrapR),void 0!==options.magFilter&&(values.magFilter=options.magFilter),void 0!==options.minFilter&&(values.minFilter=options.minFilter),void 0!==options.format&&(values.format=options.format),void 0!==options.type&&(values.type=options.type),void 0!==options.anisotropy&&(values.anisotropy=options.anisotropy),void 0!==options.colorSpace&&(values.colorSpace=options.colorSpace),void 0!==options.flipY&&(values.flipY=options.flipY),void 0!==options.generateMipmaps&&(values.generateMipmaps=options.generateMipmaps),void 0!==options.internalFormat&&(values.internalFormat=options.internalFormat);for(let i=0;i<this.textures.length;i++)this.textures[i].setValues(values)}get texture(){return this.textures[0]}set texture(value){this.textures[0]=value}set depthTexture(current){null!==this._depthTexture&&(this._depthTexture.renderTarget=null),null!==current&&(current.renderTarget=this),this._depthTexture=current}get depthTexture(){return this._depthTexture}setSize(width,height,depth=1){if(this.width!==width||this.height!==height||this.depth!==depth){this.width=width,this.height=height,this.depth=depth;for(let i=0,il=this.textures.length;i<il;i++)this.textures[i].image.width=width,this.textures[i].image.height=height,this.textures[i].image.depth=depth,!0!==this.textures[i].isData3DTexture&&(this.textures[i].isArrayTexture=this.textures[i].image.depth>1);this.dispose()}this.viewport.set(0,0,width,height),this.scissor.set(0,0,width,height)}clone(){return(new this.constructor).copy(this)}copy(source){this.width=source.width,this.height=source.height,this.depth=source.depth,this.scissor.copy(source.scissor),this.scissorTest=source.scissorTest,this.viewport.copy(source.viewport),this.textures.length=0;for(let i=0,il=source.textures.length;i<il;i++){this.textures[i]=source.textures[i].clone(),this.textures[i].isRenderTargetTexture=!0,this.textures[i].renderTarget=this;const image=Object.assign({},source.textures[i].image);this.textures[i].source=new Source(image)}return this.depthBuffer=source.depthBuffer,this.stencilBuffer=source.stencilBuffer,this.resolveDepthBuffer=source.resolveDepthBuffer,this.resolveStencilBuffer=source.resolveStencilBuffer,null!==source.depthTexture&&(this.depthTexture=source.depthTexture.clone()),this.samples=source.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class WebGLRenderTarget extends RenderTarget{constructor(width=1,height=1,options={}){super(width,height,options),this.isWebGLRenderTarget=!0}}class DataArrayTexture extends Texture{constructor(data=null,width=1,height=1,depth=1){super(null),this.isDataArrayTexture=!0,this.image={data:data,width:width,height:height,depth:depth},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(layerIndex){this.layerUpdates.add(layerIndex)}clearLayerUpdates(){this.layerUpdates.clear()}}class Data3DTexture extends Texture{constructor(data=null,width=1,height=1,depth=1){super(null),this.isData3DTexture=!0,this.image={data:data,width:width,height:height,depth:depth},this.magFilter=1003,this.minFilter=1003,this.wrapR=1001,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class Box3{constructor(min=new Vector3(1/0,1/0,1/0),max=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=min,this.max=max}set(min,max){return this.min.copy(min),this.max.copy(max),this}setFromArray(array){this.makeEmpty();for(let i=0,il=array.length;i<il;i+=3)this.expandByPoint(_vector$b.fromArray(array,i));return this}setFromBufferAttribute(attribute){this.makeEmpty();for(let i=0,il=attribute.count;i<il;i++)this.expandByPoint(_vector$b.fromBufferAttribute(attribute,i));return this}setFromPoints(points){this.makeEmpty();for(let i=0,il=points.length;i<il;i++)this.expandByPoint(points[i]);return this}setFromCenterAndSize(center,size){const halfSize=_vector$b.copy(size).multiplyScalar(.5);return this.min.copy(center).sub(halfSize),this.max.copy(center).add(halfSize),this}setFromObject(object,precise=!1){return this.makeEmpty(),this.expandByObject(object,precise)}clone(){return(new this.constructor).copy(this)}copy(box){return this.min.copy(box.min),this.max.copy(box.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(target){return this.isEmpty()?target.set(0,0,0):target.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(target){return this.isEmpty()?target.set(0,0,0):target.subVectors(this.max,this.min)}expandByPoint(point){return this.min.min(point),this.max.max(point),this}expandByVector(vector){return this.min.sub(vector),this.max.add(vector),this}expandByScalar(scalar){return this.min.addScalar(-scalar),this.max.addScalar(scalar),this}expandByObject(object,precise=!1){object.updateWorldMatrix(!1,!1);const geometry=object.geometry;if(void 0!==geometry){const positionAttribute=geometry.getAttribute("position");if(!0===precise&&void 0!==positionAttribute&&!0!==object.isInstancedMesh)for(let i=0,l=positionAttribute.count;i<l;i++)!0===object.isMesh?object.getVertexPosition(i,_vector$b):_vector$b.fromBufferAttribute(positionAttribute,i),_vector$b.applyMatrix4(object.matrixWorld),this.expandByPoint(_vector$b);else void 0!==object.boundingBox?(null===object.boundingBox&&object.computeBoundingBox(),_box$4.copy(object.boundingBox)):(null===geometry.boundingBox&&geometry.computeBoundingBox(),_box$4.copy(geometry.boundingBox)),_box$4.applyMatrix4(object.matrixWorld),this.union(_box$4)}const children=object.children;for(let i=0,l=children.length;i<l;i++)this.expandByObject(children[i],precise);return this}containsPoint(point){return point.x>=this.min.x&&point.x<=this.max.x&&point.y>=this.min.y&&point.y<=this.max.y&&point.z>=this.min.z&&point.z<=this.max.z}containsBox(box){return this.min.x<=box.min.x&&box.max.x<=this.max.x&&this.min.y<=box.min.y&&box.max.y<=this.max.y&&this.min.z<=box.min.z&&box.max.z<=this.max.z}getParameter(point,target){return target.set((point.x-this.min.x)/(this.max.x-this.min.x),(point.y-this.min.y)/(this.max.y-this.min.y),(point.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(box){return box.max.x>=this.min.x&&box.min.x<=this.max.x&&box.max.y>=this.min.y&&box.min.y<=this.max.y&&box.max.z>=this.min.z&&box.min.z<=this.max.z}intersectsSphere(sphere){return this.clampPoint(sphere.center,_vector$b),_vector$b.distanceToSquared(sphere.center)<=sphere.radius*sphere.radius}intersectsPlane(plane){let min,max;return plane.normal.x>0?(min=plane.normal.x*this.min.x,max=plane.normal.x*this.max.x):(min=plane.normal.x*this.max.x,max=plane.normal.x*this.min.x),plane.normal.y>0?(min+=plane.normal.y*this.min.y,max+=plane.normal.y*this.max.y):(min+=plane.normal.y*this.max.y,max+=plane.normal.y*this.min.y),plane.normal.z>0?(min+=plane.normal.z*this.min.z,max+=plane.normal.z*this.max.z):(min+=plane.normal.z*this.max.z,max+=plane.normal.z*this.min.z),min<=-plane.constant&&max>=-plane.constant}intersectsTriangle(triangle){if(this.isEmpty())return!1;this.getCenter(_center),_extents.subVectors(this.max,_center),_v0$2.subVectors(triangle.a,_center),_v1$7.subVectors(triangle.b,_center),_v2$4.subVectors(triangle.c,_center),_f0.subVectors(_v1$7,_v0$2),_f1.subVectors(_v2$4,_v1$7),_f2.subVectors(_v0$2,_v2$4);let axes=[0,-_f0.z,_f0.y,0,-_f1.z,_f1.y,0,-_f2.z,_f2.y,_f0.z,0,-_f0.x,_f1.z,0,-_f1.x,_f2.z,0,-_f2.x,-_f0.y,_f0.x,0,-_f1.y,_f1.x,0,-_f2.y,_f2.x,0];return!!satForAxes(axes,_v0$2,_v1$7,_v2$4,_extents)&&(axes=[1,0,0,0,1,0,0,0,1],!!satForAxes(axes,_v0$2,_v1$7,_v2$4,_extents)&&(_triangleNormal.crossVectors(_f0,_f1),axes=[_triangleNormal.x,_triangleNormal.y,_triangleNormal.z],satForAxes(axes,_v0$2,_v1$7,_v2$4,_extents)))}clampPoint(point,target){return target.copy(point).clamp(this.min,this.max)}distanceToPoint(point){return this.clampPoint(point,_vector$b).distanceTo(point)}getBoundingSphere(target){return this.isEmpty()?target.makeEmpty():(this.getCenter(target.center),target.radius=.5*this.getSize(_vector$b).length()),target}intersect(box){return this.min.max(box.min),this.max.min(box.max),this.isEmpty()&&this.makeEmpty(),this}union(box){return this.min.min(box.min),this.max.max(box.max),this}applyMatrix4(matrix){return this.isEmpty()||(_points[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(matrix),_points[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(matrix),_points[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(matrix),_points[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(matrix),_points[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(matrix),_points[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(matrix),_points[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(matrix),_points[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(matrix),this.setFromPoints(_points)),this}translate(offset){return this.min.add(offset),this.max.add(offset),this}equals(box){return box.min.equals(this.min)&&box.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(json){return this.min.fromArray(json.min),this.max.fromArray(json.max),this}}const _points=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],_vector$b=new Vector3,_box$4=new Box3,_v0$2=new Vector3,_v1$7=new Vector3,_v2$4=new Vector3,_f0=new Vector3,_f1=new Vector3,_f2=new Vector3,_center=new Vector3,_extents=new Vector3,_triangleNormal=new Vector3,_testAxis=new Vector3;function satForAxes(axes,v0,v1,v2,extents){for(let i=0,j=axes.length-3;i<=j;i+=3){_testAxis.fromArray(axes,i);const r=extents.x*Math.abs(_testAxis.x)+extents.y*Math.abs(_testAxis.y)+extents.z*Math.abs(_testAxis.z),p0=v0.dot(_testAxis),p1=v1.dot(_testAxis),p2=v2.dot(_testAxis);if(Math.max(-Math.max(p0,p1,p2),Math.min(p0,p1,p2))>r)return!1}return!0}const _box$3=new Box3,_v1$6=new Vector3,_v2$3=new Vector3;class Sphere{constructor(center=new Vector3,radius=-1){this.isSphere=!0,this.center=center,this.radius=radius}set(center,radius){return this.center.copy(center),this.radius=radius,this}setFromPoints(points,optionalCenter){const center=this.center;void 0!==optionalCenter?center.copy(optionalCenter):_box$3.setFromPoints(points).getCenter(center);let maxRadiusSq=0;for(let i=0,il=points.length;i<il;i++)maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(points[i]));return this.radius=Math.sqrt(maxRadiusSq),this}copy(sphere){return this.center.copy(sphere.center),this.radius=sphere.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(point){return point.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(point){return point.distanceTo(this.center)-this.radius}intersectsSphere(sphere){const radiusSum=this.radius+sphere.radius;return sphere.center.distanceToSquared(this.center)<=radiusSum*radiusSum}intersectsBox(box){return box.intersectsSphere(this)}intersectsPlane(plane){return Math.abs(plane.distanceToPoint(this.center))<=this.radius}clampPoint(point,target){const deltaLengthSq=this.center.distanceToSquared(point);return target.copy(point),deltaLengthSq>this.radius*this.radius&&(target.sub(this.center).normalize(),target.multiplyScalar(this.radius).add(this.center)),target}getBoundingBox(target){return this.isEmpty()?(target.makeEmpty(),target):(target.set(this.center,this.center),target.expandByScalar(this.radius),target)}applyMatrix4(matrix){return this.center.applyMatrix4(matrix),this.radius=this.radius*matrix.getMaxScaleOnAxis(),this}translate(offset){return this.center.add(offset),this}expandByPoint(point){if(this.isEmpty())return this.center.copy(point),this.radius=0,this;_v1$6.subVectors(point,this.center);const lengthSq=_v1$6.lengthSq();if(lengthSq>this.radius*this.radius){const length=Math.sqrt(lengthSq),delta=.5*(length-this.radius);this.center.addScaledVector(_v1$6,delta/length),this.radius+=delta}return this}union(sphere){return sphere.isEmpty()?this:this.isEmpty()?(this.copy(sphere),this):(!0===this.center.equals(sphere.center)?this.radius=Math.max(this.radius,sphere.radius):(_v2$3.subVectors(sphere.center,this.center).setLength(sphere.radius),this.expandByPoint(_v1$6.copy(sphere.center).add(_v2$3)),this.expandByPoint(_v1$6.copy(sphere.center).sub(_v2$3))),this)}equals(sphere){return sphere.center.equals(this.center)&&sphere.radius===this.radius}clone(){return(new this.constructor).copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(json){return this.radius=json.radius,this.center.fromArray(json.center),this}}const _vector$a=new Vector3,_segCenter=new Vector3,_segDir=new Vector3,_diff=new Vector3,_edge1=new Vector3,_edge2=new Vector3,_normal$1=new Vector3;class Ray{constructor(origin=new Vector3,direction=new Vector3(0,0,-1)){this.origin=origin,this.direction=direction}set(origin,direction){return this.origin.copy(origin),this.direction.copy(direction),this}copy(ray){return this.origin.copy(ray.origin),this.direction.copy(ray.direction),this}at(t,target){return target.copy(this.origin).addScaledVector(this.direction,t)}lookAt(v){return this.direction.copy(v).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,_vector$a)),this}closestPointToPoint(point,target){target.subVectors(point,this.origin);const directionDistance=target.dot(this.direction);return directionDistance<0?target.copy(this.origin):target.copy(this.origin).addScaledVector(this.direction,directionDistance)}distanceToPoint(point){return Math.sqrt(this.distanceSqToPoint(point))}distanceSqToPoint(point){const directionDistance=_vector$a.subVectors(point,this.origin).dot(this.direction);return directionDistance<0?this.origin.distanceToSquared(point):(_vector$a.copy(this.origin).addScaledVector(this.direction,directionDistance),_vector$a.distanceToSquared(point))}distanceSqToSegment(v0,v1,optionalPointOnRay,optionalPointOnSegment){_segCenter.copy(v0).add(v1).multiplyScalar(.5),_segDir.copy(v1).sub(v0).normalize(),_diff.copy(this.origin).sub(_segCenter);const segExtent=.5*v0.distanceTo(v1),a01=-this.direction.dot(_segDir),b0=_diff.dot(this.direction),b1=-_diff.dot(_segDir),c=_diff.lengthSq(),det=Math.abs(1-a01*a01);let s0,s1,sqrDist,extDet;if(det>0)if(s0=a01*b1-b0,s1=a01*b0-b1,extDet=segExtent*det,s0>=0)if(s1>=-extDet)if(s1<=extDet){const invDet=1/det;s0*=invDet,s1*=invDet,sqrDist=s0*(s0+a01*s1+2*b0)+s1*(a01*s0+s1+2*b1)+c}else s1=segExtent,s0=Math.max(0,-(a01*s1+b0)),sqrDist=-s0*s0+s1*(s1+2*b1)+c;else s1=-segExtent,s0=Math.max(0,-(a01*s1+b0)),sqrDist=-s0*s0+s1*(s1+2*b1)+c;else s1<=-extDet?(s0=Math.max(0,-(-a01*segExtent+b0)),s1=s0>0?-segExtent:Math.min(Math.max(-segExtent,-b1),segExtent),sqrDist=-s0*s0+s1*(s1+2*b1)+c):s1<=extDet?(s0=0,s1=Math.min(Math.max(-segExtent,-b1),segExtent),sqrDist=s1*(s1+2*b1)+c):(s0=Math.max(0,-(a01*segExtent+b0)),s1=s0>0?segExtent:Math.min(Math.max(-segExtent,-b1),segExtent),sqrDist=-s0*s0+s1*(s1+2*b1)+c);else s1=a01>0?-segExtent:segExtent,s0=Math.max(0,-(a01*s1+b0)),sqrDist=-s0*s0+s1*(s1+2*b1)+c;return optionalPointOnRay&&optionalPointOnRay.copy(this.origin).addScaledVector(this.direction,s0),optionalPointOnSegment&&optionalPointOnSegment.copy(_segCenter).addScaledVector(_segDir,s1),sqrDist}intersectSphere(sphere,target){_vector$a.subVectors(sphere.center,this.origin);const tca=_vector$a.dot(this.direction),d2=_vector$a.dot(_vector$a)-tca*tca,radius2=sphere.radius*sphere.radius;if(d2>radius2)return null;const thc=Math.sqrt(radius2-d2),t0=tca-thc,t1=tca+thc;return t1<0?null:this.at(t0<0?t1:t0,target)}intersectsSphere(sphere){return!(sphere.radius<0)&&this.distanceSqToPoint(sphere.center)<=sphere.radius*sphere.radius}distanceToPlane(plane){const denominator=plane.normal.dot(this.direction);if(0===denominator)return 0===plane.distanceToPoint(this.origin)?0:null;const t=-(this.origin.dot(plane.normal)+plane.constant)/denominator;return t>=0?t:null}intersectPlane(plane,target){const t=this.distanceToPlane(plane);return null===t?null:this.at(t,target)}intersectsPlane(plane){const distToPoint=plane.distanceToPoint(this.origin);return 0===distToPoint||plane.normal.dot(this.direction)*distToPoint<0}intersectBox(box,target){let tmin,tmax,tymin,tymax,tzmin,tzmax;const invdirx=1/this.direction.x,invdiry=1/this.direction.y,invdirz=1/this.direction.z,origin=this.origin;return invdirx>=0?(tmin=(box.min.x-origin.x)*invdirx,tmax=(box.max.x-origin.x)*invdirx):(tmin=(box.max.x-origin.x)*invdirx,tmax=(box.min.x-origin.x)*invdirx),invdiry>=0?(tymin=(box.min.y-origin.y)*invdiry,tymax=(box.max.y-origin.y)*invdiry):(tymin=(box.max.y-origin.y)*invdiry,tymax=(box.min.y-origin.y)*invdiry),tmin>tymax||tymin>tmax?null:((tymin>tmin||isNaN(tmin))&&(tmin=tymin),(tymax<tmax||isNaN(tmax))&&(tmax=tymax),invdirz>=0?(tzmin=(box.min.z-origin.z)*invdirz,tzmax=(box.max.z-origin.z)*invdirz):(tzmin=(box.max.z-origin.z)*invdirz,tzmax=(box.min.z-origin.z)*invdirz),tmin>tzmax||tzmin>tmax?null:((tzmin>tmin||tmin!=tmin)&&(tmin=tzmin),(tzmax<tmax||tmax!=tmax)&&(tmax=tzmax),tmax<0?null:this.at(tmin>=0?tmin:tmax,target)))}intersectsBox(box){return null!==this.intersectBox(box,_vector$a)}intersectTriangle(a,b,c,backfaceCulling,target){_edge1.subVectors(b,a),_edge2.subVectors(c,a),_normal$1.crossVectors(_edge1,_edge2);let sign,DdN=this.direction.dot(_normal$1);if(DdN>0){if(backfaceCulling)return null;sign=1}else{if(!(DdN<0))return null;sign=-1,DdN=-DdN}_diff.subVectors(this.origin,a);const DdQxE2=sign*this.direction.dot(_edge2.crossVectors(_diff,_edge2));if(DdQxE2<0)return null;const DdE1xQ=sign*this.direction.dot(_edge1.cross(_diff));if(DdE1xQ<0)return null;if(DdQxE2+DdE1xQ>DdN)return null;const QdN=-sign*_diff.dot(_normal$1);return QdN<0?null:this.at(QdN/DdN,target)}applyMatrix4(matrix4){return this.origin.applyMatrix4(matrix4),this.direction.transformDirection(matrix4),this}equals(ray){return ray.origin.equals(this.origin)&&ray.direction.equals(this.direction)}clone(){return(new this.constructor).copy(this)}}class Matrix4{constructor(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],void 0!==n11&&this.set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44)}set(n11,n12,n13,n14,n21,n22,n23,n24,n31,n32,n33,n34,n41,n42,n43,n44){const te=this.elements;return te[0]=n11,te[4]=n12,te[8]=n13,te[12]=n14,te[1]=n21,te[5]=n22,te[9]=n23,te[13]=n24,te[2]=n31,te[6]=n32,te[10]=n33,te[14]=n34,te[3]=n41,te[7]=n42,te[11]=n43,te[15]=n44,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return(new Matrix4).fromArray(this.elements)}copy(m){const te=this.elements,me=m.elements;return te[0]=me[0],te[1]=me[1],te[2]=me[2],te[3]=me[3],te[4]=me[4],te[5]=me[5],te[6]=me[6],te[7]=me[7],te[8]=me[8],te[9]=me[9],te[10]=me[10],te[11]=me[11],te[12]=me[12],te[13]=me[13],te[14]=me[14],te[15]=me[15],this}copyPosition(m){const te=this.elements,me=m.elements;return te[12]=me[12],te[13]=me[13],te[14]=me[14],this}setFromMatrix3(m){const me=m.elements;return this.set(me[0],me[3],me[6],0,me[1],me[4],me[7],0,me[2],me[5],me[8],0,0,0,0,1),this}extractBasis(xAxis,yAxis,zAxis){return 0===this.determinant()?(xAxis.set(1,0,0),yAxis.set(0,1,0),zAxis.set(0,0,1),this):(xAxis.setFromMatrixColumn(this,0),yAxis.setFromMatrixColumn(this,1),zAxis.setFromMatrixColumn(this,2),this)}makeBasis(xAxis,yAxis,zAxis){return this.set(xAxis.x,yAxis.x,zAxis.x,0,xAxis.y,yAxis.y,zAxis.y,0,xAxis.z,yAxis.z,zAxis.z,0,0,0,0,1),this}extractRotation(m){if(0===m.determinant())return this.identity();const te=this.elements,me=m.elements,scaleX=1/_v1$5.setFromMatrixColumn(m,0).length(),scaleY=1/_v1$5.setFromMatrixColumn(m,1).length(),scaleZ=1/_v1$5.setFromMatrixColumn(m,2).length();return te[0]=me[0]*scaleX,te[1]=me[1]*scaleX,te[2]=me[2]*scaleX,te[3]=0,te[4]=me[4]*scaleY,te[5]=me[5]*scaleY,te[6]=me[6]*scaleY,te[7]=0,te[8]=me[8]*scaleZ,te[9]=me[9]*scaleZ,te[10]=me[10]*scaleZ,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,this}makeRotationFromEuler(euler){const te=this.elements,x=euler.x,y=euler.y,z=euler.z,a=Math.cos(x),b=Math.sin(x),c=Math.cos(y),d=Math.sin(y),e=Math.cos(z),f=Math.sin(z);if("XYZ"===euler.order){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e,te[4]=-c*f,te[8]=d,te[1]=af+be*d,te[5]=ae-bf*d,te[9]=-b*c,te[2]=bf-ae*d,te[6]=be+af*d,te[10]=a*c}else if("YXZ"===euler.order){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce+df*b,te[4]=de*b-cf,te[8]=a*d,te[1]=a*f,te[5]=a*e,te[9]=-b,te[2]=cf*b-de,te[6]=df+ce*b,te[10]=a*c}else if("ZXY"===euler.order){const ce=c*e,cf=c*f,de=d*e,df=d*f;te[0]=ce-df*b,te[4]=-a*f,te[8]=de+cf*b,te[1]=cf+de*b,te[5]=a*e,te[9]=df-ce*b,te[2]=-a*d,te[6]=b,te[10]=a*c}else if("ZYX"===euler.order){const ae=a*e,af=a*f,be=b*e,bf=b*f;te[0]=c*e,te[4]=be*d-af,te[8]=ae*d+bf,te[1]=c*f,te[5]=bf*d+ae,te[9]=af*d-be,te[2]=-d,te[6]=b*c,te[10]=a*c}else if("YZX"===euler.order){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e,te[4]=bd-ac*f,te[8]=bc*f+ad,te[1]=f,te[5]=a*e,te[9]=-b*e,te[2]=-d*e,te[6]=ad*f+bc,te[10]=ac-bd*f}else if("XZY"===euler.order){const ac=a*c,ad=a*d,bc=b*c,bd=b*d;te[0]=c*e,te[4]=-f,te[8]=d*e,te[1]=ac*f+bd,te[5]=a*e,te[9]=ad*f-bc,te[2]=bc*f-ad,te[6]=b*e,te[10]=bd*f+ac}return te[3]=0,te[7]=0,te[11]=0,te[12]=0,te[13]=0,te[14]=0,te[15]=1,this}makeRotationFromQuaternion(q){return this.compose(_zero,q,_one)}lookAt(eye,target,up){const te=this.elements;return _z.subVectors(eye,target),0===_z.lengthSq()&&(_z.z=1),_z.normalize(),_x.crossVectors(up,_z),0===_x.lengthSq()&&(1===Math.abs(up.z)?_z.x+=1e-4:_z.z+=1e-4,_z.normalize(),_x.crossVectors(up,_z)),_x.normalize(),_y.crossVectors(_z,_x),te[0]=_x.x,te[4]=_y.x,te[8]=_z.x,te[1]=_x.y,te[5]=_y.y,te[9]=_z.y,te[2]=_x.z,te[6]=_y.z,te[10]=_z.z,this}multiply(m){return this.multiplyMatrices(this,m)}premultiply(m){return this.multiplyMatrices(m,this)}multiplyMatrices(a,b){const ae=a.elements,be=b.elements,te=this.elements,a11=ae[0],a12=ae[4],a13=ae[8],a14=ae[12],a21=ae[1],a22=ae[5],a23=ae[9],a24=ae[13],a31=ae[2],a32=ae[6],a33=ae[10],a34=ae[14],a41=ae[3],a42=ae[7],a43=ae[11],a44=ae[15],b11=be[0],b12=be[4],b13=be[8],b14=be[12],b21=be[1],b22=be[5],b23=be[9],b24=be[13],b31=be[2],b32=be[6],b33=be[10],b34=be[14],b41=be[3],b42=be[7],b43=be[11],b44=be[15];return te[0]=a11*b11+a12*b21+a13*b31+a14*b41,te[4]=a11*b12+a12*b22+a13*b32+a14*b42,te[8]=a11*b13+a12*b23+a13*b33+a14*b43,te[12]=a11*b14+a12*b24+a13*b34+a14*b44,te[1]=a21*b11+a22*b21+a23*b31+a24*b41,te[5]=a21*b12+a22*b22+a23*b32+a24*b42,te[9]=a21*b13+a22*b23+a23*b33+a24*b43,te[13]=a21*b14+a22*b24+a23*b34+a24*b44,te[2]=a31*b11+a32*b21+a33*b31+a34*b41,te[6]=a31*b12+a32*b22+a33*b32+a34*b42,te[10]=a31*b13+a32*b23+a33*b33+a34*b43,te[14]=a31*b14+a32*b24+a33*b34+a34*b44,te[3]=a41*b11+a42*b21+a43*b31+a44*b41,te[7]=a41*b12+a42*b22+a43*b32+a44*b42,te[11]=a41*b13+a42*b23+a43*b33+a44*b43,te[15]=a41*b14+a42*b24+a43*b34+a44*b44,this}multiplyScalar(s){const te=this.elements;return te[0]*=s,te[4]*=s,te[8]*=s,te[12]*=s,te[1]*=s,te[5]*=s,te[9]*=s,te[13]*=s,te[2]*=s,te[6]*=s,te[10]*=s,te[14]*=s,te[3]*=s,te[7]*=s,te[11]*=s,te[15]*=s,this}determinant(){const te=this.elements,n21=te[1],n22=te[5],n23=te[9],n24=te[13],n31=te[2],n32=te[6],n33=te[10],n34=te[14],n41=te[3],n42=te[7],n43=te[11],n44=te[15],t11=n23*n34-n24*n33,t12=n22*n34-n24*n32,t13=n22*n33-n23*n32,t21=n21*n34-n24*n31,t22=n21*n33-n23*n31,t23=n21*n32-n22*n31;return te[0]*(n42*t11-n43*t12+n44*t13)-te[4]*(n41*t11-n43*t21+n44*t22)+te[8]*(n41*t12-n42*t21+n44*t23)-te[12]*(n41*t13-n42*t22+n43*t23)}transpose(){const te=this.elements;let tmp;return tmp=te[1],te[1]=te[4],te[4]=tmp,tmp=te[2],te[2]=te[8],te[8]=tmp,tmp=te[6],te[6]=te[9],te[9]=tmp,tmp=te[3],te[3]=te[12],te[12]=tmp,tmp=te[7],te[7]=te[13],te[13]=tmp,tmp=te[11],te[11]=te[14],te[14]=tmp,this}setPosition(x,y,z){const te=this.elements;return x.isVector3?(te[12]=x.x,te[13]=x.y,te[14]=x.z):(te[12]=x,te[13]=y,te[14]=z),this}invert(){const te=this.elements,n11=te[0],n21=te[1],n31=te[2],n41=te[3],n12=te[4],n22=te[5],n32=te[6],n42=te[7],n13=te[8],n23=te[9],n33=te[10],n43=te[11],n14=te[12],n24=te[13],n34=te[14],n44=te[15],t11=n23*n34*n42-n24*n33*n42+n24*n32*n43-n22*n34*n43-n23*n32*n44+n22*n33*n44,t12=n14*n33*n42-n13*n34*n42-n14*n32*n43+n12*n34*n43+n13*n32*n44-n12*n33*n44,t13=n13*n24*n42-n14*n23*n42+n14*n22*n43-n12*n24*n43-n13*n22*n44+n12*n23*n44,t14=n14*n23*n32-n13*n24*n32-n14*n22*n33+n12*n24*n33+n13*n22*n34-n12*n23*n34,det=n11*t11+n21*t12+n31*t13+n41*t14;if(0===det)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const detInv=1/det;return te[0]=t11*detInv,te[1]=(n24*n33*n41-n23*n34*n41-n24*n31*n43+n21*n34*n43+n23*n31*n44-n21*n33*n44)*detInv,te[2]=(n22*n34*n41-n24*n32*n41+n24*n31*n42-n21*n34*n42-n22*n31*n44+n21*n32*n44)*detInv,te[3]=(n23*n32*n41-n22*n33*n41-n23*n31*n42+n21*n33*n42+n22*n31*n43-n21*n32*n43)*detInv,te[4]=t12*detInv,te[5]=(n13*n34*n41-n14*n33*n41+n14*n31*n43-n11*n34*n43-n13*n31*n44+n11*n33*n44)*detInv,te[6]=(n14*n32*n41-n12*n34*n41-n14*n31*n42+n11*n34*n42+n12*n31*n44-n11*n32*n44)*detInv,te[7]=(n12*n33*n41-n13*n32*n41+n13*n31*n42-n11*n33*n42-n12*n31*n43+n11*n32*n43)*detInv,te[8]=t13*detInv,te[9]=(n14*n23*n41-n13*n24*n41-n14*n21*n43+n11*n24*n43+n13*n21*n44-n11*n23*n44)*detInv,te[10]=(n12*n24*n41-n14*n22*n41+n14*n21*n42-n11*n24*n42-n12*n21*n44+n11*n22*n44)*detInv,te[11]=(n13*n22*n41-n12*n23*n41-n13*n21*n42+n11*n23*n42+n12*n21*n43-n11*n22*n43)*detInv,te[12]=t14*detInv,te[13]=(n13*n24*n31-n14*n23*n31+n14*n21*n33-n11*n24*n33-n13*n21*n34+n11*n23*n34)*detInv,te[14]=(n14*n22*n31-n12*n24*n31-n14*n21*n32+n11*n24*n32+n12*n21*n34-n11*n22*n34)*detInv,te[15]=(n12*n23*n31-n13*n22*n31+n13*n21*n32-n11*n23*n32-n12*n21*n33+n11*n22*n33)*detInv,this}scale(v){const te=this.elements,x=v.x,y=v.y,z=v.z;return te[0]*=x,te[4]*=y,te[8]*=z,te[1]*=x,te[5]*=y,te[9]*=z,te[2]*=x,te[6]*=y,te[10]*=z,te[3]*=x,te[7]*=y,te[11]*=z,this}getMaxScaleOnAxis(){const te=this.elements;return Math.sqrt(Math.max(te[0]*te[0]+te[1]*te[1]+te[2]*te[2],te[4]*te[4]+te[5]*te[5]+te[6]*te[6],te[8]*te[8]+te[9]*te[9]+te[10]*te[10]))}makeTranslation(x,y,z){return x.isVector3?this.set(1,0,0,x.x,0,1,0,x.y,0,0,1,x.z,0,0,0,1):this.set(1,0,0,x,0,1,0,y,0,0,1,z,0,0,0,1),this}makeRotationX(theta){const c=Math.cos(theta),s=Math.sin(theta);return this.set(1,0,0,0,0,c,-s,0,0,s,c,0,0,0,0,1),this}makeRotationY(theta){const c=Math.cos(theta),s=Math.sin(theta);return this.set(c,0,s,0,0,1,0,0,-s,0,c,0,0,0,0,1),this}makeRotationZ(theta){const c=Math.cos(theta),s=Math.sin(theta);return this.set(c,-s,0,0,s,c,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(axis,angle){const c=Math.cos(angle),s=Math.sin(angle),t=1-c,x=axis.x,y=axis.y,z=axis.z,tx=t*x,ty=t*y;return this.set(tx*x+c,tx*y-s*z,tx*z+s*y,0,tx*y+s*z,ty*y+c,ty*z-s*x,0,tx*z-s*y,ty*z+s*x,t*z*z+c,0,0,0,0,1),this}makeScale(x,y,z){return this.set(x,0,0,0,0,y,0,0,0,0,z,0,0,0,0,1),this}makeShear(xy,xz,yx,yz,zx,zy){return this.set(1,yx,zx,0,xy,1,zy,0,xz,yz,1,0,0,0,0,1),this}compose(position,quaternion,scale){const te=this.elements,x=quaternion._x,y=quaternion._y,z=quaternion._z,w=quaternion._w,x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2,sx=scale.x,sy=scale.y,sz=scale.z;return te[0]=(1-(yy+zz))*sx,te[1]=(xy+wz)*sx,te[2]=(xz-wy)*sx,te[3]=0,te[4]=(xy-wz)*sy,te[5]=(1-(xx+zz))*sy,te[6]=(yz+wx)*sy,te[7]=0,te[8]=(xz+wy)*sz,te[9]=(yz-wx)*sz,te[10]=(1-(xx+yy))*sz,te[11]=0,te[12]=position.x,te[13]=position.y,te[14]=position.z,te[15]=1,this}decompose(position,quaternion,scale){const te=this.elements;if(position.x=te[12],position.y=te[13],position.z=te[14],0===this.determinant())return scale.set(1,1,1),quaternion.identity(),this;let sx=_v1$5.set(te[0],te[1],te[2]).length();const sy=_v1$5.set(te[4],te[5],te[6]).length(),sz=_v1$5.set(te[8],te[9],te[10]).length();this.determinant()<0&&(sx=-sx),_m1$2.copy(this);const invSX=1/sx,invSY=1/sy,invSZ=1/sz;return _m1$2.elements[0]*=invSX,_m1$2.elements[1]*=invSX,_m1$2.elements[2]*=invSX,_m1$2.elements[4]*=invSY,_m1$2.elements[5]*=invSY,_m1$2.elements[6]*=invSY,_m1$2.elements[8]*=invSZ,_m1$2.elements[9]*=invSZ,_m1$2.elements[10]*=invSZ,quaternion.setFromRotationMatrix(_m1$2),scale.x=sx,scale.y=sy,scale.z=sz,this}makePerspective(left,right,top,bottom,near,far,coordinateSystem=2e3,reversedDepth=!1){const te=this.elements,x=2*near/(right-left),y=2*near/(top-bottom),a=(right+left)/(right-left),b=(top+bottom)/(top-bottom);let c,d;if(reversedDepth)c=near/(far-near),d=far*near/(far-near);else if(2e3===coordinateSystem)c=-(far+near)/(far-near),d=-2*far*near/(far-near);else{if(2001!==coordinateSystem)throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+coordinateSystem);c=-far/(far-near),d=-far*near/(far-near)}return te[0]=x,te[4]=0,te[8]=a,te[12]=0,te[1]=0,te[5]=y,te[9]=b,te[13]=0,te[2]=0,te[6]=0,te[10]=c,te[14]=d,te[3]=0,te[7]=0,te[11]=-1,te[15]=0,this}makeOrthographic(left,right,top,bottom,near,far,coordinateSystem=2e3,reversedDepth=!1){const te=this.elements,x=2/(right-left),y=2/(top-bottom),a=-(right+left)/(right-left),b=-(top+bottom)/(top-bottom);let c,d;if(reversedDepth)c=1/(far-near),d=far/(far-near);else if(2e3===coordinateSystem)c=-2/(far-near),d=-(far+near)/(far-near);else{if(2001!==coordinateSystem)throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+coordinateSystem);c=-1/(far-near),d=-near/(far-near)}return te[0]=x,te[4]=0,te[8]=0,te[12]=a,te[1]=0,te[5]=y,te[9]=0,te[13]=b,te[2]=0,te[6]=0,te[10]=c,te[14]=d,te[3]=0,te[7]=0,te[11]=0,te[15]=1,this}equals(matrix){const te=this.elements,me=matrix.elements;for(let i=0;i<16;i++)if(te[i]!==me[i])return!1;return!0}fromArray(array,offset=0){for(let i=0;i<16;i++)this.elements[i]=array[i+offset];return this}toArray(array=[],offset=0){const te=this.elements;return array[offset]=te[0],array[offset+1]=te[1],array[offset+2]=te[2],array[offset+3]=te[3],array[offset+4]=te[4],array[offset+5]=te[5],array[offset+6]=te[6],array[offset+7]=te[7],array[offset+8]=te[8],array[offset+9]=te[9],array[offset+10]=te[10],array[offset+11]=te[11],array[offset+12]=te[12],array[offset+13]=te[13],array[offset+14]=te[14],array[offset+15]=te[15],array}}const _v1$5=new Vector3,_m1$2=new Matrix4,_zero=new Vector3(0,0,0),_one=new Vector3(1,1,1),_x=new Vector3,_y=new Vector3,_z=new Vector3,_matrix$2=new Matrix4,_quaternion$3=new Quaternion;class Euler{constructor(x=0,y=0,z=0,order=Euler.DEFAULT_ORDER){this.isEuler=!0,this._x=x,this._y=y,this._z=z,this._order=order}get x(){return this._x}set x(value){this._x=value,this._onChangeCallback()}get y(){return this._y}set y(value){this._y=value,this._onChangeCallback()}get z(){return this._z}set z(value){this._z=value,this._onChangeCallback()}get order(){return this._order}set order(value){this._order=value,this._onChangeCallback()}set(x,y,z,order=this._order){return this._x=x,this._y=y,this._z=z,this._order=order,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(euler){return this._x=euler._x,this._y=euler._y,this._z=euler._z,this._order=euler._order,this._onChangeCallback(),this}setFromRotationMatrix(m,order=this._order,update=!0){const te=m.elements,m11=te[0],m12=te[4],m13=te[8],m21=te[1],m22=te[5],m23=te[9],m31=te[2],m32=te[6],m33=te[10];switch(order){case"XYZ":this._y=Math.asin(clamp(m13,-1,1)),Math.abs(m13)<.9999999?(this._x=Math.atan2(-m23,m33),this._z=Math.atan2(-m12,m11)):(this._x=Math.atan2(m32,m22),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp(m23,-1,1)),Math.abs(m23)<.9999999?(this._y=Math.atan2(m13,m33),this._z=Math.atan2(m21,m22)):(this._y=Math.atan2(-m31,m11),this._z=0);break;case"ZXY":this._x=Math.asin(clamp(m32,-1,1)),Math.abs(m32)<.9999999?(this._y=Math.atan2(-m31,m33),this._z=Math.atan2(-m12,m22)):(this._y=0,this._z=Math.atan2(m21,m11));break;case"ZYX":this._y=Math.asin(-clamp(m31,-1,1)),Math.abs(m31)<.9999999?(this._x=Math.atan2(m32,m33),this._z=Math.atan2(m21,m11)):(this._x=0,this._z=Math.atan2(-m12,m22));break;case"YZX":this._z=Math.asin(clamp(m21,-1,1)),Math.abs(m21)<.9999999?(this._x=Math.atan2(-m23,m22),this._y=Math.atan2(-m31,m11)):(this._x=0,this._y=Math.atan2(m13,m33));break;case"XZY":this._z=Math.asin(-clamp(m12,-1,1)),Math.abs(m12)<.9999999?(this._x=Math.atan2(m32,m22),this._y=Math.atan2(m13,m11)):(this._x=Math.atan2(-m23,m33),this._y=0);break;default:warn("Euler: .setFromRotationMatrix() encountered an unknown order: "+order)}return this._order=order,!0===update&&this._onChangeCallback(),this}setFromQuaternion(q,order,update){return _matrix$2.makeRotationFromQuaternion(q),this.setFromRotationMatrix(_matrix$2,order,update)}setFromVector3(v,order=this._order){return this.set(v.x,v.y,v.z,order)}reorder(newOrder){return _quaternion$3.setFromEuler(this),this.setFromQuaternion(_quaternion$3,newOrder)}equals(euler){return euler._x===this._x&&euler._y===this._y&&euler._z===this._z&&euler._order===this._order}fromArray(array){return this._x=array[0],this._y=array[1],this._z=array[2],void 0!==array[3]&&(this._order=array[3]),this._onChangeCallback(),this}toArray(array=[],offset=0){return array[offset]=this._x,array[offset+1]=this._y,array[offset+2]=this._z,array[offset+3]=this._order,array}_onChange(callback){return this._onChangeCallback=callback,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}Euler.DEFAULT_ORDER="XYZ";class Layers{constructor(){this.mask=1}set(layer){this.mask=1<<layer>>>0}enable(layer){this.mask|=1<<layer}enableAll(){this.mask=-1}toggle(layer){this.mask^=1<<layer}disable(layer){this.mask&=~(1<<layer)}disableAll(){this.mask=0}test(layers){return 0!==(this.mask&layers.mask)}isEnabled(layer){return!!(this.mask&1<<layer)}}let _object3DId=0;const _v1$4=new Vector3,_q1=new Quaternion,_m1$1=new Matrix4,_target=new Vector3,_position$3=new Vector3,_scale$2=new Vector3,_quaternion$2=new Quaternion,_xAxis=new Vector3(1,0,0),_yAxis=new Vector3(0,1,0),_zAxis=new Vector3(0,0,1),_addedEvent={type:"added"},_removedEvent={type:"removed"},_childaddedEvent={type:"childadded",child:null},_childremovedEvent={type:"childremoved",child:null};class Object3D extends EventDispatcher{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:_object3DId++}),this.uuid=generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Object3D.DEFAULT_UP.clone();const position=new Vector3,rotation=new Euler,quaternion=new Quaternion,scale=new Vector3(1,1,1);rotation._onChange(function(){quaternion.setFromEuler(rotation,!1)}),quaternion._onChange(function(){rotation.setFromQuaternion(quaternion,void 0,!1)}),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:position},rotation:{configurable:!0,enumerable:!0,value:rotation},quaternion:{configurable:!0,enumerable:!0,value:quaternion},scale:{configurable:!0,enumerable:!0,value:scale},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}}),this.matrix=new Matrix4,this.matrixWorld=new Matrix4,this.matrixAutoUpdate=Object3D.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new Layers,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(matrix){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(matrix),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(q){return this.quaternion.premultiply(q),this}setRotationFromAxisAngle(axis,angle){this.quaternion.setFromAxisAngle(axis,angle)}setRotationFromEuler(euler){this.quaternion.setFromEuler(euler,!0)}setRotationFromMatrix(m){this.quaternion.setFromRotationMatrix(m)}setRotationFromQuaternion(q){this.quaternion.copy(q)}rotateOnAxis(axis,angle){return _q1.setFromAxisAngle(axis,angle),this.quaternion.multiply(_q1),this}rotateOnWorldAxis(axis,angle){return _q1.setFromAxisAngle(axis,angle),this.quaternion.premultiply(_q1),this}rotateX(angle){return this.rotateOnAxis(_xAxis,angle)}rotateY(angle){return this.rotateOnAxis(_yAxis,angle)}rotateZ(angle){return this.rotateOnAxis(_zAxis,angle)}translateOnAxis(axis,distance){return _v1$4.copy(axis).applyQuaternion(this.quaternion),this.position.add(_v1$4.multiplyScalar(distance)),this}translateX(distance){return this.translateOnAxis(_xAxis,distance)}translateY(distance){return this.translateOnAxis(_yAxis,distance)}translateZ(distance){return this.translateOnAxis(_zAxis,distance)}localToWorld(vector){return this.updateWorldMatrix(!0,!1),vector.applyMatrix4(this.matrixWorld)}worldToLocal(vector){return this.updateWorldMatrix(!0,!1),vector.applyMatrix4(_m1$1.copy(this.matrixWorld).invert())}lookAt(x,y,z){x.isVector3?_target.copy(x):_target.set(x,y,z);const parent=this.parent;this.updateWorldMatrix(!0,!1),_position$3.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?_m1$1.lookAt(_position$3,_target,this.up):_m1$1.lookAt(_target,_position$3,this.up),this.quaternion.setFromRotationMatrix(_m1$1),parent&&(_m1$1.extractRotation(parent.matrixWorld),_q1.setFromRotationMatrix(_m1$1),this.quaternion.premultiply(_q1.invert()))}add(object){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.add(arguments[i]);return this}return object===this?(error("Object3D.add: object can't be added as a child of itself.",object),this):(object&&object.isObject3D?(object.removeFromParent(),object.parent=this,this.children.push(object),object.dispatchEvent(_addedEvent),_childaddedEvent.child=object,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null):error("Object3D.add: object not an instance of THREE.Object3D.",object),this)}remove(object){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}const index=this.children.indexOf(object);return-1!==index&&(object.parent=null,this.children.splice(index,1),object.dispatchEvent(_removedEvent),_childremovedEvent.child=object,this.dispatchEvent(_childremovedEvent),_childremovedEvent.child=null),this}removeFromParent(){const parent=this.parent;return null!==parent&&parent.remove(this),this}clear(){return this.remove(...this.children)}attach(object){return this.updateWorldMatrix(!0,!1),_m1$1.copy(this.matrixWorld).invert(),null!==object.parent&&(object.parent.updateWorldMatrix(!0,!1),_m1$1.multiply(object.parent.matrixWorld)),object.applyMatrix4(_m1$1),object.removeFromParent(),object.parent=this,this.children.push(object),object.updateWorldMatrix(!1,!0),object.dispatchEvent(_addedEvent),_childaddedEvent.child=object,this.dispatchEvent(_childaddedEvent),_childaddedEvent.child=null,this}getObjectById(id){return this.getObjectByProperty("id",id)}getObjectByName(name){return this.getObjectByProperty("name",name)}getObjectByProperty(name,value){if(this[name]===value)return this;for(let i=0,l=this.children.length;i<l;i++){const object=this.children[i].getObjectByProperty(name,value);if(void 0!==object)return object}}getObjectsByProperty(name,value,result=[]){this[name]===value&&result.push(this);const children=this.children;for(let i=0,l=children.length;i<l;i++)children[i].getObjectsByProperty(name,value,result);return result}getWorldPosition(target){return this.updateWorldMatrix(!0,!1),target.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(target){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,target,_scale$2),target}getWorldScale(target){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_position$3,_quaternion$2,target),target}getWorldDirection(target){this.updateWorldMatrix(!0,!1);const e=this.matrixWorld.elements;return target.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(callback){callback(this);const children=this.children;for(let i=0,l=children.length;i<l;i++)children[i].traverse(callback)}traverseVisible(callback){if(!1===this.visible)return;callback(this);const children=this.children;for(let i=0,l=children.length;i<l;i++)children[i].traverseVisible(callback)}traverseAncestors(callback){const parent=this.parent;null!==parent&&(callback(parent),parent.traverseAncestors(callback))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(force){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||force)&&(!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,force=!0);const children=this.children;for(let i=0,l=children.length;i<l;i++)children[i].updateMatrixWorld(force)}updateWorldMatrix(updateParents,updateChildren){const parent=this.parent;if(!0===updateParents&&null!==parent&&parent.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),!0===this.matrixWorldAutoUpdate&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),!0===updateChildren){const children=this.children;for(let i=0,l=children.length;i<l;i++)children[i].updateWorldMatrix(!1,!0)}}toJSON(meta){const isRootObject=void 0===meta||"string"==typeof meta,output={};isRootObject&&(meta={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},output.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const object={};function serialize(library,element){return void 0===library[element.uuid]&&(library[element.uuid]=element.toJSON(meta)),element.uuid}if(object.uuid=this.uuid,object.type=this.type,""!==this.name&&(object.name=this.name),!0===this.castShadow&&(object.castShadow=!0),!0===this.receiveShadow&&(object.receiveShadow=!0),!1===this.visible&&(object.visible=!1),!1===this.frustumCulled&&(object.frustumCulled=!1),0!==this.renderOrder&&(object.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(object.userData=this.userData),object.layers=this.layers.mask,object.matrix=this.matrix.toArray(),object.up=this.up.toArray(),!1===this.matrixAutoUpdate&&(object.matrixAutoUpdate=!1),this.isInstancedMesh&&(object.type="InstancedMesh",object.count=this.count,object.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(object.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(object.type="BatchedMesh",object.perObjectFrustumCulled=this.perObjectFrustumCulled,object.sortObjects=this.sortObjects,object.drawRanges=this._drawRanges,object.reservedRanges=this._reservedRanges,object.geometryInfo=this._geometryInfo.map(info=>({...info,boundingBox:info.boundingBox?info.boundingBox.toJSON():void 0,boundingSphere:info.boundingSphere?info.boundingSphere.toJSON():void 0})),object.instanceInfo=this._instanceInfo.map(info=>({...info})),object.availableInstanceIds=this._availableInstanceIds.slice(),object.availableGeometryIds=this._availableGeometryIds.slice(),object.nextIndexStart=this._nextIndexStart,object.nextVertexStart=this._nextVertexStart,object.geometryCount=this._geometryCount,object.maxInstanceCount=this._maxInstanceCount,object.maxVertexCount=this._maxVertexCount,object.maxIndexCount=this._maxIndexCount,object.geometryInitialized=this._geometryInitialized,object.matricesTexture=this._matricesTexture.toJSON(meta),object.indirectTexture=this._indirectTexture.toJSON(meta),null!==this._colorsTexture&&(object.colorsTexture=this._colorsTexture.toJSON(meta)),null!==this.boundingSphere&&(object.boundingSphere=this.boundingSphere.toJSON()),null!==this.boundingBox&&(object.boundingBox=this.boundingBox.toJSON())),this.isScene)this.background&&(this.background.isColor?object.background=this.background.toJSON():this.background.isTexture&&(object.background=this.background.toJSON(meta).uuid)),this.environment&&this.environment.isTexture&&!0!==this.environment.isRenderTargetTexture&&(object.environment=this.environment.toJSON(meta).uuid);else if(this.isMesh||this.isLine||this.isPoints){object.geometry=serialize(meta.geometries,this.geometry);const parameters=this.geometry.parameters;if(void 0!==parameters&&void 0!==parameters.shapes){const shapes=parameters.shapes;if(Array.isArray(shapes))for(let i=0,l=shapes.length;i<l;i++)serialize(meta.shapes,shapes[i]);else serialize(meta.shapes,shapes)}}if(this.isSkinnedMesh&&(object.bindMode=this.bindMode,object.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(serialize(meta.skeletons,this.skeleton),object.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const uuids=[];for(let i=0,l=this.material.length;i<l;i++)uuids.push(serialize(meta.materials,this.material[i]));object.material=uuids}else object.material=serialize(meta.materials,this.material);if(this.children.length>0){object.children=[];for(let i=0;i<this.children.length;i++)object.children.push(this.children[i].toJSON(meta).object)}if(this.animations.length>0){object.animations=[];for(let i=0;i<this.animations.length;i++)object.animations.push(serialize(meta.animations,this.animations[i]))}if(isRootObject){const geometries=extractFromCache(meta.geometries),materials=extractFromCache(meta.materials),textures=extractFromCache(meta.textures),images=extractFromCache(meta.images),shapes=extractFromCache(meta.shapes),skeletons=extractFromCache(meta.skeletons),animations=extractFromCache(meta.animations),nodes=extractFromCache(meta.nodes);geometries.length>0&&(output.geometries=geometries),materials.length>0&&(output.materials=materials),textures.length>0&&(output.textures=textures),images.length>0&&(output.images=images),shapes.length>0&&(output.shapes=shapes),skeletons.length>0&&(output.skeletons=skeletons),animations.length>0&&(output.animations=animations),nodes.length>0&&(output.nodes=nodes)}return output.object=object,output;function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata,values.push(data)}return values}}clone(recursive){return(new this.constructor).copy(this,recursive)}copy(source,recursive=!0){if(this.name=source.name,this.up.copy(source.up),this.position.copy(source.position),this.rotation.order=source.rotation.order,this.quaternion.copy(source.quaternion),this.scale.copy(source.scale),this.matrix.copy(source.matrix),this.matrixWorld.copy(source.matrixWorld),this.matrixAutoUpdate=source.matrixAutoUpdate,this.matrixWorldAutoUpdate=source.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=source.matrixWorldNeedsUpdate,this.layers.mask=source.layers.mask,this.visible=source.visible,this.castShadow=source.castShadow,this.receiveShadow=source.receiveShadow,this.frustumCulled=source.frustumCulled,this.renderOrder=source.renderOrder,this.animations=source.animations.slice(),this.userData=JSON.parse(JSON.stringify(source.userData)),!0===recursive)for(let i=0;i<source.children.length;i++)this.add(source.children[i].clone());return this}}Object3D.DEFAULT_UP=new Vector3(0,1,0),Object3D.DEFAULT_MATRIX_AUTO_UPDATE=!0,Object3D.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const _v0$1=new Vector3,_v1$3=new Vector3,_v2$2=new Vector3,_v3$2=new Vector3,_vab=new Vector3,_vac=new Vector3,_vbc=new Vector3,_vap=new Vector3,_vbp=new Vector3,_vcp=new Vector3,_v40=new Vector4,_v41=new Vector4,_v42=new Vector4;class Triangle{constructor(a=new Vector3,b=new Vector3,c=new Vector3){this.a=a,this.b=b,this.c=c}static getNormal(a,b,c,target){target.subVectors(c,b),_v0$1.subVectors(a,b),target.cross(_v0$1);const targetLengthSq=target.lengthSq();return targetLengthSq>0?target.multiplyScalar(1/Math.sqrt(targetLengthSq)):target.set(0,0,0)}static getBarycoord(point,a,b,c,target){_v0$1.subVectors(c,a),_v1$3.subVectors(b,a),_v2$2.subVectors(point,a);const dot00=_v0$1.dot(_v0$1),dot01=_v0$1.dot(_v1$3),dot02=_v0$1.dot(_v2$2),dot11=_v1$3.dot(_v1$3),dot12=_v1$3.dot(_v2$2),denom=dot00*dot11-dot01*dot01;if(0===denom)return target.set(0,0,0),null;const invDenom=1/denom,u=(dot11*dot02-dot01*dot12)*invDenom,v=(dot00*dot12-dot01*dot02)*invDenom;return target.set(1-u-v,v,u)}static containsPoint(point,a,b,c){return null!==this.getBarycoord(point,a,b,c,_v3$2)&&_v3$2.x>=0&&_v3$2.y>=0&&_v3$2.x+_v3$2.y<=1}static getInterpolation(point,p1,p2,p3,v1,v2,v3,target){return null===this.getBarycoord(point,p1,p2,p3,_v3$2)?(target.x=0,target.y=0,"z"in target&&(target.z=0),"w"in target&&(target.w=0),null):(target.setScalar(0),target.addScaledVector(v1,_v3$2.x),target.addScaledVector(v2,_v3$2.y),target.addScaledVector(v3,_v3$2.z),target)}static getInterpolatedAttribute(attr,i1,i2,i3,barycoord,target){return _v40.setScalar(0),_v41.setScalar(0),_v42.setScalar(0),_v40.fromBufferAttribute(attr,i1),_v41.fromBufferAttribute(attr,i2),_v42.fromBufferAttribute(attr,i3),target.setScalar(0),target.addScaledVector(_v40,barycoord.x),target.addScaledVector(_v41,barycoord.y),target.addScaledVector(_v42,barycoord.z),target}static isFrontFacing(a,b,c,direction){return _v0$1.subVectors(c,b),_v1$3.subVectors(a,b),_v0$1.cross(_v1$3).dot(direction)<0}set(a,b,c){return this.a.copy(a),this.b.copy(b),this.c.copy(c),this}setFromPointsAndIndices(points,i0,i1,i2){return this.a.copy(points[i0]),this.b.copy(points[i1]),this.c.copy(points[i2]),this}setFromAttributeAndIndices(attribute,i0,i1,i2){return this.a.fromBufferAttribute(attribute,i0),this.b.fromBufferAttribute(attribute,i1),this.c.fromBufferAttribute(attribute,i2),this}clone(){return(new this.constructor).copy(this)}copy(triangle){return this.a.copy(triangle.a),this.b.copy(triangle.b),this.c.copy(triangle.c),this}getArea(){return _v0$1.subVectors(this.c,this.b),_v1$3.subVectors(this.a,this.b),.5*_v0$1.cross(_v1$3).length()}getMidpoint(target){return target.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(target){return Triangle.getNormal(this.a,this.b,this.c,target)}getPlane(target){return target.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(point,target){return Triangle.getBarycoord(point,this.a,this.b,this.c,target)}getInterpolation(point,v1,v2,v3,target){return Triangle.getInterpolation(point,this.a,this.b,this.c,v1,v2,v3,target)}containsPoint(point){return Triangle.containsPoint(point,this.a,this.b,this.c)}isFrontFacing(direction){return Triangle.isFrontFacing(this.a,this.b,this.c,direction)}intersectsBox(box){return box.intersectsTriangle(this)}closestPointToPoint(p,target){const a=this.a,b=this.b,c=this.c;let v,w;_vab.subVectors(b,a),_vac.subVectors(c,a),_vap.subVectors(p,a);const d1=_vab.dot(_vap),d2=_vac.dot(_vap);if(d1<=0&&d2<=0)return target.copy(a);_vbp.subVectors(p,b);const d3=_vab.dot(_vbp),d4=_vac.dot(_vbp);if(d3>=0&&d4<=d3)return target.copy(b);const vc=d1*d4-d3*d2;if(vc<=0&&d1>=0&&d3<=0)return v=d1/(d1-d3),target.copy(a).addScaledVector(_vab,v);_vcp.subVectors(p,c);const d5=_vab.dot(_vcp),d6=_vac.dot(_vcp);if(d6>=0&&d5<=d6)return target.copy(c);const vb=d5*d2-d1*d6;if(vb<=0&&d2>=0&&d6<=0)return w=d2/(d2-d6),target.copy(a).addScaledVector(_vac,w);const va=d3*d6-d5*d4;if(va<=0&&d4-d3>=0&&d5-d6>=0)return _vbc.subVectors(c,b),w=(d4-d3)/(d4-d3+(d5-d6)),target.copy(b).addScaledVector(_vbc,w);const denom=1/(va+vb+vc);return v=vb*denom,w=vc*denom,target.copy(a).addScaledVector(_vab,v).addScaledVector(_vac,w)}equals(triangle){return triangle.a.equals(this.a)&&triangle.b.equals(this.b)&&triangle.c.equals(this.c)}}const _colorKeywords={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},_hslA={h:0,s:0,l:0},_hslB={h:0,s:0,l:0};function hue2rgb(p,q,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?p+6*(q-p)*t:t<.5?q:t<2/3?p+6*(q-p)*(2/3-t):p}class Color{constructor(r,g,b){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(r,g,b)}set(r,g,b){if(void 0===g&&void 0===b){const value=r;value&&value.isColor?this.copy(value):"number"==typeof value?this.setHex(value):"string"==typeof value&&this.setStyle(value)}else this.setRGB(r,g,b);return this}setScalar(scalar){return this.r=scalar,this.g=scalar,this.b=scalar,this}setHex(hex,colorSpace="srgb"){return hex=Math.floor(hex),this.r=(hex>>16&255)/255,this.g=(hex>>8&255)/255,this.b=(255&hex)/255,ColorManagement.colorSpaceToWorking(this,colorSpace),this}setRGB(r,g,b,colorSpace=ColorManagement.workingColorSpace){return this.r=r,this.g=g,this.b=b,ColorManagement.colorSpaceToWorking(this,colorSpace),this}setHSL(h,s,l,colorSpace=ColorManagement.workingColorSpace){if(h=euclideanModulo(h,1),s=clamp(s,0,1),l=clamp(l,0,1),0===s)this.r=this.g=this.b=l;else{const p=l<=.5?l*(1+s):l+s-l*s,q=2*l-p;this.r=hue2rgb(q,p,h+1/3),this.g=hue2rgb(q,p,h),this.b=hue2rgb(q,p,h-1/3)}return ColorManagement.colorSpaceToWorking(this,colorSpace),this}setStyle(style,colorSpace="srgb"){function handleAlpha(string){void 0!==string&&parseFloat(string)<1&&warn("Color: Alpha component of "+style+" will be ignored.")}let m;if(m=/^(\w+)\(([^\)]*)\)/.exec(style)){let color;const components=m[2];switch(m[1]){case"rgb":case"rgba":if(color=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components))return handleAlpha(color[4]),this.setRGB(Math.min(255,parseInt(color[1],10))/255,Math.min(255,parseInt(color[2],10))/255,Math.min(255,parseInt(color[3],10))/255,colorSpace);if(color=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components))return handleAlpha(color[4]),this.setRGB(Math.min(100,parseInt(color[1],10))/100,Math.min(100,parseInt(color[2],10))/100,Math.min(100,parseInt(color[3],10))/100,colorSpace);break;case"hsl":case"hsla":if(color=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(components))return handleAlpha(color[4]),this.setHSL(parseFloat(color[1])/360,parseFloat(color[2])/100,parseFloat(color[3])/100,colorSpace);break;default:warn("Color: Unknown color model "+style)}}else if(m=/^\#([A-Fa-f\d]+)$/.exec(style)){const hex=m[1],size=hex.length;if(3===size)return this.setRGB(parseInt(hex.charAt(0),16)/15,parseInt(hex.charAt(1),16)/15,parseInt(hex.charAt(2),16)/15,colorSpace);if(6===size)return this.setHex(parseInt(hex,16),colorSpace);warn("Color: Invalid hex color "+style)}else if(style&&style.length>0)return this.setColorName(style,colorSpace);return this}setColorName(style,colorSpace="srgb"){const hex=_colorKeywords[style.toLowerCase()];return void 0!==hex?this.setHex(hex,colorSpace):warn("Color: Unknown color "+style),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(color){return this.r=color.r,this.g=color.g,this.b=color.b,this}copySRGBToLinear(color){return this.r=SRGBToLinear(color.r),this.g=SRGBToLinear(color.g),this.b=SRGBToLinear(color.b),this}copyLinearToSRGB(color){return this.r=LinearToSRGB(color.r),this.g=LinearToSRGB(color.g),this.b=LinearToSRGB(color.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(colorSpace="srgb"){return ColorManagement.workingToColorSpace(_color.copy(this),colorSpace),65536*Math.round(clamp(255*_color.r,0,255))+256*Math.round(clamp(255*_color.g,0,255))+Math.round(clamp(255*_color.b,0,255))}getHexString(colorSpace="srgb"){return("000000"+this.getHex(colorSpace).toString(16)).slice(-6)}getHSL(target,colorSpace=ColorManagement.workingColorSpace){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);const r=_color.r,g=_color.g,b=_color.b,max=Math.max(r,g,b),min=Math.min(r,g,b);let hue,saturation;const lightness=(min+max)/2;if(min===max)hue=0,saturation=0;else{const delta=max-min;switch(saturation=lightness<=.5?delta/(max+min):delta/(2-max-min),max){case r:hue=(g-b)/delta+(g<b?6:0);break;case g:hue=(b-r)/delta+2;break;case b:hue=(r-g)/delta+4}hue/=6}return target.h=hue,target.s=saturation,target.l=lightness,target}getRGB(target,colorSpace=ColorManagement.workingColorSpace){return ColorManagement.workingToColorSpace(_color.copy(this),colorSpace),target.r=_color.r,target.g=_color.g,target.b=_color.b,target}getStyle(colorSpace="srgb"){ColorManagement.workingToColorSpace(_color.copy(this),colorSpace);const r=_color.r,g=_color.g,b=_color.b;return"srgb"!==colorSpace?`color(${colorSpace} ${r.toFixed(3)} ${g.toFixed(3)} ${b.toFixed(3)})`:`rgb(${Math.round(255*r)},${Math.round(255*g)},${Math.round(255*b)})`}offsetHSL(h,s,l){return this.getHSL(_hslA),this.setHSL(_hslA.h+h,_hslA.s+s,_hslA.l+l)}add(color){return this.r+=color.r,this.g+=color.g,this.b+=color.b,this}addColors(color1,color2){return this.r=color1.r+color2.r,this.g=color1.g+color2.g,this.b=color1.b+color2.b,this}addScalar(s){return this.r+=s,this.g+=s,this.b+=s,this}sub(color){return this.r=Math.max(0,this.r-color.r),this.g=Math.max(0,this.g-color.g),this.b=Math.max(0,this.b-color.b),this}multiply(color){return this.r*=color.r,this.g*=color.g,this.b*=color.b,this}multiplyScalar(s){return this.r*=s,this.g*=s,this.b*=s,this}lerp(color,alpha){return this.r+=(color.r-this.r)*alpha,this.g+=(color.g-this.g)*alpha,this.b+=(color.b-this.b)*alpha,this}lerpColors(color1,color2,alpha){return this.r=color1.r+(color2.r-color1.r)*alpha,this.g=color1.g+(color2.g-color1.g)*alpha,this.b=color1.b+(color2.b-color1.b)*alpha,this}lerpHSL(color,alpha){this.getHSL(_hslA),color.getHSL(_hslB);const h=lerp(_hslA.h,_hslB.h,alpha),s=lerp(_hslA.s,_hslB.s,alpha),l=lerp(_hslA.l,_hslB.l,alpha);return this.setHSL(h,s,l),this}setFromVector3(v){return this.r=v.x,this.g=v.y,this.b=v.z,this}applyMatrix3(m){const r=this.r,g=this.g,b=this.b,e=m.elements;return this.r=e[0]*r+e[3]*g+e[6]*b,this.g=e[1]*r+e[4]*g+e[7]*b,this.b=e[2]*r+e[5]*g+e[8]*b,this}equals(c){return c.r===this.r&&c.g===this.g&&c.b===this.b}fromArray(array,offset=0){return this.r=array[offset],this.g=array[offset+1],this.b=array[offset+2],this}toArray(array=[],offset=0){return array[offset]=this.r,array[offset+1]=this.g,array[offset+2]=this.b,array}fromBufferAttribute(attribute,index){return this.r=attribute.getX(index),this.g=attribute.getY(index),this.b=attribute.getZ(index),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const _color=new Color;Color.NAMES=_colorKeywords;let _materialId=0;class Material extends EventDispatcher{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:_materialId++}),this.uuid=generateUUID(),this.name="",this.type="Material",this.blending=1,this.side=0,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=204,this.blendDst=205,this.blendEquation=100,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Color(0,0,0),this.blendAlpha=0,this.depthFunc=3,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=519,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=7680,this.stencilZFail=7680,this.stencilZPass=7680,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(value){this._alphaTest>0!=value>0&&this.version++,this._alphaTest=value}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(values){if(void 0!==values)for(const key in values){const newValue=values[key];if(void 0===newValue){warn(`Material: parameter '${key}' has value of undefined.`);continue}const currentValue=this[key];void 0!==currentValue?currentValue&&currentValue.isColor?currentValue.set(newValue):currentValue&&currentValue.isVector3&&newValue&&newValue.isVector3?currentValue.copy(newValue):this[key]=newValue:warn(`Material: '${key}' is not a property of THREE.${this.type}.`)}}toJSON(meta){const isRootObject=void 0===meta||"string"==typeof meta;isRootObject&&(meta={textures:{},images:{}});const data={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};function extractFromCache(cache){const values=[];for(const key in cache){const data=cache[key];delete data.metadata,values.push(data)}return values}if(data.uuid=this.uuid,data.type=this.type,""!==this.name&&(data.name=this.name),this.color&&this.color.isColor&&(data.color=this.color.getHex()),void 0!==this.roughness&&(data.roughness=this.roughness),void 0!==this.metalness&&(data.metalness=this.metalness),void 0!==this.sheen&&(data.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(data.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(data.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(data.emissive=this.emissive.getHex()),void 0!==this.emissiveIntensity&&1!==this.emissiveIntensity&&(data.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(data.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(data.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(data.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(data.shininess=this.shininess),void 0!==this.clearcoat&&(data.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(data.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(data.clearcoatMap=this.clearcoatMap.toJSON(meta).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(data.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(meta).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(data.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(meta).uuid,data.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(data.sheenColorMap=this.sheenColorMap.toJSON(meta).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(data.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(meta).uuid),void 0!==this.dispersion&&(data.dispersion=this.dispersion),void 0!==this.iridescence&&(data.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(data.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(data.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(data.iridescenceMap=this.iridescenceMap.toJSON(meta).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(data.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(meta).uuid),void 0!==this.anisotropy&&(data.anisotropy=this.anisotropy),void 0!==this.anisotropyRotation&&(data.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(data.anisotropyMap=this.anisotropyMap.toJSON(meta).uuid),this.map&&this.map.isTexture&&(data.map=this.map.toJSON(meta).uuid),this.matcap&&this.matcap.isTexture&&(data.matcap=this.matcap.toJSON(meta).uuid),this.alphaMap&&this.alphaMap.isTexture&&(data.alphaMap=this.alphaMap.toJSON(meta).uuid),this.lightMap&&this.lightMap.isTexture&&(data.lightMap=this.lightMap.toJSON(meta).uuid,data.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(data.aoMap=this.aoMap.toJSON(meta).uuid,data.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(data.bumpMap=this.bumpMap.toJSON(meta).uuid,data.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(data.normalMap=this.normalMap.toJSON(meta).uuid,data.normalMapType=this.normalMapType,data.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(data.displacementMap=this.displacementMap.toJSON(meta).uuid,data.displacementScale=this.displacementScale,data.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(data.roughnessMap=this.roughnessMap.toJSON(meta).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(data.metalnessMap=this.metalnessMap.toJSON(meta).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(data.emissiveMap=this.emissiveMap.toJSON(meta).uuid),this.specularMap&&this.specularMap.isTexture&&(data.specularMap=this.specularMap.toJSON(meta).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(data.specularIntensityMap=this.specularIntensityMap.toJSON(meta).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(data.specularColorMap=this.specularColorMap.toJSON(meta).uuid),this.envMap&&this.envMap.isTexture&&(data.envMap=this.envMap.toJSON(meta).uuid,void 0!==this.combine&&(data.combine=this.combine)),void 0!==this.envMapRotation&&(data.envMapRotation=this.envMapRotation.toArray()),void 0!==this.envMapIntensity&&(data.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(data.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(data.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(data.gradientMap=this.gradientMap.toJSON(meta).uuid),void 0!==this.transmission&&(data.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(data.transmissionMap=this.transmissionMap.toJSON(meta).uuid),void 0!==this.thickness&&(data.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(data.thicknessMap=this.thicknessMap.toJSON(meta).uuid),void 0!==this.attenuationDistance&&this.attenuationDistance!==1/0&&(data.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(data.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(data.size=this.size),null!==this.shadowSide&&(data.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(data.sizeAttenuation=this.sizeAttenuation),1!==this.blending&&(data.blending=this.blending),0!==this.side&&(data.side=this.side),!0===this.vertexColors&&(data.vertexColors=!0),this.opacity<1&&(data.opacity=this.opacity),!0===this.transparent&&(data.transparent=!0),204!==this.blendSrc&&(data.blendSrc=this.blendSrc),205!==this.blendDst&&(data.blendDst=this.blendDst),100!==this.blendEquation&&(data.blendEquation=this.blendEquation),null!==this.blendSrcAlpha&&(data.blendSrcAlpha=this.blendSrcAlpha),null!==this.blendDstAlpha&&(data.blendDstAlpha=this.blendDstAlpha),null!==this.blendEquationAlpha&&(data.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(data.blendColor=this.blendColor.getHex()),0!==this.blendAlpha&&(data.blendAlpha=this.blendAlpha),3!==this.depthFunc&&(data.depthFunc=this.depthFunc),!1===this.depthTest&&(data.depthTest=this.depthTest),!1===this.depthWrite&&(data.depthWrite=this.depthWrite),!1===this.colorWrite&&(data.colorWrite=this.colorWrite),255!==this.stencilWriteMask&&(data.stencilWriteMask=this.stencilWriteMask),519!==this.stencilFunc&&(data.stencilFunc=this.stencilFunc),0!==this.stencilRef&&(data.stencilRef=this.stencilRef),255!==this.stencilFuncMask&&(data.stencilFuncMask=this.stencilFuncMask),7680!==this.stencilFail&&(data.stencilFail=this.stencilFail),7680!==this.stencilZFail&&(data.stencilZFail=this.stencilZFail),7680!==this.stencilZPass&&(data.stencilZPass=this.stencilZPass),!0===this.stencilWrite&&(data.stencilWrite=this.stencilWrite),void 0!==this.rotation&&0!==this.rotation&&(data.rotation=this.rotation),!0===this.polygonOffset&&(data.polygonOffset=!0),0!==this.polygonOffsetFactor&&(data.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(data.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(data.linewidth=this.linewidth),void 0!==this.dashSize&&(data.dashSize=this.dashSize),void 0!==this.gapSize&&(data.gapSize=this.gapSize),void 0!==this.scale&&(data.scale=this.scale),!0===this.dithering&&(data.dithering=!0),this.alphaTest>0&&(data.alphaTest=this.alphaTest),!0===this.alphaHash&&(data.alphaHash=!0),!0===this.alphaToCoverage&&(data.alphaToCoverage=!0),!0===this.premultipliedAlpha&&(data.premultipliedAlpha=!0),!0===this.forceSinglePass&&(data.forceSinglePass=!0),!1===this.allowOverride&&(data.allowOverride=!1),!0===this.wireframe&&(data.wireframe=!0),this.wireframeLinewidth>1&&(data.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(data.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(data.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(data.flatShading=!0),!1===this.visible&&(data.visible=!1),!1===this.toneMapped&&(data.toneMapped=!1),!1===this.fog&&(data.fog=!1),Object.keys(this.userData).length>0&&(data.userData=this.userData),isRootObject){const textures=extractFromCache(meta.textures),images=extractFromCache(meta.images);textures.length>0&&(data.textures=textures),images.length>0&&(data.images=images)}return data}clone(){return(new this.constructor).copy(this)}copy(source){this.name=source.name,this.blending=source.blending,this.side=source.side,this.vertexColors=source.vertexColors,this.opacity=source.opacity,this.transparent=source.transparent,this.blendSrc=source.blendSrc,this.blendDst=source.blendDst,this.blendEquation=source.blendEquation,this.blendSrcAlpha=source.blendSrcAlpha,this.blendDstAlpha=source.blendDstAlpha,this.blendEquationAlpha=source.blendEquationAlpha,this.blendColor.copy(source.blendColor),this.blendAlpha=source.blendAlpha,this.depthFunc=source.depthFunc,this.depthTest=source.depthTest,this.depthWrite=source.depthWrite,this.stencilWriteMask=source.stencilWriteMask,this.stencilFunc=source.stencilFunc,this.stencilRef=source.stencilRef,this.stencilFuncMask=source.stencilFuncMask,this.stencilFail=source.stencilFail,this.stencilZFail=source.stencilZFail,this.stencilZPass=source.stencilZPass,this.stencilWrite=source.stencilWrite;const srcPlanes=source.clippingPlanes;let dstPlanes=null;if(null!==srcPlanes){const n=srcPlanes.length;dstPlanes=new Array(n);for(let i=0;i!==n;++i)dstPlanes[i]=srcPlanes[i].clone()}return this.clippingPlanes=dstPlanes,this.clipIntersection=source.clipIntersection,this.clipShadows=source.clipShadows,this.shadowSide=source.shadowSide,this.colorWrite=source.colorWrite,this.precision=source.precision,this.polygonOffset=source.polygonOffset,this.polygonOffsetFactor=source.polygonOffsetFactor,this.polygonOffsetUnits=source.polygonOffsetUnits,this.dithering=source.dithering,this.alphaTest=source.alphaTest,this.alphaHash=source.alphaHash,this.alphaToCoverage=source.alphaToCoverage,this.premultipliedAlpha=source.premultipliedAlpha,this.forceSinglePass=source.forceSinglePass,this.allowOverride=source.allowOverride,this.visible=source.visible,this.toneMapped=source.toneMapped,this.userData=JSON.parse(JSON.stringify(source.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(value){!0===value&&this.version++}}class MeshBasicMaterial extends Material{constructor(parameters){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.lightMap=source.lightMap,this.lightMapIntensity=source.lightMapIntensity,this.aoMap=source.aoMap,this.aoMapIntensity=source.aoMapIntensity,this.specularMap=source.specularMap,this.alphaMap=source.alphaMap,this.envMap=source.envMap,this.envMapRotation.copy(source.envMapRotation),this.combine=source.combine,this.reflectivity=source.reflectivity,this.refractionRatio=source.refractionRatio,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.wireframeLinecap=source.wireframeLinecap,this.wireframeLinejoin=source.wireframeLinejoin,this.fog=source.fog,this}}const _tables=_generateTables();function _generateTables(){const buffer=new ArrayBuffer(4),floatView=new Float32Array(buffer),uint32View=new Uint32Array(buffer),baseTable=new Uint32Array(512),shiftTable=new Uint32Array(512);for(let i=0;i<256;++i){const e=i-127;e<-27?(baseTable[i]=0,baseTable[256|i]=32768,shiftTable[i]=24,shiftTable[256|i]=24):e<-14?(baseTable[i]=1024>>-e-14,baseTable[256|i]=1024>>-e-14|32768,shiftTable[i]=-e-1,shiftTable[256|i]=-e-1):e<=15?(baseTable[i]=e+15<<10,baseTable[256|i]=e+15<<10|32768,shiftTable[i]=13,shiftTable[256|i]=13):e<128?(baseTable[i]=31744,baseTable[256|i]=64512,shiftTable[i]=24,shiftTable[256|i]=24):(baseTable[i]=31744,baseTable[256|i]=64512,shiftTable[i]=13,shiftTable[256|i]=13)}const mantissaTable=new Uint32Array(2048),exponentTable=new Uint32Array(64),offsetTable=new Uint32Array(64);for(let i=1;i<1024;++i){let m=i<<13,e=0;for(;!(8388608&m);)m<<=1,e-=8388608;m&=-8388609,e+=947912704,mantissaTable[i]=m|e}for(let i=1024;i<2048;++i)mantissaTable[i]=939524096+(i-1024<<13);for(let i=1;i<31;++i)exponentTable[i]=i<<23;exponentTable[31]=1199570944,exponentTable[32]=2147483648;for(let i=33;i<63;++i)exponentTable[i]=2147483648+(i-32<<23);exponentTable[63]=3347054592;for(let i=1;i<64;++i)32!==i&&(offsetTable[i]=1024);return{floatView:floatView,uint32View:uint32View,baseTable:baseTable,shiftTable:shiftTable,mantissaTable:mantissaTable,exponentTable:exponentTable,offsetTable:offsetTable}}class DataUtils{static toHalfFloat(val){return function(val){Math.abs(val)>65504&&warn("DataUtils.toHalfFloat(): Value out of range."),val=clamp(val,-65504,65504),_tables.floatView[0]=val;const f=_tables.uint32View[0],e=f>>23&511;return _tables.baseTable[e]+((8388607&f)>>_tables.shiftTable[e])}(val)}static fromHalfFloat(val){return function(val){const m=val>>10;return _tables.uint32View[0]=_tables.mantissaTable[_tables.offsetTable[m]+(1023&val)]+_tables.exponentTable[m],_tables.floatView[0]}(val)}}const _vector$9=new Vector3,_vector2$1=new Vector2;let _id$2=0;class BufferAttribute{constructor(array,itemSize,normalized=!1){if(Array.isArray(array))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:_id$2++}),this.name="",this.array=array,this.itemSize=itemSize,this.count=void 0!==array?array.length/itemSize:0,this.normalized=normalized,this.usage=35044,this.updateRanges=[],this.gpuType=1015,this.version=0}onUploadCallback(){}set needsUpdate(value){!0===value&&this.version++}setUsage(value){return this.usage=value,this}addUpdateRange(start,count){this.updateRanges.push({start:start,count:count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){return this.name=source.name,this.array=new source.array.constructor(source.array),this.itemSize=source.itemSize,this.count=source.count,this.normalized=source.normalized,this.usage=source.usage,this.gpuType=source.gpuType,this}copyAt(index1,attribute,index2){index1*=this.itemSize,index2*=attribute.itemSize;for(let i=0,l=this.itemSize;i<l;i++)this.array[index1+i]=attribute.array[index2+i];return this}copyArray(array){return this.array.set(array),this}applyMatrix3(m){if(2===this.itemSize)for(let i=0,l=this.count;i<l;i++)_vector2$1.fromBufferAttribute(this,i),_vector2$1.applyMatrix3(m),this.setXY(i,_vector2$1.x,_vector2$1.y);else if(3===this.itemSize)for(let i=0,l=this.count;i<l;i++)_vector$9.fromBufferAttribute(this,i),_vector$9.applyMatrix3(m),this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyMatrix4(m){for(let i=0,l=this.count;i<l;i++)_vector$9.fromBufferAttribute(this,i),_vector$9.applyMatrix4(m),this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z);return this}applyNormalMatrix(m){for(let i=0,l=this.count;i<l;i++)_vector$9.fromBufferAttribute(this,i),_vector$9.applyNormalMatrix(m),this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z);return this}transformDirection(m){for(let i=0,l=this.count;i<l;i++)_vector$9.fromBufferAttribute(this,i),_vector$9.transformDirection(m),this.setXYZ(i,_vector$9.x,_vector$9.y,_vector$9.z);return this}set(value,offset=0){return this.array.set(value,offset),this}getComponent(index,component){let value=this.array[index*this.itemSize+component];return this.normalized&&(value=denormalize(value,this.array)),value}setComponent(index,component,value){return this.normalized&&(value=normalize(value,this.array)),this.array[index*this.itemSize+component]=value,this}getX(index){let x=this.array[index*this.itemSize];return this.normalized&&(x=denormalize(x,this.array)),x}setX(index,x){return this.normalized&&(x=normalize(x,this.array)),this.array[index*this.itemSize]=x,this}getY(index){let y=this.array[index*this.itemSize+1];return this.normalized&&(y=denormalize(y,this.array)),y}setY(index,y){return this.normalized&&(y=normalize(y,this.array)),this.array[index*this.itemSize+1]=y,this}getZ(index){let z=this.array[index*this.itemSize+2];return this.normalized&&(z=denormalize(z,this.array)),z}setZ(index,z){return this.normalized&&(z=normalize(z,this.array)),this.array[index*this.itemSize+2]=z,this}getW(index){let w=this.array[index*this.itemSize+3];return this.normalized&&(w=denormalize(w,this.array)),w}setW(index,w){return this.normalized&&(w=normalize(w,this.array)),this.array[index*this.itemSize+3]=w,this}setXY(index,x,y){return index*=this.itemSize,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array)),this.array[index+0]=x,this.array[index+1]=y,this}setXYZ(index,x,y,z){return index*=this.itemSize,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array),z=normalize(z,this.array)),this.array[index+0]=x,this.array[index+1]=y,this.array[index+2]=z,this}setXYZW(index,x,y,z,w){return index*=this.itemSize,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array),z=normalize(z,this.array),w=normalize(w,this.array)),this.array[index+0]=x,this.array[index+1]=y,this.array[index+2]=z,this.array[index+3]=w,this}onUpload(callback){return this.onUploadCallback=callback,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const data={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return""!==this.name&&(data.name=this.name),35044!==this.usage&&(data.usage=this.usage),data}}class Uint16BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint16Array(array),itemSize,normalized)}}class Uint32BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Uint32Array(array),itemSize,normalized)}}class Float32BufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized){super(new Float32Array(array),itemSize,normalized)}}let _id$1=0;const _m1=new Matrix4,_obj=new Object3D,_offset=new Vector3,_box$2=new Box3,_boxMorphTargets=new Box3,_vector$8=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:_id$1++}),this.uuid=generateUUID(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.indirectOffset=0,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(index){return this.index=Array.isArray(index)?new(arrayNeedsUint32(index)?Uint32BufferAttribute:Uint16BufferAttribute)(index,1):index,this}setIndirect(indirect,indirectOffset=0){return this.indirect=indirect,this.indirectOffset=indirectOffset,this}getIndirect(){return this.indirect}getAttribute(name){return this.attributes[name]}setAttribute(name,attribute){return this.attributes[name]=attribute,this}deleteAttribute(name){return delete this.attributes[name],this}hasAttribute(name){return void 0!==this.attributes[name]}addGroup(start,count,materialIndex=0){this.groups.push({start:start,count:count,materialIndex:materialIndex})}clearGroups(){this.groups=[]}setDrawRange(start,count){this.drawRange.start=start,this.drawRange.count=count}applyMatrix4(matrix){const position=this.attributes.position;void 0!==position&&(position.applyMatrix4(matrix),position.needsUpdate=!0);const normal=this.attributes.normal;if(void 0!==normal){const normalMatrix=(new Matrix3).getNormalMatrix(matrix);normal.applyNormalMatrix(normalMatrix),normal.needsUpdate=!0}const tangent=this.attributes.tangent;return void 0!==tangent&&(tangent.transformDirection(matrix),tangent.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(q){return _m1.makeRotationFromQuaternion(q),this.applyMatrix4(_m1),this}rotateX(angle){return _m1.makeRotationX(angle),this.applyMatrix4(_m1),this}rotateY(angle){return _m1.makeRotationY(angle),this.applyMatrix4(_m1),this}rotateZ(angle){return _m1.makeRotationZ(angle),this.applyMatrix4(_m1),this}translate(x,y,z){return _m1.makeTranslation(x,y,z),this.applyMatrix4(_m1),this}scale(x,y,z){return _m1.makeScale(x,y,z),this.applyMatrix4(_m1),this}lookAt(vector){return _obj.lookAt(vector),_obj.updateMatrix(),this.applyMatrix4(_obj.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(_offset).negate(),this.translate(_offset.x,_offset.y,_offset.z),this}setFromPoints(points){const positionAttribute=this.getAttribute("position");if(void 0===positionAttribute){const position=[];for(let i=0,l=points.length;i<l;i++){const point=points[i];position.push(point.x,point.y,point.z||0)}this.setAttribute("position",new Float32BufferAttribute(position,3))}else{const l=Math.min(points.length,positionAttribute.count);for(let i=0;i<l;i++){const point=points[i];positionAttribute.setXYZ(i,point.x,point.y,point.z||0)}points.length>positionAttribute.count&&warn("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),positionAttribute.needsUpdate=!0}return this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const position=this.attributes.position,morphAttributesPosition=this.morphAttributes.position;if(position&&position.isGLBufferAttribute)return error("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),void this.boundingBox.set(new Vector3(-1/0,-1/0,-1/0),new Vector3(1/0,1/0,1/0));if(void 0!==position){if(this.boundingBox.setFromBufferAttribute(position),morphAttributesPosition)for(let i=0,il=morphAttributesPosition.length;i<il;i++)_box$2.setFromBufferAttribute(morphAttributesPosition[i]),this.morphTargetsRelative?(_vector$8.addVectors(this.boundingBox.min,_box$2.min),this.boundingBox.expandByPoint(_vector$8),_vector$8.addVectors(this.boundingBox.max,_box$2.max),this.boundingBox.expandByPoint(_vector$8)):(this.boundingBox.expandByPoint(_box$2.min),this.boundingBox.expandByPoint(_box$2.max))}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&error('BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const position=this.attributes.position,morphAttributesPosition=this.morphAttributes.position;if(position&&position.isGLBufferAttribute)return error("BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),void this.boundingSphere.set(new Vector3,1/0);if(position){const center=this.boundingSphere.center;if(_box$2.setFromBufferAttribute(position),morphAttributesPosition)for(let i=0,il=morphAttributesPosition.length;i<il;i++)_boxMorphTargets.setFromBufferAttribute(morphAttributesPosition[i]),this.morphTargetsRelative?(_vector$8.addVectors(_box$2.min,_boxMorphTargets.min),_box$2.expandByPoint(_vector$8),_vector$8.addVectors(_box$2.max,_boxMorphTargets.max),_box$2.expandByPoint(_vector$8)):(_box$2.expandByPoint(_boxMorphTargets.min),_box$2.expandByPoint(_boxMorphTargets.max));_box$2.getCenter(center);let maxRadiusSq=0;for(let i=0,il=position.count;i<il;i++)_vector$8.fromBufferAttribute(position,i),maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(_vector$8));if(morphAttributesPosition)for(let i=0,il=morphAttributesPosition.length;i<il;i++){const morphAttribute=morphAttributesPosition[i],morphTargetsRelative=this.morphTargetsRelative;for(let j=0,jl=morphAttribute.count;j<jl;j++)_vector$8.fromBufferAttribute(morphAttribute,j),morphTargetsRelative&&(_offset.fromBufferAttribute(position,j),_vector$8.add(_offset)),maxRadiusSq=Math.max(maxRadiusSq,center.distanceToSquared(_vector$8))}this.boundingSphere.radius=Math.sqrt(maxRadiusSq),isNaN(this.boundingSphere.radius)&&error('BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const index=this.index,attributes=this.attributes;if(null===index||void 0===attributes.position||void 0===attributes.normal||void 0===attributes.uv)return void error("BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const positionAttribute=attributes.position,normalAttribute=attributes.normal,uvAttribute=attributes.uv;!1===this.hasAttribute("tangent")&&this.setAttribute("tangent",new BufferAttribute(new Float32Array(4*positionAttribute.count),4));const tangentAttribute=this.getAttribute("tangent"),tan1=[],tan2=[];for(let i=0;i<positionAttribute.count;i++)tan1[i]=new Vector3,tan2[i]=new Vector3;const vA=new Vector3,vB=new Vector3,vC=new Vector3,uvA=new Vector2,uvB=new Vector2,uvC=new Vector2,sdir=new Vector3,tdir=new Vector3;function handleTriangle(a,b,c){vA.fromBufferAttribute(positionAttribute,a),vB.fromBufferAttribute(positionAttribute,b),vC.fromBufferAttribute(positionAttribute,c),uvA.fromBufferAttribute(uvAttribute,a),uvB.fromBufferAttribute(uvAttribute,b),uvC.fromBufferAttribute(uvAttribute,c),vB.sub(vA),vC.sub(vA),uvB.sub(uvA),uvC.sub(uvA);const r=1/(uvB.x*uvC.y-uvC.x*uvB.y);isFinite(r)&&(sdir.copy(vB).multiplyScalar(uvC.y).addScaledVector(vC,-uvB.y).multiplyScalar(r),tdir.copy(vC).multiplyScalar(uvB.x).addScaledVector(vB,-uvC.x).multiplyScalar(r),tan1[a].add(sdir),tan1[b].add(sdir),tan1[c].add(sdir),tan2[a].add(tdir),tan2[b].add(tdir),tan2[c].add(tdir))}let groups=this.groups;0===groups.length&&(groups=[{start:0,count:index.count}]);for(let i=0,il=groups.length;i<il;++i){const group=groups[i],start=group.start;for(let j=start,jl=start+group.count;j<jl;j+=3)handleTriangle(index.getX(j+0),index.getX(j+1),index.getX(j+2))}const tmp=new Vector3,tmp2=new Vector3,n=new Vector3,n2=new Vector3;function handleVertex(v){n.fromBufferAttribute(normalAttribute,v),n2.copy(n);const t=tan1[v];tmp.copy(t),tmp.sub(n.multiplyScalar(n.dot(t))).normalize(),tmp2.crossVectors(n2,t);const test=tmp2.dot(tan2[v]);tangentAttribute.setXYZW(v,tmp.x,tmp.y,tmp.z,test<0?-1:1)}for(let i=0,il=groups.length;i<il;++i){const group=groups[i],start=group.start;for(let j=start,jl=start+group.count;j<jl;j+=3)handleVertex(index.getX(j+0)),handleVertex(index.getX(j+1)),handleVertex(index.getX(j+2))}}computeVertexNormals(){const index=this.index,positionAttribute=this.getAttribute("position");if(void 0!==positionAttribute){let normalAttribute=this.getAttribute("normal");if(void 0===normalAttribute)normalAttribute=new BufferAttribute(new Float32Array(3*positionAttribute.count),3),this.setAttribute("normal",normalAttribute);else for(let i=0,il=normalAttribute.count;i<il;i++)normalAttribute.setXYZ(i,0,0,0);const pA=new Vector3,pB=new Vector3,pC=new Vector3,nA=new Vector3,nB=new Vector3,nC=new Vector3,cb=new Vector3,ab=new Vector3;if(index)for(let i=0,il=index.count;i<il;i+=3){const vA=index.getX(i+0),vB=index.getX(i+1),vC=index.getX(i+2);pA.fromBufferAttribute(positionAttribute,vA),pB.fromBufferAttribute(positionAttribute,vB),pC.fromBufferAttribute(positionAttribute,vC),cb.subVectors(pC,pB),ab.subVectors(pA,pB),cb.cross(ab),nA.fromBufferAttribute(normalAttribute,vA),nB.fromBufferAttribute(normalAttribute,vB),nC.fromBufferAttribute(normalAttribute,vC),nA.add(cb),nB.add(cb),nC.add(cb),normalAttribute.setXYZ(vA,nA.x,nA.y,nA.z),normalAttribute.setXYZ(vB,nB.x,nB.y,nB.z),normalAttribute.setXYZ(vC,nC.x,nC.y,nC.z)}else for(let i=0,il=positionAttribute.count;i<il;i+=3)pA.fromBufferAttribute(positionAttribute,i+0),pB.fromBufferAttribute(positionAttribute,i+1),pC.fromBufferAttribute(positionAttribute,i+2),cb.subVectors(pC,pB),ab.subVectors(pA,pB),cb.cross(ab),normalAttribute.setXYZ(i+0,cb.x,cb.y,cb.z),normalAttribute.setXYZ(i+1,cb.x,cb.y,cb.z),normalAttribute.setXYZ(i+2,cb.x,cb.y,cb.z);this.normalizeNormals(),normalAttribute.needsUpdate=!0}}normalizeNormals(){const normals=this.attributes.normal;for(let i=0,il=normals.count;i<il;i++)_vector$8.fromBufferAttribute(normals,i),_vector$8.normalize(),normals.setXYZ(i,_vector$8.x,_vector$8.y,_vector$8.z)}toNonIndexed(){function convertBufferAttribute(attribute,indices){const array=attribute.array,itemSize=attribute.itemSize,normalized=attribute.normalized,array2=new array.constructor(indices.length*itemSize);let index=0,index2=0;for(let i=0,l=indices.length;i<l;i++){index=attribute.isInterleavedBufferAttribute?indices[i]*attribute.data.stride+attribute.offset:indices[i]*itemSize;for(let j=0;j<itemSize;j++)array2[index2++]=array[index++]}return new BufferAttribute(array2,itemSize,normalized)}if(null===this.index)return warn("BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const geometry2=new BufferGeometry,indices=this.index.array,attributes=this.attributes;for(const name in attributes){const newAttribute=convertBufferAttribute(attributes[name],indices);geometry2.setAttribute(name,newAttribute)}const morphAttributes=this.morphAttributes;for(const name in morphAttributes){const morphArray=[],morphAttribute=morphAttributes[name];for(let i=0,il=morphAttribute.length;i<il;i++){const newAttribute=convertBufferAttribute(morphAttribute[i],indices);morphArray.push(newAttribute)}geometry2.morphAttributes[name]=morphArray}geometry2.morphTargetsRelative=this.morphTargetsRelative;const groups=this.groups;for(let i=0,l=groups.length;i<l;i++){const group=groups[i];geometry2.addGroup(group.start,group.count,group.materialIndex)}return geometry2}toJSON(){const data={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(data.uuid=this.uuid,data.type=this.type,""!==this.name&&(data.name=this.name),Object.keys(this.userData).length>0&&(data.userData=this.userData),void 0!==this.parameters){const parameters=this.parameters;for(const key in parameters)void 0!==parameters[key]&&(data[key]=parameters[key]);return data}data.data={attributes:{}};const index=this.index;null!==index&&(data.data.index={type:index.array.constructor.name,array:Array.prototype.slice.call(index.array)});const attributes=this.attributes;for(const key in attributes)data.data.attributes[key]=attributes[key].toJSON(data.data);const morphAttributes={};let hasMorphAttributes=!1;for(const key in this.morphAttributes){const attributeArray=this.morphAttributes[key],array=[];for(let i=0,il=attributeArray.length;i<il;i++)array.push(attributeArray[i].toJSON(data.data));array.length>0&&(morphAttributes[key]=array,hasMorphAttributes=!0)}hasMorphAttributes&&(data.data.morphAttributes=morphAttributes,data.data.morphTargetsRelative=this.morphTargetsRelative);const groups=this.groups;groups.length>0&&(data.data.groups=JSON.parse(JSON.stringify(groups)));const boundingSphere=this.boundingSphere;return null!==boundingSphere&&(data.data.boundingSphere=boundingSphere.toJSON()),data}clone(){return(new this.constructor).copy(this)}copy(source){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const data={};this.name=source.name;const index=source.index;null!==index&&this.setIndex(index.clone());const attributes=source.attributes;for(const name in attributes)this.setAttribute(name,attributes[name].clone(data));const morphAttributes=source.morphAttributes;for(const name in morphAttributes){const array=[],morphAttribute=morphAttributes[name];for(let i=0,l=morphAttribute.length;i<l;i++)array.push(morphAttribute[i].clone(data));this.morphAttributes[name]=array}this.morphTargetsRelative=source.morphTargetsRelative;const groups=source.groups;for(let i=0,l=groups.length;i<l;i++){const group=groups[i];this.addGroup(group.start,group.count,group.materialIndex)}const boundingBox=source.boundingBox;null!==boundingBox&&(this.boundingBox=boundingBox.clone());const boundingSphere=source.boundingSphere;return null!==boundingSphere&&(this.boundingSphere=boundingSphere.clone()),this.drawRange.start=source.drawRange.start,this.drawRange.count=source.drawRange.count,this.userData=source.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const _inverseMatrix$3=new Matrix4,_ray$3=new Ray,_sphere$6=new Sphere,_sphereHitAt=new Vector3,_vA$1=new Vector3,_vB$1=new Vector3,_vC$1=new Vector3,_tempA=new Vector3,_morphA=new Vector3,_intersectionPoint=new Vector3,_intersectionPointWorld=new Vector3;class Mesh extends Object3D{constructor(geometry=new BufferGeometry,material=new MeshBasicMaterial){super(),this.isMesh=!0,this.type="Mesh",this.geometry=geometry,this.material=material,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(source,recursive){return super.copy(source,recursive),void 0!==source.morphTargetInfluences&&(this.morphTargetInfluences=source.morphTargetInfluences.slice()),void 0!==source.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},source.morphTargetDictionary)),this.material=Array.isArray(source.material)?source.material.slice():source.material,this.geometry=source.geometry,this}updateMorphTargets(){const morphAttributes=this.geometry.morphAttributes,keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(void 0!==morphAttribute){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0),this.morphTargetDictionary[name]=m}}}}getVertexPosition(index,target){const geometry=this.geometry,morphPosition=geometry.morphAttributes.position,morphTargetsRelative=geometry.morphTargetsRelative;target.fromBufferAttribute(geometry.attributes.position,index);const morphInfluences=this.morphTargetInfluences;if(morphPosition&&morphInfluences){_morphA.set(0,0,0);for(let i=0,il=morphPosition.length;i<il;i++){const influence=morphInfluences[i];0!==influence&&(_tempA.fromBufferAttribute(morphPosition[i],index),_morphA.addScaledVector(morphTargetsRelative?_tempA:_tempA.sub(target),influence))}target.add(_morphA)}return target}raycast(raycaster,intersects){const geometry=this.geometry,matrixWorld=this.matrixWorld;if(void 0!==this.material){if(null===geometry.boundingSphere&&geometry.computeBoundingSphere(),_sphere$6.copy(geometry.boundingSphere),_sphere$6.applyMatrix4(matrixWorld),_ray$3.copy(raycaster.ray).recast(raycaster.near),!1===_sphere$6.containsPoint(_ray$3.origin)){if(null===_ray$3.intersectSphere(_sphere$6,_sphereHitAt))return;if(_ray$3.origin.distanceToSquared(_sphereHitAt)>(raycaster.far-raycaster.near)**2)return}_inverseMatrix$3.copy(matrixWorld).invert(),_ray$3.copy(raycaster.ray).applyMatrix4(_inverseMatrix$3),null!==geometry.boundingBox&&!1===_ray$3.intersectsBox(geometry.boundingBox)||this._computeIntersections(raycaster,intersects,_ray$3)}}_computeIntersections(raycaster,intersects,rayLocalSpace){let intersection;const geometry=this.geometry,material=this.material,index=geometry.index,position=geometry.attributes.position,uv=geometry.attributes.uv,uv1=geometry.attributes.uv1,normal=geometry.attributes.normal,groups=geometry.groups,drawRange=geometry.drawRange;if(null!==index)if(Array.isArray(material))for(let i=0,il=groups.length;i<il;i++){const group=groups[i],groupMaterial=material[group.materialIndex];for(let j=Math.max(group.start,drawRange.start),jl=Math.min(index.count,Math.min(group.start+group.count,drawRange.start+drawRange.count));j<jl;j+=3)intersection=checkGeometryIntersection(this,groupMaterial,raycaster,rayLocalSpace,uv,uv1,normal,index.getX(j),index.getX(j+1),index.getX(j+2)),intersection&&(intersection.faceIndex=Math.floor(j/3),intersection.face.materialIndex=group.materialIndex,intersects.push(intersection))}else for(let i=Math.max(0,drawRange.start),il=Math.min(index.count,drawRange.start+drawRange.count);i<il;i+=3)intersection=checkGeometryIntersection(this,material,raycaster,rayLocalSpace,uv,uv1,normal,index.getX(i),index.getX(i+1),index.getX(i+2)),intersection&&(intersection.faceIndex=Math.floor(i/3),intersects.push(intersection));else if(void 0!==position)if(Array.isArray(material))for(let i=0,il=groups.length;i<il;i++){const group=groups[i],groupMaterial=material[group.materialIndex];for(let j=Math.max(group.start,drawRange.start),jl=Math.min(position.count,Math.min(group.start+group.count,drawRange.start+drawRange.count));j<jl;j+=3)intersection=checkGeometryIntersection(this,groupMaterial,raycaster,rayLocalSpace,uv,uv1,normal,j,j+1,j+2),intersection&&(intersection.faceIndex=Math.floor(j/3),intersection.face.materialIndex=group.materialIndex,intersects.push(intersection))}else for(let i=Math.max(0,drawRange.start),il=Math.min(position.count,drawRange.start+drawRange.count);i<il;i+=3)intersection=checkGeometryIntersection(this,material,raycaster,rayLocalSpace,uv,uv1,normal,i,i+1,i+2),intersection&&(intersection.faceIndex=Math.floor(i/3),intersects.push(intersection))}}function checkGeometryIntersection(object,material,raycaster,ray,uv,uv1,normal,a,b,c){object.getVertexPosition(a,_vA$1),object.getVertexPosition(b,_vB$1),object.getVertexPosition(c,_vC$1);const intersection=function(object,material,raycaster,ray,pA,pB,pC,point){let intersect;if(intersect=1===material.side?ray.intersectTriangle(pC,pB,pA,!0,point):ray.intersectTriangle(pA,pB,pC,0===material.side,point),null===intersect)return null;_intersectionPointWorld.copy(point),_intersectionPointWorld.applyMatrix4(object.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_intersectionPointWorld);return distance<raycaster.near||distance>raycaster.far?null:{distance:distance,point:_intersectionPointWorld.clone(),object:object}}(object,material,raycaster,ray,_vA$1,_vB$1,_vC$1,_intersectionPoint);if(intersection){const barycoord=new Vector3;Triangle.getBarycoord(_intersectionPoint,_vA$1,_vB$1,_vC$1,barycoord),uv&&(intersection.uv=Triangle.getInterpolatedAttribute(uv,a,b,c,barycoord,new Vector2)),uv1&&(intersection.uv1=Triangle.getInterpolatedAttribute(uv1,a,b,c,barycoord,new Vector2)),normal&&(intersection.normal=Triangle.getInterpolatedAttribute(normal,a,b,c,barycoord,new Vector3),intersection.normal.dot(ray.direction)>0&&intersection.normal.multiplyScalar(-1));const face={a:a,b:b,c:c,normal:new Vector3,materialIndex:0};Triangle.getNormal(_vA$1,_vB$1,_vC$1,face.normal),intersection.face=face,intersection.barycoord=barycoord}return intersection}class BoxGeometry extends BufferGeometry{constructor(width=1,height=1,depth=1,widthSegments=1,heightSegments=1,depthSegments=1){super(),this.type="BoxGeometry",this.parameters={width:width,height:height,depth:depth,widthSegments:widthSegments,heightSegments:heightSegments,depthSegments:depthSegments};const scope=this;widthSegments=Math.floor(widthSegments),heightSegments=Math.floor(heightSegments),depthSegments=Math.floor(depthSegments);const indices=[],vertices=[],normals=[],uvs=[];let numberOfVertices=0,groupStart=0;function buildPlane(u,v,w,udir,vdir,width,height,depth,gridX,gridY,materialIndex){const segmentWidth=width/gridX,segmentHeight=height/gridY,widthHalf=width/2,heightHalf=height/2,depthHalf=depth/2,gridX1=gridX+1,gridY1=gridY+1;let vertexCounter=0,groupCount=0;const vector=new Vector3;for(let iy=0;iy<gridY1;iy++){const y=iy*segmentHeight-heightHalf;for(let ix=0;ix<gridX1;ix++)vector[u]=(ix*segmentWidth-widthHalf)*udir,vector[v]=y*vdir,vector[w]=depthHalf,vertices.push(vector.x,vector.y,vector.z),vector[u]=0,vector[v]=0,vector[w]=depth>0?1:-1,normals.push(vector.x,vector.y,vector.z),uvs.push(ix/gridX),uvs.push(1-iy/gridY),vertexCounter+=1}for(let iy=0;iy<gridY;iy++)for(let ix=0;ix<gridX;ix++){const b=numberOfVertices+ix+gridX1*(iy+1),c=numberOfVertices+(ix+1)+gridX1*(iy+1),d=numberOfVertices+(ix+1)+gridX1*iy;indices.push(numberOfVertices+ix+gridX1*iy,b,d),indices.push(b,c,d),groupCount+=6}scope.addGroup(groupStart,groupCount,materialIndex),groupStart+=groupCount,numberOfVertices+=vertexCounter}buildPlane("z","y","x",-1,-1,depth,height,width,depthSegments,heightSegments,0),buildPlane("z","y","x",1,-1,depth,height,-width,depthSegments,heightSegments,1),buildPlane("x","z","y",1,1,width,depth,height,widthSegments,depthSegments,2),buildPlane("x","z","y",1,-1,width,depth,-height,widthSegments,depthSegments,3),buildPlane("x","y","z",1,-1,width,height,depth,widthSegments,heightSegments,4),buildPlane("x","y","z",-1,-1,width,height,-depth,widthSegments,heightSegments,5),this.setIndex(indices),this.setAttribute("position",new Float32BufferAttribute(vertices,3)),this.setAttribute("normal",new Float32BufferAttribute(normals,3)),this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){return super.copy(source),this.parameters=Object.assign({},source.parameters),this}static fromJSON(data){return new BoxGeometry(data.width,data.height,data.depth,data.widthSegments,data.heightSegments,data.depthSegments)}}function cloneUniforms(src){const dst={};for(const u in src){dst[u]={};for(const p in src[u]){const property=src[u][p];property&&(property.isColor||property.isMatrix3||property.isMatrix4||property.isVector2||property.isVector3||property.isVector4||property.isTexture||property.isQuaternion)?property.isRenderTargetTexture?(warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),dst[u][p]=null):dst[u][p]=property.clone():dst[u][p]=Array.isArray(property)?property.slice():property}}return dst}function mergeUniforms(uniforms){const merged={};for(let u=0;u<uniforms.length;u++){const tmp=cloneUniforms(uniforms[u]);for(const p in tmp)merged[p]=tmp[p]}return merged}function getUnlitUniformColorSpace(renderer){const currentRenderTarget=renderer.getRenderTarget();return null===currentRenderTarget?renderer.outputColorSpace:!0===currentRenderTarget.isXRRenderTarget?currentRenderTarget.texture.colorSpace:ColorManagement.workingColorSpace}const UniformsUtils={clone:cloneUniforms,merge:mergeUniforms};class ShaderMaterial extends Material{constructor(parameters){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==parameters&&this.setValues(parameters)}copy(source){return super.copy(source),this.fragmentShader=source.fragmentShader,this.vertexShader=source.vertexShader,this.uniforms=cloneUniforms(source.uniforms),this.uniformsGroups=function(src){const dst=[];for(let u=0;u<src.length;u++)dst.push(src[u].clone());return dst}(source.uniformsGroups),this.defines=Object.assign({},source.defines),this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.fog=source.fog,this.lights=source.lights,this.clipping=source.clipping,this.extensions=Object.assign({},source.extensions),this.glslVersion=source.glslVersion,this.defaultAttributeValues=Object.assign({},source.defaultAttributeValues),this.index0AttributeName=source.index0AttributeName,this.uniformsNeedUpdate=source.uniformsNeedUpdate,this}toJSON(meta){const data=super.toJSON(meta);data.glslVersion=this.glslVersion,data.uniforms={};for(const name in this.uniforms){const value=this.uniforms[name].value;data.uniforms[name]=value&&value.isTexture?{type:"t",value:value.toJSON(meta).uuid}:value&&value.isColor?{type:"c",value:value.getHex()}:value&&value.isVector2?{type:"v2",value:value.toArray()}:value&&value.isVector3?{type:"v3",value:value.toArray()}:value&&value.isVector4?{type:"v4",value:value.toArray()}:value&&value.isMatrix3?{type:"m3",value:value.toArray()}:value&&value.isMatrix4?{type:"m4",value:value.toArray()}:{value:value}}Object.keys(this.defines).length>0&&(data.defines=this.defines),data.vertexShader=this.vertexShader,data.fragmentShader=this.fragmentShader,data.lights=this.lights,data.clipping=this.clipping;const extensions={};for(const key in this.extensions)!0===this.extensions[key]&&(extensions[key]=!0);return Object.keys(extensions).length>0&&(data.extensions=extensions),data}}class Camera extends Object3D{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Matrix4,this.projectionMatrix=new Matrix4,this.projectionMatrixInverse=new Matrix4,this.coordinateSystem=2e3,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(source,recursive){return super.copy(source,recursive),this.matrixWorldInverse.copy(source.matrixWorldInverse),this.projectionMatrix.copy(source.projectionMatrix),this.projectionMatrixInverse.copy(source.projectionMatrixInverse),this.coordinateSystem=source.coordinateSystem,this}getWorldDirection(target){return super.getWorldDirection(target).negate()}updateMatrixWorld(force){super.updateMatrixWorld(force),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(updateParents,updateChildren){super.updateWorldMatrix(updateParents,updateChildren),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}const _v3$1=new Vector3,_minTarget=new Vector2,_maxTarget=new Vector2;class PerspectiveCamera extends Camera{constructor(fov=50,aspect=1,near=.1,far=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=fov,this.zoom=1,this.near=near,this.far=far,this.focus=10,this.aspect=aspect,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(source,recursive){return super.copy(source,recursive),this.fov=source.fov,this.zoom=source.zoom,this.near=source.near,this.far=source.far,this.focus=source.focus,this.aspect=source.aspect,this.view=null===source.view?null:Object.assign({},source.view),this.filmGauge=source.filmGauge,this.filmOffset=source.filmOffset,this}setFocalLength(focalLength){const vExtentSlope=.5*this.getFilmHeight()/focalLength;this.fov=2*RAD2DEG*Math.atan(vExtentSlope),this.updateProjectionMatrix()}getFocalLength(){const vExtentSlope=Math.tan(.5*DEG2RAD*this.fov);return.5*this.getFilmHeight()/vExtentSlope}getEffectiveFOV(){return 2*RAD2DEG*Math.atan(Math.tan(.5*DEG2RAD*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(distance,minTarget,maxTarget){_v3$1.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),minTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z),_v3$1.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),maxTarget.set(_v3$1.x,_v3$1.y).multiplyScalar(-distance/_v3$1.z)}getViewSize(distance,target){return this.getViewBounds(distance,_minTarget,_maxTarget),target.subVectors(_maxTarget,_minTarget)}setViewOffset(fullWidth,fullHeight,x,y,width,height){this.aspect=fullWidth/fullHeight,null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=fullWidth,this.view.fullHeight=fullHeight,this.view.offsetX=x,this.view.offsetY=y,this.view.width=width,this.view.height=height,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const near=this.near;let top=near*Math.tan(.5*DEG2RAD*this.fov)/this.zoom,height=2*top,width=this.aspect*height,left=-.5*width;const view=this.view;if(null!==this.view&&this.view.enabled){const fullWidth=view.fullWidth,fullHeight=view.fullHeight;left+=view.offsetX*width/fullWidth,top-=view.offsetY*height/fullHeight,width*=view.width/fullWidth,height*=view.height/fullHeight}const skew=this.filmOffset;0!==skew&&(left+=near*skew/this.getFilmWidth()),this.projectionMatrix.makePerspective(left,left+width,top,top-height,near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(meta){const data=super.toJSON(meta);return data.object.fov=this.fov,data.object.zoom=this.zoom,data.object.near=this.near,data.object.far=this.far,data.object.focus=this.focus,data.object.aspect=this.aspect,null!==this.view&&(data.object.view=Object.assign({},this.view)),data.object.filmGauge=this.filmGauge,data.object.filmOffset=this.filmOffset,data}}class CubeCamera extends Object3D{constructor(near,far,renderTarget){super(),this.type="CubeCamera",this.renderTarget=renderTarget,this.coordinateSystem=null,this.activeMipmapLevel=0;const cameraPX=new PerspectiveCamera(-90,1,near,far);cameraPX.layers=this.layers,this.add(cameraPX);const cameraNX=new PerspectiveCamera(-90,1,near,far);cameraNX.layers=this.layers,this.add(cameraNX);const cameraPY=new PerspectiveCamera(-90,1,near,far);cameraPY.layers=this.layers,this.add(cameraPY);const cameraNY=new PerspectiveCamera(-90,1,near,far);cameraNY.layers=this.layers,this.add(cameraNY);const cameraPZ=new PerspectiveCamera(-90,1,near,far);cameraPZ.layers=this.layers,this.add(cameraPZ);const cameraNZ=new PerspectiveCamera(-90,1,near,far);cameraNZ.layers=this.layers,this.add(cameraNZ)}updateCoordinateSystem(){const coordinateSystem=this.coordinateSystem,cameras=this.children.concat(),[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=cameras;for(const camera of cameras)this.remove(camera);if(2e3===coordinateSystem)cameraPX.up.set(0,1,0),cameraPX.lookAt(1,0,0),cameraNX.up.set(0,1,0),cameraNX.lookAt(-1,0,0),cameraPY.up.set(0,0,-1),cameraPY.lookAt(0,1,0),cameraNY.up.set(0,0,1),cameraNY.lookAt(0,-1,0),cameraPZ.up.set(0,1,0),cameraPZ.lookAt(0,0,1),cameraNZ.up.set(0,1,0),cameraNZ.lookAt(0,0,-1);else{if(2001!==coordinateSystem)throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+coordinateSystem);cameraPX.up.set(0,-1,0),cameraPX.lookAt(-1,0,0),cameraNX.up.set(0,-1,0),cameraNX.lookAt(1,0,0),cameraPY.up.set(0,0,1),cameraPY.lookAt(0,1,0),cameraNY.up.set(0,0,-1),cameraNY.lookAt(0,-1,0),cameraPZ.up.set(0,-1,0),cameraPZ.lookAt(0,0,1),cameraNZ.up.set(0,-1,0),cameraNZ.lookAt(0,0,-1)}for(const camera of cameras)this.add(camera),camera.updateMatrixWorld()}update(renderer,scene){null===this.parent&&this.updateMatrixWorld();const{renderTarget:renderTarget,activeMipmapLevel:activeMipmapLevel}=this;this.coordinateSystem!==renderer.coordinateSystem&&(this.coordinateSystem=renderer.coordinateSystem,this.updateCoordinateSystem());const[cameraPX,cameraNX,cameraPY,cameraNY,cameraPZ,cameraNZ]=this.children,currentRenderTarget=renderer.getRenderTarget(),currentActiveCubeFace=renderer.getActiveCubeFace(),currentActiveMipmapLevel=renderer.getActiveMipmapLevel(),currentXrEnabled=renderer.xr.enabled;renderer.xr.enabled=!1;const generateMipmaps=renderTarget.texture.generateMipmaps;renderTarget.texture.generateMipmaps=!1,renderer.setRenderTarget(renderTarget,0,activeMipmapLevel),renderer.render(scene,cameraPX),renderer.setRenderTarget(renderTarget,1,activeMipmapLevel),renderer.render(scene,cameraNX),renderer.setRenderTarget(renderTarget,2,activeMipmapLevel),renderer.render(scene,cameraPY),renderer.setRenderTarget(renderTarget,3,activeMipmapLevel),renderer.render(scene,cameraNY),renderer.setRenderTarget(renderTarget,4,activeMipmapLevel),renderer.render(scene,cameraPZ),renderTarget.texture.generateMipmaps=generateMipmaps,renderer.setRenderTarget(renderTarget,5,activeMipmapLevel),renderer.render(scene,cameraNZ),renderer.setRenderTarget(currentRenderTarget,currentActiveCubeFace,currentActiveMipmapLevel),renderer.xr.enabled=currentXrEnabled,renderTarget.texture.needsPMREMUpdate=!0}}class CubeTexture extends Texture{constructor(images=[],mapping=301,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace){super(images,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(value){this.image=value}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(size=1,options={}){super(size,size,options),this.isWebGLCubeRenderTarget=!0;const image={width:size,height:size,depth:1};this.texture=new CubeTexture([image,image,image,image,image,image]),this._setTextureOptions(options),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(renderer,texture){this.texture.type=texture.type,this.texture.colorSpace=texture.colorSpace,this.texture.generateMipmaps=texture.generateMipmaps,this.texture.minFilter=texture.minFilter,this.texture.magFilter=texture.magFilter;const geometry=new BoxGeometry(5,5,5),material=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms({tEquirect:{value:null}}),vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t",side:1,blending:0});material.uniforms.tEquirect.value=texture;const mesh=new Mesh(geometry,material),currentMinFilter=texture.minFilter;return 1008===texture.minFilter&&(texture.minFilter=1006),new CubeCamera(1,10,this).update(renderer,mesh),texture.minFilter=currentMinFilter,mesh.geometry.dispose(),mesh.material.dispose(),this}clear(renderer,color=!0,depth=!0,stencil=!0){const currentRenderTarget=renderer.getRenderTarget();for(let i=0;i<6;i++)renderer.setRenderTarget(this,i),renderer.clear(color,depth,stencil);renderer.setRenderTarget(currentRenderTarget)}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const _moveEvent={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(event){return null!==this._targetRay&&this._targetRay.dispatchEvent(event),null!==this._grip&&this._grip.dispatchEvent(event),null!==this._hand&&this._hand.dispatchEvent(event),this}connect(inputSource){if(inputSource&&inputSource.hand){const hand=this._hand;if(hand)for(const inputjoint of inputSource.hand.values())this._getHandJoint(hand,inputjoint)}return this.dispatchEvent({type:"connected",data:inputSource}),this}disconnect(inputSource){return this.dispatchEvent({type:"disconnected",data:inputSource}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(inputSource,frame,referenceSpace){let inputPose=null,gripPose=null,handPose=null;const targetRay=this._targetRay,grip=this._grip,hand=this._hand;if(inputSource&&"visible-blurred"!==frame.session.visibilityState){if(hand&&inputSource.hand){handPose=!0;for(const inputjoint of inputSource.hand.values()){const jointPose=frame.getJointPose(inputjoint,referenceSpace),joint=this._getHandJoint(hand,inputjoint);null!==jointPose&&(joint.matrix.fromArray(jointPose.transform.matrix),joint.matrix.decompose(joint.position,joint.rotation,joint.scale),joint.matrixWorldNeedsUpdate=!0,joint.jointRadius=jointPose.radius),joint.visible=null!==jointPose}const distance=hand.joints["index-finger-tip"].position.distanceTo(hand.joints["thumb-tip"].position),distanceToPinch=.02,threshold=.005;hand.inputState.pinching&&distance>distanceToPinch+threshold?(hand.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:inputSource.handedness,target:this})):!hand.inputState.pinching&&distance<=distanceToPinch-threshold&&(hand.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:inputSource.handedness,target:this}))}else null!==grip&&inputSource.gripSpace&&(gripPose=frame.getPose(inputSource.gripSpace,referenceSpace),null!==gripPose&&(grip.matrix.fromArray(gripPose.transform.matrix),grip.matrix.decompose(grip.position,grip.rotation,grip.scale),grip.matrixWorldNeedsUpdate=!0,gripPose.linearVelocity?(grip.hasLinearVelocity=!0,grip.linearVelocity.copy(gripPose.linearVelocity)):grip.hasLinearVelocity=!1,gripPose.angularVelocity?(grip.hasAngularVelocity=!0,grip.angularVelocity.copy(gripPose.angularVelocity)):grip.hasAngularVelocity=!1));null!==targetRay&&(inputPose=frame.getPose(inputSource.targetRaySpace,referenceSpace),null===inputPose&&null!==gripPose&&(inputPose=gripPose),null!==inputPose&&(targetRay.matrix.fromArray(inputPose.transform.matrix),targetRay.matrix.decompose(targetRay.position,targetRay.rotation,targetRay.scale),targetRay.matrixWorldNeedsUpdate=!0,inputPose.linearVelocity?(targetRay.hasLinearVelocity=!0,targetRay.linearVelocity.copy(inputPose.linearVelocity)):targetRay.hasLinearVelocity=!1,inputPose.angularVelocity?(targetRay.hasAngularVelocity=!0,targetRay.angularVelocity.copy(inputPose.angularVelocity)):targetRay.hasAngularVelocity=!1,this.dispatchEvent(_moveEvent)))}return null!==targetRay&&(targetRay.visible=null!==inputPose),null!==grip&&(grip.visible=null!==gripPose),null!==hand&&(hand.visible=null!==handPose),this}_getHandJoint(hand,inputjoint){if(void 0===hand.joints[inputjoint.jointName]){const joint=new Group;joint.matrixAutoUpdate=!1,joint.visible=!1,hand.joints[inputjoint.jointName]=joint,hand.add(joint)}return hand.joints[inputjoint.jointName]}}class Fog{constructor(color,near=1,far=1e3){this.isFog=!0,this.name="",this.color=new Color(color),this.near=near,this.far=far}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Euler,this.environmentIntensity=1,this.environmentRotation=new Euler,this.overrideMaterial=null,"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(source,recursive){return super.copy(source,recursive),null!==source.background&&(this.background=source.background.clone()),null!==source.environment&&(this.environment=source.environment.clone()),null!==source.fog&&(this.fog=source.fog.clone()),this.backgroundBlurriness=source.backgroundBlurriness,this.backgroundIntensity=source.backgroundIntensity,this.backgroundRotation.copy(source.backgroundRotation),this.environmentIntensity=source.environmentIntensity,this.environmentRotation.copy(source.environmentRotation),null!==source.overrideMaterial&&(this.overrideMaterial=source.overrideMaterial.clone()),this.matrixAutoUpdate=source.matrixAutoUpdate,this}toJSON(meta){const data=super.toJSON(meta);return null!==this.fog&&(data.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(data.object.backgroundBlurriness=this.backgroundBlurriness),1!==this.backgroundIntensity&&(data.object.backgroundIntensity=this.backgroundIntensity),data.object.backgroundRotation=this.backgroundRotation.toArray(),1!==this.environmentIntensity&&(data.object.environmentIntensity=this.environmentIntensity),data.object.environmentRotation=this.environmentRotation.toArray(),data}}class InterleavedBuffer{constructor(array,stride){this.isInterleavedBuffer=!0,this.array=array,this.stride=stride,this.count=void 0!==array?array.length/stride:0,this.usage=35044,this.updateRanges=[],this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(value){!0===value&&this.version++}setUsage(value){return this.usage=value,this}addUpdateRange(start,count){this.updateRanges.push({start:start,count:count})}clearUpdateRanges(){this.updateRanges.length=0}copy(source){return this.array=new source.array.constructor(source.array),this.count=source.count,this.stride=source.stride,this.usage=source.usage,this}copyAt(index1,interleavedBuffer,index2){index1*=this.stride,index2*=interleavedBuffer.stride;for(let i=0,l=this.stride;i<l;i++)this.array[index1+i]=interleavedBuffer.array[index2+i];return this}set(value,offset=0){return this.array.set(value,offset),this}clone(data){void 0===data.arrayBuffers&&(data.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===data.arrayBuffers[this.array.buffer._uuid]&&(data.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const array=new this.array.constructor(data.arrayBuffers[this.array.buffer._uuid]),ib=new this.constructor(array,this.stride);return ib.setUsage(this.usage),ib}onUpload(callback){return this.onUploadCallback=callback,this}toJSON(data){return void 0===data.arrayBuffers&&(data.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===data.arrayBuffers[this.array.buffer._uuid]&&(data.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const _vector$7=new Vector3;class InterleavedBufferAttribute{constructor(interleavedBuffer,itemSize,offset,normalized=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=interleavedBuffer,this.itemSize=itemSize,this.offset=offset,this.normalized=normalized}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(value){this.data.needsUpdate=value}applyMatrix4(m){for(let i=0,l=this.data.count;i<l;i++)_vector$7.fromBufferAttribute(this,i),_vector$7.applyMatrix4(m),this.setXYZ(i,_vector$7.x,_vector$7.y,_vector$7.z);return this}applyNormalMatrix(m){for(let i=0,l=this.count;i<l;i++)_vector$7.fromBufferAttribute(this,i),_vector$7.applyNormalMatrix(m),this.setXYZ(i,_vector$7.x,_vector$7.y,_vector$7.z);return this}transformDirection(m){for(let i=0,l=this.count;i<l;i++)_vector$7.fromBufferAttribute(this,i),_vector$7.transformDirection(m),this.setXYZ(i,_vector$7.x,_vector$7.y,_vector$7.z);return this}getComponent(index,component){let value=this.array[index*this.data.stride+this.offset+component];return this.normalized&&(value=denormalize(value,this.array)),value}setComponent(index,component,value){return this.normalized&&(value=normalize(value,this.array)),this.data.array[index*this.data.stride+this.offset+component]=value,this}setX(index,x){return this.normalized&&(x=normalize(x,this.array)),this.data.array[index*this.data.stride+this.offset]=x,this}setY(index,y){return this.normalized&&(y=normalize(y,this.array)),this.data.array[index*this.data.stride+this.offset+1]=y,this}setZ(index,z){return this.normalized&&(z=normalize(z,this.array)),this.data.array[index*this.data.stride+this.offset+2]=z,this}setW(index,w){return this.normalized&&(w=normalize(w,this.array)),this.data.array[index*this.data.stride+this.offset+3]=w,this}getX(index){let x=this.data.array[index*this.data.stride+this.offset];return this.normalized&&(x=denormalize(x,this.array)),x}getY(index){let y=this.data.array[index*this.data.stride+this.offset+1];return this.normalized&&(y=denormalize(y,this.array)),y}getZ(index){let z=this.data.array[index*this.data.stride+this.offset+2];return this.normalized&&(z=denormalize(z,this.array)),z}getW(index){let w=this.data.array[index*this.data.stride+this.offset+3];return this.normalized&&(w=denormalize(w,this.array)),w}setXY(index,x,y){return index=index*this.data.stride+this.offset,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array)),this.data.array[index+0]=x,this.data.array[index+1]=y,this}setXYZ(index,x,y,z){return index=index*this.data.stride+this.offset,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array),z=normalize(z,this.array)),this.data.array[index+0]=x,this.data.array[index+1]=y,this.data.array[index+2]=z,this}setXYZW(index,x,y,z,w){return index=index*this.data.stride+this.offset,this.normalized&&(x=normalize(x,this.array),y=normalize(y,this.array),z=normalize(z,this.array),w=normalize(w,this.array)),this.data.array[index+0]=x,this.data.array[index+1]=y,this.data.array[index+2]=z,this.data.array[index+3]=w,this}clone(data){if(void 0===data){log("InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const array=[];for(let i=0;i<this.count;i++){const index=i*this.data.stride+this.offset;for(let j=0;j<this.itemSize;j++)array.push(this.data.array[index+j])}return new BufferAttribute(new this.array.constructor(array),this.itemSize,this.normalized)}return void 0===data.interleavedBuffers&&(data.interleavedBuffers={}),void 0===data.interleavedBuffers[this.data.uuid]&&(data.interleavedBuffers[this.data.uuid]=this.data.clone(data)),new InterleavedBufferAttribute(data.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(data){if(void 0===data){log("InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const array=[];for(let i=0;i<this.count;i++){const index=i*this.data.stride+this.offset;for(let j=0;j<this.itemSize;j++)array.push(this.data.array[index+j])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:array,normalized:this.normalized}}return void 0===data.interleavedBuffers&&(data.interleavedBuffers={}),void 0===data.interleavedBuffers[this.data.uuid]&&(data.interleavedBuffers[this.data.uuid]=this.data.toJSON(data)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class SpriteMaterial extends Material{constructor(parameters){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.alphaMap=source.alphaMap,this.rotation=source.rotation,this.sizeAttenuation=source.sizeAttenuation,this.fog=source.fog,this}}const _basePosition=new Vector3,_skinIndex=new Vector4,_skinWeight=new Vector4,_vector3=new Vector3,_matrix4=new Matrix4,_vertex=new Vector3,_sphere$5=new Sphere,_inverseMatrix$2=new Matrix4,_ray$2=new Ray;class SkinnedMesh extends Mesh{constructor(geometry,material){super(geometry,material),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const geometry=this.geometry;null===this.boundingBox&&(this.boundingBox=new Box3),this.boundingBox.makeEmpty();const positionAttribute=geometry.getAttribute("position");for(let i=0;i<positionAttribute.count;i++)this.getVertexPosition(i,_vertex),this.boundingBox.expandByPoint(_vertex)}computeBoundingSphere(){const geometry=this.geometry;null===this.boundingSphere&&(this.boundingSphere=new Sphere),this.boundingSphere.makeEmpty();const positionAttribute=geometry.getAttribute("position");for(let i=0;i<positionAttribute.count;i++)this.getVertexPosition(i,_vertex),this.boundingSphere.expandByPoint(_vertex)}copy(source,recursive){return super.copy(source,recursive),this.bindMode=source.bindMode,this.bindMatrix.copy(source.bindMatrix),this.bindMatrixInverse.copy(source.bindMatrixInverse),this.skeleton=source.skeleton,null!==source.boundingBox&&(this.boundingBox=source.boundingBox.clone()),null!==source.boundingSphere&&(this.boundingSphere=source.boundingSphere.clone()),this}raycast(raycaster,intersects){const matrixWorld=this.matrixWorld;void 0!==this.material&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$5.copy(this.boundingSphere),_sphere$5.applyMatrix4(matrixWorld),!1!==raycaster.ray.intersectsSphere(_sphere$5)&&(_inverseMatrix$2.copy(matrixWorld).invert(),_ray$2.copy(raycaster.ray).applyMatrix4(_inverseMatrix$2),null!==this.boundingBox&&!1===_ray$2.intersectsBox(this.boundingBox)||this._computeIntersections(raycaster,intersects,_ray$2)))}getVertexPosition(index,target){return super.getVertexPosition(index,target),this.applyBoneTransform(index,target),target}bind(skeleton,bindMatrix){this.skeleton=skeleton,void 0===bindMatrix&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),bindMatrix=this.matrixWorld),this.bindMatrix.copy(bindMatrix),this.bindMatrixInverse.copy(bindMatrix).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const vector=new Vector4,skinWeight=this.geometry.attributes.skinWeight;for(let i=0,l=skinWeight.count;i<l;i++){vector.fromBufferAttribute(skinWeight,i);const scale=1/vector.manhattanLength();scale!==1/0?vector.multiplyScalar(scale):vector.set(1,0,0,0),skinWeight.setXYZW(i,vector.x,vector.y,vector.z,vector.w)}}updateMatrixWorld(force){super.updateMatrixWorld(force),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():warn("SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}applyBoneTransform(index,target){const skeleton=this.skeleton,geometry=this.geometry;_skinIndex.fromBufferAttribute(geometry.attributes.skinIndex,index),_skinWeight.fromBufferAttribute(geometry.attributes.skinWeight,index),_basePosition.copy(target).applyMatrix4(this.bindMatrix),target.set(0,0,0);for(let i=0;i<4;i++){const weight=_skinWeight.getComponent(i);if(0!==weight){const boneIndex=_skinIndex.getComponent(i);_matrix4.multiplyMatrices(skeleton.bones[boneIndex].matrixWorld,skeleton.boneInverses[boneIndex]),target.addScaledVector(_vector3.copy(_basePosition).applyMatrix4(_matrix4),weight)}}return target.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super(),this.isBone=!0,this.type="Bone"}}class DataTexture extends Texture{constructor(data=null,width=1,height=1,format,type,mapping,wrapS,wrapT,magFilter=1003,minFilter=1003,anisotropy,colorSpace){super(null,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy,colorSpace),this.isDataTexture=!0,this.image={data:data,width:width,height:height},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const _offsetMatrix=new Matrix4,_identityMatrix=new Matrix4;class Skeleton{constructor(bones=[],boneInverses=[]){this.uuid=generateUUID(),this.bones=bones.slice(0),this.boneInverses=boneInverses,this.boneMatrices=null,this.previousBoneMatrices=null,this.boneTexture=null,this.init()}init(){const bones=this.bones,boneInverses=this.boneInverses;if(this.boneMatrices=new Float32Array(16*bones.length),0===boneInverses.length)this.calculateInverses();else if(bones.length!==boneInverses.length){warn("Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let i=0,il=this.bones.length;i<il;i++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let i=0,il=this.bones.length;i<il;i++){const inverse=new Matrix4;this.bones[i]&&inverse.copy(this.bones[i].matrixWorld).invert(),this.boneInverses.push(inverse)}}pose(){for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];bone&&bone.matrixWorld.copy(this.boneInverses[i]).invert()}for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];bone&&(bone.parent&&bone.parent.isBone?(bone.matrix.copy(bone.parent.matrixWorld).invert(),bone.matrix.multiply(bone.matrixWorld)):bone.matrix.copy(bone.matrixWorld),bone.matrix.decompose(bone.position,bone.quaternion,bone.scale))}}update(){const bones=this.bones,boneInverses=this.boneInverses,boneMatrices=this.boneMatrices,boneTexture=this.boneTexture;for(let i=0,il=bones.length;i<il;i++)_offsetMatrix.multiplyMatrices(bones[i]?bones[i].matrixWorld:_identityMatrix,boneInverses[i]),_offsetMatrix.toArray(boneMatrices,16*i);null!==boneTexture&&(boneTexture.needsUpdate=!0)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let size=Math.sqrt(4*this.bones.length);size=4*Math.ceil(size/4),size=Math.max(size,4);const boneMatrices=new Float32Array(size*size*4);boneMatrices.set(this.boneMatrices);const boneTexture=new DataTexture(boneMatrices,size,size,1023,1015);return boneTexture.needsUpdate=!0,this.boneMatrices=boneMatrices,this.boneTexture=boneTexture,this}getBoneByName(name){for(let i=0,il=this.bones.length;i<il;i++){const bone=this.bones[i];if(bone.name===name)return bone}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(json,bones){this.uuid=json.uuid;for(let i=0,l=json.bones.length;i<l;i++){const uuid=json.bones[i];let bone=bones[uuid];void 0===bone&&(warn("Skeleton: No bone found with UUID:",uuid),bone=new Bone),this.bones.push(bone),this.boneInverses.push((new Matrix4).fromArray(json.boneInverses[i]))}return this.init(),this}toJSON(){const data={metadata:{version:4.7,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};data.uuid=this.uuid;const bones=this.bones,boneInverses=this.boneInverses;for(let i=0,l=bones.length;i<l;i++)data.bones.push(bones[i].uuid),data.boneInverses.push(boneInverses[i].toArray());return data}}class InstancedBufferAttribute extends BufferAttribute{constructor(array,itemSize,normalized,meshPerAttribute=1){super(array,itemSize,normalized),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=meshPerAttribute}copy(source){return super.copy(source),this.meshPerAttribute=source.meshPerAttribute,this}toJSON(){const data=super.toJSON();return data.meshPerAttribute=this.meshPerAttribute,data.isInstancedBufferAttribute=!0,data}}const _instanceLocalMatrix=new Matrix4,_instanceWorldMatrix=new Matrix4,_instanceIntersects=[],_box3=new Box3,_identity=new Matrix4,_mesh$1=new Mesh,_sphere$4=new Sphere;class InstancedMesh extends Mesh{constructor(geometry,material,count){super(geometry,material),this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(16*count),16),this.instanceColor=null,this.morphTexture=null,this.count=count,this.boundingBox=null,this.boundingSphere=null;for(let i=0;i<count;i++)this.setMatrixAt(i,_identity)}computeBoundingBox(){const geometry=this.geometry,count=this.count;null===this.boundingBox&&(this.boundingBox=new Box3),null===geometry.boundingBox&&geometry.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i<count;i++)this.getMatrixAt(i,_instanceLocalMatrix),_box3.copy(geometry.boundingBox).applyMatrix4(_instanceLocalMatrix),this.boundingBox.union(_box3)}computeBoundingSphere(){const geometry=this.geometry,count=this.count;null===this.boundingSphere&&(this.boundingSphere=new Sphere),null===geometry.boundingSphere&&geometry.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i<count;i++)this.getMatrixAt(i,_instanceLocalMatrix),_sphere$4.copy(geometry.boundingSphere).applyMatrix4(_instanceLocalMatrix),this.boundingSphere.union(_sphere$4)}copy(source,recursive){return super.copy(source,recursive),this.instanceMatrix.copy(source.instanceMatrix),null!==source.morphTexture&&(this.morphTexture=source.morphTexture.clone()),null!==source.instanceColor&&(this.instanceColor=source.instanceColor.clone()),this.count=source.count,null!==source.boundingBox&&(this.boundingBox=source.boundingBox.clone()),null!==source.boundingSphere&&(this.boundingSphere=source.boundingSphere.clone()),this}getColorAt(index,color){color.fromArray(this.instanceColor.array,3*index)}getMatrixAt(index,matrix){matrix.fromArray(this.instanceMatrix.array,16*index)}getMorphAt(index,object){const objectInfluences=object.morphTargetInfluences,array=this.morphTexture.source.data.data,dataIndex=index*(objectInfluences.length+1)+1;for(let i=0;i<objectInfluences.length;i++)objectInfluences[i]=array[dataIndex+i]}raycast(raycaster,intersects){const matrixWorld=this.matrixWorld,raycastTimes=this.count;if(_mesh$1.geometry=this.geometry,_mesh$1.material=this.material,void 0!==_mesh$1.material&&(null===this.boundingSphere&&this.computeBoundingSphere(),_sphere$4.copy(this.boundingSphere),_sphere$4.applyMatrix4(matrixWorld),!1!==raycaster.ray.intersectsSphere(_sphere$4)))for(let instanceId=0;instanceId<raycastTimes;instanceId++){this.getMatrixAt(instanceId,_instanceLocalMatrix),_instanceWorldMatrix.multiplyMatrices(matrixWorld,_instanceLocalMatrix),_mesh$1.matrixWorld=_instanceWorldMatrix,_mesh$1.raycast(raycaster,_instanceIntersects);for(let i=0,l=_instanceIntersects.length;i<l;i++){const intersect=_instanceIntersects[i];intersect.instanceId=instanceId,intersect.object=this,intersects.push(intersect)}_instanceIntersects.length=0}}setColorAt(index,color){null===this.instanceColor&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(3*this.instanceMatrix.count).fill(1),3)),color.toArray(this.instanceColor.array,3*index)}setMatrixAt(index,matrix){matrix.toArray(this.instanceMatrix.array,16*index)}setMorphAt(index,object){const objectInfluences=object.morphTargetInfluences,len=objectInfluences.length+1;null===this.morphTexture&&(this.morphTexture=new DataTexture(new Float32Array(len*this.count),len,this.count,1028,1015));const array=this.morphTexture.source.data.data;let morphInfluencesSum=0;for(let i=0;i<objectInfluences.length;i++)morphInfluencesSum+=objectInfluences[i];const dataIndex=len*index;array[dataIndex]=this.geometry.morphTargetsRelative?1:1-morphInfluencesSum,array.set(objectInfluences,dataIndex+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"}),null!==this.morphTexture&&(this.morphTexture.dispose(),this.morphTexture=null)}}const _vector1=new Vector3,_vector2=new Vector3,_normalMatrix=new Matrix3;class Plane{constructor(normal=new Vector3(1,0,0),constant=0){this.isPlane=!0,this.normal=normal,this.constant=constant}set(normal,constant){return this.normal.copy(normal),this.constant=constant,this}setComponents(x,y,z,w){return this.normal.set(x,y,z),this.constant=w,this}setFromNormalAndCoplanarPoint(normal,point){return this.normal.copy(normal),this.constant=-point.dot(this.normal),this}setFromCoplanarPoints(a,b,c){const normal=_vector1.subVectors(c,b).cross(_vector2.subVectors(a,b)).normalize();return this.setFromNormalAndCoplanarPoint(normal,a),this}copy(plane){return this.normal.copy(plane.normal),this.constant=plane.constant,this}normalize(){const inverseNormalLength=1/this.normal.length();return this.normal.multiplyScalar(inverseNormalLength),this.constant*=inverseNormalLength,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(point){return this.normal.dot(point)+this.constant}distanceToSphere(sphere){return this.distanceToPoint(sphere.center)-sphere.radius}projectPoint(point,target){return target.copy(point).addScaledVector(this.normal,-this.distanceToPoint(point))}intersectLine(line,target){const direction=line.delta(_vector1),denominator=this.normal.dot(direction);if(0===denominator)return 0===this.distanceToPoint(line.start)?target.copy(line.start):null;const t=-(line.start.dot(this.normal)+this.constant)/denominator;return t<0||t>1?null:target.copy(line.start).addScaledVector(direction,t)}intersectsLine(line){const startSign=this.distanceToPoint(line.start),endSign=this.distanceToPoint(line.end);return startSign<0&&endSign>0||endSign<0&&startSign>0}intersectsBox(box){return box.intersectsPlane(this)}intersectsSphere(sphere){return sphere.intersectsPlane(this)}coplanarPoint(target){return target.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(matrix,optionalNormalMatrix){const normalMatrix=optionalNormalMatrix||_normalMatrix.getNormalMatrix(matrix),referencePoint=this.coplanarPoint(_vector1).applyMatrix4(matrix),normal=this.normal.applyMatrix3(normalMatrix).normalize();return this.constant=-referencePoint.dot(normal),this}translate(offset){return this.constant-=offset.dot(this.normal),this}equals(plane){return plane.normal.equals(this.normal)&&plane.constant===this.constant}clone(){return(new this.constructor).copy(this)}}const _sphere$3=new Sphere,_defaultSpriteCenter=new Vector2(.5,.5),_vector$6=new Vector3;class Frustum{constructor(p0=new Plane,p1=new Plane,p2=new Plane,p3=new Plane,p4=new Plane,p5=new Plane){this.planes=[p0,p1,p2,p3,p4,p5]}set(p0,p1,p2,p3,p4,p5){const planes=this.planes;return planes[0].copy(p0),planes[1].copy(p1),planes[2].copy(p2),planes[3].copy(p3),planes[4].copy(p4),planes[5].copy(p5),this}copy(frustum){const planes=this.planes;for(let i=0;i<6;i++)planes[i].copy(frustum.planes[i]);return this}setFromProjectionMatrix(m,coordinateSystem=2e3,reversedDepth=!1){const planes=this.planes,me=m.elements,me0=me[0],me1=me[1],me2=me[2],me3=me[3],me4=me[4],me5=me[5],me6=me[6],me7=me[7],me8=me[8],me9=me[9],me10=me[10],me11=me[11],me12=me[12],me13=me[13],me14=me[14],me15=me[15];if(planes[0].setComponents(me3-me0,me7-me4,me11-me8,me15-me12).normalize(),planes[1].setComponents(me3+me0,me7+me4,me11+me8,me15+me12).normalize(),planes[2].setComponents(me3+me1,me7+me5,me11+me9,me15+me13).normalize(),planes[3].setComponents(me3-me1,me7-me5,me11-me9,me15-me13).normalize(),reversedDepth)planes[4].setComponents(me2,me6,me10,me14).normalize(),planes[5].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize();else if(planes[4].setComponents(me3-me2,me7-me6,me11-me10,me15-me14).normalize(),2e3===coordinateSystem)planes[5].setComponents(me3+me2,me7+me6,me11+me10,me15+me14).normalize();else{if(2001!==coordinateSystem)throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+coordinateSystem);planes[5].setComponents(me2,me6,me10,me14).normalize()}return this}intersectsObject(object){if(void 0!==object.boundingSphere)null===object.boundingSphere&&object.computeBoundingSphere(),_sphere$3.copy(object.boundingSphere).applyMatrix4(object.matrixWorld);else{const geometry=object.geometry;null===geometry.boundingSphere&&geometry.computeBoundingSphere(),_sphere$3.copy(geometry.boundingSphere).applyMatrix4(object.matrixWorld)}return this.intersectsSphere(_sphere$3)}intersectsSprite(sprite){_sphere$3.center.set(0,0,0);const offset=_defaultSpriteCenter.distanceTo(sprite.center);return _sphere$3.radius=.7071067811865476+offset,_sphere$3.applyMatrix4(sprite.matrixWorld),this.intersectsSphere(_sphere$3)}intersectsSphere(sphere){const planes=this.planes,center=sphere.center,negRadius=-sphere.radius;for(let i=0;i<6;i++)if(planes[i].distanceToPoint(center)<negRadius)return!1;return!0}intersectsBox(box){const planes=this.planes;for(let i=0;i<6;i++){const plane=planes[i];if(_vector$6.x=plane.normal.x>0?box.max.x:box.min.x,_vector$6.y=plane.normal.y>0?box.max.y:box.min.y,_vector$6.z=plane.normal.z>0?box.max.z:box.min.z,plane.distanceToPoint(_vector$6)<0)return!1}return!0}containsPoint(point){const planes=this.planes;for(let i=0;i<6;i++)if(planes[i].distanceToPoint(point)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}const _projScreenMatrix$1=new Matrix4,_frustum$1=new Frustum;class FrustumArray{constructor(){this.coordinateSystem=2e3}intersectsObject(object,cameraArray){if(!cameraArray.isArrayCamera||0===cameraArray.cameras.length)return!1;for(let i=0;i<cameraArray.cameras.length;i++){const camera=cameraArray.cameras[i];if(_projScreenMatrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse),_frustum$1.setFromProjectionMatrix(_projScreenMatrix$1,camera.coordinateSystem,camera.reversedDepth),_frustum$1.intersectsObject(object))return!0}return!1}intersectsSprite(sprite,cameraArray){if(!cameraArray||!cameraArray.cameras||0===cameraArray.cameras.length)return!1;for(let i=0;i<cameraArray.cameras.length;i++){const camera=cameraArray.cameras[i];if(_projScreenMatrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse),_frustum$1.setFromProjectionMatrix(_projScreenMatrix$1,camera.coordinateSystem,camera.reversedDepth),_frustum$1.intersectsSprite(sprite))return!0}return!1}intersectsSphere(sphere,cameraArray){if(!cameraArray||!cameraArray.cameras||0===cameraArray.cameras.length)return!1;for(let i=0;i<cameraArray.cameras.length;i++){const camera=cameraArray.cameras[i];if(_projScreenMatrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse),_frustum$1.setFromProjectionMatrix(_projScreenMatrix$1,camera.coordinateSystem,camera.reversedDepth),_frustum$1.intersectsSphere(sphere))return!0}return!1}intersectsBox(box,cameraArray){if(!cameraArray||!cameraArray.cameras||0===cameraArray.cameras.length)return!1;for(let i=0;i<cameraArray.cameras.length;i++){const camera=cameraArray.cameras[i];if(_projScreenMatrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse),_frustum$1.setFromProjectionMatrix(_projScreenMatrix$1,camera.coordinateSystem,camera.reversedDepth),_frustum$1.intersectsBox(box))return!0}return!1}containsPoint(point,cameraArray){if(!cameraArray||!cameraArray.cameras||0===cameraArray.cameras.length)return!1;for(let i=0;i<cameraArray.cameras.length;i++){const camera=cameraArray.cameras[i];if(_projScreenMatrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse),_frustum$1.setFromProjectionMatrix(_projScreenMatrix$1,camera.coordinateSystem,camera.reversedDepth),_frustum$1.containsPoint(point))return!0}return!1}clone(){return new FrustumArray}}function ascIdSort(a,b){return a-b}function sortOpaque(a,b){return a.z-b.z}function sortTransparent(a,b){return b.z-a.z}class MultiDrawRenderList{constructor(){this.index=0,this.pool=[],this.list=[]}push(start,count,z,index){const pool=this.pool,list=this.list;this.index>=pool.length&&pool.push({start:-1,count:-1,z:-1,index:-1});const item=pool[this.index];list.push(item),this.index++,item.start=start,item.count=count,item.z=z,item.index=index}reset(){this.list.length=0,this.index=0}}const _matrix$1=new Matrix4,_whiteColor=new Color(1,1,1),_frustum=new Frustum,_frustumArray=new FrustumArray,_box$1=new Box3,_sphere$2=new Sphere,_vector$5=new Vector3,_forward$1=new Vector3,_temp=new Vector3,_renderList=new MultiDrawRenderList,_mesh=new Mesh,_batchIntersects=[];function copyAttributeData(src,target,targetOffset=0){const itemSize=target.itemSize;if(src.isInterleavedBufferAttribute||src.array.constructor!==target.array.constructor){const vertexCount=src.count;for(let i=0;i<vertexCount;i++)for(let c=0;c<itemSize;c++)target.setComponent(i+targetOffset,c,src.getComponent(i,c))}else target.array.set(src.array,targetOffset*itemSize);target.needsUpdate=!0}function copyArrayContents(src,target){if(src.constructor!==target.constructor){const len=Math.min(src.length,target.length);for(let i=0;i<len;i++)target[i]=src[i]}else{const len=Math.min(src.length,target.length);target.set(new src.constructor(src.buffer,0,len))}}class BatchedMesh extends Mesh{constructor(maxInstanceCount,maxVertexCount,maxIndexCount=2*maxVertexCount,material){super(new BufferGeometry,material),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._instanceInfo=[],this._geometryInfo=[],this._availableInstanceIds=[],this._availableGeometryIds=[],this._nextIndexStart=0,this._nextVertexStart=0,this._geometryCount=0,this._visibilityChanged=!0,this._geometryInitialized=!1,this._maxInstanceCount=maxInstanceCount,this._maxVertexCount=maxVertexCount,this._maxIndexCount=maxIndexCount,this._multiDrawCounts=new Int32Array(maxInstanceCount),this._multiDrawStarts=new Int32Array(maxInstanceCount),this._multiDrawCount=0,this._multiDrawInstances=null,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}get maxInstanceCount(){return this._maxInstanceCount}get instanceCount(){return this._instanceInfo.length-this._availableInstanceIds.length}get unusedVertexCount(){return this._maxVertexCount-this._nextVertexStart}get unusedIndexCount(){return this._maxIndexCount-this._nextIndexStart}_initMatricesTexture(){let size=Math.sqrt(4*this._maxInstanceCount);size=4*Math.ceil(size/4),size=Math.max(size,4);const matricesArray=new Float32Array(size*size*4),matricesTexture=new DataTexture(matricesArray,size,size,1023,1015);this._matricesTexture=matricesTexture}_initIndirectTexture(){let size=Math.sqrt(this._maxInstanceCount);size=Math.ceil(size);const indirectArray=new Uint32Array(size*size),indirectTexture=new DataTexture(indirectArray,size,size,1029,1014);this._indirectTexture=indirectTexture}_initColorsTexture(){let size=Math.sqrt(this._maxInstanceCount);size=Math.ceil(size);const colorsArray=new Float32Array(size*size*4).fill(1),colorsTexture=new DataTexture(colorsArray,size,size,1023,1015);colorsTexture.colorSpace=ColorManagement.workingColorSpace,this._colorsTexture=colorsTexture}_initializeGeometry(reference){const geometry=this.geometry,maxVertexCount=this._maxVertexCount,maxIndexCount=this._maxIndexCount;if(!1===this._geometryInitialized){for(const attributeName in reference.attributes){const srcAttribute=reference.getAttribute(attributeName),{array:array,itemSize:itemSize,normalized:normalized}=srcAttribute,dstArray=new array.constructor(maxVertexCount*itemSize),dstAttribute=new BufferAttribute(dstArray,itemSize,normalized);geometry.setAttribute(attributeName,dstAttribute)}if(null!==reference.getIndex()){const indexArray=maxVertexCount>65535?new Uint32Array(maxIndexCount):new Uint16Array(maxIndexCount);geometry.setIndex(new BufferAttribute(indexArray,1))}this._geometryInitialized=!0}}_validateGeometry(geometry){const batchGeometry=this.geometry;if(Boolean(geometry.getIndex())!==Boolean(batchGeometry.getIndex()))throw new Error('THREE.BatchedMesh: All geometries must consistently have "index".');for(const attributeName in batchGeometry.attributes){if(!geometry.hasAttribute(attributeName))throw new Error(`THREE.BatchedMesh: Added geometry missing "${attributeName}". All geometries must have consistent attributes.`);const srcAttribute=geometry.getAttribute(attributeName),dstAttribute=batchGeometry.getAttribute(attributeName);if(srcAttribute.itemSize!==dstAttribute.itemSize||srcAttribute.normalized!==dstAttribute.normalized)throw new Error("THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}validateInstanceId(instanceId){const instanceInfo=this._instanceInfo;if(instanceId<0||instanceId>=instanceInfo.length||!1===instanceInfo[instanceId].active)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${instanceId}. Instance is either out of range or has been deleted.`)}validateGeometryId(geometryId){const geometryInfoList=this._geometryInfo;if(geometryId<0||geometryId>=geometryInfoList.length||!1===geometryInfoList[geometryId].active)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${geometryId}. Geometry is either out of range or has been deleted.`)}setCustomSort(func){return this.customSort=func,this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const boundingBox=this.boundingBox,instanceInfo=this._instanceInfo;boundingBox.makeEmpty();for(let i=0,l=instanceInfo.length;i<l;i++){if(!1===instanceInfo[i].active)continue;const geometryId=instanceInfo[i].geometryIndex;this.getMatrixAt(i,_matrix$1),this.getBoundingBoxAt(geometryId,_box$1).applyMatrix4(_matrix$1),boundingBox.union(_box$1)}}computeBoundingSphere(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const boundingSphere=this.boundingSphere,instanceInfo=this._instanceInfo;boundingSphere.makeEmpty();for(let i=0,l=instanceInfo.length;i<l;i++){if(!1===instanceInfo[i].active)continue;const geometryId=instanceInfo[i].geometryIndex;this.getMatrixAt(i,_matrix$1),this.getBoundingSphereAt(geometryId,_sphere$2).applyMatrix4(_matrix$1),boundingSphere.union(_sphere$2)}}addInstance(geometryId){if(this._instanceInfo.length>=this.maxInstanceCount&&0===this._availableInstanceIds.length)throw new Error("THREE.BatchedMesh: Maximum item count reached.");const instanceInfo={visible:!0,active:!0,geometryIndex:geometryId};let drawId=null;this._availableInstanceIds.length>0?(this._availableInstanceIds.sort(ascIdSort),drawId=this._availableInstanceIds.shift(),this._instanceInfo[drawId]=instanceInfo):(drawId=this._instanceInfo.length,this._instanceInfo.push(instanceInfo));const matricesTexture=this._matricesTexture;_matrix$1.identity().toArray(matricesTexture.image.data,16*drawId),matricesTexture.needsUpdate=!0;const colorsTexture=this._colorsTexture;return colorsTexture&&(_whiteColor.toArray(colorsTexture.image.data,4*drawId),colorsTexture.needsUpdate=!0),this._visibilityChanged=!0,drawId}addGeometry(geometry,reservedVertexCount=-1,reservedIndexCount=-1){this._initializeGeometry(geometry),this._validateGeometry(geometry);const geometryInfo={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},geometryInfoList=this._geometryInfo;geometryInfo.vertexStart=this._nextVertexStart,geometryInfo.reservedVertexCount=-1===reservedVertexCount?geometry.getAttribute("position").count:reservedVertexCount;const index=geometry.getIndex();if(null!==index&&(geometryInfo.indexStart=this._nextIndexStart,geometryInfo.reservedIndexCount=-1===reservedIndexCount?index.count:reservedIndexCount),-1!==geometryInfo.indexStart&&geometryInfo.indexStart+geometryInfo.reservedIndexCount>this._maxIndexCount||geometryInfo.vertexStart+geometryInfo.reservedVertexCount>this._maxVertexCount)throw new Error("THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.");let geometryId;return this._availableGeometryIds.length>0?(this._availableGeometryIds.sort(ascIdSort),geometryId=this._availableGeometryIds.shift(),geometryInfoList[geometryId]=geometryInfo):(geometryId=this._geometryCount,this._geometryCount++,geometryInfoList.push(geometryInfo)),this.setGeometryAt(geometryId,geometry),this._nextIndexStart=geometryInfo.indexStart+geometryInfo.reservedIndexCount,this._nextVertexStart=geometryInfo.vertexStart+geometryInfo.reservedVertexCount,geometryId}setGeometryAt(geometryId,geometry){if(geometryId>=this._geometryCount)throw new Error("THREE.BatchedMesh: Maximum geometry count reached.");this._validateGeometry(geometry);const batchGeometry=this.geometry,hasIndex=null!==batchGeometry.getIndex(),dstIndex=batchGeometry.getIndex(),srcIndex=geometry.getIndex(),geometryInfo=this._geometryInfo[geometryId];if(hasIndex&&srcIndex.count>geometryInfo.reservedIndexCount||geometry.attributes.position.count>geometryInfo.reservedVertexCount)throw new Error("THREE.BatchedMesh: Reserved space not large enough for provided geometry.");const vertexStart=geometryInfo.vertexStart,reservedVertexCount=geometryInfo.reservedVertexCount;geometryInfo.vertexCount=geometry.getAttribute("position").count;for(const attributeName in batchGeometry.attributes){const srcAttribute=geometry.getAttribute(attributeName),dstAttribute=batchGeometry.getAttribute(attributeName);copyAttributeData(srcAttribute,dstAttribute,vertexStart);const itemSize=srcAttribute.itemSize;for(let i=srcAttribute.count,l=reservedVertexCount;i<l;i++){const index=vertexStart+i;for(let c=0;c<itemSize;c++)dstAttribute.setComponent(index,c,0)}dstAttribute.needsUpdate=!0,dstAttribute.addUpdateRange(vertexStart*itemSize,reservedVertexCount*itemSize)}if(hasIndex){const indexStart=geometryInfo.indexStart,reservedIndexCount=geometryInfo.reservedIndexCount;geometryInfo.indexCount=geometry.getIndex().count;for(let i=0;i<srcIndex.count;i++)dstIndex.setX(indexStart+i,vertexStart+srcIndex.getX(i));for(let i=srcIndex.count,l=reservedIndexCount;i<l;i++)dstIndex.setX(indexStart+i,vertexStart);dstIndex.needsUpdate=!0,dstIndex.addUpdateRange(indexStart,geometryInfo.reservedIndexCount)}return geometryInfo.start=hasIndex?geometryInfo.indexStart:geometryInfo.vertexStart,geometryInfo.count=hasIndex?geometryInfo.indexCount:geometryInfo.vertexCount,geometryInfo.boundingBox=null,null!==geometry.boundingBox&&(geometryInfo.boundingBox=geometry.boundingBox.clone()),geometryInfo.boundingSphere=null,null!==geometry.boundingSphere&&(geometryInfo.boundingSphere=geometry.boundingSphere.clone()),this._visibilityChanged=!0,geometryId}deleteGeometry(geometryId){const geometryInfoList=this._geometryInfo;if(geometryId>=geometryInfoList.length||!1===geometryInfoList[geometryId].active)return this;const instanceInfo=this._instanceInfo;for(let i=0,l=instanceInfo.length;i<l;i++)instanceInfo[i].active&&instanceInfo[i].geometryIndex===geometryId&&this.deleteInstance(i);return geometryInfoList[geometryId].active=!1,this._availableGeometryIds.push(geometryId),this._visibilityChanged=!0,this}deleteInstance(instanceId){return this.validateInstanceId(instanceId),this._instanceInfo[instanceId].active=!1,this._availableInstanceIds.push(instanceId),this._visibilityChanged=!0,this}optimize(){let nextVertexStart=0,nextIndexStart=0;const geometryInfoList=this._geometryInfo,indices=geometryInfoList.map((e,i)=>i).sort((a,b)=>geometryInfoList[a].vertexStart-geometryInfoList[b].vertexStart),geometry=this.geometry;for(let i=0,l=geometryInfoList.length;i<l;i++){const geometryInfo=geometryInfoList[indices[i]];if(!1!==geometryInfo.active){if(null!==geometry.index){if(geometryInfo.indexStart!==nextIndexStart){const{indexStart:indexStart,vertexStart:vertexStart,reservedIndexCount:reservedIndexCount}=geometryInfo,index=geometry.index,array=index.array,elementDelta=nextVertexStart-vertexStart;for(let j=indexStart;j<indexStart+reservedIndexCount;j++)array[j]=array[j]+elementDelta;index.array.copyWithin(nextIndexStart,indexStart,indexStart+reservedIndexCount),index.addUpdateRange(nextIndexStart,reservedIndexCount),index.needsUpdate=!0,geometryInfo.indexStart=nextIndexStart}nextIndexStart+=geometryInfo.reservedIndexCount}if(geometryInfo.vertexStart!==nextVertexStart){const{vertexStart:vertexStart,reservedVertexCount:reservedVertexCount}=geometryInfo,attributes=geometry.attributes;for(const key in attributes){const attribute=attributes[key],{array:array,itemSize:itemSize}=attribute;array.copyWithin(nextVertexStart*itemSize,vertexStart*itemSize,(vertexStart+reservedVertexCount)*itemSize),attribute.addUpdateRange(nextVertexStart*itemSize,reservedVertexCount*itemSize),attribute.needsUpdate=!0}geometryInfo.vertexStart=nextVertexStart}nextVertexStart+=geometryInfo.reservedVertexCount,geometryInfo.start=geometry.index?geometryInfo.indexStart:geometryInfo.vertexStart,this._nextIndexStart=geometry.index?geometryInfo.indexStart+geometryInfo.reservedIndexCount:0,this._nextVertexStart=geometryInfo.vertexStart+geometryInfo.reservedVertexCount}}return this._visibilityChanged=!0,this}getBoundingBoxAt(geometryId,target){if(geometryId>=this._geometryCount)return null;const geometry=this.geometry,geometryInfo=this._geometryInfo[geometryId];if(null===geometryInfo.boundingBox){const box=new Box3,index=geometry.index,position=geometry.attributes.position;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;i<l;i++){let iv=i;index&&(iv=index.getX(iv)),box.expandByPoint(_vector$5.fromBufferAttribute(position,iv))}geometryInfo.boundingBox=box}return target.copy(geometryInfo.boundingBox),target}getBoundingSphereAt(geometryId,target){if(geometryId>=this._geometryCount)return null;const geometry=this.geometry,geometryInfo=this._geometryInfo[geometryId];if(null===geometryInfo.boundingSphere){const sphere=new Sphere;this.getBoundingBoxAt(geometryId,_box$1),_box$1.getCenter(sphere.center);const index=geometry.index,position=geometry.attributes.position;let maxRadiusSq=0;for(let i=geometryInfo.start,l=geometryInfo.start+geometryInfo.count;i<l;i++){let iv=i;index&&(iv=index.getX(iv)),_vector$5.fromBufferAttribute(position,iv),maxRadiusSq=Math.max(maxRadiusSq,sphere.center.distanceToSquared(_vector$5))}sphere.radius=Math.sqrt(maxRadiusSq),geometryInfo.boundingSphere=sphere}return target.copy(geometryInfo.boundingSphere),target}setMatrixAt(instanceId,matrix){this.validateInstanceId(instanceId);const matricesTexture=this._matricesTexture;return matrix.toArray(this._matricesTexture.image.data,16*instanceId),matricesTexture.needsUpdate=!0,this}getMatrixAt(instanceId,matrix){return this.validateInstanceId(instanceId),matrix.fromArray(this._matricesTexture.image.data,16*instanceId)}setColorAt(instanceId,color){return this.validateInstanceId(instanceId),null===this._colorsTexture&&this._initColorsTexture(),color.toArray(this._colorsTexture.image.data,4*instanceId),this._colorsTexture.needsUpdate=!0,this}getColorAt(instanceId,color){return this.validateInstanceId(instanceId),color.fromArray(this._colorsTexture.image.data,4*instanceId)}setVisibleAt(instanceId,visible){return this.validateInstanceId(instanceId),this._instanceInfo[instanceId].visible===visible||(this._instanceInfo[instanceId].visible=visible,this._visibilityChanged=!0),this}getVisibleAt(instanceId){return this.validateInstanceId(instanceId),this._instanceInfo[instanceId].visible}setGeometryIdAt(instanceId,geometryId){return this.validateInstanceId(instanceId),this.validateGeometryId(geometryId),this._instanceInfo[instanceId].geometryIndex=geometryId,this}getGeometryIdAt(instanceId){return this.validateInstanceId(instanceId),this._instanceInfo[instanceId].geometryIndex}getGeometryRangeAt(geometryId,target={}){this.validateGeometryId(geometryId);const geometryInfo=this._geometryInfo[geometryId];return target.vertexStart=geometryInfo.vertexStart,target.vertexCount=geometryInfo.vertexCount,target.reservedVertexCount=geometryInfo.reservedVertexCount,target.indexStart=geometryInfo.indexStart,target.indexCount=geometryInfo.indexCount,target.reservedIndexCount=geometryInfo.reservedIndexCount,target.start=geometryInfo.start,target.count=geometryInfo.count,target}setInstanceCount(maxInstanceCount){const availableInstanceIds=this._availableInstanceIds,instanceInfo=this._instanceInfo;for(availableInstanceIds.sort(ascIdSort);availableInstanceIds[availableInstanceIds.length-1]===instanceInfo.length-1;)instanceInfo.pop(),availableInstanceIds.pop();if(maxInstanceCount<instanceInfo.length)throw new Error(`BatchedMesh: Instance ids outside the range ${maxInstanceCount} are being used. Cannot shrink instance count.`);const multiDrawCounts=new Int32Array(maxInstanceCount),multiDrawStarts=new Int32Array(maxInstanceCount);copyArrayContents(this._multiDrawCounts,multiDrawCounts),copyArrayContents(this._multiDrawStarts,multiDrawStarts),this._multiDrawCounts=multiDrawCounts,this._multiDrawStarts=multiDrawStarts,this._maxInstanceCount=maxInstanceCount;const indirectTexture=this._indirectTexture,matricesTexture=this._matricesTexture,colorsTexture=this._colorsTexture;indirectTexture.dispose(),this._initIndirectTexture(),copyArrayContents(indirectTexture.image.data,this._indirectTexture.image.data),matricesTexture.dispose(),this._initMatricesTexture(),copyArrayContents(matricesTexture.image.data,this._matricesTexture.image.data),colorsTexture&&(colorsTexture.dispose(),this._initColorsTexture(),copyArrayContents(colorsTexture.image.data,this._colorsTexture.image.data))}setGeometrySize(maxVertexCount,maxIndexCount){const validRanges=[...this._geometryInfo].filter(info=>info.active);if(Math.max(...validRanges.map(range=>range.vertexStart+range.reservedVertexCount))>maxVertexCount)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${maxIndexCount}. Cannot shrink further.`);if(this.geometry.index&&Math.max(...validRanges.map(range=>range.indexStart+range.reservedIndexCount))>maxIndexCount)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${maxIndexCount}. Cannot shrink further.`);const oldGeometry=this.geometry;oldGeometry.dispose(),this._maxVertexCount=maxVertexCount,this._maxIndexCount=maxIndexCount,this._geometryInitialized&&(this._geometryInitialized=!1,this.geometry=new BufferGeometry,this._initializeGeometry(oldGeometry));const geometry=this.geometry;oldGeometry.index&&copyArrayContents(oldGeometry.index.array,geometry.index.array);for(const key in oldGeometry.attributes)copyArrayContents(oldGeometry.attributes[key].array,geometry.attributes[key].array)}raycast(raycaster,intersects){const instanceInfo=this._instanceInfo,geometryInfoList=this._geometryInfo,matrixWorld=this.matrixWorld,batchGeometry=this.geometry;_mesh.material=this.material,_mesh.geometry.index=batchGeometry.index,_mesh.geometry.attributes=batchGeometry.attributes,null===_mesh.geometry.boundingBox&&(_mesh.geometry.boundingBox=new Box3),null===_mesh.geometry.boundingSphere&&(_mesh.geometry.boundingSphere=new Sphere);for(let i=0,l=instanceInfo.length;i<l;i++){if(!instanceInfo[i].visible||!instanceInfo[i].active)continue;const geometryId=instanceInfo[i].geometryIndex,geometryInfo=geometryInfoList[geometryId];_mesh.geometry.setDrawRange(geometryInfo.start,geometryInfo.count),this.getMatrixAt(i,_mesh.matrixWorld).premultiply(matrixWorld),this.getBoundingBoxAt(geometryId,_mesh.geometry.boundingBox),this.getBoundingSphereAt(geometryId,_mesh.geometry.boundingSphere),_mesh.raycast(raycaster,_batchIntersects);for(let j=0,l=_batchIntersects.length;j<l;j++){const intersect=_batchIntersects[j];intersect.object=this,intersect.batchId=i,intersects.push(intersect)}_batchIntersects.length=0}_mesh.material=null,_mesh.geometry.index=null,_mesh.geometry.attributes={},_mesh.geometry.setDrawRange(0,1/0)}copy(source){return super.copy(source),this.geometry=source.geometry.clone(),this.perObjectFrustumCulled=source.perObjectFrustumCulled,this.sortObjects=source.sortObjects,this.boundingBox=null!==source.boundingBox?source.boundingBox.clone():null,this.boundingSphere=null!==source.boundingSphere?source.boundingSphere.clone():null,this._geometryInfo=source._geometryInfo.map(info=>({...info,boundingBox:null!==info.boundingBox?info.boundingBox.clone():null,boundingSphere:null!==info.boundingSphere?info.boundingSphere.clone():null})),this._instanceInfo=source._instanceInfo.map(info=>({...info})),this._availableInstanceIds=source._availableInstanceIds.slice(),this._availableGeometryIds=source._availableGeometryIds.slice(),this._nextIndexStart=source._nextIndexStart,this._nextVertexStart=source._nextVertexStart,this._geometryCount=source._geometryCount,this._maxInstanceCount=source._maxInstanceCount,this._maxVertexCount=source._maxVertexCount,this._maxIndexCount=source._maxIndexCount,this._geometryInitialized=source._geometryInitialized,this._multiDrawCounts=source._multiDrawCounts.slice(),this._multiDrawStarts=source._multiDrawStarts.slice(),this._indirectTexture=source._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=source._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),null!==this._colorsTexture&&(this._colorsTexture=source._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,null!==this._colorsTexture&&(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(renderer,scene,camera,geometry,material){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const index=geometry.getIndex(),bytesPerElement=null===index?1:index.array.BYTES_PER_ELEMENT,instanceInfo=this._instanceInfo,multiDrawStarts=this._multiDrawStarts,multiDrawCounts=this._multiDrawCounts,geometryInfoList=this._geometryInfo,perObjectFrustumCulled=this.perObjectFrustumCulled,indirectTexture=this._indirectTexture,indirectArray=indirectTexture.image.data,frustum=camera.isArrayCamera?_frustumArray:_frustum;perObjectFrustumCulled&&!camera.isArrayCamera&&(_matrix$1.multiplyMatrices(camera.projectionMatrix,camera.matrixWorldInverse).multiply(this.matrixWorld),_frustum.setFromProjectionMatrix(_matrix$1,camera.coordinateSystem,camera.reversedDepth));let multiDrawCount=0;if(this.sortObjects){_matrix$1.copy(this.matrixWorld).invert(),_vector$5.setFromMatrixPosition(camera.matrixWorld).applyMatrix4(_matrix$1),_forward$1.set(0,0,-1).transformDirection(camera.matrixWorld).transformDirection(_matrix$1);for(let i=0,l=instanceInfo.length;i<l;i++)if(instanceInfo[i].visible&&instanceInfo[i].active){const geometryId=instanceInfo[i].geometryIndex;this.getMatrixAt(i,_matrix$1),this.getBoundingSphereAt(geometryId,_sphere$2).applyMatrix4(_matrix$1);let culled=!1;if(perObjectFrustumCulled&&(culled=!frustum.intersectsSphere(_sphere$2,camera)),!culled){const geometryInfo=geometryInfoList[geometryId],z=_temp.subVectors(_sphere$2.center,_vector$5).dot(_forward$1);_renderList.push(geometryInfo.start,geometryInfo.count,z,i)}}const list=_renderList.list,customSort=this.customSort;null===customSort?list.sort(material.transparent?sortTransparent:sortOpaque):customSort.call(this,list,camera);for(let i=0,l=list.length;i<l;i++){const item=list[i];multiDrawStarts[multiDrawCount]=item.start*bytesPerElement,multiDrawCounts[multiDrawCount]=item.count,indirectArray[multiDrawCount]=item.index,multiDrawCount++}_renderList.reset()}else for(let i=0,l=instanceInfo.length;i<l;i++)if(instanceInfo[i].visible&&instanceInfo[i].active){const geometryId=instanceInfo[i].geometryIndex;let culled=!1;if(perObjectFrustumCulled&&(this.getMatrixAt(i,_matrix$1),this.getBoundingSphereAt(geometryId,_sphere$2).applyMatrix4(_matrix$1),culled=!frustum.intersectsSphere(_sphere$2,camera)),!culled){const geometryInfo=geometryInfoList[geometryId];multiDrawStarts[multiDrawCount]=geometryInfo.start*bytesPerElement,multiDrawCounts[multiDrawCount]=geometryInfo.count,indirectArray[multiDrawCount]=i,multiDrawCount++}}indirectTexture.needsUpdate=!0,this._multiDrawCount=multiDrawCount,this._visibilityChanged=!1}onBeforeShadow(renderer,object,camera,shadowCamera,geometry,depthMaterial){this.onBeforeRender(renderer,null,shadowCamera,geometry,depthMaterial)}}class LineBasicMaterial extends Material{constructor(parameters){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Color(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.linewidth=source.linewidth,this.linecap=source.linecap,this.linejoin=source.linejoin,this.fog=source.fog,this}}const _vStart=new Vector3,_vEnd=new Vector3,_inverseMatrix$1=new Matrix4,_ray$1=new Ray,_sphere$1=new Sphere,_intersectPointOnRay=new Vector3,_intersectPointOnSegment=new Vector3;class Line extends Object3D{constructor(geometry=new BufferGeometry,material=new LineBasicMaterial){super(),this.isLine=!0,this.type="Line",this.geometry=geometry,this.material=material,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(source,recursive){return super.copy(source,recursive),this.material=Array.isArray(source.material)?source.material.slice():source.material,this.geometry=source.geometry,this}computeLineDistances(){const geometry=this.geometry;if(null===geometry.index){const positionAttribute=geometry.attributes.position,lineDistances=[0];for(let i=1,l=positionAttribute.count;i<l;i++)_vStart.fromBufferAttribute(positionAttribute,i-1),_vEnd.fromBufferAttribute(positionAttribute,i),lineDistances[i]=lineDistances[i-1],lineDistances[i]+=_vStart.distanceTo(_vEnd);geometry.setAttribute("lineDistance",new Float32BufferAttribute(lineDistances,1))}else warn("Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(raycaster,intersects){const geometry=this.geometry,matrixWorld=this.matrixWorld,threshold=raycaster.params.Line.threshold,drawRange=geometry.drawRange;if(null===geometry.boundingSphere&&geometry.computeBoundingSphere(),_sphere$1.copy(geometry.boundingSphere),_sphere$1.applyMatrix4(matrixWorld),_sphere$1.radius+=threshold,!1===raycaster.ray.intersectsSphere(_sphere$1))return;_inverseMatrix$1.copy(matrixWorld).invert(),_ray$1.copy(raycaster.ray).applyMatrix4(_inverseMatrix$1);const localThreshold=threshold/((this.scale.x+this.scale.y+this.scale.z)/3),localThresholdSq=localThreshold*localThreshold,step=this.isLineSegments?2:1,index=geometry.index,positionAttribute=geometry.attributes.position;if(null!==index){const start=Math.max(0,drawRange.start),end=Math.min(index.count,drawRange.start+drawRange.count);for(let i=start,l=end-1;i<l;i+=step){const a=index.getX(i),b=index.getX(i+1),intersect=checkIntersection(this,raycaster,_ray$1,localThresholdSq,a,b,i);intersect&&intersects.push(intersect)}if(this.isLineLoop){const a=index.getX(end-1),b=index.getX(start),intersect=checkIntersection(this,raycaster,_ray$1,localThresholdSq,a,b,end-1);intersect&&intersects.push(intersect)}}else{const start=Math.max(0,drawRange.start),end=Math.min(positionAttribute.count,drawRange.start+drawRange.count);for(let i=start,l=end-1;i<l;i+=step){const intersect=checkIntersection(this,raycaster,_ray$1,localThresholdSq,i,i+1,i);intersect&&intersects.push(intersect)}if(this.isLineLoop){const intersect=checkIntersection(this,raycaster,_ray$1,localThresholdSq,end-1,start,end-1);intersect&&intersects.push(intersect)}}}updateMorphTargets(){const morphAttributes=this.geometry.morphAttributes,keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(void 0!==morphAttribute){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0),this.morphTargetDictionary[name]=m}}}}}function checkIntersection(object,raycaster,ray,thresholdSq,a,b,i){const positionAttribute=object.geometry.attributes.position;if(_vStart.fromBufferAttribute(positionAttribute,a),_vEnd.fromBufferAttribute(positionAttribute,b),ray.distanceSqToSegment(_vStart,_vEnd,_intersectPointOnRay,_intersectPointOnSegment)>thresholdSq)return;_intersectPointOnRay.applyMatrix4(object.matrixWorld);const distance=raycaster.ray.origin.distanceTo(_intersectPointOnRay);return distance<raycaster.near||distance>raycaster.far?void 0:{distance:distance,point:_intersectPointOnSegment.clone().applyMatrix4(object.matrixWorld),index:i,face:null,faceIndex:null,barycoord:null,object:object}}const _start=new Vector3,_end=new Vector3;class LineSegments extends Line{constructor(geometry,material){super(geometry,material),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const geometry=this.geometry;if(null===geometry.index){const positionAttribute=geometry.attributes.position,lineDistances=[];for(let i=0,l=positionAttribute.count;i<l;i+=2)_start.fromBufferAttribute(positionAttribute,i),_end.fromBufferAttribute(positionAttribute,i+1),lineDistances[i]=0===i?0:lineDistances[i-1],lineDistances[i+1]=lineDistances[i]+_start.distanceTo(_end);geometry.setAttribute("lineDistance",new Float32BufferAttribute(lineDistances,1))}else warn("LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class LineLoop extends Line{constructor(geometry,material){super(geometry,material),this.isLineLoop=!0,this.type="LineLoop"}}class PointsMaterial extends Material{constructor(parameters){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.alphaMap=source.alphaMap,this.size=source.size,this.sizeAttenuation=source.sizeAttenuation,this.fog=source.fog,this}}const _inverseMatrix=new Matrix4,_ray=new Ray,_sphere=new Sphere,_position$2=new Vector3;class Points extends Object3D{constructor(geometry=new BufferGeometry,material=new PointsMaterial){super(),this.isPoints=!0,this.type="Points",this.geometry=geometry,this.material=material,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(source,recursive){return super.copy(source,recursive),this.material=Array.isArray(source.material)?source.material.slice():source.material,this.geometry=source.geometry,this}raycast(raycaster,intersects){const geometry=this.geometry,matrixWorld=this.matrixWorld,threshold=raycaster.params.Points.threshold,drawRange=geometry.drawRange;if(null===geometry.boundingSphere&&geometry.computeBoundingSphere(),_sphere.copy(geometry.boundingSphere),_sphere.applyMatrix4(matrixWorld),_sphere.radius+=threshold,!1===raycaster.ray.intersectsSphere(_sphere))return;_inverseMatrix.copy(matrixWorld).invert(),_ray.copy(raycaster.ray).applyMatrix4(_inverseMatrix);const localThreshold=threshold/((this.scale.x+this.scale.y+this.scale.z)/3),localThresholdSq=localThreshold*localThreshold,index=geometry.index,positionAttribute=geometry.attributes.position;if(null!==index)for(let i=Math.max(0,drawRange.start),il=Math.min(index.count,drawRange.start+drawRange.count);i<il;i++){const a=index.getX(i);_position$2.fromBufferAttribute(positionAttribute,a),testPoint(_position$2,a,localThresholdSq,matrixWorld,raycaster,intersects,this)}else for(let i=Math.max(0,drawRange.start),l=Math.min(positionAttribute.count,drawRange.start+drawRange.count);i<l;i++)_position$2.fromBufferAttribute(positionAttribute,i),testPoint(_position$2,i,localThresholdSq,matrixWorld,raycaster,intersects,this)}updateMorphTargets(){const morphAttributes=this.geometry.morphAttributes,keys=Object.keys(morphAttributes);if(keys.length>0){const morphAttribute=morphAttributes[keys[0]];if(void 0!==morphAttribute){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let m=0,ml=morphAttribute.length;m<ml;m++){const name=morphAttribute[m].name||String(m);this.morphTargetInfluences.push(0),this.morphTargetDictionary[name]=m}}}}}function testPoint(point,index,localThresholdSq,matrixWorld,raycaster,intersects,object){const rayPointDistanceSq=_ray.distanceSqToPoint(point);if(rayPointDistanceSq<localThresholdSq){const intersectPoint=new Vector3;_ray.closestPointToPoint(point,intersectPoint),intersectPoint.applyMatrix4(matrixWorld);const distance=raycaster.ray.origin.distanceTo(intersectPoint);if(distance<raycaster.near||distance>raycaster.far)return;intersects.push({distance:distance,distanceToRay:Math.sqrt(rayPointDistanceSq),point:intersectPoint,index:index,face:null,faceIndex:null,barycoord:null,object:object})}}class CanvasTexture extends Texture{constructor(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy){super(canvas,mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy),this.isCanvasTexture=!0,this.needsUpdate=!0}}class DepthTexture extends Texture{constructor(width,height,type=1014,mapping,wrapS,wrapT,magFilter=1003,minFilter=1003,anisotropy,format=1026,depth=1){if(1026!==format&&1027!==format)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");super({width:width,height:height,depth:depth},mapping,wrapS,wrapT,magFilter,minFilter,format,type,anisotropy),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(source){return super.copy(source),this.source=new Source(Object.assign({},source.image)),this.compareFunction=source.compareFunction,this}toJSON(meta){const data=super.toJSON(meta);return null!==this.compareFunction&&(data.compareFunction=this.compareFunction),data}}class CubeDepthTexture extends DepthTexture{constructor(size,type=1014,mapping=301,wrapS,wrapT,magFilter=1003,minFilter=1003,anisotropy,format=1026){const image={width:size,height:size,depth:1},images=[image,image,image,image,image,image];super(size,size,type,mapping,wrapS,wrapT,magFilter,minFilter,anisotropy,format),this.image=images,this.isCubeDepthTexture=!0,this.isCubeTexture=!0}get images(){return this.image}set images(value){this.image=value}}class ExternalTexture extends Texture{constructor(sourceTexture=null){super(),this.sourceTexture=sourceTexture,this.isExternalTexture=!0}copy(source){return super.copy(source),this.sourceTexture=source.sourceTexture,this}}class PlaneGeometry extends BufferGeometry{constructor(width=1,height=1,widthSegments=1,heightSegments=1){super(),this.type="PlaneGeometry",this.parameters={width:width,height:height,widthSegments:widthSegments,heightSegments:heightSegments};const width_half=width/2,height_half=height/2,gridX=Math.floor(widthSegments),gridY=Math.floor(heightSegments),gridX1=gridX+1,gridY1=gridY+1,segment_width=width/gridX,segment_height=height/gridY,indices=[],vertices=[],normals=[],uvs=[];for(let iy=0;iy<gridY1;iy++){const y=iy*segment_height-height_half;for(let ix=0;ix<gridX1;ix++)vertices.push(ix*segment_width-width_half,-y,0),normals.push(0,0,1),uvs.push(ix/gridX),uvs.push(1-iy/gridY)}for(let iy=0;iy<gridY;iy++)for(let ix=0;ix<gridX;ix++){const b=ix+gridX1*(iy+1),c=ix+1+gridX1*(iy+1),d=ix+1+gridX1*iy;indices.push(ix+gridX1*iy,b,d),indices.push(b,c,d)}this.setIndex(indices),this.setAttribute("position",new Float32BufferAttribute(vertices,3)),this.setAttribute("normal",new Float32BufferAttribute(normals,3)),this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){return super.copy(source),this.parameters=Object.assign({},source.parameters),this}static fromJSON(data){return new PlaneGeometry(data.width,data.height,data.widthSegments,data.heightSegments)}}class SphereGeometry extends BufferGeometry{constructor(radius=1,widthSegments=32,heightSegments=16,phiStart=0,phiLength=2*Math.PI,thetaStart=0,thetaLength=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:radius,widthSegments:widthSegments,heightSegments:heightSegments,phiStart:phiStart,phiLength:phiLength,thetaStart:thetaStart,thetaLength:thetaLength},widthSegments=Math.max(3,Math.floor(widthSegments)),heightSegments=Math.max(2,Math.floor(heightSegments));const thetaEnd=Math.min(thetaStart+thetaLength,Math.PI);let index=0;const grid=[],vertex=new Vector3,normal=new Vector3,indices=[],vertices=[],normals=[],uvs=[];for(let iy=0;iy<=heightSegments;iy++){const verticesRow=[],v=iy/heightSegments;let uOffset=0;0===iy&&0===thetaStart?uOffset=.5/widthSegments:iy===heightSegments&&thetaEnd===Math.PI&&(uOffset=-.5/widthSegments);for(let ix=0;ix<=widthSegments;ix++){const u=ix/widthSegments;vertex.x=-radius*Math.cos(phiStart+u*phiLength)*Math.sin(thetaStart+v*thetaLength),vertex.y=radius*Math.cos(thetaStart+v*thetaLength),vertex.z=radius*Math.sin(phiStart+u*phiLength)*Math.sin(thetaStart+v*thetaLength),vertices.push(vertex.x,vertex.y,vertex.z),normal.copy(vertex).normalize(),normals.push(normal.x,normal.y,normal.z),uvs.push(u+uOffset,1-v),verticesRow.push(index++)}grid.push(verticesRow)}for(let iy=0;iy<heightSegments;iy++)for(let ix=0;ix<widthSegments;ix++){const b=grid[iy][ix],c=grid[iy+1][ix],d=grid[iy+1][ix+1];(0!==iy||thetaStart>0)&&indices.push(grid[iy][ix+1],b,d),(iy!==heightSegments-1||thetaEnd<Math.PI)&&indices.push(b,c,d)}this.setIndex(indices),this.setAttribute("position",new Float32BufferAttribute(vertices,3)),this.setAttribute("normal",new Float32BufferAttribute(normals,3)),this.setAttribute("uv",new Float32BufferAttribute(uvs,2))}copy(source){return super.copy(source),this.parameters=Object.assign({},source.parameters),this}static fromJSON(data){return new SphereGeometry(data.radius,data.widthSegments,data.heightSegments,data.phiStart,data.phiLength,data.thetaStart,data.thetaLength)}}class WireframeGeometry extends BufferGeometry{constructor(geometry=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:geometry},null!==geometry){const vertices=[],edges=new Set,start=new Vector3,end=new Vector3;if(null!==geometry.index){const position=geometry.attributes.position,indices=geometry.index;let groups=geometry.groups;0===groups.length&&(groups=[{start:0,count:indices.count,materialIndex:0}]);for(let o=0,ol=groups.length;o<ol;++o){const group=groups[o],groupStart=group.start;for(let i=groupStart,l=groupStart+group.count;i<l;i+=3)for(let j=0;j<3;j++){const index1=indices.getX(i+j),index2=indices.getX(i+(j+1)%3);start.fromBufferAttribute(position,index1),end.fromBufferAttribute(position,index2),!0===isUniqueEdge(start,end,edges)&&(vertices.push(start.x,start.y,start.z),vertices.push(end.x,end.y,end.z))}}}else{const position=geometry.attributes.position;for(let i=0,l=position.count/3;i<l;i++)for(let j=0;j<3;j++){const index2=3*i+(j+1)%3;start.fromBufferAttribute(position,3*i+j),end.fromBufferAttribute(position,index2),!0===isUniqueEdge(start,end,edges)&&(vertices.push(start.x,start.y,start.z),vertices.push(end.x,end.y,end.z))}}this.setAttribute("position",new Float32BufferAttribute(vertices,3))}}copy(source){return super.copy(source),this.parameters=Object.assign({},source.parameters),this}}function isUniqueEdge(start,end,edges){const hash1=`${start.x},${start.y},${start.z}-${end.x},${end.y},${end.z}`,hash2=`${end.x},${end.y},${end.z}-${start.x},${start.y},${start.z}`;return!0!==edges.has(hash1)&&!0!==edges.has(hash2)&&(edges.add(hash1),edges.add(hash2),!0)}class ShadowMaterial extends Material{constructor(parameters){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new Color(0),this.transparent=!0,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.fog=source.fog,this}}class RawShaderMaterial extends ShaderMaterial{constructor(parameters){super(parameters),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class MeshStandardMaterial extends Material{constructor(parameters){super(),this.isMeshStandardMaterial=!0,this.type="MeshStandardMaterial",this.defines={STANDARD:""},this.color=new Color(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.defines={STANDARD:""},this.color.copy(source.color),this.roughness=source.roughness,this.metalness=source.metalness,this.map=source.map,this.lightMap=source.lightMap,this.lightMapIntensity=source.lightMapIntensity,this.aoMap=source.aoMap,this.aoMapIntensity=source.aoMapIntensity,this.emissive.copy(source.emissive),this.emissiveMap=source.emissiveMap,this.emissiveIntensity=source.emissiveIntensity,this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.roughnessMap=source.roughnessMap,this.metalnessMap=source.metalnessMap,this.alphaMap=source.alphaMap,this.envMap=source.envMap,this.envMapRotation.copy(source.envMapRotation),this.envMapIntensity=source.envMapIntensity,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.wireframeLinecap=source.wireframeLinecap,this.wireframeLinejoin=source.wireframeLinejoin,this.flatShading=source.flatShading,this.fog=source.fog,this}}class MeshPhysicalMaterial extends MeshStandardMaterial{constructor(parameters){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Vector2(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(reflectivity){this.ior=(1+.4*reflectivity)/(1-.4*reflectivity)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Color(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Color(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Color(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(parameters)}get anisotropy(){return this._anisotropy}set anisotropy(value){this._anisotropy>0!=value>0&&this.version++,this._anisotropy=value}get clearcoat(){return this._clearcoat}set clearcoat(value){this._clearcoat>0!=value>0&&this.version++,this._clearcoat=value}get iridescence(){return this._iridescence}set iridescence(value){this._iridescence>0!=value>0&&this.version++,this._iridescence=value}get dispersion(){return this._dispersion}set dispersion(value){this._dispersion>0!=value>0&&this.version++,this._dispersion=value}get sheen(){return this._sheen}set sheen(value){this._sheen>0!=value>0&&this.version++,this._sheen=value}get transmission(){return this._transmission}set transmission(value){this._transmission>0!=value>0&&this.version++,this._transmission=value}copy(source){return super.copy(source),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=source.anisotropy,this.anisotropyRotation=source.anisotropyRotation,this.anisotropyMap=source.anisotropyMap,this.clearcoat=source.clearcoat,this.clearcoatMap=source.clearcoatMap,this.clearcoatRoughness=source.clearcoatRoughness,this.clearcoatRoughnessMap=source.clearcoatRoughnessMap,this.clearcoatNormalMap=source.clearcoatNormalMap,this.clearcoatNormalScale.copy(source.clearcoatNormalScale),this.dispersion=source.dispersion,this.ior=source.ior,this.iridescence=source.iridescence,this.iridescenceMap=source.iridescenceMap,this.iridescenceIOR=source.iridescenceIOR,this.iridescenceThicknessRange=[...source.iridescenceThicknessRange],this.iridescenceThicknessMap=source.iridescenceThicknessMap,this.sheen=source.sheen,this.sheenColor.copy(source.sheenColor),this.sheenColorMap=source.sheenColorMap,this.sheenRoughness=source.sheenRoughness,this.sheenRoughnessMap=source.sheenRoughnessMap,this.transmission=source.transmission,this.transmissionMap=source.transmissionMap,this.thickness=source.thickness,this.thicknessMap=source.thicknessMap,this.attenuationDistance=source.attenuationDistance,this.attenuationColor.copy(source.attenuationColor),this.specularIntensity=source.specularIntensity,this.specularIntensityMap=source.specularIntensityMap,this.specularColor.copy(source.specularColor),this.specularColorMap=source.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(parameters){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color(16777215),this.specular=new Color(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.specular.copy(source.specular),this.shininess=source.shininess,this.map=source.map,this.lightMap=source.lightMap,this.lightMapIntensity=source.lightMapIntensity,this.aoMap=source.aoMap,this.aoMapIntensity=source.aoMapIntensity,this.emissive.copy(source.emissive),this.emissiveMap=source.emissiveMap,this.emissiveIntensity=source.emissiveIntensity,this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.specularMap=source.specularMap,this.alphaMap=source.alphaMap,this.envMap=source.envMap,this.envMapRotation.copy(source.envMapRotation),this.combine=source.combine,this.reflectivity=source.reflectivity,this.refractionRatio=source.refractionRatio,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.wireframeLinecap=source.wireframeLinecap,this.wireframeLinejoin=source.wireframeLinejoin,this.flatShading=source.flatShading,this.fog=source.fog,this}}class MeshToonMaterial extends Material{constructor(parameters){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.gradientMap=source.gradientMap,this.lightMap=source.lightMap,this.lightMapIntensity=source.lightMapIntensity,this.aoMap=source.aoMap,this.aoMapIntensity=source.aoMapIntensity,this.emissive.copy(source.emissive),this.emissiveMap=source.emissiveMap,this.emissiveIntensity=source.emissiveIntensity,this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.alphaMap=source.alphaMap,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.wireframeLinecap=source.wireframeLinecap,this.wireframeLinejoin=source.wireframeLinejoin,this.fog=source.fog,this}}class MeshNormalMaterial extends Material{constructor(parameters){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(parameters)}copy(source){return super.copy(source),this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.flatShading=source.flatShading,this}}class MeshLambertMaterial extends Material{constructor(parameters){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Euler,this.combine=0,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.color.copy(source.color),this.map=source.map,this.lightMap=source.lightMap,this.lightMapIntensity=source.lightMapIntensity,this.aoMap=source.aoMap,this.aoMapIntensity=source.aoMapIntensity,this.emissive.copy(source.emissive),this.emissiveMap=source.emissiveMap,this.emissiveIntensity=source.emissiveIntensity,this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.specularMap=source.specularMap,this.alphaMap=source.alphaMap,this.envMap=source.envMap,this.envMapRotation.copy(source.envMapRotation),this.combine=source.combine,this.reflectivity=source.reflectivity,this.refractionRatio=source.refractionRatio,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.wireframeLinecap=source.wireframeLinecap,this.wireframeLinejoin=source.wireframeLinejoin,this.flatShading=source.flatShading,this.fog=source.fog,this}}class MeshDepthMaterial extends Material{constructor(parameters){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=3200,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(parameters)}copy(source){return super.copy(source),this.depthPacking=source.depthPacking,this.map=source.map,this.alphaMap=source.alphaMap,this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this}}class MeshDistanceMaterial extends Material{constructor(parameters){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(parameters)}copy(source){return super.copy(source),this.map=source.map,this.alphaMap=source.alphaMap,this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this}}class MeshMatcapMaterial extends Material{constructor(parameters){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=0,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.fog=!0,this.setValues(parameters)}copy(source){return super.copy(source),this.defines={MATCAP:""},this.color.copy(source.color),this.matcap=source.matcap,this.map=source.map,this.bumpMap=source.bumpMap,this.bumpScale=source.bumpScale,this.normalMap=source.normalMap,this.normalMapType=source.normalMapType,this.normalScale.copy(source.normalScale),this.displacementMap=source.displacementMap,this.displacementScale=source.displacementScale,this.displacementBias=source.displacementBias,this.alphaMap=source.alphaMap,this.wireframe=source.wireframe,this.wireframeLinewidth=source.wireframeLinewidth,this.flatShading=source.flatShading,this.fog=source.fog,this}}class LineDashedMaterial extends LineBasicMaterial{constructor(parameters){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(parameters)}copy(source){return super.copy(source),this.scale=source.scale,this.dashSize=source.dashSize,this.gapSize=source.gapSize,this}}function convertArray(array,type){return array&&array.constructor!==type?"number"==typeof type.BYTES_PER_ELEMENT?new type(array):Array.prototype.slice.call(array):array}function getKeyframeOrder(times){const n=times.length,result=new Array(n);for(let i=0;i!==n;++i)result[i]=i;return result.sort(function(i,j){return times[i]-times[j]}),result}function sortedArray(values,stride,order){const nValues=values.length,result=new values.constructor(nValues);for(let i=0,dstOffset=0;dstOffset!==nValues;++i){const srcOffset=order[i]*stride;for(let j=0;j!==stride;++j)result[dstOffset++]=values[srcOffset+j]}return result}function flattenJSON(jsonKeys,times,values,valuePropertyName){let i=1,key=jsonKeys[0];for(;void 0!==key&&void 0===key[valuePropertyName];)key=jsonKeys[i++];if(void 0===key)return;let value=key[valuePropertyName];if(void 0!==value)if(Array.isArray(value))do{value=key[valuePropertyName],void 0!==value&&(times.push(key.time),values.push(...value)),key=jsonKeys[i++]}while(void 0!==key);else if(void 0!==value.toArray)do{value=key[valuePropertyName],void 0!==value&&(times.push(key.time),value.toArray(values,values.length)),key=jsonKeys[i++]}while(void 0!==key);else do{value=key[valuePropertyName],void 0!==value&&(times.push(key.time),values.push(value)),key=jsonKeys[i++]}while(void 0!==key)}class Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){this.parameterPositions=parameterPositions,this._cachedIndex=0,this.resultBuffer=void 0!==resultBuffer?resultBuffer:new sampleValues.constructor(sampleSize),this.sampleValues=sampleValues,this.valueSize=sampleSize,this.settings=null,this.DefaultSettings_={}}evaluate(t){const pp=this.parameterPositions;let i1=this._cachedIndex,t1=pp[i1],t0=pp[i1-1];validate_interval:{seek:{let right;linear_scan:{forward_scan:if(!(t<t1)){for(let giveUpAt=i1+2;;){if(void 0===t1){if(t<t0)break forward_scan;return i1=pp.length,this._cachedIndex=i1,this.copySampleValue_(i1-1)}if(i1===giveUpAt)break;if(t0=t1,t1=pp[++i1],t<t1)break seek}right=pp.length;break linear_scan}if(!(t>=t0)){const t1global=pp[1];t<t1global&&(i1=2,t0=t1global);for(let giveUpAt=i1-2;;){if(void 0===t0)return this._cachedIndex=0,this.copySampleValue_(0);if(i1===giveUpAt)break;if(t1=t0,t0=pp[--i1-1],t>=t0)break seek}right=i1,i1=0;break linear_scan}break validate_interval}for(;i1<right;){const mid=i1+right>>>1;t<pp[mid]?right=mid:i1=mid+1}if(t1=pp[i1],t0=pp[i1-1],void 0===t0)return this._cachedIndex=0,this.copySampleValue_(0);if(void 0===t1)return i1=pp.length,this._cachedIndex=i1,this.copySampleValue_(i1-1)}this._cachedIndex=i1,this.intervalChanged_(i1,t0,t1)}return this.interpolate_(i1,t0,t,t1)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(index){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,offset=index*stride;for(let i=0;i!==stride;++i)result[i]=values[offset+i];return result}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:2400,endingEnd:2400}}intervalChanged_(i1,t0,t1){const pp=this.parameterPositions;let iPrev=i1-2,iNext=i1+1,tPrev=pp[iPrev],tNext=pp[iNext];if(void 0===tPrev)switch(this.getSettings_().endingStart){case 2401:iPrev=i1,tPrev=2*t0-t1;break;case 2402:iPrev=pp.length-2,tPrev=t0+pp[iPrev]-pp[iPrev+1];break;default:iPrev=i1,tPrev=t1}if(void 0===tNext)switch(this.getSettings_().endingEnd){case 2401:iNext=i1,tNext=2*t1-t0;break;case 2402:iNext=1,tNext=t1+pp[1]-pp[0];break;default:iNext=i1-1,tNext=t0}const halfDt=.5*(t1-t0),stride=this.valueSize;this._weightPrev=halfDt/(t0-tPrev),this._weightNext=halfDt/(tNext-t1),this._offsetPrev=iPrev*stride,this._offsetNext=iNext*stride}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,o1=i1*stride,o0=o1-stride,oP=this._offsetPrev,oN=this._offsetNext,wP=this._weightPrev,wN=this._weightNext,p=(t-t0)/(t1-t0),pp=p*p,ppp=pp*p,sP=-wP*ppp+2*wP*pp-wP*p,s0=(1+wP)*ppp+(-1.5-2*wP)*pp+(-.5+wP)*p+1,s1=(-1-wN)*ppp+(1.5+wN)*pp+.5*p,sN=wN*ppp-wN*pp;for(let i=0;i!==stride;++i)result[i]=sP*values[oP+i]+s0*values[o0+i]+s1*values[o1+i]+sN*values[oN+i];return result}}class LinearInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,offset1=i1*stride,offset0=offset1-stride,weight1=(t-t0)/(t1-t0),weight0=1-weight1;for(let i=0;i!==stride;++i)result[i]=values[offset0+i]*weight0+values[offset1+i]*weight1;return result}}class DiscreteInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1){return this.copySampleValue_(i1-1)}}class KeyframeTrack{constructor(name,times,values,interpolation){if(void 0===name)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===times||0===times.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+name);this.name=name,this.times=convertArray(times,this.TimeBufferType),this.values=convertArray(values,this.ValueBufferType),this.setInterpolation(interpolation||this.DefaultInterpolation)}static toJSON(track){const trackType=track.constructor;let json;if(trackType.toJSON!==this.toJSON)json=trackType.toJSON(track);else{json={name:track.name,times:convertArray(track.times,Array),values:convertArray(track.values,Array)};const interpolation=track.getInterpolation();interpolation!==track.DefaultInterpolation&&(json.interpolation=interpolation)}return json.type=track.ValueTypeName,json}InterpolantFactoryMethodDiscrete(result){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),result)}InterpolantFactoryMethodLinear(result){return new LinearInterpolant(this.times,this.values,this.getValueSize(),result)}InterpolantFactoryMethodSmooth(result){return new CubicInterpolant(this.times,this.values,this.getValueSize(),result)}setInterpolation(interpolation){let factoryMethod;switch(interpolation){case 2300:factoryMethod=this.InterpolantFactoryMethodDiscrete;break;case 2301:factoryMethod=this.InterpolantFactoryMethodLinear;break;case 2302:factoryMethod=this.InterpolantFactoryMethodSmooth}if(void 0===factoryMethod){const message="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(interpolation===this.DefaultInterpolation)throw new Error(message);this.setInterpolation(this.DefaultInterpolation)}return warn("KeyframeTrack:",message),this}return this.createInterpolant=factoryMethod,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return 2300;case this.InterpolantFactoryMethodLinear:return 2301;case this.InterpolantFactoryMethodSmooth:return 2302}}getValueSize(){return this.values.length/this.times.length}shift(timeOffset){if(0!==timeOffset){const times=this.times;for(let i=0,n=times.length;i!==n;++i)times[i]+=timeOffset}return this}scale(timeScale){if(1!==timeScale){const times=this.times;for(let i=0,n=times.length;i!==n;++i)times[i]*=timeScale}return this}trim(startTime,endTime){const times=this.times,nKeys=times.length;let from=0,to=nKeys-1;for(;from!==nKeys&&times[from]<startTime;)++from;for(;-1!==to&&times[to]>endTime;)--to;if(++to,0!==from||to!==nKeys){from>=to&&(to=Math.max(to,1),from=to-1);const stride=this.getValueSize();this.times=times.slice(from,to),this.values=this.values.slice(from*stride,to*stride)}return this}validate(){let valid=!0;const valueSize=this.getValueSize();valueSize-Math.floor(valueSize)!==0&&(error("KeyframeTrack: Invalid value size in track.",this),valid=!1);const times=this.times,values=this.values,nKeys=times.length;0===nKeys&&(error("KeyframeTrack: Track is empty.",this),valid=!1);let prevTime=null;for(let i=0;i!==nKeys;i++){const currTime=times[i];if("number"==typeof currTime&&isNaN(currTime)){error("KeyframeTrack: Time is not a valid number.",this,i,currTime),valid=!1;break}if(null!==prevTime&&prevTime>currTime){error("KeyframeTrack: Out of order keys.",this,i,currTime,prevTime),valid=!1;break}prevTime=currTime}if(void 0!==values&&isTypedArray(values))for(let i=0,n=values.length;i!==n;++i){const value=values[i];if(isNaN(value)){error("KeyframeTrack: Value is not a valid number.",this,i,value),valid=!1;break}}return valid}optimize(){const times=this.times.slice(),values=this.values.slice(),stride=this.getValueSize(),smoothInterpolation=2302===this.getInterpolation(),lastIndex=times.length-1;let writeIndex=1;for(let i=1;i<lastIndex;++i){let keep=!1;const time=times[i];if(time!==times[i+1]&&(1!==i||time!==times[0]))if(smoothInterpolation)keep=!0;else{const offset=i*stride,offsetP=offset-stride,offsetN=offset+stride;for(let j=0;j!==stride;++j){const value=values[offset+j];if(value!==values[offsetP+j]||value!==values[offsetN+j]){keep=!0;break}}}if(keep){if(i!==writeIndex){times[writeIndex]=times[i];const readOffset=i*stride,writeOffset=writeIndex*stride;for(let j=0;j!==stride;++j)values[writeOffset+j]=values[readOffset+j]}++writeIndex}}if(lastIndex>0){times[writeIndex]=times[lastIndex];for(let readOffset=lastIndex*stride,writeOffset=writeIndex*stride,j=0;j!==stride;++j)values[writeOffset+j]=values[readOffset+j];++writeIndex}return writeIndex!==times.length?(this.times=times.slice(0,writeIndex),this.values=values.slice(0,writeIndex*stride)):(this.times=times,this.values=values),this}clone(){const times=this.times.slice(),values=this.values.slice(),track=new(0,this.constructor)(this.name,times,values);return track.createInterpolant=this.createInterpolant,track}}KeyframeTrack.prototype.ValueTypeName="",KeyframeTrack.prototype.TimeBufferType=Float32Array,KeyframeTrack.prototype.ValueBufferType=Float32Array,KeyframeTrack.prototype.DefaultInterpolation=2301;class BooleanKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}BooleanKeyframeTrack.prototype.ValueTypeName="bool",BooleanKeyframeTrack.prototype.ValueBufferType=Array,BooleanKeyframeTrack.prototype.DefaultInterpolation=2300,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(parameterPositions,sampleValues,sampleSize,resultBuffer){super(parameterPositions,sampleValues,sampleSize,resultBuffer)}interpolate_(i1,t0,t,t1){const result=this.resultBuffer,values=this.sampleValues,stride=this.valueSize,alpha=(t-t0)/(t1-t0);let offset=i1*stride;for(let end=offset+stride;offset!==end;offset+=4)Quaternion.slerpFlat(result,0,values,offset-stride,values,offset,alpha);return result}}class QuaternionKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}InterpolantFactoryMethodLinear(result){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),result)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion",QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{constructor(name,times,values){super(name,times,values)}}StringKeyframeTrack.prototype.ValueTypeName="string",StringKeyframeTrack.prototype.ValueBufferType=Array,StringKeyframeTrack.prototype.DefaultInterpolation=2300,StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{constructor(name,times,values,interpolation){super(name,times,values,interpolation)}}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(name="",duration=-1,tracks=[],blendMode=2500){this.name=name,this.tracks=tracks,this.duration=duration,this.blendMode=blendMode,this.uuid=generateUUID(),this.userData={},this.duration<0&&this.resetDuration()}static parse(json){const tracks=[],jsonTracks=json.tracks,frameTime=1/(json.fps||1);for(let i=0,n=jsonTracks.length;i!==n;++i)tracks.push(parseKeyframeTrack(jsonTracks[i]).scale(frameTime));const clip=new this(json.name,json.duration,tracks,json.blendMode);return clip.uuid=json.uuid,clip.userData=JSON.parse(json.userData||"{}"),clip}static toJSON(clip){const tracks=[],clipTracks=clip.tracks,json={name:clip.name,duration:clip.duration,tracks:tracks,uuid:clip.uuid,blendMode:clip.blendMode,userData:JSON.stringify(clip.userData)};for(let i=0,n=clipTracks.length;i!==n;++i)tracks.push(KeyframeTrack.toJSON(clipTracks[i]));return json}static CreateFromMorphTargetSequence(name,morphTargetSequence,fps,noLoop){const numMorphTargets=morphTargetSequence.length,tracks=[];for(let i=0;i<numMorphTargets;i++){let times=[],values=[];times.push((i+numMorphTargets-1)%numMorphTargets,i,(i+1)%numMorphTargets),values.push(0,1,0);const order=getKeyframeOrder(times);times=sortedArray(times,1,order),values=sortedArray(values,1,order),noLoop||0!==times[0]||(times.push(numMorphTargets),values.push(values[0])),tracks.push(new NumberKeyframeTrack(".morphTargetInfluences["+morphTargetSequence[i].name+"]",times,values).scale(1/fps))}return new this(name,-1,tracks)}static findByName(objectOrClipArray,name){let clipArray=objectOrClipArray;Array.isArray(objectOrClipArray)||(clipArray=objectOrClipArray.geometry&&objectOrClipArray.geometry.animations||objectOrClipArray.animations);for(let i=0;i<clipArray.length;i++)if(clipArray[i].name===name)return clipArray[i];return null}static CreateClipsFromMorphTargetSequences(morphTargets,fps,noLoop){const animationToMorphTargets={},pattern=/^([\w-]*?)([\d]+)$/;for(let i=0,il=morphTargets.length;i<il;i++){const morphTarget=morphTargets[i],parts=morphTarget.name.match(pattern);if(parts&&parts.length>1){const name=parts[1];let animationMorphTargets=animationToMorphTargets[name];animationMorphTargets||(animationToMorphTargets[name]=animationMorphTargets=[]),animationMorphTargets.push(morphTarget)}}const clips=[];for(const name in animationToMorphTargets)clips.push(this.CreateFromMorphTargetSequence(name,animationToMorphTargets[name],fps,noLoop));return clips}static parseAnimation(animation,bones){if(warn("AnimationClip: parseAnimation() is deprecated and will be removed with r185"),!animation)return error("AnimationClip: No animation in JSONLoader data."),null;const addNonemptyTrack=function(trackType,trackName,animationKeys,propertyName,destTracks){if(0!==animationKeys.length){const times=[],values=[];flattenJSON(animationKeys,times,values,propertyName),0!==times.length&&destTracks.push(new trackType(trackName,times,values))}},tracks=[],clipName=animation.name||"default",fps=animation.fps||30,blendMode=animation.blendMode;let duration=animation.length||-1;const hierarchyTracks=animation.hierarchy||[];for(let h=0;h<hierarchyTracks.length;h++){const animationKeys=hierarchyTracks[h].keys;if(animationKeys&&0!==animationKeys.length)if(animationKeys[0].morphTargets){const morphTargetNames={};let k;for(k=0;k<animationKeys.length;k++)if(animationKeys[k].morphTargets)for(let m=0;m<animationKeys[k].morphTargets.length;m++)morphTargetNames[animationKeys[k].morphTargets[m]]=-1;for(const morphTargetName in morphTargetNames){const times=[],values=[];for(let m=0;m!==animationKeys[k].morphTargets.length;++m){const animationKey=animationKeys[k];times.push(animationKey.time),values.push(animationKey.morphTarget===morphTargetName?1:0)}tracks.push(new NumberKeyframeTrack(".morphTargetInfluence["+morphTargetName+"]",times,values))}duration=morphTargetNames.length*fps}else{const boneName=".bones["+bones[h].name+"]";addNonemptyTrack(VectorKeyframeTrack,boneName+".position",animationKeys,"pos",tracks),addNonemptyTrack(QuaternionKeyframeTrack,boneName+".quaternion",animationKeys,"rot",tracks),addNonemptyTrack(VectorKeyframeTrack,boneName+".scale",animationKeys,"scl",tracks)}}return 0===tracks.length?null:new this(clipName,duration,tracks,blendMode)}resetDuration(){let duration=0;for(let i=0,n=this.tracks.length;i!==n;++i){const track=this.tracks[i];duration=Math.max(duration,track.times[track.times.length-1])}return this.duration=duration,this}trim(){for(let i=0;i<this.tracks.length;i++)this.tracks[i].trim(0,this.duration);return this}validate(){let valid=!0;for(let i=0;i<this.tracks.length;i++)valid=valid&&this.tracks[i].validate();return valid}optimize(){for(let i=0;i<this.tracks.length;i++)this.tracks[i].optimize();return this}clone(){const tracks=[];for(let i=0;i<this.tracks.length;i++)tracks.push(this.tracks[i].clone());const clip=new this.constructor(this.name,this.duration,tracks,this.blendMode);return clip.userData=JSON.parse(JSON.stringify(this.userData)),clip}toJSON(){return this.constructor.toJSON(this)}}function parseKeyframeTrack(json){if(void 0===json.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const trackType=function(typeName){switch(typeName.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return NumberKeyframeTrack;case"vector":case"vector2":case"vector3":case"vector4":return VectorKeyframeTrack;case"color":return ColorKeyframeTrack;case"quaternion":return QuaternionKeyframeTrack;case"bool":case"boolean":return BooleanKeyframeTrack;case"string":return StringKeyframeTrack}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+typeName)}(json.type);if(void 0===json.times){const times=[],values=[];flattenJSON(json.keys,times,values,"value"),json.times=times,json.values=values}return void 0!==trackType.parse?trackType.parse(json):new trackType(json.name,json.times,json.values,json.interpolation)}const Cache={enabled:!1,files:{},add:function(key,file){!1!==this.enabled&&(this.files[key]=file)},get:function(key){if(!1!==this.enabled)return this.files[key]},remove:function(key){delete this.files[key]},clear:function(){this.files={}}};class LoadingManager{constructor(onLoad,onProgress,onError){const scope=this;let urlModifier,isLoading=!1,itemsLoaded=0,itemsTotal=0;const handlers=[];this.onStart=void 0,this.onLoad=onLoad,this.onProgress=onProgress,this.onError=onError,this._abortController=null,this.itemStart=function(url){itemsTotal++,!1===isLoading&&void 0!==scope.onStart&&scope.onStart(url,itemsLoaded,itemsTotal),isLoading=!0},this.itemEnd=function(url){itemsLoaded++,void 0!==scope.onProgress&&scope.onProgress(url,itemsLoaded,itemsTotal),itemsLoaded===itemsTotal&&(isLoading=!1,void 0!==scope.onLoad&&scope.onLoad())},this.itemError=function(url){void 0!==scope.onError&&scope.onError(url)},this.resolveURL=function(url){return urlModifier?urlModifier(url):url},this.setURLModifier=function(transform){return urlModifier=transform,this},this.addHandler=function(regex,loader){return handlers.push(regex,loader),this},this.removeHandler=function(regex){const index=handlers.indexOf(regex);return-1!==index&&handlers.splice(index,2),this},this.getHandler=function(file){for(let i=0,l=handlers.length;i<l;i+=2){const regex=handlers[i],loader=handlers[i+1];if(regex.global&&(regex.lastIndex=0),regex.test(file))return loader}return null},this.abort=function(){return this.abortController.abort(),this._abortController=null,this}}get abortController(){return this._abortController||(this._abortController=new AbortController),this._abortController}}const DefaultLoadingManager=new LoadingManager;class Loader{constructor(manager){this.manager=void 0!==manager?manager:DefaultLoadingManager,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(url,onProgress){const scope=this;return new Promise(function(resolve,reject){scope.load(url,resolve,onProgress,reject)})}parse(){}setCrossOrigin(crossOrigin){return this.crossOrigin=crossOrigin,this}setWithCredentials(value){return this.withCredentials=value,this}setPath(path){return this.path=path,this}setResourcePath(resourcePath){return this.resourcePath=resourcePath,this}setRequestHeader(requestHeader){return this.requestHeader=requestHeader,this}abort(){return this}}Loader.DEFAULT_MATERIAL_NAME="__DEFAULT";const loading={};class HttpError extends Error{constructor(message,response){super(message),this.response=response}}class FileLoader extends Loader{constructor(manager){super(manager),this.mimeType="",this.responseType="",this._abortController=new AbortController}load(url,onLoad,onProgress,onError){void 0===url&&(url=""),void 0!==this.path&&(url=this.path+url),url=this.manager.resolveURL(url);const cached=Cache.get(`file:${url}`);if(void 0!==cached)return this.manager.itemStart(url),setTimeout(()=>{onLoad&&onLoad(cached),this.manager.itemEnd(url)},0),cached;if(void 0!==loading[url])return void loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});loading[url]=[],loading[url].push({onLoad:onLoad,onProgress:onProgress,onError:onError});const req=new Request(url,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin",signal:"function"==typeof AbortSignal.any?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),mimeType=this.mimeType,responseType=this.responseType;fetch(req).then(response=>{if(200===response.status||0===response.status){if(0===response.status&&warn("FileLoader: HTTP Status 0 received."),"undefined"==typeof ReadableStream||void 0===response.body||void 0===response.body.getReader)return response;const callbacks=loading[url],reader=response.body.getReader(),contentLength=response.headers.get("X-File-Size")||response.headers.get("Content-Length"),total=contentLength?parseInt(contentLength):0,lengthComputable=0!==total;let loaded=0;const stream=new ReadableStream({start(controller){!function readData(){reader.read().then(({done:done,value:value})=>{if(done)controller.close();else{loaded+=value.byteLength;const event=new ProgressEvent("progress",{lengthComputable:lengthComputable,loaded:loaded,total:total});for(let i=0,il=callbacks.length;i<il;i++){const callback=callbacks[i];callback.onProgress&&callback.onProgress(event)}controller.enqueue(value),readData()}},e=>{controller.error(e)})}()}});return new Response(stream)}throw new HttpError(`fetch for "${response.url}" responded with ${response.status}: ${response.statusText}`,response)}).then(response=>{switch(responseType){case"arraybuffer":return response.arrayBuffer();case"blob":return response.blob();case"document":return response.text().then(text=>(new DOMParser).parseFromString(text,mimeType));case"json":return response.json();default:if(""===mimeType)return response.text();{const exec=/charset="?([^;"\s]*)"?/i.exec(mimeType),label=exec&&exec[1]?exec[1].toLowerCase():void 0,decoder=new TextDecoder(label);return response.arrayBuffer().then(ab=>decoder.decode(ab))}}}).then(data=>{Cache.add(`file:${url}`,data);const callbacks=loading[url];delete loading[url];for(let i=0,il=callbacks.length;i<il;i++){const callback=callbacks[i];callback.onLoad&&callback.onLoad(data)}}).catch(err=>{const callbacks=loading[url];if(void 0===callbacks)throw this.manager.itemError(url),err;delete loading[url];for(let i=0,il=callbacks.length;i<il;i++){const callback=callbacks[i];callback.onError&&callback.onError(err)}this.manager.itemError(url)}).finally(()=>{this.manager.itemEnd(url)}),this.manager.itemStart(url)}setResponseType(value){return this.responseType=value,this}setMimeType(value){return this.mimeType=value,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}const _loading=new WeakMap;class ImageLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){void 0!==this.path&&(url=this.path+url),url=this.manager.resolveURL(url);const scope=this,cached=Cache.get(`image:${url}`);if(void 0!==cached){if(!0===cached.complete)scope.manager.itemStart(url),setTimeout(function(){onLoad&&onLoad(cached),scope.manager.itemEnd(url)},0);else{let arr=_loading.get(cached);void 0===arr&&(arr=[],_loading.set(cached,arr)),arr.push({onLoad:onLoad,onError:onError})}return cached}const image=createElementNS("img");function onImageLoad(){removeEventListeners(),onLoad&&onLoad(this);const callbacks=_loading.get(this)||[];for(let i=0;i<callbacks.length;i++){const callback=callbacks[i];callback.onLoad&&callback.onLoad(this)}_loading.delete(this),scope.manager.itemEnd(url)}function onImageError(event){removeEventListeners(),onError&&onError(event),Cache.remove(`image:${url}`);const callbacks=_loading.get(this)||[];for(let i=0;i<callbacks.length;i++){const callback=callbacks[i];callback.onError&&callback.onError(event)}_loading.delete(this),scope.manager.itemError(url),scope.manager.itemEnd(url)}function removeEventListeners(){image.removeEventListener("load",onImageLoad,!1),image.removeEventListener("error",onImageError,!1)}return image.addEventListener("load",onImageLoad,!1),image.addEventListener("error",onImageError,!1),"data:"!==url.slice(0,5)&&void 0!==this.crossOrigin&&(image.crossOrigin=this.crossOrigin),Cache.add(`image:${url}`,image),scope.manager.itemStart(url),image.src=url,image}}class DataTextureLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this,texture=new DataTexture,loader=new FileLoader(this.manager);return loader.setResponseType("arraybuffer"),loader.setRequestHeader(this.requestHeader),loader.setPath(this.path),loader.setWithCredentials(scope.withCredentials),loader.load(url,function(buffer){let texData;try{texData=scope.parse(buffer)}catch(error){if(void 0===onError)return void error(error);onError(error)}void 0!==texData.image?texture.image=texData.image:void 0!==texData.data&&(texture.image.width=texData.width,texture.image.height=texData.height,texture.image.data=texData.data),texture.wrapS=void 0!==texData.wrapS?texData.wrapS:1001,texture.wrapT=void 0!==texData.wrapT?texData.wrapT:1001,texture.magFilter=void 0!==texData.magFilter?texData.magFilter:1006,texture.minFilter=void 0!==texData.minFilter?texData.minFilter:1006,texture.anisotropy=void 0!==texData.anisotropy?texData.anisotropy:1,void 0!==texData.colorSpace&&(texture.colorSpace=texData.colorSpace),void 0!==texData.flipY&&(texture.flipY=texData.flipY),void 0!==texData.format&&(texture.format=texData.format),void 0!==texData.type&&(texture.type=texData.type),void 0!==texData.mipmaps&&(texture.mipmaps=texData.mipmaps,texture.minFilter=1008),1===texData.mipmapCount&&(texture.minFilter=1006),void 0!==texData.generateMipmaps&&(texture.generateMipmaps=texData.generateMipmaps),texture.needsUpdate=!0,onLoad&&onLoad(texture,texData)},onProgress,onError),texture}}class TextureLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const texture=new Texture,loader=new ImageLoader(this.manager);return loader.setCrossOrigin(this.crossOrigin),loader.setPath(this.path),loader.load(url,function(image){texture.image=image,texture.needsUpdate=!0,void 0!==onLoad&&onLoad(texture)},onProgress,onError),texture}}class Light extends Object3D{constructor(color,intensity=1){super(),this.isLight=!0,this.type="Light",this.color=new Color(color),this.intensity=intensity}dispose(){this.dispatchEvent({type:"dispose"})}copy(source,recursive){return super.copy(source,recursive),this.color.copy(source.color),this.intensity=source.intensity,this}toJSON(meta){const data=super.toJSON(meta);return data.object.color=this.color.getHex(),data.object.intensity=this.intensity,data}}class HemisphereLight extends Light{constructor(skyColor,groundColor,intensity){super(skyColor,intensity),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Color(groundColor)}copy(source,recursive){return super.copy(source,recursive),this.groundColor.copy(source.groundColor),this}toJSON(meta){const data=super.toJSON(meta);return data.object.groundColor=this.groundColor.getHex(),data}}const _projScreenMatrix=new Matrix4,_lightPositionWorld=new Vector3,_lookTarget=new Vector3;class LightShadow{constructor(camera){this.camera=camera,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Vector2(512,512),this.mapType=1009,this.map=null,this.mapPass=null,this.matrix=new Matrix4,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Frustum,this._frameExtents=new Vector2(1,1),this._viewportCount=1,this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(light){const shadowCamera=this.camera,shadowMatrix=this.matrix;_lightPositionWorld.setFromMatrixPosition(light.matrixWorld),shadowCamera.position.copy(_lightPositionWorld),_lookTarget.setFromMatrixPosition(light.target.matrixWorld),shadowCamera.lookAt(_lookTarget),shadowCamera.updateMatrixWorld(),_projScreenMatrix.multiplyMatrices(shadowCamera.projectionMatrix,shadowCamera.matrixWorldInverse),this._frustum.setFromProjectionMatrix(_projScreenMatrix,shadowCamera.coordinateSystem,shadowCamera.reversedDepth),shadowCamera.reversedDepth?shadowMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,1,0,0,0,0,1):shadowMatrix.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),shadowMatrix.multiply(_projScreenMatrix)}getViewport(viewportIndex){return this._viewports[viewportIndex]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(source){return this.camera=source.camera.clone(),this.intensity=source.intensity,this.bias=source.bias,this.radius=source.radius,this.autoUpdate=source.autoUpdate,this.needsUpdate=source.needsUpdate,this.normalBias=source.normalBias,this.blurSamples=source.blurSamples,this.mapSize.copy(source.mapSize),this}clone(){return(new this.constructor).copy(this)}toJSON(){const object={};return 1!==this.intensity&&(object.intensity=this.intensity),0!==this.bias&&(object.bias=this.bias),0!==this.normalBias&&(object.normalBias=this.normalBias),1!==this.radius&&(object.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(object.mapSize=this.mapSize.toArray()),object.camera=this.camera.toJSON(!1).object,delete object.camera.matrix,object}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1,this.aspect=1}updateMatrices(light){const camera=this.camera,fov=2*RAD2DEG*light.angle*this.focus,aspect=this.mapSize.width/this.mapSize.height*this.aspect,far=light.distance||camera.far;fov===camera.fov&&aspect===camera.aspect&&far===camera.far||(camera.fov=fov,camera.aspect=aspect,camera.far=far,camera.updateProjectionMatrix()),super.updateMatrices(light)}copy(source){return super.copy(source),this.focus=source.focus,this}}class SpotLight extends Light{constructor(color,intensity,distance=0,angle=Math.PI/3,penumbra=0,decay=2){super(color,intensity),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.distance=distance,this.angle=angle,this.penumbra=penumbra,this.decay=decay,this.map=null,this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(power){this.intensity=power/Math.PI}dispose(){super.dispose(),this.shadow.dispose()}copy(source,recursive){return super.copy(source,recursive),this.distance=source.distance,this.angle=source.angle,this.penumbra=source.penumbra,this.decay=source.decay,this.target=source.target.clone(),this.map=source.map,this.shadow=source.shadow.clone(),this}toJSON(meta){const data=super.toJSON(meta);return data.object.distance=this.distance,data.object.angle=this.angle,data.object.decay=this.decay,data.object.penumbra=this.penumbra,data.object.target=this.target.uuid,this.map&&this.map.isTexture&&(data.object.map=this.map.toJSON(meta).uuid),data.object.shadow=this.shadow.toJSON(),data}}class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500)),this.isPointLightShadow=!0}}class PointLight extends Light{constructor(color,intensity,distance=0,decay=2){super(color,intensity),this.isPointLight=!0,this.type="PointLight",this.distance=distance,this.decay=decay,this.shadow=new PointLightShadow}get power(){return 4*this.intensity*Math.PI}set power(power){this.intensity=power/(4*Math.PI)}dispose(){super.dispose(),this.shadow.dispose()}copy(source,recursive){return super.copy(source,recursive),this.distance=source.distance,this.decay=source.decay,this.shadow=source.shadow.clone(),this}toJSON(meta){const data=super.toJSON(meta);return data.object.distance=this.distance,data.object.decay=this.decay,data.object.shadow=this.shadow.toJSON(),data}}class OrthographicCamera extends Camera{constructor(left=-1,right=1,top=1,bottom=-1,near=.1,far=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=left,this.right=right,this.top=top,this.bottom=bottom,this.near=near,this.far=far,this.updateProjectionMatrix()}copy(source,recursive){return super.copy(source,recursive),this.left=source.left,this.right=source.right,this.top=source.top,this.bottom=source.bottom,this.near=source.near,this.far=source.far,this.zoom=source.zoom,this.view=null===source.view?null:Object.assign({},source.view),this}setViewOffset(fullWidth,fullHeight,x,y,width,height){null===this.view&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=fullWidth,this.view.fullHeight=fullHeight,this.view.offsetX=x,this.view.offsetY=y,this.view.width=width,this.view.height=height,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const dx=(this.right-this.left)/(2*this.zoom),dy=(this.top-this.bottom)/(2*this.zoom),cx=(this.right+this.left)/2,cy=(this.top+this.bottom)/2;let left=cx-dx,right=cx+dx,top=cy+dy,bottom=cy-dy;if(null!==this.view&&this.view.enabled){const scaleW=(this.right-this.left)/this.view.fullWidth/this.zoom,scaleH=(this.top-this.bottom)/this.view.fullHeight/this.zoom;left+=scaleW*this.view.offsetX,right=left+scaleW*this.view.width,top-=scaleH*this.view.offsetY,bottom=top-scaleH*this.view.height}this.projectionMatrix.makeOrthographic(left,right,top,bottom,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(meta){const data=super.toJSON(meta);return data.object.zoom=this.zoom,data.object.left=this.left,data.object.right=this.right,data.object.top=this.top,data.object.bottom=this.bottom,data.object.near=this.near,data.object.far=this.far,null!==this.view&&(data.object.view=Object.assign({},this.view)),data}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class DirectionalLight extends Light{constructor(color,intensity){super(color,intensity),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Object3D.DEFAULT_UP),this.updateMatrix(),this.target=new Object3D,this.shadow=new DirectionalLightShadow}dispose(){super.dispose(),this.shadow.dispose()}copy(source){return super.copy(source),this.target=source.target.clone(),this.shadow=source.shadow.clone(),this}toJSON(meta){const data=super.toJSON(meta);return data.object.shadow=this.shadow.toJSON(),data.object.target=this.target.uuid,data}}class AmbientLight extends Light{constructor(color,intensity){super(color,intensity),this.isAmbientLight=!0,this.type="AmbientLight"}}class RectAreaLight extends Light{constructor(color,intensity,width=10,height=10){super(color,intensity),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=width,this.height=height}get power(){return this.intensity*this.width*this.height*Math.PI}set power(power){this.intensity=power/(this.width*this.height*Math.PI)}copy(source){return super.copy(source),this.width=source.width,this.height=source.height,this}toJSON(meta){const data=super.toJSON(meta);return data.object.width=this.width,data.object.height=this.height,data}}class LoaderUtils{static extractUrlBase(url){const index=url.lastIndexOf("/");return-1===index?"./":url.slice(0,index+1)}static resolveURL(url,path){return"string"!=typeof url||""===url?"":(/^https?:\/\//i.test(path)&&/^\//.test(url)&&(path=path.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(url)||/^data:.*,.*$/i.test(url)||/^blob:.*$/i.test(url)?url:path+url)}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(source){return super.copy(source),this.instanceCount=source.instanceCount,this}toJSON(){const data=super.toJSON();return data.instanceCount=this.instanceCount,data.isInstancedBufferGeometry=!0,data}}const _errorMap=new WeakMap;class ImageBitmapLoader extends Loader{constructor(manager){super(manager),this.isImageBitmapLoader=!0,"undefined"==typeof createImageBitmap&&warn("ImageBitmapLoader: createImageBitmap() not supported."),"undefined"==typeof fetch&&warn("ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"},this._abortController=new AbortController}setOptions(options){return this.options=options,this}load(url,onLoad,onProgress,onError){void 0===url&&(url=""),void 0!==this.path&&(url=this.path+url),url=this.manager.resolveURL(url);const scope=this,cached=Cache.get(`image-bitmap:${url}`);if(void 0!==cached)return scope.manager.itemStart(url),cached.then?void cached.then(imageBitmap=>{if(!0!==_errorMap.has(cached))return onLoad&&onLoad(imageBitmap),scope.manager.itemEnd(url),imageBitmap;onError&&onError(_errorMap.get(cached)),scope.manager.itemError(url),scope.manager.itemEnd(url)}):(setTimeout(function(){onLoad&&onLoad(cached),scope.manager.itemEnd(url)},0),cached);const fetchOptions={};fetchOptions.credentials="anonymous"===this.crossOrigin?"same-origin":"include",fetchOptions.headers=this.requestHeader,fetchOptions.signal="function"==typeof AbortSignal.any?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;const promise=fetch(url,fetchOptions).then(function(res){return res.blob()}).then(function(blob){return createImageBitmap(blob,Object.assign(scope.options,{colorSpaceConversion:"none"}))}).then(function(imageBitmap){return Cache.add(`image-bitmap:${url}`,imageBitmap),onLoad&&onLoad(imageBitmap),scope.manager.itemEnd(url),imageBitmap}).catch(function(e){onError&&onError(e),_errorMap.set(promise,e),Cache.remove(`image-bitmap:${url}`),scope.manager.itemError(url),scope.manager.itemEnd(url)});Cache.add(`image-bitmap:${url}`,promise),scope.manager.itemStart(url)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}}let _context;class AudioContext{static getContext(){return void 0===_context&&(_context=new(window.AudioContext||window.webkitAudioContext)),_context}static setContext(value){_context=value}}class AudioLoader extends Loader{constructor(manager){super(manager)}load(url,onLoad,onProgress,onError){const scope=this,loader=new FileLoader(this.manager);function handleError(e){onError?onError(e):error(e),scope.manager.itemError(url)}loader.setResponseType("arraybuffer"),loader.setPath(this.path),loader.setRequestHeader(this.requestHeader),loader.setWithCredentials(this.withCredentials),loader.load(url,function(buffer){try{const bufferCopy=buffer.slice(0);AudioContext.getContext().decodeAudioData(bufferCopy,function(audioBuffer){onLoad(audioBuffer)}).catch(handleError)}catch(e){handleError(e)}},onProgress,onError)}}class ArrayCamera extends PerspectiveCamera{constructor(array=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=array}}class Clock{constructor(autoStart=!0){this.autoStart=autoStart,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let diff=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const newTime=performance.now();diff=(newTime-this.oldTime)/1e3,this.oldTime=newTime,this.elapsedTime+=diff}return diff}}const _position$1=new Vector3,_quaternion$1=new Quaternion,_scale$1=new Vector3,_forward=new Vector3,_up=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=AudioContext.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(value){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=value,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(value){return this.gain.gain.setTargetAtTime(value,this.context.currentTime,.01),this}updateMatrixWorld(force){super.updateMatrixWorld(force);const listener=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(_position$1,_quaternion$1,_scale$1),_forward.set(0,0,-1).applyQuaternion(_quaternion$1),_up.set(0,1,0).applyQuaternion(_quaternion$1),listener.positionX){const endTime=this.context.currentTime+this.timeDelta;listener.positionX.linearRampToValueAtTime(_position$1.x,endTime),listener.positionY.linearRampToValueAtTime(_position$1.y,endTime),listener.positionZ.linearRampToValueAtTime(_position$1.z,endTime),listener.forwardX.linearRampToValueAtTime(_forward.x,endTime),listener.forwardY.linearRampToValueAtTime(_forward.y,endTime),listener.forwardZ.linearRampToValueAtTime(_forward.z,endTime),listener.upX.linearRampToValueAtTime(_up.x,endTime),listener.upY.linearRampToValueAtTime(_up.y,endTime),listener.upZ.linearRampToValueAtTime(_up.z,endTime)}else listener.setPosition(_position$1.x,_position$1.y,_position$1.z),listener.setOrientation(_forward.x,_forward.y,_forward.z,_up.x,_up.y,_up.z)}}class Audio extends Object3D{constructor(listener){super(),this.type="Audio",this.listener=listener,this.context=listener.context,this.gain=this.context.createGain(),this.gain.connect(listener.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(audioNode){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=audioNode,this.connect(),this}setMediaElementSource(mediaElement){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(mediaElement),this.connect(),this}setMediaStreamSource(mediaStream){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(mediaStream),this.connect(),this}setBuffer(audioBuffer){return this.buffer=audioBuffer,this.sourceType="buffer",this.autoplay&&this.play(),this}play(delay=0){if(!0===this.isPlaying)return void warn("Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void warn("Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+delay;const source=this.context.createBufferSource();return source.buffer=this.buffer,source.loop=this.loop,source.loopStart=this.loopStart,source.loopEnd=this.loopEnd,source.onended=this.onEnded.bind(this),source.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=source,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;warn("Audio: this Audio has no playback control.")}stop(delay=0){if(!1!==this.hasPlaybackControl)return this._progress=0,null!==this.source&&(this.source.stop(this.context.currentTime+delay),this.source.onended=null),this.isPlaying=!1,this;warn("Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let i=1,l=this.filters.length;i<l;i++)this.filters[i-1].connect(this.filters[i]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(!1!==this._connected){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let i=1,l=this.filters.length;i<l;i++)this.filters[i-1].disconnect(this.filters[i]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(value){return value||(value=[]),!0===this._connected?(this.disconnect(),this.filters=value.slice(),this.connect()):this.filters=value.slice(),this}setDetune(value){return this.detune=value,!0===this.isPlaying&&void 0!==this.source.detune&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(filter){return this.setFilters(filter?[filter]:[])}setPlaybackRate(value){if(!1!==this.hasPlaybackControl)return this.playbackRate=value,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;warn("Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1,this._progress=0}getLoop(){return!1===this.hasPlaybackControl?(warn("Audio: this Audio has no playback control."),!1):this.loop}setLoop(value){if(!1!==this.hasPlaybackControl)return this.loop=value,!0===this.isPlaying&&(this.source.loop=this.loop),this;warn("Audio: this Audio has no playback control.")}setLoopStart(value){return this.loopStart=value,this}setLoopEnd(value){return this.loopEnd=value,this}getVolume(){return this.gain.gain.value}setVolume(value){return this.gain.gain.setTargetAtTime(value,this.context.currentTime,.01),this}copy(source,recursive){return super.copy(source,recursive),"buffer"!==source.sourceType?(warn("Audio: Audio source type cannot be copied."),this):(this.autoplay=source.autoplay,this.buffer=source.buffer,this.detune=source.detune,this.loop=source.loop,this.loopStart=source.loopStart,this.loopEnd=source.loopEnd,this.offset=source.offset,this.duration=source.duration,this.playbackRate=source.playbackRate,this.hasPlaybackControl=source.hasPlaybackControl,this.sourceType=source.sourceType,this.filters=source.filters.slice(),this)}clone(recursive){return new this.constructor(this.listener).copy(this,recursive)}}const _position=new Vector3,_quaternion=new Quaternion,_scale=new Vector3,_orientation=new Vector3;class PositionalAudio extends Audio{constructor(listener){super(listener),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}connect(){return super.connect(),this.panner.connect(this.gain),this}disconnect(){return super.disconnect(),this.panner.disconnect(this.gain),this}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(value){return this.panner.refDistance=value,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(value){return this.panner.rolloffFactor=value,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(value){return this.panner.distanceModel=value,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(value){return this.panner.maxDistance=value,this}setDirectionalCone(coneInnerAngle,coneOuterAngle,coneOuterGain){return this.panner.coneInnerAngle=coneInnerAngle,this.panner.coneOuterAngle=coneOuterAngle,this.panner.coneOuterGain=coneOuterGain,this}updateMatrixWorld(force){if(super.updateMatrixWorld(force),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(_position,_quaternion,_scale),_orientation.set(0,0,1).applyQuaternion(_quaternion);const panner=this.panner;if(panner.positionX){const endTime=this.context.currentTime+this.listener.timeDelta;panner.positionX.linearRampToValueAtTime(_position.x,endTime),panner.positionY.linearRampToValueAtTime(_position.y,endTime),panner.positionZ.linearRampToValueAtTime(_position.z,endTime),panner.orientationX.linearRampToValueAtTime(_orientation.x,endTime),panner.orientationY.linearRampToValueAtTime(_orientation.y,endTime),panner.orientationZ.linearRampToValueAtTime(_orientation.z,endTime)}else panner.setPosition(_position.x,_position.y,_position.z),panner.setOrientation(_orientation.x,_orientation.y,_orientation.z)}}class PropertyMixer{constructor(binding,typeName,valueSize){let mixFunction,mixFunctionAdditive,setIdentity;switch(this.binding=binding,this.valueSize=valueSize,typeName){case"quaternion":mixFunction=this._slerp,mixFunctionAdditive=this._slerpAdditive,setIdentity=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*valueSize),this._workIndex=5;break;case"string":case"bool":mixFunction=this._select,mixFunctionAdditive=this._select,setIdentity=this._setAdditiveIdentityOther,this.buffer=new Array(5*valueSize);break;default:mixFunction=this._lerp,mixFunctionAdditive=this._lerpAdditive,setIdentity=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*valueSize)}this._mixBufferRegion=mixFunction,this._mixBufferRegionAdditive=mixFunctionAdditive,this._setIdentity=setIdentity,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(accuIndex,weight){const buffer=this.buffer,stride=this.valueSize,offset=accuIndex*stride+stride;let currentWeight=this.cumulativeWeight;if(0===currentWeight){for(let i=0;i!==stride;++i)buffer[offset+i]=buffer[i];currentWeight=weight}else currentWeight+=weight,this._mixBufferRegion(buffer,offset,0,weight/currentWeight,stride);this.cumulativeWeight=currentWeight}accumulateAdditive(weight){const buffer=this.buffer,stride=this.valueSize,offset=stride*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(buffer,offset,0,weight,stride),this.cumulativeWeightAdditive+=weight}apply(accuIndex){const stride=this.valueSize,buffer=this.buffer,offset=accuIndex*stride+stride,weight=this.cumulativeWeight,weightAdditive=this.cumulativeWeightAdditive,binding=this.binding;this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,weight<1&&this._mixBufferRegion(buffer,offset,stride*this._origIndex,1-weight,stride),weightAdditive>0&&this._mixBufferRegionAdditive(buffer,offset,this._addIndex*stride,1,stride);for(let i=stride,e=stride+stride;i!==e;++i)if(buffer[i]!==buffer[i+stride]){binding.setValue(buffer,offset);break}}saveOriginalState(){const buffer=this.buffer,stride=this.valueSize,originalValueOffset=stride*this._origIndex;this.binding.getValue(buffer,originalValueOffset);for(let i=stride,e=originalValueOffset;i!==e;++i)buffer[i]=buffer[originalValueOffset+i%stride];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){this.binding.setValue(this.buffer,3*this.valueSize)}_setAdditiveIdentityNumeric(){const startIndex=this._addIndex*this.valueSize,endIndex=startIndex+this.valueSize;for(let i=startIndex;i<endIndex;i++)this.buffer[i]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const startIndex=this._origIndex*this.valueSize,targetIndex=this._addIndex*this.valueSize;for(let i=0;i<this.valueSize;i++)this.buffer[targetIndex+i]=this.buffer[startIndex+i]}_select(buffer,dstOffset,srcOffset,t,stride){if(t>=.5)for(let i=0;i!==stride;++i)buffer[dstOffset+i]=buffer[srcOffset+i]}_slerp(buffer,dstOffset,srcOffset,t){Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,srcOffset,t)}_slerpAdditive(buffer,dstOffset,srcOffset,t,stride){const workOffset=this._workIndex*stride;Quaternion.multiplyQuaternionsFlat(buffer,workOffset,buffer,dstOffset,buffer,srcOffset),Quaternion.slerpFlat(buffer,dstOffset,buffer,dstOffset,buffer,workOffset,t)}_lerp(buffer,dstOffset,srcOffset,t,stride){const s=1-t;for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]*s+buffer[srcOffset+i]*t}}_lerpAdditive(buffer,dstOffset,srcOffset,t,stride){for(let i=0;i!==stride;++i){const j=dstOffset+i;buffer[j]=buffer[j]+buffer[srcOffset+i]*t}}}const _reservedRe=new RegExp("[\\[\\]\\.:\\/]","g"),_wordCharOrDot="[^"+"\\[\\]\\.:\\/".replace("\\.","")+"]",_trackRe=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC","[^\\[\\]\\.:\\/]")+/(WCOD+)?/.source.replace("WCOD",_wordCharOrDot)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC","[^\\[\\]\\.:\\/]")+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC","[^\\[\\]\\.:\\/]")+"$"),_supportedObjectNames=["material","materials","bones","map"];class PropertyBinding{constructor(rootNode,path,parsedPath){this.path=path,this.parsedPath=parsedPath||PropertyBinding.parseTrackName(path),this.node=PropertyBinding.findNode(rootNode,this.parsedPath.nodeName),this.rootNode=rootNode,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(root,path,parsedPath){return root&&root.isAnimationObjectGroup?new PropertyBinding.Composite(root,path,parsedPath):new PropertyBinding(root,path,parsedPath)}static sanitizeNodeName(name){return name.replace(/\s/g,"_").replace(_reservedRe,"")}static parseTrackName(trackName){const matches=_trackRe.exec(trackName);if(null===matches)throw new Error("PropertyBinding: Cannot parse trackName: "+trackName);const results={nodeName:matches[2],objectName:matches[3],objectIndex:matches[4],propertyName:matches[5],propertyIndex:matches[6]},lastDot=results.nodeName&&results.nodeName.lastIndexOf(".");if(void 0!==lastDot&&-1!==lastDot){const objectName=results.nodeName.substring(lastDot+1);-1!==_supportedObjectNames.indexOf(objectName)&&(results.nodeName=results.nodeName.substring(0,lastDot),results.objectName=objectName)}if(null===results.propertyName||0===results.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+trackName);return results}static findNode(root,nodeName){if(void 0===nodeName||""===nodeName||"."===nodeName||-1===nodeName||nodeName===root.name||nodeName===root.uuid)return root;if(root.skeleton){const bone=root.skeleton.getBoneByName(nodeName);if(void 0!==bone)return bone}if(root.children){const searchNodeSubtree=function(children){for(let i=0;i<children.length;i++){const childNode=children[i];if(childNode.name===nodeName||childNode.uuid===nodeName)return childNode;const result=searchNodeSubtree(childNode.children);if(result)return result}return null},subTreeNode=searchNodeSubtree(root.children);if(subTreeNode)return subTreeNode}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(buffer,offset){buffer[offset]=this.targetObject[this.propertyName]}_getValue_array(buffer,offset){const source=this.resolvedProperty;for(let i=0,n=source.length;i!==n;++i)buffer[offset++]=source[i]}_getValue_arrayElement(buffer,offset){buffer[offset]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(buffer,offset){this.resolvedProperty.toArray(buffer,offset)}_setValue_direct(buffer,offset){this.targetObject[this.propertyName]=buffer[offset]}_setValue_direct_setNeedsUpdate(buffer,offset){this.targetObject[this.propertyName]=buffer[offset],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(buffer,offset){this.targetObject[this.propertyName]=buffer[offset],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i)dest[i]=buffer[offset++]}_setValue_array_setNeedsUpdate(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i)dest[i]=buffer[offset++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(buffer,offset){const dest=this.resolvedProperty;for(let i=0,n=dest.length;i!==n;++i)dest[i]=buffer[offset++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset]}_setValue_arrayElement_setNeedsUpdate(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(buffer,offset){this.resolvedProperty[this.propertyIndex]=buffer[offset],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(buffer,offset){this.resolvedProperty.fromArray(buffer,offset)}_setValue_fromArray_setNeedsUpdate(buffer,offset){this.resolvedProperty.fromArray(buffer,offset),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(buffer,offset){this.resolvedProperty.fromArray(buffer,offset),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(targetArray,offset){this.bind(),this.getValue(targetArray,offset)}_setValue_unbound(sourceArray,offset){this.bind(),this.setValue(sourceArray,offset)}bind(){let targetObject=this.node;const parsedPath=this.parsedPath,objectName=parsedPath.objectName,propertyName=parsedPath.propertyName;let propertyIndex=parsedPath.propertyIndex;if(targetObject||(targetObject=PropertyBinding.findNode(this.rootNode,parsedPath.nodeName),this.node=targetObject),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!targetObject)return void warn("PropertyBinding: No target node found for track: "+this.path+".");if(objectName){let objectIndex=parsedPath.objectIndex;switch(objectName){case"materials":if(!targetObject.material)return void error("PropertyBinding: Can not bind to material as node does not have a material.",this);if(!targetObject.material.materials)return void error("PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);targetObject=targetObject.material.materials;break;case"bones":if(!targetObject.skeleton)return void error("PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);targetObject=targetObject.skeleton.bones;for(let i=0;i<targetObject.length;i++)if(targetObject[i].name===objectIndex){objectIndex=i;break}break;case"map":if("map"in targetObject){targetObject=targetObject.map;break}if(!targetObject.material)return void error("PropertyBinding: Can not bind to material as node does not have a material.",this);if(!targetObject.material.map)return void error("PropertyBinding: Can not bind to material.map as node.material does not have a map.",this);targetObject=targetObject.material.map;break;default:if(void 0===targetObject[objectName])return void error("PropertyBinding: Can not bind to objectName of node undefined.",this);targetObject=targetObject[objectName]}if(void 0!==objectIndex){if(void 0===targetObject[objectIndex])return void error("PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,targetObject);targetObject=targetObject[objectIndex]}}const nodeProperty=targetObject[propertyName];if(void 0===nodeProperty)return void error("PropertyBinding: Trying to update property for track: "+parsedPath.nodeName+"."+propertyName+" but it wasn't found.",targetObject);let versioning=this.Versioning.None;this.targetObject=targetObject,!0===targetObject.isMaterial?versioning=this.Versioning.NeedsUpdate:!0===targetObject.isObject3D&&(versioning=this.Versioning.MatrixWorldNeedsUpdate);let bindingType=this.BindingType.Direct;if(void 0!==propertyIndex){if("morphTargetInfluences"===propertyName){if(!targetObject.geometry)return void error("PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!targetObject.geometry.morphAttributes)return void error("PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==targetObject.morphTargetDictionary[propertyIndex]&&(propertyIndex=targetObject.morphTargetDictionary[propertyIndex])}bindingType=this.BindingType.ArrayElement,this.resolvedProperty=nodeProperty,this.propertyIndex=propertyIndex}else void 0!==nodeProperty.fromArray&&void 0!==nodeProperty.toArray?(bindingType=this.BindingType.HasFromToArray,this.resolvedProperty=nodeProperty):Array.isArray(nodeProperty)?(bindingType=this.BindingType.EntireArray,this.resolvedProperty=nodeProperty):this.propertyName=propertyName;this.getValue=this.GetterByBindingType[bindingType],this.setValue=this.SetterByBindingTypeAndVersioning[bindingType][versioning]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}PropertyBinding.Composite=class{constructor(targetGroup,path,optionalParsedPath){const parsedPath=optionalParsedPath||PropertyBinding.parseTrackName(path);this._targetGroup=targetGroup,this._bindings=targetGroup.subscribe_(path,parsedPath)}getValue(array,offset){this.bind();const binding=this._bindings[this._targetGroup.nCachedObjects_];void 0!==binding&&binding.getValue(array,offset)}setValue(array,offset){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i)bindings[i].setValue(array,offset)}bind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i)bindings[i].bind()}unbind(){const bindings=this._bindings;for(let i=this._targetGroup.nCachedObjects_,n=bindings.length;i!==n;++i)bindings[i].unbind()}},PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray],PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationAction{constructor(mixer,clip,localRoot=null,blendMode=clip.blendMode){this._mixer=mixer,this._clip=clip,this._localRoot=localRoot,this.blendMode=blendMode;const tracks=clip.tracks,nTracks=tracks.length,interpolants=new Array(nTracks),interpolantSettings={endingStart:2400,endingEnd:2400};for(let i=0;i!==nTracks;++i){const interpolant=tracks[i].createInterpolant(null);interpolants[i]=interpolant,interpolant.settings=interpolantSettings}this._interpolantSettings=interpolantSettings,this._interpolants=interpolants,this._propertyBindings=new Array(nTracks),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=2201,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(time){return this._startTime=time,this}setLoop(mode,repetitions){return this.loop=mode,this.repetitions=repetitions,this}setEffectiveWeight(weight){return this.weight=weight,this._effectiveWeight=this.enabled?weight:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(duration){return this._scheduleFading(duration,0,1)}fadeOut(duration){return this._scheduleFading(duration,1,0)}crossFadeFrom(fadeOutAction,duration,warp=!1){if(fadeOutAction.fadeOut(duration),this.fadeIn(duration),!0===warp){const fadeInDuration=this._clip.duration,fadeOutDuration=fadeOutAction._clip.duration,endStartRatio=fadeInDuration/fadeOutDuration;fadeOutAction.warp(1,fadeOutDuration/fadeInDuration,duration),this.warp(endStartRatio,1,duration)}return this}crossFadeTo(fadeInAction,duration,warp=!1){return fadeInAction.crossFadeFrom(this,duration,warp)}stopFading(){const weightInterpolant=this._weightInterpolant;return null!==weightInterpolant&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(weightInterpolant)),this}setEffectiveTimeScale(timeScale){return this.timeScale=timeScale,this._effectiveTimeScale=this.paused?0:timeScale,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(duration){return this.timeScale=this._clip.duration/duration,this.stopWarping()}syncWith(action){return this.time=action.time,this.timeScale=action.timeScale,this.stopWarping()}halt(duration){return this.warp(this._effectiveTimeScale,0,duration)}warp(startTimeScale,endTimeScale,duration){const mixer=this._mixer,now=mixer.time,timeScale=this.timeScale;let interpolant=this._timeScaleInterpolant;null===interpolant&&(interpolant=mixer._lendControlInterpolant(),this._timeScaleInterpolant=interpolant);const times=interpolant.parameterPositions,values=interpolant.sampleValues;return times[0]=now,times[1]=now+duration,values[0]=startTimeScale/timeScale,values[1]=endTimeScale/timeScale,this}stopWarping(){const timeScaleInterpolant=this._timeScaleInterpolant;return null!==timeScaleInterpolant&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(timeScaleInterpolant)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(time,deltaTime,timeDirection,accuIndex){if(!this.enabled)return void this._updateWeight(time);const startTime=this._startTime;if(null!==startTime){const timeRunning=(time-startTime)*timeDirection;timeRunning<0||0===timeDirection?deltaTime=0:(this._startTime=null,deltaTime=timeDirection*timeRunning)}deltaTime*=this._updateTimeScale(time);const clipTime=this._updateTime(deltaTime),weight=this._updateWeight(time);if(weight>0){const interpolants=this._interpolants,propertyMixers=this._propertyBindings;if(2501===this.blendMode)for(let j=0,m=interpolants.length;j!==m;++j)interpolants[j].evaluate(clipTime),propertyMixers[j].accumulateAdditive(weight);else for(let j=0,m=interpolants.length;j!==m;++j)interpolants[j].evaluate(clipTime),propertyMixers[j].accumulate(accuIndex,weight)}}_updateWeight(time){let weight=0;if(this.enabled){weight=this.weight;const interpolant=this._weightInterpolant;if(null!==interpolant){const interpolantValue=interpolant.evaluate(time)[0];weight*=interpolantValue,time>interpolant.parameterPositions[1]&&(this.stopFading(),0===interpolantValue&&(this.enabled=!1))}}return this._effectiveWeight=weight,weight}_updateTimeScale(time){let timeScale=0;if(!this.paused){timeScale=this.timeScale;const interpolant=this._timeScaleInterpolant;null!==interpolant&&(timeScale*=interpolant.evaluate(time)[0],time>interpolant.parameterPositions[1]&&(this.stopWarping(),0===timeScale?this.paused=!0:this.timeScale=timeScale))}return this._effectiveTimeScale=timeScale,timeScale}_updateTime(deltaTime){const duration=this._clip.duration,loop=this.loop;let time=this.time+deltaTime,loopCount=this._loopCount;const pingPong=2202===loop;if(0===deltaTime)return-1===loopCount||!pingPong||1&~loopCount?time:duration-time;if(2200===loop){-1===loopCount&&(this._loopCount=0,this._setEndings(!0,!0,!1));handle_stop:{if(time>=duration)time=duration;else{if(!(time<0)){this.time=time;break handle_stop}time=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=time,this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime<0?-1:1})}}else{if(-1===loopCount&&(deltaTime>=0?(loopCount=0,this._setEndings(!0,0===this.repetitions,pingPong)):this._setEndings(0===this.repetitions,!0,pingPong)),time>=duration||time<0){const loopDelta=Math.floor(time/duration);time-=duration*loopDelta,loopCount+=Math.abs(loopDelta);const pending=this.repetitions-loopCount;if(pending<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,time=deltaTime>0?duration:0,this.time=time,this._mixer.dispatchEvent({type:"finished",action:this,direction:deltaTime>0?1:-1});else{if(1===pending){const atStart=deltaTime<0;this._setEndings(atStart,!atStart,pingPong)}else this._setEndings(!1,!1,pingPong);this._loopCount=loopCount,this.time=time,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:loopDelta})}}else this.time=time;if(pingPong&&!(1&~loopCount))return duration-time}return time}_setEndings(atStart,atEnd,pingPong){const settings=this._interpolantSettings;pingPong?(settings.endingStart=2401,settings.endingEnd=2401):(settings.endingStart=atStart?this.zeroSlopeAtStart?2401:2400:2402,settings.endingEnd=atEnd?this.zeroSlopeAtEnd?2401:2400:2402)}_scheduleFading(duration,weightNow,weightThen){const mixer=this._mixer,now=mixer.time;let interpolant=this._weightInterpolant;null===interpolant&&(interpolant=mixer._lendControlInterpolant(),this._weightInterpolant=interpolant);const times=interpolant.parameterPositions,values=interpolant.sampleValues;return times[0]=now,values[0]=weightNow,times[1]=now+duration,values[1]=weightThen,this}}const _controlInterpolantsResultBuffer=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(root){super(),this._root=root,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(action,prototypeAction){const root=action._localRoot||this._root,tracks=action._clip.tracks,nTracks=tracks.length,bindings=action._propertyBindings,interpolants=action._interpolants,rootUuid=root.uuid,bindingsByRoot=this._bindingsByRootAndName;let bindingsByName=bindingsByRoot[rootUuid];void 0===bindingsByName&&(bindingsByName={},bindingsByRoot[rootUuid]=bindingsByName);for(let i=0;i!==nTracks;++i){const track=tracks[i],trackName=track.name;let binding=bindingsByName[trackName];if(void 0!==binding)++binding.referenceCount,bindings[i]=binding;else{if(binding=bindings[i],void 0!==binding){null===binding._cacheIndex&&(++binding.referenceCount,this._addInactiveBinding(binding,rootUuid,trackName));continue}binding=new PropertyMixer(PropertyBinding.create(root,trackName,prototypeAction&&prototypeAction._propertyBindings[i].binding.parsedPath),track.ValueTypeName,track.getValueSize()),++binding.referenceCount,this._addInactiveBinding(binding,rootUuid,trackName),bindings[i]=binding}interpolants[i].resultBuffer=binding.buffer}}_activateAction(action){if(!this._isActiveAction(action)){if(null===action._cacheIndex){const rootUuid=(action._localRoot||this._root).uuid,clipUuid=action._clip.uuid,actionsForClip=this._actionsByClip[clipUuid];this._bindAction(action,actionsForClip&&actionsForClip.knownActions[0]),this._addInactiveAction(action,clipUuid,rootUuid)}const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];0===binding.useCount++&&(this._lendBinding(binding),binding.saveOriginalState())}this._lendAction(action)}}_deactivateAction(action){if(this._isActiveAction(action)){const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];0===--binding.useCount&&(binding.restoreOriginalState(),this._takeBackBinding(binding))}this._takeBackAction(action)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const scope=this;this.stats={actions:{get total(){return scope._actions.length},get inUse(){return scope._nActiveActions}},bindings:{get total(){return scope._bindings.length},get inUse(){return scope._nActiveBindings}},controlInterpolants:{get total(){return scope._controlInterpolants.length},get inUse(){return scope._nActiveControlInterpolants}}}}_isActiveAction(action){const index=action._cacheIndex;return null!==index&&index<this._nActiveActions}_addInactiveAction(action,clipUuid,rootUuid){const actions=this._actions,actionsByClip=this._actionsByClip;let actionsForClip=actionsByClip[clipUuid];if(void 0===actionsForClip)actionsForClip={knownActions:[action],actionByRoot:{}},action._byClipCacheIndex=0,actionsByClip[clipUuid]=actionsForClip;else{const knownActions=actionsForClip.knownActions;action._byClipCacheIndex=knownActions.length,knownActions.push(action)}action._cacheIndex=actions.length,actions.push(action),actionsForClip.actionByRoot[rootUuid]=action}_removeInactiveAction(action){const actions=this._actions,lastInactiveAction=actions[actions.length-1],cacheIndex=action._cacheIndex;lastInactiveAction._cacheIndex=cacheIndex,actions[cacheIndex]=lastInactiveAction,actions.pop(),action._cacheIndex=null;const clipUuid=action._clip.uuid,actionsByClip=this._actionsByClip,actionsForClip=actionsByClip[clipUuid],knownActionsForClip=actionsForClip.knownActions,lastKnownAction=knownActionsForClip[knownActionsForClip.length-1],byClipCacheIndex=action._byClipCacheIndex;lastKnownAction._byClipCacheIndex=byClipCacheIndex,knownActionsForClip[byClipCacheIndex]=lastKnownAction,knownActionsForClip.pop(),action._byClipCacheIndex=null,delete actionsForClip.actionByRoot[(action._localRoot||this._root).uuid],0===knownActionsForClip.length&&delete actionsByClip[clipUuid],this._removeInactiveBindingsForAction(action)}_removeInactiveBindingsForAction(action){const bindings=action._propertyBindings;for(let i=0,n=bindings.length;i!==n;++i){const binding=bindings[i];0===--binding.referenceCount&&this._removeInactiveBinding(binding)}}_lendAction(action){const actions=this._actions,prevIndex=action._cacheIndex,lastActiveIndex=this._nActiveActions++,firstInactiveAction=actions[lastActiveIndex];action._cacheIndex=lastActiveIndex,actions[lastActiveIndex]=action,firstInactiveAction._cacheIndex=prevIndex,actions[prevIndex]=firstInactiveAction}_takeBackAction(action){const actions=this._actions,prevIndex=action._cacheIndex,firstInactiveIndex=--this._nActiveActions,lastActiveAction=actions[firstInactiveIndex];action._cacheIndex=firstInactiveIndex,actions[firstInactiveIndex]=action,lastActiveAction._cacheIndex=prevIndex,actions[prevIndex]=lastActiveAction}_addInactiveBinding(binding,rootUuid,trackName){const bindingsByRoot=this._bindingsByRootAndName,bindings=this._bindings;let bindingByName=bindingsByRoot[rootUuid];void 0===bindingByName&&(bindingByName={},bindingsByRoot[rootUuid]=bindingByName),bindingByName[trackName]=binding,binding._cacheIndex=bindings.length,bindings.push(binding)}_removeInactiveBinding(binding){const bindings=this._bindings,propBinding=binding.binding,rootUuid=propBinding.rootNode.uuid,trackName=propBinding.path,bindingsByRoot=this._bindingsByRootAndName,bindingByName=bindingsByRoot[rootUuid],lastInactiveBinding=bindings[bindings.length-1],cacheIndex=binding._cacheIndex;lastInactiveBinding._cacheIndex=cacheIndex,bindings[cacheIndex]=lastInactiveBinding,bindings.pop(),delete bindingByName[trackName],0===Object.keys(bindingByName).length&&delete bindingsByRoot[rootUuid]}_lendBinding(binding){const bindings=this._bindings,prevIndex=binding._cacheIndex,lastActiveIndex=this._nActiveBindings++,firstInactiveBinding=bindings[lastActiveIndex];binding._cacheIndex=lastActiveIndex,bindings[lastActiveIndex]=binding,firstInactiveBinding._cacheIndex=prevIndex,bindings[prevIndex]=firstInactiveBinding}_takeBackBinding(binding){const bindings=this._bindings,prevIndex=binding._cacheIndex,firstInactiveIndex=--this._nActiveBindings,lastActiveBinding=bindings[firstInactiveIndex];binding._cacheIndex=firstInactiveIndex,bindings[firstInactiveIndex]=binding,lastActiveBinding._cacheIndex=prevIndex,bindings[prevIndex]=lastActiveBinding}_lendControlInterpolant(){const interpolants=this._controlInterpolants,lastActiveIndex=this._nActiveControlInterpolants++;let interpolant=interpolants[lastActiveIndex];return void 0===interpolant&&(interpolant=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,_controlInterpolantsResultBuffer),interpolant.__cacheIndex=lastActiveIndex,interpolants[lastActiveIndex]=interpolant),interpolant}_takeBackControlInterpolant(interpolant){const interpolants=this._controlInterpolants,prevIndex=interpolant.__cacheIndex,firstInactiveIndex=--this._nActiveControlInterpolants,lastActiveInterpolant=interpolants[firstInactiveIndex];interpolant.__cacheIndex=firstInactiveIndex,interpolants[firstInactiveIndex]=interpolant,lastActiveInterpolant.__cacheIndex=prevIndex,interpolants[prevIndex]=lastActiveInterpolant}clipAction(clip,optionalRoot,blendMode){const root=optionalRoot||this._root,rootUuid=root.uuid;let clipObject="string"==typeof clip?AnimationClip.findByName(root,clip):clip;const clipUuid=null!==clipObject?clipObject.uuid:clip,actionsForClip=this._actionsByClip[clipUuid];let prototypeAction=null;if(void 0===blendMode&&(blendMode=null!==clipObject?clipObject.blendMode:2500),void 0!==actionsForClip){const existingAction=actionsForClip.actionByRoot[rootUuid];if(void 0!==existingAction&&existingAction.blendMode===blendMode)return existingAction;prototypeAction=actionsForClip.knownActions[0],null===clipObject&&(clipObject=prototypeAction._clip)}if(null===clipObject)return null;const newAction=new AnimationAction(this,clipObject,optionalRoot,blendMode);return this._bindAction(newAction,prototypeAction),this._addInactiveAction(newAction,clipUuid,rootUuid),newAction}existingAction(clip,optionalRoot){const root=optionalRoot||this._root,rootUuid=root.uuid,clipObject="string"==typeof clip?AnimationClip.findByName(root,clip):clip,actionsForClip=this._actionsByClip[clipObject?clipObject.uuid:clip];return void 0!==actionsForClip&&actionsForClip.actionByRoot[rootUuid]||null}stopAllAction(){const actions=this._actions;for(let i=this._nActiveActions-1;i>=0;--i)actions[i].stop();return this}update(deltaTime){const actions=this._actions,nActions=this._nActiveActions,time=this.time+=deltaTime*=this.timeScale,timeDirection=Math.sign(deltaTime),accuIndex=this._accuIndex^=1;for(let i=0;i!==nActions;++i)actions[i]._update(time,deltaTime,timeDirection,accuIndex);const bindings=this._bindings,nBindings=this._nActiveBindings;for(let i=0;i!==nBindings;++i)bindings[i].apply(accuIndex);return this}setTime(time){this.time=0;for(let i=0;i<this._actions.length;i++)this._actions[i].time=0;return this.update(time)}getRoot(){return this._root}uncacheClip(clip){const actions=this._actions,clipUuid=clip.uuid,actionsByClip=this._actionsByClip,actionsForClip=actionsByClip[clipUuid];if(void 0!==actionsForClip){const actionsToRemove=actionsForClip.knownActions;for(let i=0,n=actionsToRemove.length;i!==n;++i){const action=actionsToRemove[i];this._deactivateAction(action);const cacheIndex=action._cacheIndex,lastInactiveAction=actions[actions.length-1];action._cacheIndex=null,action._byClipCacheIndex=null,lastInactiveAction._cacheIndex=cacheIndex,actions[cacheIndex]=lastInactiveAction,actions.pop(),this._removeInactiveBindingsForAction(action)}delete actionsByClip[clipUuid]}}uncacheRoot(root){const rootUuid=root.uuid,actionsByClip=this._actionsByClip;for(const clipUuid in actionsByClip){const action=actionsByClip[clipUuid].actionByRoot[rootUuid];void 0!==action&&(this._deactivateAction(action),this._removeInactiveAction(action))}const bindingByName=this._bindingsByRootAndName[rootUuid];if(void 0!==bindingByName)for(const trackName in bindingByName){const binding=bindingByName[trackName];binding.restoreOriginalState(),this._removeInactiveBinding(binding)}}uncacheAction(clip,optionalRoot){const action=this.existingAction(clip,optionalRoot);null!==action&&(this._deactivateAction(action),this._removeInactiveAction(action))}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(array,stride,meshPerAttribute=1){super(array,stride),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=meshPerAttribute}copy(source){return super.copy(source),this.meshPerAttribute=source.meshPerAttribute,this}clone(data){const ib=super.clone(data);return ib.meshPerAttribute=this.meshPerAttribute,ib}toJSON(data){const json=super.toJSON(data);return json.isInstancedInterleavedBuffer=!0,json.meshPerAttribute=this.meshPerAttribute,json}}const _matrix=new Matrix4;class Raycaster{constructor(origin,direction,near=0,far=1/0){this.ray=new Ray(origin,direction),this.near=near,this.far=far,this.camera=null,this.layers=new Layers,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(origin,direction){this.ray.set(origin,direction)}setFromCamera(coords,camera){camera.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(camera.matrixWorld),this.ray.direction.set(coords.x,coords.y,.5).unproject(camera).sub(this.ray.origin).normalize(),this.camera=camera):camera.isOrthographicCamera?(this.ray.origin.set(coords.x,coords.y,(camera.near+camera.far)/(camera.near-camera.far)).unproject(camera),this.ray.direction.set(0,0,-1).transformDirection(camera.matrixWorld),this.camera=camera):error("Raycaster: Unsupported camera type: "+camera.type)}setFromXRController(controller){return _matrix.identity().extractRotation(controller.matrixWorld),this.ray.origin.setFromMatrixPosition(controller.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(_matrix),this}intersectObject(object,recursive=!0,intersects=[]){return intersect(object,this,intersects,recursive),intersects.sort(ascSort),intersects}intersectObjects(objects,recursive=!0,intersects=[]){for(let i=0,l=objects.length;i<l;i++)intersect(objects[i],this,intersects,recursive);return intersects.sort(ascSort),intersects}}function ascSort(a,b){return a.distance-b.distance}function intersect(object,raycaster,intersects,recursive){let propagate=!0;if(object.layers.test(raycaster.layers)&&!1===object.raycast(raycaster,intersects)&&(propagate=!1),!0===propagate&&!0===recursive){const children=object.children;for(let i=0,l=children.length;i<l;i++)intersect(children[i],raycaster,intersects,!0)}}class Spherical{constructor(radius=1,phi=0,theta=0){this.radius=radius,this.phi=phi,this.theta=theta}set(radius,phi,theta){return this.radius=radius,this.phi=phi,this.theta=theta,this}copy(other){return this.radius=other.radius,this.phi=other.phi,this.theta=other.theta,this}makeSafe(){return this.phi=clamp(this.phi,1e-6,Math.PI-1e-6),this}setFromVector3(v){return this.setFromCartesianCoords(v.x,v.y,v.z)}setFromCartesianCoords(x,y,z){return this.radius=Math.sqrt(x*x+y*y+z*z),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(x,z),this.phi=Math.acos(clamp(y/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}const _startP=new Vector3,_startEnd=new Vector3,_d1=new Vector3,_d2=new Vector3,_r=new Vector3,_c1=new Vector3,_c2=new Vector3;class Line3{constructor(start=new Vector3,end=new Vector3){this.start=start,this.end=end}set(start,end){return this.start.copy(start),this.end.copy(end),this}copy(line){return this.start.copy(line.start),this.end.copy(line.end),this}getCenter(target){return target.addVectors(this.start,this.end).multiplyScalar(.5)}delta(target){return target.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,target){return this.delta(target).multiplyScalar(t).add(this.start)}closestPointToPointParameter(point,clampToLine){_startP.subVectors(point,this.start),_startEnd.subVectors(this.end,this.start);const startEnd2=_startEnd.dot(_startEnd);let t=_startEnd.dot(_startP)/startEnd2;return clampToLine&&(t=clamp(t,0,1)),t}closestPointToPoint(point,clampToLine,target){const t=this.closestPointToPointParameter(point,clampToLine);return this.delta(target).multiplyScalar(t).add(this.start)}distanceSqToLine3(line,c1=_c1,c2=_c2){const EPSILON=1e-8*1e-8;let s,t;const p1=this.start,p2=line.start,q2=line.end;_d1.subVectors(this.end,p1),_d2.subVectors(q2,p2),_r.subVectors(p1,p2);const a=_d1.dot(_d1),e=_d2.dot(_d2),f=_d2.dot(_r);if(a<=EPSILON&&e<=EPSILON)return c1.copy(p1),c2.copy(p2),c1.sub(c2),c1.dot(c1);if(a<=EPSILON)s=0,t=f/e,t=clamp(t,0,1);else{const c=_d1.dot(_r);if(e<=EPSILON)t=0,s=clamp(-c/a,0,1);else{const b=_d1.dot(_d2),denom=a*e-b*b;s=0!==denom?clamp((b*f-c*e)/denom,0,1):0,t=(b*s+f)/e,t<0?(t=0,s=clamp(-c/a,0,1)):t>1&&(t=1,s=clamp((b-c)/a,0,1))}}return c1.copy(p1).add(_d1.multiplyScalar(s)),c2.copy(p2).add(_d2.multiplyScalar(t)),c1.sub(c2),c1.dot(c1)}applyMatrix4(matrix){return this.start.applyMatrix4(matrix),this.end.applyMatrix4(matrix),this}equals(line){return line.start.equals(this.start)&&line.end.equals(this.end)}clone(){return(new this.constructor).copy(this)}}class Controls extends EventDispatcher{constructor(object,domElement=null){super(),this.object=object,this.domElement=domElement,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(element){void 0!==element?(null!==this.domElement&&this.disconnect(),this.domElement=element):warn("Controls: connect() now requires an element.")}disconnect(){}dispose(){}update(){}}function getByteLength(width,height,format,type){const typeByteLength=function(type){switch(type){case 1009:case 1010:return{byteLength:1,components:1};case 1012:case 1011:case 1016:return{byteLength:2,components:1};case 1017:case 1018:return{byteLength:2,components:4};case 1014:case 1013:case 1015:return{byteLength:4,components:1};case 35902:case 35899:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${type}.`)}(type);switch(format){case 1021:return width*height;case 1028:case 1029:return width*height/typeByteLength.components*typeByteLength.byteLength;case 1030:case 1031:return width*height*2/typeByteLength.components*typeByteLength.byteLength;case 1022:return width*height*3/typeByteLength.components*typeByteLength.byteLength;case 1023:case 1033:return width*height*4/typeByteLength.components*typeByteLength.byteLength;case 33776:case 33777:case 36196:case 37492:case 37488:case 37489:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*8;case 33778:case 33779:case 37496:case 37490:case 37491:case 37808:return Math.floor((width+3)/4)*Math.floor((height+3)/4)*16;case 35841:case 35843:return Math.max(width,16)*Math.max(height,8)/4;case 35840:case 35842:return Math.max(width,8)*Math.max(height,8)/2;case 37809:return Math.floor((width+4)/5)*Math.floor((height+3)/4)*16;case 37810:return Math.floor((width+4)/5)*Math.floor((height+4)/5)*16;case 37811:return Math.floor((width+5)/6)*Math.floor((height+4)/5)*16;case 37812:return Math.floor((width+5)/6)*Math.floor((height+5)/6)*16;case 37813:return Math.floor((width+7)/8)*Math.floor((height+4)/5)*16;case 37814:return Math.floor((width+7)/8)*Math.floor((height+5)/6)*16;case 37815:return Math.floor((width+7)/8)*Math.floor((height+7)/8)*16;case 37816:return Math.floor((width+9)/10)*Math.floor((height+4)/5)*16;case 37817:return Math.floor((width+9)/10)*Math.floor((height+5)/6)*16;case 37818:return Math.floor((width+9)/10)*Math.floor((height+7)/8)*16;case 37819:return Math.floor((width+9)/10)*Math.floor((height+9)/10)*16;case 37820:return Math.floor((width+11)/12)*Math.floor((height+9)/10)*16;case 37821:return Math.floor((width+11)/12)*Math.floor((height+11)/12)*16;case 36492:case 36494:case 36495:case 36285:case 36286:return Math.ceil(width/4)*Math.ceil(height/4)*16;case 36283:case 36284:return Math.ceil(width/4)*Math.ceil(height/4)*8}throw new Error(`Unable to determine texture byte length for ${format} format.`)}"undefined"!=typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:"182"}})),"undefined"!=typeof window&&(window.__THREE__?warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__="182");export{ACESFilmicToneMapping,AddEquation,AddOperation,AdditiveAnimationBlendMode,AdditiveBlending,AgXToneMapping,AlphaFormat,AlwaysCompare,AlwaysDepth,AlwaysStencilFunc,AmbientLight,AnimationAction,AnimationClip,AnimationMixer,ArrayCamera,AttachedBindMode,Audio,AudioContext,AudioListener,AudioLoader,BackSide,BasicDepthPacking,BatchedMesh,Bone,BooleanKeyframeTrack,Box3,BoxGeometry,BufferAttribute,BufferGeometry,ByteType,Cache,Camera,CanvasTexture,CineonToneMapping,ClampToEdgeWrapping,Clock,Color,ColorKeyframeTrack,ColorManagement,ConstantAlphaFactor,ConstantColorFactor,Controls,CubeCamera,CubeDepthTexture,CubeReflectionMapping,CubeRefractionMapping,CubeTexture,CubeUVReflectionMapping,CubicInterpolant,CullFaceBack,CullFaceFront,CullFaceNone,CustomBlending,CustomToneMapping,Data3DTexture,DataArrayTexture,DataTexture,DataTextureLoader,DataUtils,DecrementStencilOp,DecrementWrapStencilOp,DefaultLoadingManager,DepthFormat,DepthStencilFormat,DepthTexture,DetachedBindMode,DirectionalLight,DiscreteInterpolant,DoubleSide,DstAlphaFactor,DstColorFactor,EqualCompare,EqualDepth,EqualStencilFunc,EquirectangularReflectionMapping,EquirectangularRefractionMapping,Euler,EventDispatcher,ExternalTexture,FileLoader,Float32BufferAttribute,FloatType,Fog,FrontSide,Frustum,FrustumArray,GLSL3,GreaterCompare,GreaterDepth,GreaterEqualCompare,GreaterEqualDepth,GreaterEqualStencilFunc,GreaterStencilFunc,Group,HalfFloatType,HemisphereLight,ImageBitmapLoader,ImageLoader,ImageUtils,IncrementStencilOp,IncrementWrapStencilOp,InstancedBufferAttribute,InstancedBufferGeometry,InstancedInterleavedBuffer,InstancedMesh,IntType,InterleavedBuffer,InterleavedBufferAttribute,Interpolant,InterpolateDiscrete,InterpolateLinear,InterpolateSmooth,InvertStencilOp,KeepStencilOp,KeyframeTrack,Layers,LessCompare,LessDepth,LessEqualCompare,LessEqualDepth,LessEqualStencilFunc,LessStencilFunc,Light,Line,Line3,LineBasicMaterial,LineDashedMaterial,LineLoop,LineSegments,LinearFilter,LinearInterpolant,LinearMipmapLinearFilter,LinearMipmapNearestFilter,LinearSRGBColorSpace,LinearToneMapping,LinearTransfer,Loader,LoaderUtils,LoadingManager,LoopOnce,LoopPingPong,LoopRepeat,MOUSE,Material,MathUtils,Matrix3,Matrix4,MaxEquation,Mesh,MeshBasicMaterial,MeshDepthMaterial,MeshDistanceMaterial,MeshLambertMaterial,MeshMatcapMaterial,MeshNormalMaterial,MeshPhongMaterial,MeshPhysicalMaterial,MeshStandardMaterial,MeshToonMaterial,MinEquation,MirroredRepeatWrapping,MixOperation,MultiplyBlending,MultiplyOperation,NearestFilter,NearestMipmapLinearFilter,NearestMipmapNearestFilter,NeutralToneMapping,NeverCompare,NeverDepth,NeverStencilFunc,NoBlending,NoColorSpace,NoToneMapping,NormalAnimationBlendMode,NormalBlending,NotEqualCompare,NotEqualDepth,NotEqualStencilFunc,NumberKeyframeTrack,Object3D,ObjectSpaceNormalMap,OneFactor,OneMinusConstantAlphaFactor,OneMinusConstantColorFactor,OneMinusDstAlphaFactor,OneMinusDstColorFactor,OneMinusSrcAlphaFactor,OneMinusSrcColorFactor,OrthographicCamera,PCFShadowMap,PCFSoftShadowMap,PerspectiveCamera,Plane,PlaneGeometry,PointLight,Points,PointsMaterial,PositionalAudio,PropertyBinding,PropertyMixer,Quaternion,QuaternionKeyframeTrack,QuaternionLinearInterpolant,R11_EAC_Format,RAD2DEG,RED_GREEN_RGTC2_Format,RED_RGTC1_Format,REVISION,RG11_EAC_Format,RGBADepthPacking,RGBAFormat,RGBAIntegerFormat,RGBA_ASTC_10x10_Format,RGBA_ASTC_10x5_Format,RGBA_ASTC_10x6_Format,RGBA_ASTC_10x8_Format,RGBA_ASTC_12x10_Format,RGBA_ASTC_12x12_Format,RGBA_ASTC_4x4_Format,RGBA_ASTC_5x4_Format,RGBA_ASTC_5x5_Format,RGBA_ASTC_6x5_Format,RGBA_ASTC_6x6_Format,RGBA_ASTC_8x5_Format,RGBA_ASTC_8x6_Format,RGBA_ASTC_8x8_Format,RGBA_BPTC_Format,RGBA_ETC2_EAC_Format,RGBA_PVRTC_2BPPV1_Format,RGBA_PVRTC_4BPPV1_Format,RGBA_S3TC_DXT1_Format,RGBA_S3TC_DXT3_Format,RGBA_S3TC_DXT5_Format,RGBFormat,RGBIntegerFormat,RGB_BPTC_SIGNED_Format,RGB_BPTC_UNSIGNED_Format,RGB_ETC1_Format,RGB_ETC2_Format,RGB_PVRTC_2BPPV1_Format,RGB_PVRTC_4BPPV1_Format,RGB_S3TC_DXT1_Format,RGFormat,RGIntegerFormat,RawShaderMaterial,Ray,Raycaster,RectAreaLight,RedFormat,RedIntegerFormat,ReinhardToneMapping,RenderTarget,RepeatWrapping,ReplaceStencilOp,ReverseSubtractEquation,SIGNED_R11_EAC_Format,SIGNED_RED_GREEN_RGTC2_Format,SIGNED_RED_RGTC1_Format,SIGNED_RG11_EAC_Format,SRGBColorSpace,SRGBTransfer,Scene,ShaderMaterial,ShadowMaterial,ShortType,Skeleton,SkinnedMesh,Source,Sphere,SphereGeometry,Spherical,SpotLight,SpriteMaterial,SrcAlphaFactor,SrcAlphaSaturateFactor,SrcColorFactor,StaticDrawUsage,StringKeyframeTrack,SubtractEquation,SubtractiveBlending,TOUCH,TangentSpaceNormalMap,Texture,TextureLoader,Triangle,TriangleFanDrawMode,TriangleStripDrawMode,TrianglesDrawMode,UVMapping,Uint16BufferAttribute,Uint32BufferAttribute,UniformsUtils,UnsignedByteType,UnsignedInt101111Type,UnsignedInt248Type,UnsignedInt5999Type,UnsignedIntType,UnsignedShort4444Type,UnsignedShort5551Type,UnsignedShortType,VSMShadowMap,Vector2,Vector3,Vector4,VectorKeyframeTrack,WebGLCoordinateSystem,WebGLCubeRenderTarget,WebGLRenderTarget,WebGPUCoordinateSystem,WebXRController,WireframeGeometry,WrapAroundEnding,ZeroCurvatureEnding,ZeroFactor,ZeroSlopeEnding,ZeroStencilOp,arrayNeedsUint32,cloneUniforms,createCanvasElement,createElementNS,error,getByteLength,getUnlitUniformColorSpace,isTypedArray,log,mergeUniforms,probeAsync,warn,warnOnce};
2
- //# sourceMappingURL=three.core.js.map